├── 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 |
--------------------------------------------------------------------------------