]>
Commit | Line | Data |
---|---|---|
1 | import functools | |
2 | import re | |
3 | ||
4 | from .common import InfoExtractor | |
5 | from ..compat import compat_str | |
6 | from ..utils import ( | |
7 | format_field, | |
8 | int_or_none, | |
9 | parse_resolution, | |
10 | str_or_none, | |
11 | try_get, | |
12 | unified_timestamp, | |
13 | url_or_none, | |
14 | urljoin, | |
15 | OnDemandPagedList, | |
16 | ) | |
17 | ||
18 | ||
19 | class PeerTubeIE(InfoExtractor): | |
20 | _INSTANCES_RE = r'''(?: | |
21 | # Taken from https://instances.joinpeertube.org/instances | |
22 | 0ch\.tv| | |
23 | 3dctube\.3dcandy\.social| | |
24 | all\.electric\.kitchen| | |
25 | alterscope\.fr| | |
26 | anarchy\.tube| | |
27 | apathy\.tv| | |
28 | apertatube\.net| | |
29 | archive\.nocopyrightintended\.tv| | |
30 | archive\.reclaim\.tv| | |
31 | area51\.media| | |
32 | astrotube-ufe\.obspm\.fr| | |
33 | astrotube\.obspm\.fr| | |
34 | audio\.freediverse\.com| | |
35 | azxtube\.youssefc\.tn| | |
36 | bark\.video| | |
37 | battlepenguin\.video| | |
38 | bava\.tv| | |
39 | bee-tube\.fr| | |
40 | beetoons\.tv| | |
41 | biblion\.refchat\.net| | |
42 | biblioteca\.theowlclub\.net| | |
43 | bideoak\.argia\.eus| | |
44 | bideoteka\.eus| | |
45 | birdtu\.be| | |
46 | bitcointv\.com| | |
47 | bonn\.video| | |
48 | breeze\.tube| | |
49 | brioco\.live| | |
50 | brocosoup\.fr| | |
51 | canal\.facil\.services| | |
52 | canard\.tube| | |
53 | cdn01\.tilvids\.com| | |
54 | celluloid-media\.huma-num\.fr| | |
55 | chicago1\.peertube\.support| | |
56 | cliptube\.org| | |
57 | cloudtube\.ise\.fraunhofer\.de| | |
58 | comf\.tube| | |
59 | comics\.peertube\.biz| | |
60 | commons\.tube| | |
61 | communitymedia\.video| | |
62 | conspiracydistillery\.com| | |
63 | crank\.recoil\.org| | |
64 | dalek\.zone| | |
65 | dalliance\.network| | |
66 | dangly\.parts| | |
67 | darkvapor\.nohost\.me| | |
68 | daschauher\.aksel\.rocks| | |
69 | digitalcourage\.video| | |
70 | displayeurope\.video| | |
71 | ds106\.tv| | |
72 | dud-video\.inf\.tu-dresden\.de| | |
73 | dud175\.inf\.tu-dresden\.de| | |
74 | dytube\.com| | |
75 | ebildungslabor\.video| | |
76 | evangelisch\.video| | |
77 | fair\.tube| | |
78 | fedi\.video| | |
79 | fedimovie\.com| | |
80 | fediverse\.tv| | |
81 | film\.k-prod\.fr| | |
82 | flipboard\.video| | |
83 | foss\.video| | |
84 | fossfarmers\.company| | |
85 | fotogramas\.politicaconciencia\.org| | |
86 | freediverse\.com| | |
87 | freesoto-u2151\.vm\.elestio\.app| | |
88 | freesoto\.tv| | |
89 | garr\.tv| | |
90 | greatview\.video| | |
91 | grypstube\.uni-greifswald\.de| | |
92 | habratube\.site| | |
93 | ilbjach\.ru| | |
94 | infothema\.net| | |
95 | itvplus\.iiens\.net| | |
96 | johnydeep\.net| | |
97 | juggling\.digital| | |
98 | jupiter\.tube| | |
99 | kadras\.live| | |
100 | kino\.kompot\.si| | |
101 | kino\.schuerz\.at| | |
102 | kinowolnosc\.pl| | |
103 | kirche\.peertube-host\.de| | |
104 | kiwi\.froggirl\.club| | |
105 | kodcast\.com| | |
106 | kolektiva\.media| | |
107 | kpop\.22x22\.ru| | |
108 | kumi\.tube| | |
109 | la2\.peertube\.support| | |
110 | la3\.peertube\.support| | |
111 | la4\.peertube\.support| | |
112 | lastbreach\.tv| | |
113 | lawsplaining\.peertube\.biz| | |
114 | leopard\.tube| | |
115 | live\.codinglab\.ch| | |
116 | live\.libratoi\.org| | |
117 | live\.oldskool\.fi| | |
118 | live\.solari\.com| | |
119 | lucarne\.balsamine\.be| | |
120 | luxtube\.lu| | |
121 | makertube\.net| | |
122 | media\.econoalchemist\.com| | |
123 | media\.exo\.cat| | |
124 | media\.fsfe\.org| | |
125 | media\.gzevd\.de| | |
126 | media\.interior\.edu\.uy| | |
127 | media\.krashboyz\.org| | |
128 | media\.mzhd\.de| | |
129 | media\.smz-ma\.de| | |
130 | media\.theplattform\.net| | |
131 | media\.undeadnetwork\.de| | |
132 | medias\.debrouillonet\.org| | |
133 | medias\.pingbase\.net| | |
134 | mediatube\.fermalo\.fr| | |
135 | melsungen\.peertube-host\.de| | |
136 | merci-la-police\.fr| | |
137 | mindlyvideos\.com| | |
138 | mirror\.peertube\.metalbanana\.net| | |
139 | mirrored\.rocks| | |
140 | mix\.video| | |
141 | mountaintown\.video| | |
142 | movies\.metricsmaster\.eu| | |
143 | mtube\.mooo\.com| | |
144 | mytube\.kn-cloud\.de| | |
145 | mytube\.le5emeaxe\.fr| | |
146 | mytube\.madzel\.de| | |
147 | nadajemy\.com| | |
148 | nanawel-peertube\.dyndns\.org| | |
149 | neat\.tube| | |
150 | nethack\.tv| | |
151 | nicecrew\.tv| | |
152 | nightshift\.minnix\.dev| | |
153 | nolog\.media| | |
154 | nyltube\.nylarea\.com| | |
155 | ocfedtest\.hosted\.spacebear\.ee| | |
156 | openmedia\.edunova\.it| | |
157 | p2ptv\.ru| | |
158 | p\.eertu\.be| | |
159 | p\.lu| | |
160 | pastafriday\.club| | |
161 | patriottube\.sonsofliberty\.red| | |
162 | pcbu\.nl| | |
163 | peer\.azurs\.fr| | |
164 | peer\.d0g4\.me| | |
165 | peer\.lukeog\.com| | |
166 | peer\.madiator\.cloud| | |
167 | peer\.raise-uav\.com| | |
168 | peershare\.togart\.de| | |
169 | peertube-blablalinux\.be| | |
170 | peertube-demo\.learning-hub\.fr| | |
171 | peertube-docker\.cpy\.re| | |
172 | peertube-eu\.howlround\.com| | |
173 | peertube-u5014\.vm\.elestio\.app| | |
174 | peertube-us\.howlround\.com| | |
175 | peertube\.020\.pl| | |
176 | peertube\.0x5e\.eu| | |
177 | peertube\.1984\.cz| | |
178 | peertube\.2i2l\.net| | |
179 | peertube\.adjutor\.xyz| | |
180 | peertube\.adresse\.data\.gouv\.fr| | |
181 | peertube\.alpharius\.io| | |
182 | peertube\.am-networks\.fr| | |
183 | peertube\.anduin\.net| | |
184 | peertube\.anti-logic\.com| | |
185 | peertube\.arch-linux\.cz| | |
186 | peertube\.art3mis\.de| | |
187 | peertube\.artsrn\.ualberta\.ca| | |
188 | peertube\.askan\.info| | |
189 | peertube\.astral0pitek\.synology\.me| | |
190 | peertube\.atsuchan\.page| | |
191 | peertube\.automat\.click| | |
192 | peertube\.b38\.rural-it\.org| | |
193 | peertube\.be| | |
194 | peertube\.beeldengeluid\.nl| | |
195 | peertube\.bgzashtita\.es| | |
196 | peertube\.bike| | |
197 | peertube\.bildung-ekhn\.de| | |
198 | peertube\.biz| | |
199 | peertube\.br0\.fr| | |
200 | peertube\.bridaahost\.ynh\.fr| | |
201 | peertube\.bubbletea\.dev| | |
202 | peertube\.bubuit\.net| | |
203 | peertube\.cabaal\.net| | |
204 | peertube\.chatinbit\.com| | |
205 | peertube\.chaunchy\.com| | |
206 | peertube\.chir\.rs| | |
207 | peertube\.christianpacaud\.com| | |
208 | peertube\.chtisurel\.net| | |
209 | peertube\.chuggybumba\.com| | |
210 | peertube\.cipherbliss\.com| | |
211 | peertube\.cirkau\.art| | |
212 | peertube\.cloud\.nerdraum\.de| | |
213 | peertube\.cloud\.sans\.pub| | |
214 | peertube\.coko\.foundation| | |
215 | peertube\.communecter\.org| | |
216 | peertube\.concordia\.social| | |
217 | peertube\.corrigan\.xyz| | |
218 | peertube\.cpge-brizeux\.fr| | |
219 | peertube\.ctseuro\.com| | |
220 | peertube\.cuatrolibertades\.org| | |
221 | peertube\.cube4fun\.net| | |
222 | peertube\.dair-institute\.org| | |
223 | peertube\.davigge\.com| | |
224 | peertube\.dc\.pini\.fr| | |
225 | peertube\.deadtom\.me| | |
226 | peertube\.debian\.social| | |
227 | peertube\.delta0189\.xyz| | |
228 | peertube\.demonix\.fr| | |
229 | peertube\.designersethiques\.org| | |
230 | peertube\.desmu\.fr| | |
231 | peertube\.devol\.it| | |
232 | peertube\.dk| | |
233 | peertube\.doesstuff\.social| | |
234 | peertube\.eb8\.org| | |
235 | peertube\.education-forum\.com| | |
236 | peertube\.elforcer\.ru| | |
237 | peertube\.em\.id\.lv| | |
238 | peertube\.ethibox\.fr| | |
239 | peertube\.eu\.org| | |
240 | peertube\.european-pirates\.eu| | |
241 | peertube\.eus| | |
242 | peertube\.euskarabildua\.eus| | |
243 | peertube\.expi\.studio| | |
244 | peertube\.familie-berner\.de| | |
245 | peertube\.familleboisteau\.fr| | |
246 | peertube\.fedihost\.website| | |
247 | peertube\.fenarinarsa\.com| | |
248 | peertube\.festnoz\.de| | |
249 | peertube\.forteza\.fr| | |
250 | peertube\.freestorm\.online| | |
251 | peertube\.functional\.cafe| | |
252 | peertube\.gaminglinux\.fr| | |
253 | peertube\.gargantia\.fr| | |
254 | peertube\.geekgalaxy\.fr| | |
255 | peertube\.gemlog\.ca| | |
256 | peertube\.genma\.fr| | |
257 | peertube\.get-racing\.de| | |
258 | peertube\.ghis94\.ovh| | |
259 | peertube\.gidikroon\.eu| | |
260 | peertube\.giftedmc\.com| | |
261 | peertube\.grosist\.fr| | |
262 | peertube\.gruntwerk\.org| | |
263 | peertube\.gsugambit\.com| | |
264 | peertube\.hackerfoo\.com| | |
265 | peertube\.hellsite\.net| | |
266 | peertube\.helvetet\.eu| | |
267 | peertube\.histoirescrepues\.fr| | |
268 | peertube\.home\.x0r\.fr| | |
269 | peertube\.hyperfreedom\.org| | |
270 | peertube\.ichigo\.everydayimshuflin\.com| | |
271 | peertube\.ifwo\.eu| | |
272 | peertube\.in\.ua| | |
273 | peertube\.inapurna\.org| | |
274 | peertube\.informaction\.info| | |
275 | peertube\.interhop\.org| | |
276 | peertube\.it| | |
277 | peertube\.it-arts\.net| | |
278 | peertube\.jensdiemer\.de| | |
279 | peertube\.johntheserg\.al| | |
280 | peertube\.kaleidos\.net| | |
281 | peertube\.kalua\.im| | |
282 | peertube\.kcore\.org| | |
283 | peertube\.keazilla\.net| | |
284 | peertube\.klaewyss\.fr| | |
285 | peertube\.kleph\.eu| | |
286 | peertube\.kodein\.be| | |
287 | peertube\.kooperatywa\.tech| | |
288 | peertube\.kriom\.net| | |
289 | peertube\.kx\.studio| | |
290 | peertube\.kyriog\.eu| | |
291 | peertube\.la-famille-muller\.fr| | |
292 | peertube\.labeuropereunion\.eu| | |
293 | peertube\.lagvoid\.com| | |
294 | peertube\.lhc\.net\.br| | |
295 | peertube\.libresolutions\.network| | |
296 | peertube\.libretic\.fr| | |
297 | peertube\.librosphere\.fr| | |
298 | peertube\.logilab\.fr| | |
299 | peertube\.lon\.tv| | |
300 | peertube\.louisematic\.site| | |
301 | peertube\.luckow\.org| | |
302 | peertube\.luga\.at| | |
303 | peertube\.lyceeconnecte\.fr| | |
304 | peertube\.madixam\.xyz| | |
305 | peertube\.magicstone\.dev| | |
306 | peertube\.marienschule\.de| | |
307 | peertube\.marud\.fr| | |
308 | peertube\.maxweiss\.io| | |
309 | peertube\.miguelcr\.me| | |
310 | peertube\.mikemestnik\.net| | |
311 | peertube\.mobilsicher\.de| | |
312 | peertube\.monlycee\.net| | |
313 | peertube\.mxinfo\.fr| | |
314 | peertube\.naln1\.ca| | |
315 | peertube\.netzbegruenung\.de| | |
316 | peertube\.nicolastissot\.fr| | |
317 | peertube\.nogafam\.fr| | |
318 | peertube\.normalgamingcommunity\.cz| | |
319 | peertube\.nz| | |
320 | peertube\.offerman\.com| | |
321 | peertube\.ohioskates\.com| | |
322 | peertube\.onionstorm\.net| | |
323 | peertube\.opencloud\.lu| | |
324 | peertube\.otakufarms\.com| | |
325 | peertube\.paladyn\.org| | |
326 | peertube\.pix-n-chill\.fr| | |
327 | peertube\.r2\.enst\.fr| | |
328 | peertube\.r5c3\.fr| | |
329 | peertube\.redpill-insight\.com| | |
330 | peertube\.researchinstitute\.at| | |
331 | peertube\.revelin\.fr| | |
332 | peertube\.rlp\.schule| | |
333 | peertube\.rokugan\.fr| | |
334 | peertube\.rougevertbleu\.tv| | |
335 | peertube\.roundpond\.net| | |
336 | peertube\.rural-it\.org| | |
337 | peertube\.satoshishop\.de| | |
338 | peertube\.scyldings\.com| | |
339 | peertube\.securitymadein\.lu| | |
340 | peertube\.semperpax\.com| | |
341 | peertube\.semweb\.pro| | |
342 | peertube\.sensin\.eu| | |
343 | peertube\.sidh\.bzh| | |
344 | peertube\.skorpil\.cz| | |
345 | peertube\.smertrios\.com| | |
346 | peertube\.sqweeb\.net| | |
347 | peertube\.stattzeitung\.org| | |
348 | peertube\.stream| | |
349 | peertube\.su| | |
350 | peertube\.swrs\.net| | |
351 | peertube\.takeko\.cyou| | |
352 | peertube\.taxinachtegel\.de| | |
353 | peertube\.teftera\.com| | |
354 | peertube\.teutronic-services\.de| | |
355 | peertube\.ti-fr\.com| | |
356 | peertube\.tiennot\.net| | |
357 | peertube\.tmp\.rcp\.tf| | |
358 | peertube\.tspu\.edu\.ru| | |
359 | peertube\.tv| | |
360 | peertube\.tweb\.tv| | |
361 | peertube\.underworld\.fr| | |
362 | peertube\.vapronva\.pw| | |
363 | peertube\.veen\.world| | |
364 | peertube\.vesdia\.eu| | |
365 | peertube\.virtual-assembly\.org| | |
366 | peertube\.viviers-fibre\.net| | |
367 | peertube\.vlaki\.cz| | |
368 | peertube\.wiesbaden\.social| | |
369 | peertube\.wivodaim\.net| | |
370 | peertube\.wtf| | |
371 | peertube\.wtfayla\.net| | |
372 | peertube\.xrcb\.cat| | |
373 | peertube\.xwiki\.com| | |
374 | peertube\.zd\.do| | |
375 | peertube\.zetamc\.net| | |
376 | peertube\.zmuuf\.org| | |
377 | peertube\.zoz-serv\.org| | |
378 | peertube\.zwindler\.fr| | |
379 | peervideo\.ru| | |
380 | periscope\.numenaute\.org| | |
381 | pete\.warpnine\.de| | |
382 | petitlutinartube\.fr| | |
383 | phijkchu\.com| | |
384 | phoenixproject\.group| | |
385 | piraten\.space| | |
386 | pirtube\.calut\.fr| | |
387 | pityu\.flaki\.hu| | |
388 | play\.mittdata\.se| | |
389 | player\.ojamajo\.moe| | |
390 | podlibre\.video| | |
391 | portal\.digilab\.nfa\.cz| | |
392 | private\.fedimovie\.com| | |
393 | pt01\.lehrerfortbildung-bw\.de| | |
394 | pt\.diaspodon\.fr| | |
395 | pt\.freedomwolf\.cc| | |
396 | pt\.gordons\.gen\.nz| | |
397 | pt\.ilyamikcoder\.com| | |
398 | pt\.irnok\.net| | |
399 | pt\.mezzo\.moe| | |
400 | pt\.na4\.eu| | |
401 | pt\.netcraft\.ch| | |
402 | pt\.rwx\.ch| | |
403 | pt\.sfunk1x\.com| | |
404 | pt\.thishorsie\.rocks| | |
405 | pt\.vern\.cc| | |
406 | ptb\.lunarviews\.net| | |
407 | ptube\.de| | |
408 | ptube\.ranranhome\.info| | |
409 | puffy\.tube| | |
410 | puppet\.zone| | |
411 | qtube\.qlyoung\.net| | |
412 | quantube\.win| | |
413 | rankett\.net| | |
414 | replay\.jres\.org| | |
415 | review\.peertube\.biz| | |
416 | sdmtube\.fr| | |
417 | secure\.direct-live\.net| | |
418 | secure\.scanovid\.com| | |
419 | seka\.pona\.la| | |
420 | serv3\.wiki-tube\.de| | |
421 | skeptube\.fr| | |
422 | social\.fedimovie\.com| | |
423 | socpeertube\.ru| | |
424 | sovran\.video| | |
425 | special\.videovortex\.tv| | |
426 | spectra\.video| | |
427 | stl1988\.peertube-host\.de| | |
428 | stream\.biovisata\.lt| | |
429 | stream\.conesphere\.cloud| | |
430 | stream\.elven\.pw| | |
431 | stream\.jurnalfm\.md| | |
432 | stream\.k-prod\.fr| | |
433 | stream\.litera\.tools| | |
434 | stream\.nuemedia\.se| | |
435 | stream\.rlp-media\.de| | |
436 | stream\.vrse\.be| | |
437 | studios\.racer159\.com| | |
438 | styxhexenhammer666\.com| | |
439 | syrteplay\.obspm\.fr| | |
440 | t\.0x0\.st| | |
441 | tbh\.co-shaoghal\.net| | |
442 | test-fab\.ynh\.fr| | |
443 | testube\.distrilab\.fr| | |
444 | tgi\.hosted\.spacebear\.ee| | |
445 | theater\.ethernia\.net| | |
446 | thecool\.tube| | |
447 | thevideoverse\.com| | |
448 | tilvids\.com| | |
449 | tinkerbetter\.tube| | |
450 | tinsley\.video| | |
451 | trailers\.ddigest\.com| | |
452 | tube-action-educative\.apps\.education\.fr| | |
453 | tube-arts-lettres-sciences-humaines\.apps\.education\.fr| | |
454 | tube-cycle-2\.apps\.education\.fr| | |
455 | tube-cycle-3\.apps\.education\.fr| | |
456 | tube-education-physique-et-sportive\.apps\.education\.fr| | |
457 | tube-enseignement-professionnel\.apps\.education\.fr| | |
458 | tube-institutionnel\.apps\.education\.fr| | |
459 | tube-langues-vivantes\.apps\.education\.fr| | |
460 | tube-maternelle\.apps\.education\.fr| | |
461 | tube-numerique-educatif\.apps\.education\.fr| | |
462 | tube-sciences-technologies\.apps\.education\.fr| | |
463 | tube-test\.apps\.education\.fr| | |
464 | tube1\.perron-service\.de| | |
465 | tube\.9minuti\.it| | |
466 | tube\.abolivier\.bzh| | |
467 | tube\.alado\.space| | |
468 | tube\.amic37\.fr| | |
469 | tube\.area404\.cloud| | |
470 | tube\.arthack\.nz| | |
471 | tube\.asulia\.fr| | |
472 | tube\.awkward\.company| | |
473 | tube\.azbyka\.ru| | |
474 | tube\.azkware\.net| | |
475 | tube\.bartrip\.me\.uk| | |
476 | tube\.belowtoxic\.media| | |
477 | tube\.bingle\.plus| | |
478 | tube\.bit-friends\.de| | |
479 | tube\.bstly\.de| | |
480 | tube\.chosto\.me| | |
481 | tube\.cms\.garden| | |
482 | tube\.communia\.org| | |
483 | tube\.cyberia\.club| | |
484 | tube\.cybershock\.life| | |
485 | tube\.dembased\.xyz| | |
486 | tube\.dev\.displ\.eu| | |
487 | tube\.digitalesozialearbeit\.de| | |
488 | tube\.distrilab\.fr| | |
489 | tube\.doortofreedom\.org| | |
490 | tube\.dsocialize\.net| | |
491 | tube\.e-jeremy\.com| | |
492 | tube\.ebin\.club| | |
493 | tube\.elemac\.fr| | |
494 | tube\.erzbistum-hamburg\.de| | |
495 | tube\.exozy\.me| | |
496 | tube\.fdn\.fr| | |
497 | tube\.fedi\.quebec| | |
498 | tube\.fediverse\.at| | |
499 | tube\.felinn\.org| | |
500 | tube\.flokinet\.is| | |
501 | tube\.foad\.me\.uk| | |
502 | tube\.freepeople\.fr| | |
503 | tube\.friloux\.me| | |
504 | tube\.froth\.zone| | |
505 | tube\.fulda\.social| | |
506 | tube\.futuretic\.fr| | |
507 | tube\.g1zm0\.de| | |
508 | tube\.g4rf\.net| | |
509 | tube\.gaiac\.io| | |
510 | tube\.geekyboo\.net| | |
511 | tube\.genb\.de| | |
512 | tube\.ghk-academy\.info| | |
513 | tube\.gi-it\.de| | |
514 | tube\.grap\.coop| | |
515 | tube\.graz\.social| | |
516 | tube\.grin\.hu| | |
517 | tube\.hokai\.lol| | |
518 | tube\.int5\.net| | |
519 | tube\.interhacker\.space| | |
520 | tube\.invisible\.ch| | |
521 | tube\.io18\.top| | |
522 | tube\.itsg\.host| | |
523 | tube\.jeena\.net| | |
524 | tube\.kh-berlin\.de| | |
525 | tube\.kockatoo\.org| | |
526 | tube\.kotur\.org| | |
527 | tube\.koweb\.fr| | |
528 | tube\.la-dina\.net| | |
529 | tube\.lab\.nrw| | |
530 | tube\.lacaveatonton\.ovh| | |
531 | tube\.laurent-malys\.fr| | |
532 | tube\.leetdreams\.ch| | |
533 | tube\.linkse\.media| | |
534 | tube\.lokad\.com| | |
535 | tube\.lucie-philou\.com| | |
536 | tube\.media-techport\.de| | |
537 | tube\.morozoff\.pro| | |
538 | tube\.neshweb\.net| | |
539 | tube\.nestor\.coop| | |
540 | tube\.network\.europa\.eu| | |
541 | tube\.nicfab\.eu| | |
542 | tube\.nieuwwestbrabant\.nl| | |
543 | tube\.nogafa\.org| | |
544 | tube\.novg\.net| | |
545 | tube\.nox-rhea\.org| | |
546 | tube\.nuagelibre\.fr| | |
547 | tube\.numerique\.gouv\.fr| | |
548 | tube\.nuxnik\.com| | |
549 | tube\.nx12\.net| | |
550 | tube\.octaplex\.net| | |
551 | tube\.oisux\.org| | |
552 | tube\.okcinfo\.news| | |
553 | tube\.onlinekirche\.net| | |
554 | tube\.opportunis\.me| | |
555 | tube\.oraclefilms\.com| | |
556 | tube\.org\.il| | |
557 | tube\.pacapime\.ovh| | |
558 | tube\.parinux\.org| | |
559 | tube\.pastwind\.top| | |
560 | tube\.picasoft\.net| | |
561 | tube\.pilgerweg-21\.de| | |
562 | tube\.pmj\.rocks| | |
563 | tube\.pol\.social| | |
564 | tube\.ponsonaille\.fr| | |
565 | tube\.portes-imaginaire\.org| | |
566 | tube\.public\.apolut\.net| | |
567 | tube\.pustule\.org| | |
568 | tube\.pyngu\.com| | |
569 | tube\.querdenken-711\.de| | |
570 | tube\.rebellion\.global| | |
571 | tube\.reseau-canope\.fr| | |
572 | tube\.rhythms-of-resistance\.org| | |
573 | tube\.risedsky\.ovh| | |
574 | tube\.rooty\.fr| | |
575 | tube\.rsi\.cnr\.it| | |
576 | tube\.ryne\.moe| | |
577 | tube\.schleuss\.online| | |
578 | tube\.schule\.social| | |
579 | tube\.sekretaerbaer\.net| | |
580 | tube\.shanti\.cafe| | |
581 | tube\.shela\.nu| | |
582 | tube\.skrep\.in| | |
583 | tube\.sleeping\.town| | |
584 | tube\.sp-codes\.de| | |
585 | tube\.spdns\.org| | |
586 | tube\.systerserver\.net| | |
587 | tube\.systest\.eu| | |
588 | tube\.tappret\.fr| | |
589 | tube\.techeasy\.org| | |
590 | tube\.thierrytalbert\.fr| | |
591 | tube\.tinfoil-hat\.net| | |
592 | tube\.toldi\.eu| | |
593 | tube\.tpshd\.de| | |
594 | tube\.trax\.im| | |
595 | tube\.troopers\.agency| | |
596 | tube\.ttk\.is| | |
597 | tube\.tuxfriend\.fr| | |
598 | tube\.tylerdavis\.xyz| | |
599 | tube\.ullihome\.de| | |
600 | tube\.ulne\.be| | |
601 | tube\.undernet\.uy| | |
602 | tube\.vrpnet\.org| | |
603 | tube\.wolfe\.casa| | |
604 | tube\.xd0\.de| | |
605 | tube\.xn--baw-joa\.social| | |
606 | tube\.xy-space\.de| | |
607 | tube\.yapbreak\.fr| | |
608 | tubedu\.org| | |
609 | tubulus\.openlatin\.org| | |
610 | turtleisland\.video| | |
611 | tututu\.tube| | |
612 | tv\.adast\.dk| | |
613 | tv\.adn\.life| | |
614 | tv\.arns\.lt| | |
615 | tv\.atmx\.ca| | |
616 | tv\.based\.quest| | |
617 | tv\.farewellutopia\.com| | |
618 | tv\.filmfreedom\.net| | |
619 | tv\.gravitons\.org| | |
620 | tv\.io\.seg\.br| | |
621 | tv\.lumbung\.space| | |
622 | tv\.pirateradio\.social| | |
623 | tv\.pirati\.cz| | |
624 | tv\.santic-zombie\.ru| | |
625 | tv\.undersco\.re| | |
626 | tv\.zonepl\.net| | |
627 | tvox\.ru| | |
628 | twctube\.twc-zone\.eu| | |
629 | twobeek\.com| | |
630 | urbanists\.video| | |
631 | v\.9tail\.net| | |
632 | v\.basspistol\.org| | |
633 | v\.j4\.lc| | |
634 | v\.kisombrella\.top| | |
635 | v\.koa\.im| | |
636 | v\.kyaru\.xyz| | |
637 | v\.lor\.sh| | |
638 | v\.mkp\.ca| | |
639 | v\.posm\.gay| | |
640 | v\.slaycer\.top| | |
641 | veedeo\.org| | |
642 | vhs\.absturztau\.be| | |
643 | vid\.cthos\.dev| | |
644 | vid\.kinuseka\.us| | |
645 | vid\.mkp\.ca| | |
646 | vid\.nocogabriel\.fr| | |
647 | vid\.norbipeti\.eu| | |
648 | vid\.northbound\.online| | |
649 | vid\.ohboii\.de| | |
650 | vid\.plantplotting\.co\.uk| | |
651 | vid\.pretok\.tv| | |
652 | vid\.prometheus\.systems| | |
653 | vid\.soafen\.love| | |
654 | vid\.twhtv\.club| | |
655 | vid\.wildeboer\.net| | |
656 | video-cave-v2\.de| | |
657 | video-liberty\.com| | |
658 | video\.076\.ne\.jp| | |
659 | video\.1146\.nohost\.me| | |
660 | video\.9wd\.eu| | |
661 | video\.abraum\.de| | |
662 | video\.ados\.accoord\.fr| | |
663 | video\.amiga-ng\.org| | |
664 | video\.anartist\.org| | |
665 | video\.asgardius\.company| | |
666 | video\.audiovisuel-participatif\.org| | |
667 | video\.bards\.online| | |
668 | video\.barkoczy\.social| | |
669 | video\.benetou\.fr| | |
670 | video\.beyondwatts\.social| | |
671 | video\.bgeneric\.net| | |
672 | video\.bilecik\.edu\.tr| | |
673 | video\.blast-info\.fr| | |
674 | video\.bmu\.cloud| | |
675 | video\.catgirl\.biz| | |
676 | video\.causa-arcana\.com| | |
677 | video\.chasmcity\.net| | |
678 | video\.chbmeyer\.de| | |
679 | video\.cigliola\.com| | |
680 | video\.citizen4\.eu| | |
681 | video\.clumsy\.computer| | |
682 | video\.cnnumerique\.fr| | |
683 | video\.cnr\.it| | |
684 | video\.cnt\.social| | |
685 | video\.coales\.co| | |
686 | video\.comune\.trento\.it| | |
687 | video\.coyp\.us| | |
688 | video\.csc49\.fr| | |
689 | video\.davduf\.net| | |
690 | video\.davejansen\.com| | |
691 | video\.dlearning\.nl| | |
692 | video\.dnfi\.no| | |
693 | video\.dresden\.network| | |
694 | video\.drgnz\.club| | |
695 | video\.dudenas\.lt| | |
696 | video\.eientei\.org| | |
697 | video\.ellijaymakerspace\.org| | |
698 | video\.emergeheart\.info| | |
699 | video\.eradicatinglove\.xyz| | |
700 | video\.everythingbagel\.me| | |
701 | video\.extremelycorporate\.ca| | |
702 | video\.fabiomanganiello\.com| | |
703 | video\.fedi\.bzh| | |
704 | video\.fhtagn\.org| | |
705 | video\.firehawk-systems\.com| | |
706 | video\.fox-romka\.ru| | |
707 | video\.fuss\.bz\.it| | |
708 | video\.glassbeadcollective\.org| | |
709 | video\.graine-pdl\.org| | |
710 | video\.gyt\.is| | |
711 | video\.hainry\.fr| | |
712 | video\.hardlimit\.com| | |
713 | video\.hostux\.net| | |
714 | video\.igem\.org| | |
715 | video\.infojournal\.fr| | |
716 | video\.internet-czas-dzialac\.pl| | |
717 | video\.interru\.io| | |
718 | video\.ipng\.ch| | |
719 | video\.ironsysadmin\.com| | |
720 | video\.islameye\.com| | |
721 | video\.jacen\.moe| | |
722 | video\.jadin\.me| | |
723 | video\.jeffmcbride\.net| | |
724 | video\.jigmedatse\.com| | |
725 | video\.kuba-orlik\.name| | |
726 | video\.lacalligramme\.fr| | |
727 | video\.lanceurs-alerte\.fr| | |
728 | video\.laotra\.red| | |
729 | video\.lapineige\.fr| | |
730 | video\.laraffinerie\.re| | |
731 | video\.lavolte\.net| | |
732 | video\.liberta\.vip| | |
733 | video\.libreti\.net| | |
734 | video\.licentia\.net| | |
735 | video\.linc\.systems| | |
736 | video\.linux\.it| | |
737 | video\.linuxtrent\.it| | |
738 | video\.liveitlive\.show| | |
739 | video\.lono\.space| | |
740 | video\.lrose\.de| | |
741 | video\.lunago\.net| | |
742 | video\.lundi\.am| | |
743 | video\.lycee-experimental\.org| | |
744 | video\.maechler\.cloud| | |
745 | video\.marcorennmaus\.de| | |
746 | video\.mass-trespass\.uk| | |
747 | video\.matomocamp\.org| | |
748 | video\.medienzentrum-harburg\.de| | |
749 | video\.mentality\.rip| | |
750 | video\.metaversum\.wtf| | |
751 | video\.midreality\.com| | |
752 | video\.mttv\.it| | |
753 | video\.mugoreve\.fr| | |
754 | video\.mxtthxw\.art| | |
755 | video\.mycrowd\.ca| | |
756 | video\.niboe\.info| | |
757 | video\.nogafam\.es| | |
758 | video\.nstr\.no| | |
759 | video\.occm\.cc| | |
760 | video\.off-investigation\.fr| | |
761 | video\.olos311\.org| | |
762 | video\.ordinobsolete\.fr| | |
763 | video\.osvoj\.ru| | |
764 | video\.ourcommon\.cloud| | |
765 | video\.ozgurkon\.org| | |
766 | video\.pcf\.fr| | |
767 | video\.pcgaldo\.com| | |
768 | video\.phyrone\.de| | |
769 | video\.poul\.org| | |
770 | video\.publicspaces\.net| | |
771 | video\.pullopen\.xyz| | |
772 | video\.r3s\.nrw| | |
773 | video\.rainevixen\.com| | |
774 | video\.resolutions\.it| | |
775 | video\.retroedge\.tech| | |
776 | video\.rhizome\.org| | |
777 | video\.rlp-media\.de| | |
778 | video\.rs-einrich\.de| | |
779 | video\.rubdos\.be| | |
780 | video\.sadmin\.io| | |
781 | video\.sftblw\.moe| | |
782 | video\.shitposter\.club| | |
783 | video\.simplex-software\.ru| | |
784 | video\.slipfox\.xyz| | |
785 | video\.snug\.moe| | |
786 | video\.software-fuer-engagierte\.de| | |
787 | video\.soi\.ch| | |
788 | video\.sonet\.ws| | |
789 | video\.surazal\.net| | |
790 | video\.taskcards\.eu| | |
791 | video\.team-lcbs\.eu| | |
792 | video\.techforgood\.social| | |
793 | video\.telemillevaches\.net| | |
794 | video\.thepolarbear\.co\.uk| | |
795 | video\.thinkof\.name| | |
796 | video\.tii\.space| | |
797 | video\.tkz\.es| | |
798 | video\.trankil\.info| | |
799 | video\.triplea\.fr| | |
800 | video\.tum\.social| | |
801 | video\.turbo\.chat| | |
802 | video\.uriopss-pdl\.fr| | |
803 | video\.ustim\.ru| | |
804 | video\.ut0pia\.org| | |
805 | video\.vaku\.org\.ua| | |
806 | video\.vegafjord\.me| | |
807 | video\.veloma\.org| | |
808 | video\.violoncello\.ch| | |
809 | video\.voidconspiracy\.band| | |
810 | video\.wakkeren\.nl| | |
811 | video\.windfluechter\.org| | |
812 | video\.ziez\.eu| | |
813 | videos-passages\.huma-num\.fr| | |
814 | videos\.aadtp\.be| | |
815 | videos\.ahp-numerique\.fr| | |
816 | videos\.alamaisondulibre\.org| | |
817 | videos\.archigny\.net| | |
818 | videos\.aroaduntraveled\.com| | |
819 | videos\.b4tech\.org| | |
820 | videos\.benjaminbrady\.ie| | |
821 | videos\.bik\.opencloud\.lu| | |
822 | videos\.cloudron\.io| | |
823 | videos\.codingotaku\.com| | |
824 | videos\.coletivos\.org| | |
825 | videos\.collate\.social| | |
826 | videos\.danksquad\.org| | |
827 | videos\.digitaldragons\.eu| | |
828 | videos\.dromeadhere\.fr| | |
829 | videos\.explain-it\.org| | |
830 | videos\.factsonthegroundshow\.com| | |
831 | videos\.foilen\.com| | |
832 | videos\.fsci\.in| | |
833 | videos\.gamercast\.net| | |
834 | videos\.gianmarco\.gg| | |
835 | videos\.globenet\.org| | |
836 | videos\.grafo\.zone| | |
837 | videos\.hauspie\.fr| | |
838 | videos\.hush\.is| | |
839 | videos\.hyphalfusion\.network| | |
840 | videos\.icum\.to| | |
841 | videos\.im\.allmendenetz\.de| | |
842 | videos\.jacksonchen666\.com| | |
843 | videos\.john-livingston\.fr| | |
844 | videos\.knazarov\.com| | |
845 | videos\.kuoushi\.com| | |
846 | videos\.laliguepaysdelaloire\.org| | |
847 | videos\.lemouvementassociatif-pdl\.org| | |
848 | videos\.leslionsfloorball\.fr| | |
849 | videos\.librescrum\.org| | |
850 | videos\.mastodont\.cat| | |
851 | videos\.metus\.ca| | |
852 | videos\.miolo\.org| | |
853 | videos\.offroad\.town| | |
854 | videos\.openmandriva\.org| | |
855 | videos\.parleur\.net| | |
856 | videos\.pcorp\.us| | |
857 | videos\.pop\.eu\.com| | |
858 | videos\.rampin\.org| | |
859 | videos\.rauten\.co\.za| | |
860 | videos\.ritimo\.org| | |
861 | videos\.sarcasmstardust\.com| | |
862 | videos\.scanlines\.xyz| | |
863 | videos\.shmalls\.pw| | |
864 | videos\.stadtfabrikanten\.org| | |
865 | videos\.supertuxkart\.net| | |
866 | videos\.testimonia\.org| | |
867 | videos\.thinkerview\.com| | |
868 | videos\.torrenezzi10\.xyz| | |
869 | videos\.trom\.tf| | |
870 | videos\.utsukta\.org| | |
871 | videos\.viorsan\.com| | |
872 | videos\.wherelinux\.xyz| | |
873 | videos\.wikilibriste\.fr| | |
874 | videos\.yesil\.club| | |
875 | videos\.yeswiki\.net| | |
876 | videotube\.duckdns\.org| | |
877 | vids\.capypara\.de| | |
878 | vids\.roshless\.me| | |
879 | vids\.stary\.pc\.pl| | |
880 | vids\.tekdmn\.me| | |
881 | vidz\.julien\.ovh| | |
882 | views\.southfox\.me| | |
883 | virtual-girls-are\.definitely-for\.me| | |
884 | viste\.pt| | |
885 | vnchich\.com| | |
886 | vnop\.org| | |
887 | vod\.newellijay\.tv| | |
888 | voluntarytube\.com| | |
889 | vtr\.chikichiki\.tube| | |
890 | vulgarisation-informatique\.fr| | |
891 | watch\.easya\.solutions| | |
892 | watch\.goodluckgabe\.life| | |
893 | watch\.ignorance\.eu| | |
894 | watch\.jimmydore\.com| | |
895 | watch\.libertaria\.space| | |
896 | watch\.nuked\.social| | |
897 | watch\.ocaml\.org| | |
898 | watch\.thelema\.social| | |
899 | watch\.tubelab\.video| | |
900 | web-fellow\.de| | |
901 | webtv\.vandoeuvre\.net| | |
902 | wetubevid\.online| | |
903 | wikileaks\.video| | |
904 | wiwi\.video| | |
905 | wow\.such\.disappointment\.fail| | |
906 | www\.jvideos\.net| | |
907 | www\.kotikoff\.net| | |
908 | www\.makertube\.net| | |
909 | www\.mypeer\.tube| | |
910 | www\.nadajemy\.com| | |
911 | www\.neptube\.io| | |
912 | www\.rocaguinarda\.tv| | |
913 | www\.vnshow\.net| | |
914 | xxivproduction\.video| | |
915 | yt\.orokoro\.ru| | |
916 | ytube\.retronerd\.at| | |
917 | zumvideo\.de| | |
918 | ||
919 | # from youtube-dl | |
920 | peertube\.rainbowswingers\.net| | |
921 | tube\.stanisic\.nl| | |
922 | peer\.suiri\.us| | |
923 | medias\.libox\.fr| | |
924 | videomensoif\.ynh\.fr| | |
925 | peertube\.travelpandas\.eu| | |
926 | peertube\.rachetjay\.fr| | |
927 | peertube\.montecsys\.fr| | |
928 | tube\.eskuero\.me| | |
929 | peer\.tube| | |
930 | peertube\.umeahackerspace\.se| | |
931 | tube\.nx-pod\.de| | |
932 | video\.monsieurbidouille\.fr| | |
933 | tube\.openalgeria\.org| | |
934 | vid\.lelux\.fi| | |
935 | video\.anormallostpod\.ovh| | |
936 | tube\.crapaud-fou\.org| | |
937 | peertube\.stemy\.me| | |
938 | lostpod\.space| | |
939 | exode\.me| | |
940 | peertube\.snargol\.com| | |
941 | vis\.ion\.ovh| | |
942 | videosdulib\.re| | |
943 | v\.mbius\.io| | |
944 | videos\.judrey\.eu| | |
945 | peertube\.osureplayviewer\.xyz| | |
946 | peertube\.mathieufamily\.ovh| | |
947 | www\.videos-libr\.es| | |
948 | fightforinfo\.com| | |
949 | peertube\.fediverse\.ru| | |
950 | peertube\.oiseauroch\.fr| | |
951 | video\.nesven\.eu| | |
952 | v\.bearvideo\.win| | |
953 | video\.qoto\.org| | |
954 | justporn\.cc| | |
955 | video\.vny\.fr| | |
956 | peervideo\.club| | |
957 | tube\.taker\.fr| | |
958 | peertube\.chantierlibre\.org| | |
959 | tube\.ipfixe\.info| | |
960 | tube\.kicou\.info| | |
961 | tube\.dodsorf\.as| | |
962 | videobit\.cc| | |
963 | video\.yukari\.moe| | |
964 | videos\.elbinario\.net| | |
965 | hkvideo\.live| | |
966 | pt\.tux\.tf| | |
967 | www\.hkvideo\.live| | |
968 | FIGHTFORINFO\.com| | |
969 | pt\.765racing\.com| | |
970 | peertube\.gnumeria\.eu\.org| | |
971 | nordenmedia\.com| | |
972 | peertube\.co\.uk| | |
973 | tube\.darfweb\.eu| | |
974 | tube\.kalah-france\.org| | |
975 | 0ch\.in| | |
976 | vod\.mochi\.academy| | |
977 | film\.node9\.org| | |
978 | peertube\.hatthieves\.es| | |
979 | video\.fitchfamily\.org| | |
980 | peertube\.ddns\.net| | |
981 | video\.ifuncle\.kr| | |
982 | video\.fdlibre\.eu| | |
983 | tube\.22decembre\.eu| | |
984 | peertube\.harmoniescreatives\.com| | |
985 | tube\.fabrigli\.fr| | |
986 | video\.thedwyers\.co| | |
987 | video\.bruitbruit\.com| | |
988 | peertube\.foxfam\.club| | |
989 | peer\.philoxweb\.be| | |
990 | videos\.bugs\.social| | |
991 | peertube\.malbert\.xyz| | |
992 | peertube\.bilange\.ca| | |
993 | libretube\.net| | |
994 | diytelevision\.com| | |
995 | peertube\.fedilab\.app| | |
996 | libre\.video| | |
997 | video\.mstddntfdn\.online| | |
998 | us\.tv| | |
999 | peertube\.sl-network\.fr| | |
1000 | peertube\.dynlinux\.io| | |
1001 | peertube\.david\.durieux\.family| | |
1002 | peertube\.linuxrocks\.online| | |
1003 | peerwatch\.xyz| | |
1004 | v\.kretschmann\.social| | |
1005 | tube\.otter\.sh| | |
1006 | yt\.is\.nota\.live| | |
1007 | tube\.dragonpsi\.xyz| | |
1008 | peertube\.boneheadmedia\.com| | |
1009 | videos\.funkwhale\.audio| | |
1010 | watch\.44con\.com| | |
1011 | peertube\.gcaillaut\.fr| | |
1012 | peertube\.icu| | |
1013 | pony\.tube| | |
1014 | spacepub\.space| | |
1015 | tube\.stbr\.io| | |
1016 | v\.mom-gay\.faith| | |
1017 | tube\.port0\.xyz| | |
1018 | peertube\.simounet\.net| | |
1019 | play\.jergefelt\.se| | |
1020 | peertube\.zeteo\.me| | |
1021 | tube\.danq\.me| | |
1022 | peertube\.kerenon\.com| | |
1023 | tube\.fab-l3\.org| | |
1024 | tube\.calculate\.social| | |
1025 | peertube\.mckillop\.org| | |
1026 | tube\.netzspielplatz\.de| | |
1027 | vod\.ksite\.de| | |
1028 | peertube\.laas\.fr| | |
1029 | tube\.govital\.net| | |
1030 | peertube\.stephenson\.cc| | |
1031 | bistule\.nohost\.me| | |
1032 | peertube\.kajalinifi\.de| | |
1033 | video\.ploud\.jp| | |
1034 | video\.omniatv\.com| | |
1035 | peertube\.ffs2play\.fr| | |
1036 | peertube\.leboulaire\.ovh| | |
1037 | peertube\.tronic-studio\.com| | |
1038 | peertube\.public\.cat| | |
1039 | peertube\.metalbanana\.net| | |
1040 | video\.1000i100\.fr| | |
1041 | peertube\.alter-nativ-voll\.de| | |
1042 | tube\.pasa\.tf| | |
1043 | tube\.worldofhauru\.xyz| | |
1044 | pt\.kamp\.site| | |
1045 | peertube\.teleassist\.fr| | |
1046 | videos\.mleduc\.xyz| | |
1047 | conf\.tube| | |
1048 | media\.privacyinternational\.org| | |
1049 | pt\.forty-two\.nl| | |
1050 | video\.halle-leaks\.de| | |
1051 | video\.grosskopfgames\.de| | |
1052 | peertube\.schaeferit\.de| | |
1053 | peertube\.jackbot\.fr| | |
1054 | tube\.extinctionrebellion\.fr| | |
1055 | peertube\.f-si\.org| | |
1056 | video\.subak\.ovh| | |
1057 | videos\.koweb\.fr| | |
1058 | peertube\.zergy\.net| | |
1059 | peertube\.roflcopter\.fr| | |
1060 | peertube\.floss-marketing-school\.com| | |
1061 | vloggers\.social| | |
1062 | peertube\.iriseden\.eu| | |
1063 | videos\.ubuntu-paris\.org| | |
1064 | peertube\.mastodon\.host| | |
1065 | armstube\.com| | |
1066 | peertube\.s2s\.video| | |
1067 | peertube\.lol| | |
1068 | tube\.open-plug\.eu| | |
1069 | open\.tube| | |
1070 | peertube\.ch| | |
1071 | peertube\.normandie-libre\.fr| | |
1072 | peertube\.slat\.org| | |
1073 | video\.lacaveatonton\.ovh| | |
1074 | peertube\.uno| | |
1075 | peertube\.servebeer\.com| | |
1076 | peertube\.fedi\.quebec| | |
1077 | tube\.h3z\.jp| | |
1078 | tube\.plus200\.com| | |
1079 | peertube\.eric\.ovh| | |
1080 | tube\.metadocs\.cc| | |
1081 | tube\.unmondemeilleur\.eu| | |
1082 | gouttedeau\.space| | |
1083 | video\.antirep\.net| | |
1084 | nrop\.cant\.at| | |
1085 | tube\.ksl-bmx\.de| | |
1086 | tube\.plaf\.fr| | |
1087 | tube\.tchncs\.de| | |
1088 | video\.devinberg\.com| | |
1089 | hitchtube\.fr| | |
1090 | peertube\.kosebamse\.com| | |
1091 | yunopeertube\.myddns\.me| | |
1092 | peertube\.varney\.fr| | |
1093 | peertube\.anon-kenkai\.com| | |
1094 | tube\.maiti\.info| | |
1095 | tubee\.fr| | |
1096 | videos\.dinofly\.com| | |
1097 | toobnix\.org| | |
1098 | videotape\.me| | |
1099 | voca\.tube| | |
1100 | video\.heromuster\.com| | |
1101 | video\.lemediatv\.fr| | |
1102 | video\.up\.edu\.ph| | |
1103 | balafon\.video| | |
1104 | video\.ivel\.fr| | |
1105 | thickrips\.cloud| | |
1106 | pt\.laurentkruger\.fr| | |
1107 | video\.monarch-pass\.net| | |
1108 | peertube\.artica\.center| | |
1109 | video\.alternanet\.fr| | |
1110 | indymotion\.fr| | |
1111 | fanvid\.stopthatimp\.net| | |
1112 | video\.farci\.org| | |
1113 | v\.lesterpig\.com| | |
1114 | video\.okaris\.de| | |
1115 | tube\.pawelko\.net| | |
1116 | peertube\.mablr\.org| | |
1117 | tube\.fede\.re| | |
1118 | pytu\.be| | |
1119 | evertron\.tv| | |
1120 | devtube\.dev-wiki\.de| | |
1121 | raptube\.antipub\.org| | |
1122 | video\.selea\.se| | |
1123 | peertube\.mygaia\.org| | |
1124 | video\.oh14\.de| | |
1125 | peertube\.livingutopia\.org| | |
1126 | peertube\.the-penguin\.de| | |
1127 | tube\.thechangebook\.org| | |
1128 | tube\.anjara\.eu| | |
1129 | pt\.pube\.tk| | |
1130 | video\.samedi\.pm| | |
1131 | mplayer\.demouliere\.eu| | |
1132 | widemus\.de| | |
1133 | peertube\.me| | |
1134 | peertube\.zapashcanon\.fr| | |
1135 | video\.latavernedejohnjohn\.fr| | |
1136 | peertube\.pcservice46\.fr| | |
1137 | peertube\.mazzonetto\.eu| | |
1138 | video\.irem\.univ-paris-diderot\.fr| | |
1139 | video\.livecchi\.cloud| | |
1140 | alttube\.fr| | |
1141 | video\.coop\.tools| | |
1142 | video\.cabane-libre\.org| | |
1143 | peertube\.openstreetmap\.fr| | |
1144 | videos\.alolise\.org| | |
1145 | irrsinn\.video| | |
1146 | video\.antopie\.org| | |
1147 | scitech\.video| | |
1148 | tube2\.nemsia\.org| | |
1149 | video\.amic37\.fr| | |
1150 | peertube\.freeforge\.eu| | |
1151 | video\.arbitrarion\.com| | |
1152 | video\.datsemultimedia\.com| | |
1153 | stoptrackingus\.tv| | |
1154 | peertube\.ricostrongxxx\.com| | |
1155 | docker\.videos\.lecygnenoir\.info| | |
1156 | peertube\.togart\.de| | |
1157 | tube\.postblue\.info| | |
1158 | videos\.domainepublic\.net| | |
1159 | peertube\.cyber-tribal\.com| | |
1160 | video\.gresille\.org| | |
1161 | peertube\.dsmouse\.net| | |
1162 | cinema\.yunohost\.support| | |
1163 | tube\.theocevaer\.fr| | |
1164 | repro\.video| | |
1165 | tube\.4aem\.com| | |
1166 | quaziinc\.com| | |
1167 | peertube\.metawurst\.space| | |
1168 | videos\.wakapo\.com| | |
1169 | video\.ploud\.fr| | |
1170 | video\.freeradical\.zone| | |
1171 | tube\.valinor\.fr| | |
1172 | refuznik\.video| | |
1173 | pt\.kircheneuenburg\.de| | |
1174 | peertube\.asrun\.eu| | |
1175 | peertube\.lagob\.fr| | |
1176 | videos\.side-ways\.net| | |
1177 | 91video\.online| | |
1178 | video\.valme\.io| | |
1179 | video\.taboulisme\.com| | |
1180 | videos-libr\.es| | |
1181 | tv\.mooh\.fr| | |
1182 | nuage\.acostey\.fr| | |
1183 | video\.monsieur-a\.fr| | |
1184 | peertube\.librelois\.fr| | |
1185 | videos\.pair2jeux\.tube| | |
1186 | videos\.pueseso\.club| | |
1187 | peer\.mathdacloud\.ovh| | |
1188 | media\.assassinate-you\.net| | |
1189 | vidcommons\.org| | |
1190 | ptube\.rousset\.nom\.fr| | |
1191 | tube\.cyano\.at| | |
1192 | videos\.squat\.net| | |
1193 | video\.iphodase\.fr| | |
1194 | peertube\.makotoworkshop\.org| | |
1195 | peertube\.serveur\.slv-valbonne\.fr| | |
1196 | vault\.mle\.party| | |
1197 | hostyour\.tv| | |
1198 | videos\.hack2g2\.fr| | |
1199 | libre\.tube| | |
1200 | pire\.artisanlogiciel\.net| | |
1201 | videos\.numerique-en-commun\.fr| | |
1202 | video\.netsyms\.com| | |
1203 | video\.die-partei\.social| | |
1204 | video\.writeas\.org| | |
1205 | peertube\.swarm\.solvingmaz\.es| | |
1206 | tube\.pericoloso\.ovh| | |
1207 | watching\.cypherpunk\.observer| | |
1208 | videos\.adhocmusic\.com| | |
1209 | tube\.rfc1149\.net| | |
1210 | peertube\.librelabucm\.org| | |
1211 | videos\.numericoop\.fr| | |
1212 | peertube\.koehn\.com| | |
1213 | peertube\.anarchmusicall\.net| | |
1214 | tube\.kampftoast\.de| | |
1215 | vid\.y-y\.li| | |
1216 | peertube\.xtenz\.xyz| | |
1217 | diode\.zone| | |
1218 | tube\.egf\.mn| | |
1219 | peertube\.nomagic\.uk| | |
1220 | visionon\.tv| | |
1221 | videos\.koumoul\.com| | |
1222 | video\.rastapuls\.com| | |
1223 | video\.mantlepro\.com| | |
1224 | video\.deadsuperhero\.com| | |
1225 | peertube\.musicstudio\.pro| | |
1226 | peertube\.we-keys\.fr| | |
1227 | artitube\.artifaille\.fr| | |
1228 | peertube\.ethernia\.net| | |
1229 | tube\.midov\.pl| | |
1230 | peertube\.fr| | |
1231 | watch\.snoot\.tube| | |
1232 | peertube\.donnadieu\.fr| | |
1233 | argos\.aquilenet\.fr| | |
1234 | tube\.nemsia\.org| | |
1235 | tube\.bruniau\.net| | |
1236 | videos\.darckoune\.moe| | |
1237 | tube\.traydent\.info| | |
1238 | dev\.videos\.lecygnenoir\.info| | |
1239 | peertube\.nayya\.org| | |
1240 | peertube\.live| | |
1241 | peertube\.mofgao\.space| | |
1242 | video\.lequerrec\.eu| | |
1243 | peertube\.amicale\.net| | |
1244 | aperi\.tube| | |
1245 | tube\.ac-lyon\.fr| | |
1246 | video\.lw1\.at| | |
1247 | www\.yiny\.org| | |
1248 | videos\.pofilo\.fr| | |
1249 | tube\.lou\.lt| | |
1250 | choob\.h\.etbus\.ch| | |
1251 | tube\.hoga\.fr| | |
1252 | peertube\.heberge\.fr| | |
1253 | video\.obermui\.de| | |
1254 | videos\.cloudfrancois\.fr| | |
1255 | betamax\.video| | |
1256 | video\.typica\.us| | |
1257 | tube\.piweb\.be| | |
1258 | video\.blender\.org| | |
1259 | peertube\.cat| | |
1260 | tube\.kdy\.ch| | |
1261 | pe\.ertu\.be| | |
1262 | peertube\.social| | |
1263 | videos\.lescommuns\.org| | |
1264 | tv\.datamol\.org| | |
1265 | videonaute\.fr| | |
1266 | dialup\.express| | |
1267 | peertube\.nogafa\.org| | |
1268 | megatube\.lilomoino\.fr| | |
1269 | peertube\.tamanoir\.foucry\.net| | |
1270 | peertube\.devosi\.org| | |
1271 | peertube\.1312\.media| | |
1272 | tube\.bootlicker\.party| | |
1273 | skeptikon\.fr| | |
1274 | video\.blueline\.mg| | |
1275 | tube\.homecomputing\.fr| | |
1276 | tube\.ouahpiti\.info| | |
1277 | video\.tedomum\.net| | |
1278 | video\.g3l\.org| | |
1279 | fontube\.fr| | |
1280 | peertube\.gaialabs\.ch| | |
1281 | tube\.kher\.nl| | |
1282 | peertube\.qtg\.fr| | |
1283 | video\.migennes\.net| | |
1284 | tube\.p2p\.legal| | |
1285 | troll\.tv| | |
1286 | videos\.iut-orsay\.fr| | |
1287 | peertube\.solidev\.net| | |
1288 | videos\.cemea\.org| | |
1289 | video\.passageenseine\.fr| | |
1290 | videos\.festivalparminous\.org| | |
1291 | peertube\.touhoppai\.moe| | |
1292 | sikke\.fi| | |
1293 | peer\.hostux\.social| | |
1294 | share\.tube| | |
1295 | peertube\.walkingmountains\.fr| | |
1296 | videos\.benpro\.fr| | |
1297 | peertube\.parleur\.net| | |
1298 | peertube\.heraut\.eu| | |
1299 | tube\.aquilenet\.fr| | |
1300 | peertube\.gegeweb\.eu| | |
1301 | framatube\.org| | |
1302 | thinkerview\.video| | |
1303 | tube\.conferences-gesticulees\.net| | |
1304 | peertube\.datagueule\.tv| | |
1305 | video\.lqdn\.fr| | |
1306 | tube\.mochi\.academy| | |
1307 | media\.zat\.im| | |
1308 | video\.colibris-outilslibres\.org| | |
1309 | tube\.svnet\.fr| | |
1310 | peertube\.video| | |
1311 | peertube2\.cpy\.re| | |
1312 | peertube3\.cpy\.re| | |
1313 | videos\.tcit\.fr| | |
1314 | peertube\.cpy\.re| | |
1315 | canard\.tube | |
1316 | )''' | |
1317 | _UUID_RE = r'[\da-zA-Z]{22}|[\da-fA-F]{8}-[\da-fA-F]{4}-[\da-fA-F]{4}-[\da-fA-F]{4}-[\da-fA-F]{12}' | |
1318 | _API_BASE = 'https://%s/api/v1/videos/%s/%s' | |
1319 | _VALID_URL = r'''(?x) | |
1320 | (?: | |
1321 | peertube:(?P<host>[^:]+):| | |
1322 | https?://(?P<host_2>%s)/(?:videos/(?:watch|embed)|api/v\d/videos|w)/ | |
1323 | ) | |
1324 | (?P<id>%s) | |
1325 | ''' % (_INSTANCES_RE, _UUID_RE) | |
1326 | _EMBED_REGEX = [r'''(?x)<iframe[^>]+\bsrc=["\'](?P<url>(?:https?:)?//{_INSTANCES_RE}/videos/embed/{cls._UUID_RE})'''] | |
1327 | _TESTS = [{ | |
1328 | 'url': 'https://framatube.org/videos/watch/9c9de5e8-0a1e-484a-b099-e80766180a6d', | |
1329 | 'md5': '8563064d245a4be5705bddb22bb00a28', | |
1330 | 'info_dict': { | |
1331 | 'id': '9c9de5e8-0a1e-484a-b099-e80766180a6d', | |
1332 | 'ext': 'mp4', | |
1333 | 'title': 'What is PeerTube?', | |
1334 | 'description': 'md5:3fefb8dde2b189186ce0719fda6f7b10', | |
1335 | 'thumbnail': r're:https?://.*\.(?:jpg|png)', | |
1336 | 'timestamp': 1538391166, | |
1337 | 'upload_date': '20181001', | |
1338 | 'uploader': 'Framasoft', | |
1339 | 'uploader_id': '3', | |
1340 | 'uploader_url': 'https://framatube.org/accounts/framasoft', | |
1341 | 'channel': 'A propos de PeerTube', | |
1342 | 'channel_id': '2215', | |
1343 | 'channel_url': 'https://framatube.org/video-channels/joinpeertube', | |
1344 | 'language': 'en', | |
1345 | 'license': 'Attribution - Share Alike', | |
1346 | 'duration': 113, | |
1347 | 'view_count': int, | |
1348 | 'like_count': int, | |
1349 | 'dislike_count': int, | |
1350 | 'tags': ['framasoft', 'peertube'], | |
1351 | 'categories': ['Science & Technology'], | |
1352 | } | |
1353 | }, { | |
1354 | 'url': 'https://peertube2.cpy.re/w/122d093a-1ede-43bd-bd34-59d2931ffc5e', | |
1355 | 'info_dict': { | |
1356 | 'id': '122d093a-1ede-43bd-bd34-59d2931ffc5e', | |
1357 | 'ext': 'mp4', | |
1358 | 'title': 'E2E tests', | |
1359 | 'uploader_id': '37855', | |
1360 | 'timestamp': 1589276219, | |
1361 | 'upload_date': '20200512', | |
1362 | 'uploader': 'chocobozzz', | |
1363 | } | |
1364 | }, { | |
1365 | 'url': 'https://peertube2.cpy.re/w/3fbif9S3WmtTP8gGsC5HBd', | |
1366 | 'info_dict': { | |
1367 | 'id': '3fbif9S3WmtTP8gGsC5HBd', | |
1368 | 'ext': 'mp4', | |
1369 | 'title': 'E2E tests', | |
1370 | 'uploader_id': '37855', | |
1371 | 'timestamp': 1589276219, | |
1372 | 'upload_date': '20200512', | |
1373 | 'uploader': 'chocobozzz', | |
1374 | }, | |
1375 | }, { | |
1376 | 'url': 'https://peertube2.cpy.re/api/v1/videos/3fbif9S3WmtTP8gGsC5HBd', | |
1377 | 'info_dict': { | |
1378 | 'id': '3fbif9S3WmtTP8gGsC5HBd', | |
1379 | 'ext': 'mp4', | |
1380 | 'title': 'E2E tests', | |
1381 | 'uploader_id': '37855', | |
1382 | 'timestamp': 1589276219, | |
1383 | 'upload_date': '20200512', | |
1384 | 'uploader': 'chocobozzz', | |
1385 | }, | |
1386 | }, { | |
1387 | # Issue #26002 | |
1388 | 'url': 'peertube:spacepub.space:d8943b2d-8280-497b-85ec-bc282ec2afdc', | |
1389 | 'info_dict': { | |
1390 | 'id': 'd8943b2d-8280-497b-85ec-bc282ec2afdc', | |
1391 | 'ext': 'mp4', | |
1392 | 'title': 'Dot matrix printer shell demo', | |
1393 | 'uploader_id': '3', | |
1394 | 'timestamp': 1587401293, | |
1395 | 'upload_date': '20200420', | |
1396 | 'uploader': 'Drew DeVault', | |
1397 | } | |
1398 | }, { | |
1399 | 'url': 'https://peertube.debian.social/videos/watch/0b04f13d-1e18-4f1d-814e-4979aa7c9c44', | |
1400 | 'only_matching': True, | |
1401 | }, { | |
1402 | # nsfw | |
1403 | 'url': 'https://vod.ksite.de/videos/watch/9bb88cd3-9959-46d9-9ab9-33d2bb704c39', | |
1404 | 'only_matching': True, | |
1405 | }, { | |
1406 | 'url': 'https://vod.ksite.de/videos/embed/fed67262-6edb-4d1c-833b-daa9085c71d7', | |
1407 | 'only_matching': True, | |
1408 | }, { | |
1409 | 'url': 'https://peertube.tv/api/v1/videos/c1875674-97d0-4c94-a058-3f7e64c962e8', | |
1410 | 'only_matching': True, | |
1411 | }, { | |
1412 | 'url': 'peertube:framatube.org:b37a5b9f-e6b5-415c-b700-04a5cd6ec205', | |
1413 | 'only_matching': True, | |
1414 | }] | |
1415 | ||
1416 | @staticmethod | |
1417 | def _extract_peertube_url(webpage, source_url): | |
1418 | mobj = re.match( | |
1419 | r'https?://(?P<host>[^/]+)/(?:videos/(?:watch|embed)|w)/(?P<id>%s)' | |
1420 | % PeerTubeIE._UUID_RE, source_url) | |
1421 | if mobj and any(p in webpage for p in ( | |
1422 | 'meta property="og:platform" content="PeerTube"', | |
1423 | '<title>PeerTube<', | |
1424 | 'There will be other non JS-based clients to access PeerTube', | |
1425 | '>We are sorry but it seems that PeerTube is not compatible with your web browser.<')): | |
1426 | return 'peertube:%s:%s' % mobj.group('host', 'id') | |
1427 | ||
1428 | @classmethod | |
1429 | def _extract_embed_urls(cls, url, webpage): | |
1430 | embeds = tuple(super()._extract_embed_urls(url, webpage)) | |
1431 | if embeds: | |
1432 | return embeds | |
1433 | ||
1434 | peertube_url = cls._extract_peertube_url(webpage, url) | |
1435 | if peertube_url: | |
1436 | return [peertube_url] | |
1437 | ||
1438 | def _call_api(self, host, video_id, path, note=None, errnote=None, fatal=True): | |
1439 | return self._download_json( | |
1440 | self._API_BASE % (host, video_id, path), video_id, | |
1441 | note=note, errnote=errnote, fatal=fatal) | |
1442 | ||
1443 | def _get_subtitles(self, host, video_id): | |
1444 | captions = self._call_api( | |
1445 | host, video_id, 'captions', note='Downloading captions JSON', | |
1446 | fatal=False) | |
1447 | if not isinstance(captions, dict): | |
1448 | return | |
1449 | data = captions.get('data') | |
1450 | if not isinstance(data, list): | |
1451 | return | |
1452 | subtitles = {} | |
1453 | for e in data: | |
1454 | language_id = try_get(e, lambda x: x['language']['id'], compat_str) | |
1455 | caption_url = urljoin('https://%s' % host, e.get('captionPath')) | |
1456 | if not caption_url: | |
1457 | continue | |
1458 | subtitles.setdefault(language_id or 'en', []).append({ | |
1459 | 'url': caption_url, | |
1460 | }) | |
1461 | return subtitles | |
1462 | ||
1463 | def _real_extract(self, url): | |
1464 | mobj = self._match_valid_url(url) | |
1465 | host = mobj.group('host') or mobj.group('host_2') | |
1466 | video_id = mobj.group('id') | |
1467 | ||
1468 | video = self._call_api( | |
1469 | host, video_id, '', note='Downloading video JSON') | |
1470 | ||
1471 | title = video['name'] | |
1472 | ||
1473 | formats = [] | |
1474 | files = video.get('files') or [] | |
1475 | for playlist in (video.get('streamingPlaylists') or []): | |
1476 | if not isinstance(playlist, dict): | |
1477 | continue | |
1478 | playlist_files = playlist.get('files') | |
1479 | if not (playlist_files and isinstance(playlist_files, list)): | |
1480 | continue | |
1481 | files.extend(playlist_files) | |
1482 | for file_ in files: | |
1483 | if not isinstance(file_, dict): | |
1484 | continue | |
1485 | file_url = url_or_none(file_.get('fileUrl')) | |
1486 | if not file_url: | |
1487 | continue | |
1488 | file_size = int_or_none(file_.get('size')) | |
1489 | format_id = try_get( | |
1490 | file_, lambda x: x['resolution']['label'], compat_str) | |
1491 | f = parse_resolution(format_id) | |
1492 | f.update({ | |
1493 | 'url': file_url, | |
1494 | 'format_id': format_id, | |
1495 | 'filesize': file_size, | |
1496 | }) | |
1497 | if format_id == '0p': | |
1498 | f['vcodec'] = 'none' | |
1499 | else: | |
1500 | f['fps'] = int_or_none(file_.get('fps')) | |
1501 | formats.append(f) | |
1502 | ||
1503 | description = video.get('description') | |
1504 | if description and len(description) >= 250: | |
1505 | # description is shortened | |
1506 | full_description = self._call_api( | |
1507 | host, video_id, 'description', note='Downloading description JSON', | |
1508 | fatal=False) | |
1509 | ||
1510 | if isinstance(full_description, dict): | |
1511 | description = str_or_none(full_description.get('description')) or description | |
1512 | ||
1513 | subtitles = self.extract_subtitles(host, video_id) | |
1514 | ||
1515 | def data(section, field, type_): | |
1516 | return try_get(video, lambda x: x[section][field], type_) | |
1517 | ||
1518 | def account_data(field, type_): | |
1519 | return data('account', field, type_) | |
1520 | ||
1521 | def channel_data(field, type_): | |
1522 | return data('channel', field, type_) | |
1523 | ||
1524 | category = data('category', 'label', compat_str) | |
1525 | categories = [category] if category else None | |
1526 | ||
1527 | nsfw = video.get('nsfw') | |
1528 | if nsfw is bool: | |
1529 | age_limit = 18 if nsfw else 0 | |
1530 | else: | |
1531 | age_limit = None | |
1532 | ||
1533 | webpage_url = 'https://%s/videos/watch/%s' % (host, video_id) | |
1534 | ||
1535 | return { | |
1536 | 'id': video_id, | |
1537 | 'title': title, | |
1538 | 'description': description, | |
1539 | 'thumbnail': urljoin(webpage_url, video.get('thumbnailPath')), | |
1540 | 'timestamp': unified_timestamp(video.get('publishedAt')), | |
1541 | 'uploader': account_data('displayName', compat_str), | |
1542 | 'uploader_id': str_or_none(account_data('id', int)), | |
1543 | 'uploader_url': url_or_none(account_data('url', compat_str)), | |
1544 | 'channel': channel_data('displayName', compat_str), | |
1545 | 'channel_id': str_or_none(channel_data('id', int)), | |
1546 | 'channel_url': url_or_none(channel_data('url', compat_str)), | |
1547 | 'language': data('language', 'id', compat_str), | |
1548 | 'license': data('licence', 'label', compat_str), | |
1549 | 'duration': int_or_none(video.get('duration')), | |
1550 | 'view_count': int_or_none(video.get('views')), | |
1551 | 'like_count': int_or_none(video.get('likes')), | |
1552 | 'dislike_count': int_or_none(video.get('dislikes')), | |
1553 | 'age_limit': age_limit, | |
1554 | 'tags': try_get(video, lambda x: x['tags'], list), | |
1555 | 'categories': categories, | |
1556 | 'formats': formats, | |
1557 | 'subtitles': subtitles, | |
1558 | 'webpage_url': webpage_url, | |
1559 | } | |
1560 | ||
1561 | ||
1562 | class PeerTubePlaylistIE(InfoExtractor): | |
1563 | IE_NAME = 'PeerTube:Playlist' | |
1564 | _TYPES = { | |
1565 | 'a': 'accounts', | |
1566 | 'c': 'video-channels', | |
1567 | 'w/p': 'video-playlists', | |
1568 | } | |
1569 | _VALID_URL = r'''(?x) | |
1570 | https?://(?P<host>%s)/(?P<type>(?:%s))/ | |
1571 | (?P<id>[^/]+) | |
1572 | ''' % (PeerTubeIE._INSTANCES_RE, '|'.join(_TYPES.keys())) | |
1573 | _TESTS = [{ | |
1574 | 'url': 'https://peertube.debian.social/w/p/hFdJoTuyhNJVa1cDWd1d12', | |
1575 | 'info_dict': { | |
1576 | 'id': 'hFdJoTuyhNJVa1cDWd1d12', | |
1577 | 'description': 'Diversas palestras do Richard Stallman no Brasil.', | |
1578 | 'title': 'Richard Stallman no Brasil', | |
1579 | 'timestamp': 1599676222, | |
1580 | }, | |
1581 | 'playlist_mincount': 9, | |
1582 | }, { | |
1583 | 'url': 'https://peertube2.cpy.re/a/chocobozzz/videos', | |
1584 | 'info_dict': { | |
1585 | 'id': 'chocobozzz', | |
1586 | 'timestamp': 1553874564, | |
1587 | 'title': 'chocobozzz', | |
1588 | }, | |
1589 | 'playlist_mincount': 2, | |
1590 | }, { | |
1591 | 'url': 'https://framatube.org/c/bf54d359-cfad-4935-9d45-9d6be93f63e8/videos', | |
1592 | 'info_dict': { | |
1593 | 'id': 'bf54d359-cfad-4935-9d45-9d6be93f63e8', | |
1594 | 'timestamp': 1519917377, | |
1595 | 'title': 'Les vidéos de Framasoft', | |
1596 | }, | |
1597 | 'playlist_mincount': 345, | |
1598 | }, { | |
1599 | 'url': 'https://peertube2.cpy.re/c/blender_open_movies@video.blender.org/videos', | |
1600 | 'info_dict': { | |
1601 | 'id': 'blender_open_movies@video.blender.org', | |
1602 | 'timestamp': 1542287810, | |
1603 | 'title': 'Official Blender Open Movies', | |
1604 | }, | |
1605 | 'playlist_mincount': 11, | |
1606 | }] | |
1607 | _API_BASE = 'https://%s/api/v1/%s/%s%s' | |
1608 | _PAGE_SIZE = 30 | |
1609 | ||
1610 | def call_api(self, host, name, path, base, **kwargs): | |
1611 | return self._download_json( | |
1612 | self._API_BASE % (host, base, name, path), name, **kwargs) | |
1613 | ||
1614 | def fetch_page(self, host, id, type, page): | |
1615 | page += 1 | |
1616 | video_data = self.call_api( | |
1617 | host, id, | |
1618 | f'/videos?sort=-createdAt&start={self._PAGE_SIZE * (page - 1)}&count={self._PAGE_SIZE}&nsfw=both', | |
1619 | type, note=f'Downloading page {page}').get('data', []) | |
1620 | for video in video_data: | |
1621 | shortUUID = video.get('shortUUID') or try_get(video, lambda x: x['video']['shortUUID']) | |
1622 | video_title = video.get('name') or try_get(video, lambda x: x['video']['name']) | |
1623 | yield self.url_result( | |
1624 | f'https://{host}/w/{shortUUID}', PeerTubeIE.ie_key(), | |
1625 | video_id=shortUUID, video_title=video_title) | |
1626 | ||
1627 | def _extract_playlist(self, host, type, id): | |
1628 | info = self.call_api(host, id, '', type, note='Downloading playlist information', fatal=False) | |
1629 | ||
1630 | playlist_title = info.get('displayName') | |
1631 | playlist_description = info.get('description') | |
1632 | playlist_timestamp = unified_timestamp(info.get('createdAt')) | |
1633 | channel = try_get(info, lambda x: x['ownerAccount']['name']) or info.get('displayName') | |
1634 | channel_id = try_get(info, lambda x: x['ownerAccount']['id']) or info.get('id') | |
1635 | thumbnail = format_field(info, 'thumbnailPath', f'https://{host}%s') | |
1636 | ||
1637 | entries = OnDemandPagedList(functools.partial( | |
1638 | self.fetch_page, host, id, type), self._PAGE_SIZE) | |
1639 | ||
1640 | return self.playlist_result( | |
1641 | entries, id, playlist_title, playlist_description, | |
1642 | timestamp=playlist_timestamp, channel=channel, channel_id=channel_id, thumbnail=thumbnail) | |
1643 | ||
1644 | def _real_extract(self, url): | |
1645 | type, host, id = self._match_valid_url(url).group('type', 'host', 'id') | |
1646 | type = self._TYPES[type] | |
1647 | return self._extract_playlist(host, type, id) |