├── wsvd_test_clip_frame_ids.pkl ├── wsvd_train_clip_frame_ids.pkl ├── downloader_script.sh ├── valid_id_list_creator.py ├── README.md ├── grab_frames.py ├── wsvd_video_loader.py ├── wsvd_list_valid.txt ├── wsvd_loader.py └── wsvd_list_original.txt /wsvd_test_clip_frame_ids.pkl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aycatakmaz/wsvd_dataset_loader/HEAD/wsvd_test_clip_frame_ids.pkl -------------------------------------------------------------------------------- /wsvd_train_clip_frame_ids.pkl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aycatakmaz/wsvd_dataset_loader/HEAD/wsvd_train_clip_frame_ids.pkl -------------------------------------------------------------------------------- /downloader_script.sh: -------------------------------------------------------------------------------- 1 | youtube-dl --download-archive downloaded.txt -f 'bestvideo[ext=mp4]' -a wsvd_list_valid.txt -o 'wsvd/%(id)s.%(ext)s' 2 | 3 | -------------------------------------------------------------------------------- /valid_id_list_creator.py: -------------------------------------------------------------------------------- 1 | import requests 2 | from pprint import pprint 3 | 4 | your_api_key = '' 5 | 6 | ids = [] 7 | filepath = 'wsvd_list_original.txt' 8 | with open(filepath) as fp: 9 | for cnt, line in enumerate(fp): 10 | url = 'https://www.googleapis.com/youtube/v3/videos?id={}&key={}&part=status'.format(line.strip(), your_api_key) 11 | url_get = requests.get(url) 12 | if len(url_get.json()['items']) > 0: 13 | ids.append(line) 14 | print(line.strip()) -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # wsvd_dataset_loader 2 | Loader for the WSVD dataset - eliminating invalid/deleted youtube videos or the videos with copyright issues. 3 | 4 | ## Web Stereo Video Supervision for Depth Prediction from Dynamic Scenes 5 | For more details, please see the paper [Wang etal. 3DV19](https://arxiv.org/pdf/1904.11112.pdf) 6 |
7 |
8 | Please also see the original website https://sites.google.com/view/wsvd/home, and the original repository of the authors https://github.com/MightyChaos/wsvd_test 9 |
10 |
11 | To download the dataset, you can directly run the following script, which will create a subdirectory wsvd inside your working folder, and directly start downloading the videos in the dataset. The dataset is approximately 50G. 12 | bash downloader_script.sh 13 |
Please note that you will need to have the youtube-dl module. 14 |
15 |
16 | If you would like to generate the video ID list again, you will need a YouTube API key. In that case, create your YouTube API key, and fill it in the script valid_id_list_creator.py, then run it with python valid_id_list_creator.py 17 | -------------------------------------------------------------------------------- /grab_frames.py: -------------------------------------------------------------------------------- 1 | 2 | import cv2 3 | import os 4 | import numpy as np 5 | 6 | def read_video(video_file): 7 | # Open the video file 8 | cap = cv2.VideoCapture(video_file) 9 | print(video_file) 10 | failed_clip = False 11 | frames = [] 12 | for f in range(21000): 13 | ret, frame = cap.read() 14 | #print('shape: ', frame.shape) 15 | if ret: 16 | # HWC2CHW 17 | #frame = np.transpose(frame,(2, 0, 1)) 18 | if f==8500: 19 | #col_img = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB) 20 | col_img = frame 21 | height, width, _ = col_img.shape 22 | print(col_img.shape) 23 | left = col_img[:,0:int((width/2)),:] 24 | resized = cv2.resize(left, (0,0), fx=2, fy=1) 25 | cv2.imwrite('buraya.jpg', resized ) 26 | else: 27 | print(f) 28 | print("Skipped!") 29 | failed_clip = True 30 | break 31 | return np.asarray(frames), failed_clip 32 | 33 | def read_video2(video_file): 34 | # Open the video file 35 | cap = cv2.VideoCapture(video_file) 36 | number_of_frame = cap.get(cv2.CAP_PROP_FRAME_COUNT) 37 | cap.set(cv2.CAP_PROP_POS_FRAMES, 260) 38 | failed_clip = False 39 | frames = [] 40 | ret, frame = cap.read() 41 | col_img = frame 42 | height, width, _ = col_img.shape 43 | print(col_img.shape) 44 | left = col_img[:,0:int((width/2)),:] 45 | resized = cv2.resize(left, (0,0), fx=2, fy=1) 46 | cv2.imwrite('yenifoto.jpg', resized ) 47 | return frame 48 | 49 | video_root_dir = '/scratch/takmaza/wsvd/wsvd' 50 | vid_id = '-3Br2RCzmEc'#'-A_ol17l90M' 51 | ext = '.mp4' 52 | vid_path = os.path.join(video_root_dir,(vid_id+ext)) 53 | frames= read_video2(vid_path) 54 | print('read it!') 55 | 56 | -------------------------------------------------------------------------------- /wsvd_video_loader.py: -------------------------------------------------------------------------------- 1 | # modified from https://github.com/MohsenFayyaz89/PyTorch_Video_Dataset/blob/master/GeneralVideoDataset.py 2 | 3 | from __future__ import print_function, division 4 | 5 | import os 6 | import pickle 7 | import cv2 8 | import numpy as np 9 | import torch 10 | from torch.utils.data import Dataset 11 | 12 | 13 | class RandomCrop(object): 14 | """Randomly Crop the frames in a clip.""" 15 | 16 | def __init__(self, output_size): 17 | """ 18 | Args: 19 | output_size (tuple or int): Desired output size. If int, square crop 20 | is made. 21 | """ 22 | assert isinstance(output_size, (int, tuple)) 23 | if isinstance(output_size, int): 24 | self.output_size = (output_size, output_size) 25 | else: 26 | assert len(output_size) == 2 27 | self.output_size = output_size 28 | 29 | def __call__(self, clip): 30 | h, w = clip.size()[2:] 31 | new_h, new_w = self.output_size 32 | 33 | top = np.random.randint(0, h - new_h) 34 | left = np.random.randint(0, w - new_w) 35 | 36 | clip = clip[:, :, top : top + new_h, left : left + new_w] 37 | 38 | return clip 39 | 40 | 41 | class GeneralVideoDataset(Dataset): 42 | """Dataset Class for Loading Video""" 43 | 44 | def __init__( 45 | self, 46 | clips_list_file, 47 | root_dir, 48 | channels, 49 | time_depth, 50 | x_size, 51 | y_size, 52 | mean, 53 | transform=None, 54 | ): 55 | """ 56 | Args: 57 | clips_list_file (string): Path to the clipsList file with labels. 58 | root_dir (string): Directory with all the videoes. 59 | transform (callable, optional): Optional transform to be applied 60 | on a sample. 61 | channels: Number of channels of frames 62 | time_depth: Number of frames to be loaded in a sample 63 | x_size, y_size: Dimensions of the frames 64 | mean: Mean value of the training set videos over each channel 65 | """ 66 | with open(clips_list_file, "rb") as fp: # Unpickling 67 | clips_list_file = pickle.load(fp) 68 | 69 | self.clips_list = clips_list_file 70 | self.root_dir = root_dir 71 | self.channels = channels 72 | self.time_depth = time_depth 73 | self.x_size = x_size 74 | self.y_size = y_size 75 | self.mean = mean 76 | self.transform = transform 77 | 78 | def __len__(self): 79 | return len(self.clipsList) 80 | 81 | def read_video(self, video_file): 82 | # Open the video file 83 | cap = cv2.VideoCapture(video_file) 84 | frames = torch.FloatTensor( 85 | self.channels, self.time_depth, self.x_size, self.y_size 86 | ) 87 | failed_clip = False 88 | for f in range(self.time_depth): 89 | 90 | ret, frame = cap.read() 91 | if ret: 92 | frame = torch.from_numpy(frame) 93 | # HWC2CHW 94 | frame = frame.permute(2, 0, 1) 95 | frames[:, f, :, :] = frame 96 | 97 | else: 98 | print("Skipped!") 99 | failed_clip = True 100 | break 101 | 102 | for idx in range(len(self.mean)): 103 | frames[idx] = (frames[idx] - self.mean[idx]) / self.stddev[idx] 104 | 105 | return frames, failed_clip 106 | 107 | def __getitem__(self, idx): 108 | 109 | video_file = os.path.join(self.root_dir, self.clips_list[idx][0]) 110 | clip, failed_clip = self.read_video(video_file) 111 | if self.transform: 112 | clip = self.transform(clip) 113 | sample = { 114 | "clip": clip, 115 | "label": self.clips_list[idx][1], 116 | "failedClip": failed_clip, 117 | } 118 | 119 | return sample -------------------------------------------------------------------------------- /wsvd_list_valid.txt: -------------------------------------------------------------------------------- 1 | 00CTJxpyprw 2 | 0DBj5FSjkRg 3 | 0fYCR0EHj-Q 4 | 0hRY04aIpYk 5 | 0LDAAXTmCnU 6 | 0mnM7u45swU 7 | 1-ex_Dnp9ro 8 | 1j1-9-CWPAk 9 | 1kdd6j_TRyc 10 | 1nGtM6Ty-1Q 11 | 1SyrbjVSvrM 12 | 1ZDkTAS8X0Y 13 | 21zdPWmgjVA 14 | 22eHwC_mAQ8 15 | 22pc3UAlY0I 16 | 2iARztWGHuY 17 | 2NEXH0g4o_E 18 | 2qUzmi0i1js 19 | 2rdEzso-i2E 20 | 2rMqKFlZE6Y 21 | 2u8JtvXVV4w 22 | 33IMEvKKQuU 23 | 3AVxxF-rScQ 24 | 3b11LgJpWSQ 25 | 3bKxwWLgXpw 26 | -3Br2RCzmEc 27 | -3eDlJwTxic 28 | 3K_bTYCrksU 29 | _3NBg84lsBw 30 | 3ZJrpq8iYSY 31 | 48hKIRBLzxE 32 | 4daCyyBcGu4 33 | 4guZy1pKuFc 34 | 4Ow6TDfqrPY 35 | 4ss0qcbvJ-Q 36 | 4WD_eTElodQ 37 | 4YWESLkVuok 38 | 4zkeFkMhBzE 39 | 4zrmpw6mDyk 40 | 5DLA_0MZ7Uc 41 | 5J53betZS-Q 42 | 5JeMqLyouSA 43 | 5W9mQeqE6wI 44 | 6KHotF6lHMw 45 | 6lwjd0buWE4 46 | 6UBb7AdS_gs 47 | 6Zn1JJOdbRg 48 | 72V0p_dPdyQ 49 | -77zWG4uJ4w 50 | 7F1Vwq1ccBs 51 | 7f5OFnrPWFQ 52 | 7IIKZlt92lk 53 | 7txx9TyJI2g 54 | 7U004tbbkEk 55 | 7Zz3LXzngu0 56 | 88v8HHeVBUY 57 | 8O2rB6dzSoI 58 | 8OZiDgaa_e8 59 | 8RouE5UkzM4 60 | 94FMydc3tS8 61 | 9ADCPQUmv8g 62 | 9gONVYT_wDA 63 | 9mIdCNEGQeQ 64 | 9OwTjqIQPhA 65 | 9Wl8GZ1M8yM 66 | 9-x6LUc1xko 67 | _A02uSAbYR8 68 | a5rfyy65Fqw 69 | a68VIMp_sfE 70 | A9BA4bYYzFw 71 | AaqaLv3j85I 72 | ablmgvFjhYQ 73 | aCln7epCQk4 74 | adFfSYM5J7M 75 | aeW37ZgbwYg 76 | AHcOy2NMimA 77 | aiIwkR7KEwU 78 | aJi4l5_oPXw 79 | AkCJmzkQ3t4 80 | AMU340JmYCk 81 | AoEuAenqUgU 82 | -A_ol17l90M 83 | APsrbiUlGEw 84 | As6IjNUkNcE 85 | aU8a_kQP4HM 86 | aYLopLmH1aI 87 | Az3vuwcsim8 88 | b5D5IWQFHcw 89 | b9by3lqDDkg 90 | BD_sZDzXDag 91 | bfTuSLFzh2M 92 | BItTHBScw6k 93 | bnQfs-3P96E 94 | BtI9HmhYHBI 95 | bUreNsvCKJk 96 | bXRRGAINgbI 97 | bY0xyUWnIH0 98 | Bzg4v2ub_1g 99 | BZ-WNxyPE-4 100 | c0F0Hw9rOsE 101 | c8gR218Q4Do 102 | cB1UOQTA-UE 103 | ccNEmd9z7jM 104 | Ccs0RtS6vZY 105 | cld-ykM-6eo 106 | clG4E50nnj4 107 | CMtU5LcSVZc 108 | cnEjRTRlVDI 109 | cPyxEsf41wU 110 | cq8p9nSxUGQ 111 | cRv-P0WPK6k 112 | CwCVx2IJgqw 113 | cZJhMUPPWnE 114 | CZYZyXZ2wWU 115 | D9OcmsC3pLk 116 | DAt2i8zyFHI 117 | dAvQ-ZRTUcw 118 | dcXLRMcGTM4 119 | DfFxmMPLTV0 120 | dGkxI6GeVjw 121 | DhTyJzx5hK0 122 | DI9mDs5lDFc 123 | d-J5gmpGFEA 124 | DLtfHNKvIoo 125 | DQDfm_1wfPk 126 | DsP0B_J1ut4 127 | DUxC4GZ6n04 128 | dvxjUqSIPpM 129 | DzKNGnuTdk4 130 | e7ZoClhVlyw 131 | E9jbX8G7T4g 132 | EbNQFzlDzrc 133 | egul9SDm4tw 134 | eLg5LOWGo08 135 | enAExqDOBGU 136 | EPJS3lOcUXY 137 | er91YK54LvE 138 | eTtq2sii-1s 139 | Ev30J3SHfOo 140 | eXkkf8BZLUQ 141 | FDm66P63tkY 142 | FEDeGQWAiSc 143 | _fjzc3Aa5Zk 144 | fn1JqW0aNMY 145 | fp60jpMoDT8 146 | FpSR2xUc-CI 147 | fqi0U1NlfwY 148 | FWHP_8rSSZo 149 | FXjlJyZ4zwo 150 | g1WTxjCjg3s 151 | g1_zOEyKltY 152 | g3kMo8SHMc8 153 | G4ilCPeFFpg 154 | G80Y_0cIAk4 155 | g8EDsVnviRM 156 | gd1ICzH6r8Y 157 | gd9Zh7SCaXs 158 | GDDYx5xab4g 159 | gEzlXZDgphs 160 | Gf9iidtSlrs 161 | Gfu31vB0dbI 162 | GleHeqXY4cY 163 | GmI1xfouY5Y 164 | GMkqdhRGkmI 165 | gM_nUQLK4rA 166 | gn-6pMBy2RM 167 | GpZK3WWu71I 168 | GtIIhprpCzA 169 | gWt3252npwk 170 | h1X8yzckidY 171 | _h6sBu3a0_k 172 | H7DxZ_arn7Q 173 | h7tmEkfs0OU 174 | H9nvtWReQfU 175 | Hann4529l7I 176 | Hciz_dBBlos 177 | HDTHkqDiO-s 178 | HFRo8ivT-h8 179 | hhI8wuFkhTk 180 | _hhOVQCGG10 181 | hSNr3Wk8CrM 182 | HSWZZ1XOlMs 183 | HsXP4Q-Ok7g 184 | HwZ_YYfZjk0 185 | hXYt7xteoes 186 | hxzfKsZWFhU 187 | hz1uC3BcGEc 188 | i03E4e8MGQM 189 | I1aoL8yu2R4 190 | I5ghOO4U-TU 191 | I5VOY-Y5vuc 192 | I9FPf-WAut0 193 | IdYrw79ubX8 194 | IEB_Ay8ipCI 195 | IG6VsR61P3A 196 | iJA7eey4pT4 197 | IjiLz5Vofq8 198 | ilPLZ5EZrA8 199 | ILQV4dctgWU 200 | InU6G1zp6oI 201 | inZNjGpXck4 202 | IpjG4YPjWyc 203 | IQvHxXVpWDI 204 | is2nhO0Qnp4 205 | ITIwmPig9KA 206 | IWF8zVx3ogs 207 | J22d-Z9OFOg 208 | J4-zFz2v214 209 | J6-girGi-HM 210 | j9Mrg_e0yZE 211 | JbrDvArSDEk 212 | JHVOwAC3VQw 213 | JIhHNoirtfI 214 | jkfW7CBk3og 215 | JKqY9oFVJrM 216 | Jmn6Hr6Y13s 217 | Jo_K4HgOwrk 218 | jruKwPpKIv0 219 | jSjpPFGyWJc 220 | JTHE6SNRW6Q 221 | JucU0or9l64 222 | JvSyyqHwHsI 223 | jWhpIedjIik 224 | jXMsXoLzxEI 225 | JXU_iAq3hMQ 226 | JZ1Ahg6dEEU 227 | k2dNMBA23_I 228 | k3fpRTZZ9Ck 229 | ka3RqjPZLSA 230 | KCFw00NDNTc 231 | kCZCYAThVpk 232 | KdkjkEb61EE 233 | KEWJml32sg0 234 | kGZaKGuPxFA 235 | kHgHzFj9GIc 236 | KjdFoJI3Bbw 237 | KMtt1W-7D4U 238 | kmYBQrbmZPM 239 | ksvPRTsMwo8 240 | _kyS6Mxa0xU 241 | L1auTLV-WQg 242 | L7EmZSBrw-E 243 | _L85oGa0Mfs 244 | LaLzUvs62Hg 245 | LaMNuyulA38 246 | LeU-WuUNwgc 247 | -LGfryVIqvo 248 | LKqpUJPLeAo 249 | lNzWZ0sfK9U 250 | lRUBJ6KKTk8 251 | lXCUJfUlEBI 252 | lyUhAUjw-pU 253 | LzQNP3eo7LE 254 | m_7EK5JtR0w 255 | M8olw6W7Hjs 256 | m8trsMvH2rU 257 | M9uemGZefkA 258 | maQ6AAXe72Y 259 | Md9jgyKpQ1g 260 | mht37BEB8lE 261 | MhWTtQDpcaU 262 | MjeUdKrUVF0 263 | MjqesIEZ4xE 264 | mlRACDTCr7I 265 | mRMgQcLhS6o 266 | MsdM_l3Rhqo 267 | MTtWNAbK7LI 268 | mYibQS67BGA 269 | n2h2B5sqowI 270 | n8DxPryyhL4 271 | n-arlr4bkBE 272 | NcgPoVdJRk4 273 | nfp46PSCpbA 274 | NOxoJPhj8Hk 275 | nU18tsqcOHk 276 | nv4xTdUEAHc 277 | nXr7dfEH8DE 278 | O5oImJ4_g0A 279 | o6my0RwSBek 280 | O6p1sw8-YLA 281 | ObySbaarOH8 282 | OgxYw4hP0eg 283 | oL7PUF4BZJs 284 | OS-AhOW93g8 285 | Ox-3bun1rVQ 286 | oX-9DXiTy6o 287 | OXcPST39CGU 288 | P01ztxEiCOg 289 | p1-d1Pq2mCw 290 | P1XgNLwcueU 291 | p2nJBEjuhc0 292 | P7Tou11Y9Jw 293 | PbmdI7oDVuU 294 | PdxmbuQ2-UA 295 | phh6-vNg2zM 296 | pHnBfovx0Iw 297 | pMis-mEWNSY 298 | pNuKAaC337U 299 | PqAFWcxR0iM 300 | PRwjOni0FaQ 301 | pS0jdzpM2yg 302 | PsO5S8mKj78 303 | psV8mHvpojQ 304 | PwxHjq0fugM 305 | Q4nn6AflK54 306 | Q5hDi9xnsHw 307 | q6HbgPshE8E 308 | Qbrm-BU1_ws 309 | _QDXe2ipMWo 310 | QffabD-ekbM 311 | qfq9xu7h6A0 312 | qGvnl31wQxs 313 | QickB0qUxCE 314 | QIE_oj-oRbA 315 | qji1QvKqZqM 316 | QkrS7bcbv8k 317 | qLVK_9w5z-g 318 | QMrVx7GTYeE 319 | qqLuRa3dw48 320 | Qs0R1IPx4NE 321 | QtAhQZ9h-lA 322 | qU1LOyZjWWM 323 | q_v9x7-dmMQ 324 | qyjTFNaL5oU 325 | QzgW0ATjeec 326 | r7X8Btx1NXM 327 | R8r0SH8Fmz8 328 | rb8ahNwQPYQ 329 | rBoUasQvMq8 330 | r_d8aozFXLk 331 | RD8dOTktXLE 332 | Rf_6jbc2iv4 333 | Rk-1lTvva4Y 334 | RKzpa-AQPWw 335 | ROIh3Yc0LGs 336 | ROKH3VgKNdU 337 | rT1LO8bJVAk 338 | rvgFKU2HUuo 339 | RWlR1nzkZ7Y 340 | s4OJnp4vS3Y 341 | SczqgrYCOYI 342 | SDjVswtgM9E 343 | sh7RPf7YuEE 344 | s-hG8S-Zy1M 345 | SIIhKaNh7Qg 346 | Sj0rbGxt5e0 347 | sJs6nPKgYH0 348 | sLFxOboImaA 349 | SrGMP9NiNzw 350 | stmyouxvxL4 351 | SZxC1ii9TyY 352 | tHCgGoJ4B6k 353 | THH1F_o4ysY 354 | tJf4msb1o2g 355 | TjNZXDjI1Gg 356 | tKTEBnmwTq4 357 | t-nrO6MVm40 358 | tYFYL27NX9U 359 | U5ajbgrN_W8 360 | UHpmVjNybRM 361 | UItgFP_f3GA 362 | UiwJOSE4c20 363 | -us5tIDg8qU 364 | UwNcn_n0lso 365 | V62bt7y49D8 366 | VapNytPs7_k 367 | VAp_zbH2mMo 368 | VDkWrnWGZYE 369 | VfatQIVZunU 370 | VhzOg40qGzU 371 | VjZNTRdeqNg 372 | Vo2NN_ibzdQ 373 | V-P0_73s7ts 374 | Vqnd3G41Bbo 375 | VrfEx1Oxt6I 376 | VRT7MTrsviU 377 | VrTZRlIgCmA 378 | W0ZmCKWx4-w 379 | WcMztkN0jJc 380 | Wdef048OSW0 381 | WdPcpofbjMw 382 | WJFP1hvkW0g 383 | WUNRbFxfSEM 384 | X4mzSBVXm00 385 | XdeTKyzpc6U 386 | XdyP8l3wjAA 387 | XeXDoID8gyg 388 | XKbvbFrwqzY 389 | XL_2by6CdSQ 390 | XS6juDVWKDg 391 | XsL5fw40-uY 392 | XuxDs8GIROo 393 | XwXY8AoifHg 394 | _yB7Q_2rGJo 395 | YcCYdLrOgvU 396 | -YMecl-Z3pg 397 | YQgufPXF31g 398 | YXFrqaJ6OvA 399 | YY3u7FoZGBQ 400 | Z7p1Qiq6SkM 401 | Ze8Em8GGFLU 402 | ZfR57o60fXU 403 | ZkeSVlWLJec 404 | Z-OJ0HIYD4U 405 | ZTQKbUWWed0 406 | ZWEn86X7E68 -------------------------------------------------------------------------------- /wsvd_loader.py: -------------------------------------------------------------------------------- 1 | # modified from https://github.com/MohsenFayyaz89/PyTorch_Video_Dataset/blob/master/GeneralVideoDataset.py 2 | 3 | from __future__ import print_function, division 4 | 5 | import os 6 | import pickle 7 | import cv2 8 | import numpy as np 9 | import torch 10 | from torch.utils.data import Dataset 11 | 12 | 13 | import requests 14 | from pprint import pprint 15 | 16 | 17 | class WSVD_Sequence_Generator: 18 | def __init__(self, root_dir='/scratch/takmaza/wsvd_sequences', extract_dir='/scratch-second/takmaza/wsvd_sequences', file_path='wsvd_list_valid.txt', 19 | train_clips_list='wsvd_train_clip_frame_ids.pkl', test_clips_list='wsvd_test_clip_frame_ids.pkl',video_root_dir = '/scratch/takmaza/wsvd/wsvd'): 20 | 21 | self.root_dir = root_dir 22 | self.extract_dir = extract_dir 23 | self.file_path = file_path 24 | self.train_clips_list = train_clips_list 25 | self.test_clips_list = test_clips_list 26 | self.video_root_dir = video_root_dir 27 | self.names_set = set() 28 | 29 | with open(self.file_path) as fp: 30 | for cnt, line in enumerate(fp): 31 | self.names_set.add(line.strip()) 32 | 33 | with open(self.train_clips_list, "rb") as fp: # Unpickling 34 | self.train_clips = pickle.load(fp) 35 | with open(self.test_clips_list, "rb") as fp: # Unpickling 36 | self.test_clips = pickle.load(fp) 37 | 38 | self.created_train = {} 39 | self.created_test = {} 40 | 41 | for ind in range(len(self.train_clips)): 42 | if self.train_clips[ind]['name'] in self.names_set: 43 | self.created_train[self.train_clips[ind]['name']] = self.train_clips[ind]['clips'] 44 | elif self.train_clips[ind]['name'][:-5] in self.names_set: 45 | self.created_train[self.train_clips[ind]['name'][:-5]] = self.train_clips[ind]['clips'] 46 | 47 | for ind in range(len(self.test_clips)): 48 | if self.test_clips[ind]['name'] in self.names_set: 49 | self.created_test[self.test_clips[ind]['name']] = self.test_clips[ind]['clips'] 50 | elif self.test_clips[ind]['name'][:-5] in self.names_set: 51 | self.created_test[self.test_clips[ind]['name'][:-5]] = self.test_clips[ind]['clips'] 52 | 53 | #print(self.created_train.keys()) 54 | #print(type(self.created_train['Z7p1Qiq6SkM'])) 55 | #print(len(self.created_train['Z7p1Qiq6SkM'])) 56 | #print(self.created_train['Z7p1Qiq6SkM']) 57 | self.extract_sequences() 58 | 59 | 60 | def create_folder(self, directory): 61 | if not os.path.isdir(directory): 62 | os.mkdir(directory) 63 | 64 | def extract_sequences(self): 65 | self.create_folder(self.extract_dir) 66 | train_dir = os.path.join(self.extract_dir, 'train') 67 | test_dir = os.path.join(self.extract_dir, 'test') 68 | 69 | self.create_folder(train_dir) 70 | self.create_folder(test_dir) 71 | 72 | 73 | print('Printing train sequences') 74 | name_flag=False 75 | for name in self.created_train.keys(): 76 | print(name) 77 | if name=='LeU-WuUNwgc': 78 | name_flag=True 79 | if name_flag: 80 | seq_root_dir = os.path.join(train_dir, name) 81 | #self.create_folder(seq_root_dir) 82 | video_file = os.path.join(self.video_root_dir,(name+'.mp4')) 83 | cap = cv2.VideoCapture(video_file) 84 | number_of_frames = cap.get(cv2.CAP_PROP_FRAME_COUNT) 85 | for seq_ind, seq_frames in enumerate(self.created_train[name]): 86 | #print(seq_ind) 87 | seq_dir = seq_root_dir + '_' + str(seq_ind) 88 | self.create_folder(seq_dir) 89 | for save_frame_ind, real_frame_ind in enumerate(list(seq_frames['frames'])): 90 | frame_save_path = os.path.join(seq_dir, str(save_frame_ind).zfill(5)+'.png') 91 | frame=self.retrieve_frame(cap,real_frame_ind) 92 | if frame == None: 93 | break 94 | cv2.imwrite(frame_save_path, frame) 95 | 96 | 97 | print('Printing test sequences') 98 | 99 | for name in self.created_test.keys(): 100 | print(name) 101 | seq_root_dir = os.path.join(test_dir, name) 102 | #self.create_folder(seq_root_dir) 103 | video_file = os.path.join(self.video_root_dir,(name+'.mp4')) 104 | cap = cv2.VideoCapture(video_file) 105 | number_of_frames = cap.get(cv2.CAP_PROP_FRAME_COUNT) 106 | for seq_ind, seq_frames in enumerate(self.created_test[name]): 107 | seq_dir = seq_root_dir + '_' + str(seq_ind) 108 | self.create_folder(seq_dir) 109 | for save_frame_ind, real_frame_ind in enumerate(list(seq_frames['frames'])): 110 | frame_save_path = os.path.join(seq_dir, str(save_frame_ind).zfill(5)+'.png') 111 | frame=self.retrieve_frame(cap,real_frame_ind) 112 | cv2.imwrite(frame_save_path, frame) 113 | 114 | 115 | def retrieve_frame(self, cap, frame_ind=0): 116 | # Open the video file 117 | cap.set(cv2.CAP_PROP_POS_FRAMES, frame_ind) 118 | ret, frame = cap.read() 119 | if frame == None: 120 | return None 121 | height, width, _ = frame.shape 122 | left = frame[:,0:int((width/2)),:] 123 | resized = cv2.resize(left, (0,0), fx=2, fy=1) 124 | return resized 125 | 126 | 127 | def read_video(self,video_file): 128 | # Open the video file 129 | cap = cv2.VideoCapture(video_file) 130 | print(video_file) 131 | failed_clip = False 132 | frames = [] 133 | for f in range(21000): 134 | ret, frame = cap.read() 135 | #print('shape: ', frame.shape) 136 | if ret: 137 | # HWC2CHW 138 | #frame = np.transpose(frame,(2, 0, 1)) 139 | if f==8500: 140 | #col_img = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB) 141 | col_img = frame 142 | height, width, _ = col_img.shape 143 | print(col_img.shape) 144 | left = col_img[:,0:int((width/2)),:] 145 | resized = cv2.resize(left, (0,0), fx=2, fy=1) 146 | cv2.imwrite('buraya.jpg', resized ) 147 | else: 148 | print(f) 149 | print("Skipped!") 150 | failed_clip = True 151 | break 152 | return np.asarray(frames), failed_clip 153 | 154 | new_generator = WSVD_Sequence_Generator() 155 | 156 | #vid_id = '-3Br2RCzmEc'#'-A_ol17l90M' 157 | #ext = '.mp4' 158 | #vid_path = os.path.join(video_root_dir,(vid_id+ext)) 159 | #frames,_ = read_video(vid_path) 160 | #print('read it!') 161 | 162 | -------------------------------------------------------------------------------- /wsvd_list_original.txt: -------------------------------------------------------------------------------- 1 | 00CTJxpyprw 2 | 0DBj5FSjkRg 3 | 0fYCR0EHj-Q 4 | 0hRY04aIpYk 5 | 0LDAAXTmCnU 6 | 0mnM7u45swU 7 | 0QfN1wsl0yQ.f137 8 | 0YCXCzx_RIo.f247 9 | 12-p8bp6Nck.f136 10 | 1-ex_Dnp9ro 11 | 1j1-9-CWPAk 12 | 1kdd6j_TRyc 13 | 1nGtM6Ty-1Q 14 | 1rJ3tqQuI2Y.f136 15 | 1SyrbjVSvrM 16 | 1ZDkTAS8X0Y 17 | 21zdPWmgjVA 18 | 22eHwC_mAQ8 19 | 22pc3UAlY0I 20 | 29G80xqwcAg.f137 21 | 2iARztWGHuY 22 | 2NEXH0g4o_E 23 | 2qUzmi0i1js 24 | 2rdEzso-i2E 25 | 2rMqKFlZE6Y 26 | 2ROaE99bJ38.f135 27 | 2u8JtvXVV4w 28 | 33IMEvKKQuU 29 | 36bxq7PdMUk 30 | 3AVxxF-rScQ 31 | 3b11LgJpWSQ 32 | 3bKxwWLgXpw 33 | -3Br2RCzmEc 34 | -3eDlJwTxic 35 | 3GAuSXlRyvM.f137 36 | 3gRiv5dKIdw.f136 37 | 3IQGAy7H_IE.f137 38 | 3K_bTYCrksU 39 | 3LgVJhpMK-Q 40 | _3NBg84lsBw 41 | 3ZJrpq8iYSY 42 | 48hKIRBLzxE 43 | 4daCyyBcGu4 44 | 4guZy1pKuFc 45 | 4nepTKRFwic.f136 46 | 4Ow6TDfqrPY 47 | 4ss0qcbvJ-Q 48 | 4WD_eTElodQ 49 | 4XdQUp2bsxg.f137 50 | 4YWESLkVuok 51 | 4zkeFkMhBzE 52 | 4zrmpw6mDyk 53 | 510OFrJVjbQ 54 | 5cjsIQBOsKg.f134 55 | 5DLA_0MZ7Uc 56 | 5J53betZS-Q 57 | 5JeMqLyouSA 58 | 5W9mQeqE6wI 59 | 5wKS97vkKMA.f137 60 | 5ywrj0GQucQ.f136 61 | 6COj9eD13ng.f137 62 | 6KHotF6lHMw 63 | 6lwjd0buWE4 64 | 6UBb7AdS_gs 65 | 6XoeMxSmLXc.f136 66 | 6Zn1JJOdbRg 67 | 72V0p_dPdyQ 68 | 76F4lBZQdv4.f136 69 | -77zWG4uJ4w 70 | 7F1Vwq1ccBs 71 | 7f5OFnrPWFQ 72 | 7IIKZlt92lk 73 | 7-p17CHB55s.f137 74 | 7txx9TyJI2g 75 | 7U004tbbkEk 76 | 7zMz2upnOQw.f136 77 | 7Zz3LXzngu0 78 | 88v8HHeVBUY 79 | 8CvW_9uX5o4.f137 80 | 8eScTB5rtLI.f136 81 | 8nIgLJsEKD8.f136 82 | 8O2rB6dzSoI 83 | 8OZiDgaa_e8 84 | 8RouE5UkzM4 85 | 8T0KmhAZiWQ.f298 86 | 94FMydc3tS8 87 | 9ADCPQUmv8g 88 | 9gONVYT_wDA 89 | 9IJxgU93p2E 90 | 9mIdCNEGQeQ 91 | 9OwTjqIQPhA 92 | 9Wl8GZ1M8yM 93 | 9-x6LUc1xko 94 | _A02uSAbYR8 95 | A1KoBhbTQb0.f136 96 | a5rfyy65Fqw 97 | a68VIMp_sfE 98 | A9BA4bYYzFw 99 | A9oFm4RcWcU 100 | AaqaLv3j85I 101 | ablmgvFjhYQ 102 | aCln7epCQk4 103 | adFfSYM5J7M 104 | aeW37ZgbwYg 105 | AHb8_ZXWdlQ.f136 106 | AHcOy2NMimA 107 | aiIwkR7KEwU 108 | aJi4l5_oPXw 109 | AkCJmzkQ3t4 110 | AkCJmzkQ3t4.f137 111 | aksIMeWGoHs.f137 112 | AMU340JmYCk 113 | AoEuAenqUgU 114 | -A_ol17l90M 115 | APsrbiUlGEw 116 | As6IjNUkNcE 117 | AsoN7klbL0E 118 | aU8a_kQP4HM 119 | aYLopLmH1aI 120 | Az3vuwcsim8 121 | b5D5IWQFHcw 122 | b9by3lqDDkg 123 | BD_sZDzXDag 124 | BEFmAWMylZQ.f137 125 | bfTuSLFzh2M 126 | -bHpj5jjKs8.f136 127 | BItTHBScw6k 128 | bnQfs-3P96E 129 | BtI9HmhYHBI 130 | bUreNsvCKJk 131 | bXRRGAINgbI 132 | bY0xyUWnIH0 133 | Bzg4v2ub_1g 134 | BZ-WNxyPE-4 135 | c0F0Hw9rOsE 136 | c8gR218Q4Do 137 | cB1UOQTA-UE 138 | ccNEmd9z7jM 139 | Ccs0RtS6vZY 140 | cld-ykM-6eo 141 | clG4E50nnj4 142 | CMtU5LcSVZc 143 | cnEjRTRlVDI 144 | cPyxEsf41wU 145 | cq8p9nSxUGQ 146 | cRv-P0WPK6k 147 | cVm-kmkXUns.f136 148 | CwCVx2IJgqw 149 | cWoXU9nMDRo.f137 150 | cZJhMUPPWnE 151 | CZYZyXZ2wWU 152 | D0gzCE0eEhY.f134 153 | D9OcmsC3pLk 154 | DAt2i8zyFHI 155 | dAvQ-ZRTUcw 156 | dcXLRMcGTM4 157 | DfFxmMPLTV0 158 | dGkxI6GeVjw 159 | DhTyJzx5hK0 160 | DI9mDs5lDFc 161 | d-J5gmpGFEA 162 | DLtfHNKvIoo 163 | d-o_jtXYSww 164 | DQDfm_1wfPk 165 | DsP0B_J1ut4 166 | DTALiU3LaHg.f264 167 | DUxC4GZ6n04 168 | dvxjUqSIPpM 169 | DzKNGnuTdk4 170 | e7ZoClhVlyw 171 | E9jbX8G7T4g 172 | EaW2C9BVZRQ.f136 173 | -EB1Qf8oh_w 174 | -EB1Qf8oh_w.f264 175 | EbNQFzlDzrc 176 | eE9La6Kj9q0.f136 177 | egul9SDm4tw 178 | eLg5LOWGo08 179 | eM3tqdU44uo.f136 180 | enAExqDOBGU 181 | EPJS3lOcUXY 182 | er91YK54LvE 183 | etKwF_xQHa4 184 | eTtq2sii-1s 185 | Ev30J3SHfOo 186 | evAhdaPCpYg.f299 187 | eXkkf8BZLUQ 188 | FCovW6KGibo.f137 189 | FDm66P63tkY 190 | FEDeGQWAiSc 191 | feqPX_ZpniE.f137 192 | fjTpY5ZanGE.f264 193 | _fjzc3Aa5Zk 194 | fmlKkc0J9Jg.f137 195 | fn1JqW0aNMY 196 | fp60jpMoDT8 197 | FpSR2xUc-CI 198 | fqi0U1NlfwY 199 | FTqsPJteJU4.f136 200 | FWHP_8rSSZo 201 | fWKLuiiKpoI.f136 202 | FXjlJyZ4zwo 203 | FXjlJyZ4zwo.f137 204 | g1WTxjCjg3s 205 | g1_zOEyKltY 206 | G3A05VCaPzE.f136 207 | g3kMo8SHMc8 208 | g3Ub5UAEj24.f135 209 | G4ilCPeFFpg 210 | G80Y_0cIAk4 211 | g8EDsVnviRM 212 | gd1ICzH6r8Y 213 | gd9Zh7SCaXs 214 | GDDYx5xab4g 215 | gEzlXZDgphs 216 | Gf9iidtSlrs 217 | Gfu31vB0dbI 218 | GInFgTKcq8k.f137 219 | git_9TDi5MU.f136 220 | GjJQVX-g78c.f136 221 | gkOVrYNWHlg.f137 222 | GleHeqXY4cY 223 | GmI1xfouY5Y 224 | GMkqdhRGkmI 225 | gM_nUQLK4rA 226 | gn-6pMBy2RM 227 | GpZK3WWu71I 228 | GtIIhprpCzA 229 | gWt3252npwk 230 | g-wUgteoC4A.f136 231 | gYwT8Nyw7O8.f137 232 | h1X8yzckidY 233 | _h6sBu3a0_k 234 | H7DxZ_arn7Q 235 | h7tmEkfs0OU 236 | H9nvtWReQfU 237 | Hann4529l7I 238 | hau6A7j-z4M.f137 239 | Hciz_dBBlos 240 | HDTHkqDiO-s 241 | HFRo8ivT-h8 242 | hhI8wuFkhTk 243 | _hhOVQCGG10 244 | HnhZj-ZBSFU.f136 245 | HpORPo3GP7k.f134 246 | HqHzc32xfU8.f248 247 | hSNr3Wk8CrM 248 | HSWZZ1XOlMs 249 | HsXP4Q-Ok7g 250 | hTmhfbIpHcw.f136 251 | HwZ_YYfZjk0 252 | hXYt7xteoes 253 | hxzfKsZWFhU 254 | hz1uC3BcGEc 255 | HzEo7fBHZ1k.f136 256 | i03E4e8MGQM 257 | I1aoL8yu2R4 258 | I5ghOO4U-TU 259 | I5VOY-Y5vuc 260 | I9FPf-WAut0 261 | i9pLQgYBHhk.f137 262 | IdYrw79ubX8 263 | IEB_Ay8ipCI 264 | IG6VsR61P3A 265 | iJA7eey4pT4 266 | IjiLz5Vofq8 267 | ilPLZ5EZrA8 268 | ILQV4dctgWU 269 | ImPceq3XyQQ.f264 270 | InU6G1zp6oI 271 | inZNjGpXck4 272 | IpjG4YPjWyc 273 | IQvHxXVpWDI 274 | is2nhO0Qnp4 275 | ITIwmPig9KA 276 | IWF8zVx3ogs 277 | IwMTfCndrJ4.f137 278 | J22d-Z9OFOg 279 | J4-zFz2v214 280 | J6-girGi-HM 281 | J7LkFpbVcUA.f137 282 | j9Mrg_e0yZE 283 | JbrDvArSDEk 284 | JHVOwAC3VQw 285 | JIhHNoirtfI 286 | JK74Qv9kQgU.f137 287 | jkfW7CBk3og 288 | JKqY9oFVJrM 289 | Jmn6Hr6Y13s 290 | Jo_K4HgOwrk 291 | jruKwPpKIv0 292 | jSjpPFGyWJc 293 | jtCdgE5tvI8 294 | JTHE6SNRW6Q 295 | JTKJKkYAbrU.f136 296 | JucU0or9l64 297 | JvSyyqHwHsI 298 | jWhpIedjIik 299 | jXMsXoLzxEI 300 | JXU_iAq3hMQ 301 | JZ1Ahg6dEEU 302 | k0ZjC_T160U.f137 303 | k2dNMBA23_I 304 | k3fpRTZZ9Ck 305 | K-4z1C6RAxE.f136 306 | ka3RqjPZLSA 307 | KCFw00NDNTc 308 | kCZCYAThVpk 309 | KdkjkEb61EE 310 | kDQFxWa0Yj0.f136 311 | KEWJml32sg0 312 | kGZaKGuPxFA 313 | kHgHzFj9GIc 314 | KjdFoJI3Bbw 315 | KMtt1W-7D4U 316 | kmYBQrbmZPM 317 | KOtQBLBAcHI.f136 318 | ksvPRTsMwo8 319 | _kyS6Mxa0xU 320 | L1auTLV-WQg 321 | _l75iYO96jk.f136 322 | L7EmZSBrw-E 323 | _L85oGa0Mfs 324 | l8Y8c4IMH7M.f137 325 | LaLzUvs62Hg 326 | LaMNuyulA38 327 | lBY91KdzO14.f137 328 | LeU-WuUNwgc 329 | -LGfryVIqvo 330 | LKqpUJPLeAo 331 | LmF_cREvAq8.f137 332 | lNzWZ0sfK9U 333 | lRUBJ6KKTk8 334 | lXCUJfUlEBI 335 | lyUhAUjw-pU 336 | LzQNP3eo7LE 337 | M00mE5KtzF0.f137 338 | M2cmtzyYIbc.f299 339 | m_7EK5JtR0w 340 | M8olw6W7Hjs 341 | m8trsMvH2rU 342 | M9uemGZefkA 343 | makeV2QjiwI.f264 344 | maQ6AAXe72Y 345 | Md9jgyKpQ1g 346 | MDf9A9Z_l3s.f136 347 | MED3Vh7UJ1Q.f313 348 | MfkBpjwyif0.f137 349 | mht37BEB8lE 350 | MhuGq6b1s8Q.f136 351 | MhWTtQDpcaU 352 | MjeUdKrUVF0 353 | MjqesIEZ4xE 354 | mKWHstsrroA.f136 355 | mLMv3Kom2Zs.f134 356 | mlRACDTCr7I 357 | Mm_-ILBhSvU.f137 358 | mRMgQcLhS6o 359 | MsdM_l3Rhqo 360 | MTtWNAbK7LI 361 | mYibQS67BGA 362 | n2h2B5sqowI 363 | n3z_dTgarWM.f134 364 | N5dEDvjh18Y.f136 365 | n8DxPryyhL4 366 | n-arlr4bkBE 367 | NcgPoVdJRk4 368 | neKuM2cL_BI.f137 369 | nfp46PSCpbA 370 | NOxoJPhj8Hk 371 | NPhkXsEcrZ8.f264 372 | nU18tsqcOHk 373 | nv4xTdUEAHc 374 | nXr7dfEH8DE 375 | o372ib71ne8.f137 376 | O5oImJ4_g0A 377 | o6my0RwSBek 378 | O6p1sw8-YLA 379 | ObySbaarOH8 380 | oG9sXk6lSQ0.f137 381 | OgxYw4hP0eg 382 | Oi2RvrCWcaI.f136 383 | oL7PUF4BZJs 384 | oLPZWZLOzTI.f136 385 | oLZdOl33XlA.f136 386 | OMIcx3kAQ7M.f248 387 | omiQKcAnk1w.f136 388 | OpkoXIuC8Iw.f136 389 | oQ9HQhsqJmE.f136 390 | OS-AhOW93g8 391 | oWD6ZztAzhY.f136 392 | Ox-3bun1rVQ 393 | oX-9DXiTy6o 394 | OXcPST39CGU 395 | P01ztxEiCOg 396 | p1-d1Pq2mCw 397 | P1XgNLwcueU 398 | p2nJBEjuhc0 399 | p3ye79Qu61M.f137 400 | P7Tou11Y9Jw 401 | PbmdI7oDVuU 402 | PdxmbuQ2-UA 403 | phh6-vNg2zM 404 | pHnBfovx0Iw 405 | PKEv61TvZFE.f136 406 | PlPp547S7hU.f136 407 | pmF7tFC65I8.f137 408 | pMis-mEWNSY 409 | pmpbXkHImMg.f136 410 | pNuKAaC337U 411 | PqAFWcxR0iM 412 | PRwjOni0FaQ 413 | pS0jdzpM2yg 414 | PsO5S8mKj78 415 | psV8mHvpojQ 416 | psV8mHvpojQ.f136 417 | PwxHjq0fugM 418 | Q4nn6AflK54 419 | Q5hDi9xnsHw 420 | q6HbgPshE8E 421 | Qbrm-BU1_ws 422 | _QDXe2ipMWo 423 | QffabD-ekbM 424 | qfq9xu7h6A0 425 | qGvnl31wQxs 426 | QickB0qUxCE 427 | QIE_oj-oRbA 428 | qji1QvKqZqM 429 | qkMamj5S-Y0.f136 430 | QkrS7bcbv8k 431 | qLVK_9w5z-g 432 | QMrVx7GTYeE 433 | qOsG2VhkYck.f136 434 | qqLuRa3dw48 435 | qqLuRa3dw48.f137 436 | Qs0R1IPx4NE 437 | QtAhQZ9h-lA 438 | qU1LOyZjWWM 439 | q_v9x7-dmMQ 440 | qyjTFNaL5oU 441 | QzgW0ATjeec 442 | r7X8Btx1NXM 443 | R8r0SH8Fmz8 444 | rb8ahNwQPYQ 445 | rBoUasQvMq8 446 | r_d8aozFXLk 447 | RD8dOTktXLE 448 | rEAbbC_7EUA.f264 449 | Rf_6jbc2iv4 450 | Rk-1lTvva4Y 451 | RKzpa-AQPWw 452 | ROIh3Yc0LGs 453 | ROKH3VgKNdU 454 | RR4_OyR2kjw.f135 455 | rT1LO8bJVAk 456 | rvgFKU2HUuo 457 | RWlR1nzkZ7Y 458 | s4OJnp4vS3Y 459 | SczqgrYCOYI 460 | SDjVswtgM9E 461 | sh7RPf7YuEE 462 | s-hG8S-Zy1M 463 | SIIhKaNh7Qg 464 | Sj0rbGxt5e0 465 | sJs6nPKgYH0 466 | sLFxOboImaA 467 | SOnJKfDglBs.f136 468 | SpnZa8RTXSQ.f136 469 | sQcUH4myqvU.f136 470 | SrGMP9NiNzw 471 | srYaK-EfIAE.f136 472 | stmyouxvxL4 473 | SZxC1ii9TyY 474 | tbB6wOBBZoc.f136 475 | TDbY38XoDSM.f136 476 | tHCgGoJ4B6k 477 | THH1F_o4ysY 478 | tJf4msb1o2g 479 | TjNZXDjI1Gg 480 | tKTEBnmwTq4 481 | t-nrO6MVm40 482 | tYFYL27NX9U 483 | U5ajbgrN_W8 484 | U8UKPEQ2IxM.f136 485 | UHpmVjNybRM 486 | UItgFP_f3GA 487 | UiwJOSE4c20 488 | -UjsYLGwV54.f136 489 | UKpa--dwdAc.f136 490 | UMpAkXdcjqc.f137 491 | UQ8Fghg8DaY.f136 492 | -us5tIDg8qU 493 | USK9Fj_JypA 494 | UwNcn_n0lso 495 | UY8_SV2HGtE.f137 496 | V62bt7y49D8 497 | v8hMgl_Sw_Y.f136 498 | VapNytPs7_k 499 | VAp_zbH2mMo 500 | VDkWrnWGZYE 501 | VfatQIVZunU 502 | VhzOg40qGzU 503 | VjZNTRdeqNg 504 | Vo2NN_ibzdQ 505 | V-P0_73s7ts 506 | Vqnd3G41Bbo 507 | VrfEx1Oxt6I 508 | VRT7MTrsviU 509 | VrTZRlIgCmA 510 | W0ZmCKWx4-w 511 | WBHtqUuokCA 512 | Wcb4AjMr_iI.f136 513 | WcMztkN0jJc 514 | Wdef048OSW0 515 | WdPcpofbjMw 516 | WJFP1hvkW0g 517 | WUNRbFxfSEM 518 | WWWNnWhHSEM.f137 519 | X4mzSBVXm00 520 | X9KtwWAIPAA.f137 521 | XcTuZmqaqGg.f136 522 | XdeTKyzpc6U 523 | XdyP8l3wjAA 524 | XeXDoID8gyg 525 | xHKATwy-Z8E.f137 526 | XKbvbFrwqzY 527 | XL_2by6CdSQ 528 | XS6juDVWKDg 529 | XsL5fw40-uY 530 | XuxDs8GIROo 531 | XwXY8AoifHg 532 | _yB7Q_2rGJo 533 | YcCYdLrOgvU 534 | YCLFCLAqHxE.f137 535 | -YMecl-Z3pg 536 | yMOlynM8MXs.f137 537 | Yo1GNdhedFk.f136 538 | YQgufPXF31g 539 | yt3d_list.txt 540 | yujzBVpDTPU.f136 541 | YXFrqaJ6OvA 542 | YY3u7FoZGBQ 543 | Z7p1Qiq6SkM 544 | Ze8Em8GGFLU 545 | ZfR57o60fXU 546 | ziT_7eq-N-Y.f136 547 | zJVvAx_dPC4.f136 548 | ZkeSVlWLJec 549 | Z-OJ0HIYD4U 550 | ZpdxcBOD5p4.f136 551 | ZTQKbUWWed0 552 | Zvnp01m4SJM.f137 553 | ZWEn86X7E68 554 | --------------------------------------------------------------------------------