class_docstr: `Challenge on Learned Image Compression (CLIC) 2020
  <http://compression.cc/tasks/>`_ Video Dataset.
  
  Args:
      root: Root directory where videos are downloaded to.
          Expects the following folder structure if ``download=False``:
  
          .. code::
  
              <root>
                  └── [A-Za-z]_[720|1080|2160]P-[0-9a-z]{4}
                      └── *[0-9]{5}_[yuv].png
      split: The dataset split to use.
          One of {``train``, ``val``, ``test``}. Defaults to ``train``.
      download: If true, downloads the dataset from the internet and puts it
          in the root directory. If the dataset is already downloaded, it is
          not downloaded again.
      video_sampler:
      transform: A callable that transforms a clip, e.g,
          ``pytorchvideo.transforms.RandomResizedCrop``.
      multithreaded_io: If true, performs input/output operations across
          multiple threads.
      frames_per_clip:
code: def __getitem__(self, index: int) -> Dict:
      if self._current_video:
          video, index = self._current_video
      else:
          video_frame_paths = [
              *self._root.joinpath(self._video_paths[index]).glob(
                  "*_y.png"
              )
          ]
  
          video = FrameVideo.from_frame_paths(
              video_frame_paths,
              multithreaded_io=self._multithreaded_io,
          )
  
          self._current_video = video, index
  
      clip_info = self._clip_sampler(
          self._next_clip_start_sec,
          video.duration,
          {},
      )
  
      if clip_info.aug_index == 0:
          self._current_video_clip = video.get_clip(
              clip_info.clip_start_sec,
              clip_info.clip_end_sec,
              self._frame_filter,
          )
  
      if clip_info.is_last_clip:
          self._current_video = None
  
          self._next_clip_start_sec = 0.0
      else:
          self._next_clip_start_sec = clip_info.clip_end_sec
  
      sample = {
          "aug_index": clip_info.aug_index,
          "clip_index": clip_info.clip_index,
          "label": None,
          "video": self._current_video_clip["video"],  # type: ignore
          "video_index": index,
          "video_label": None,
          "video_name": str(self._video_paths[index]),
      }
  
      if self._transform:
          sample = self._transform(sample)
  
      return sample
  
imports: import concurrent.futures
  import functools
  import time
  import urllib.request
  from concurrent.futures import ThreadPoolExecutor
  from pathlib import Path
  from typing import Callable, Dict, List, Optional, Tuple, Type, Union
  from zipfile import ZipFile
  import torch
  import torchvision.datasets.utils
  import tqdm
  from pytorchvideo.data.clip_sampling import ClipSampler
  from pytorchvideo.data.frame_video import FrameVideo
  from pytorchvideo.data.utils import MultiProcessSampler
  from torch import Tensor
  from torch.utils.data import IterableDataset, RandomSampler, Sampler
label_desc: Use image node_id 2 for calling the CLIC2020Video obj's underlying member method code with example usage: obj.__getitem__(index) and returns: sample