peertube.py 77 KB

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