
    V|h=                        S SK Jr  S SKrS SKrS SKrSSKJr  SSKJ	r	J
r
  SSKJr  SSKJr  SS	KJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJ r J!r!J"r"J#r#J$r$J%r%J&r&J'r'   " S
 S\5      r( " S S\5      r)g)    )annotationsN   )InfoExtractor)YoutubeBaseInfoExtractor	YoutubeIE   )HEADRequest)	HTTPError)KNOWN_EXTENSIONSExtractorErrorbug_reports_message
clean_htmldict_getextract_attributesget_element_by_id get_element_text_and_html_by_tagint_or_nonejoin_nonempty
js_to_jsonmerge_dictsmimetype2ext
orderedSetparse_durationparse_qsstr_or_none
str_to_inttraverse_objtry_getunified_strdateunified_timestampurl_or_noneurlhandle_detect_extc                     \ rS rSrSrSrSrSSSSS	S
SSSS/SSSSS.S.SSSSSSSSSSSSS S!.S.S"S#S$.S%S&S'S(S)SS*S(S+S,.S.S-S.S/S0S)S1S2S3S4S0S5S6SS7S8.S.S9S:S;S<S=S<S>/S?S@SASBSC.	S.SDSESFSGS=SHSISJSKSLSMSGS>/SASNSOSPSQ.S.SRSSSTSUSVSW.SXSY.SZS[S\S]SVS^S_S`SaSb.SXSY.ScSdSeSfSgShSiSj/SkSl.SmSnSSoSpSqSoSrSs.St.SuSvSSwSxSxSySzS{.St.S|S}SS~SSSSS.St./S.SSSVSS>/SSSSSSSSSSSS.S.SSSVSSSSSSS@SSSS.S./r\S 5       r	S r
Srg)ArchiveOrgIE'   zarchive.orgzarchive.org video and audiozKhttps?://(?:www\.)?archive\.org/(?:details|embed)/(?P<id>[^?#]+)(?:[?].*)?$zMhttp://archive.org/details/XD300-23_68HighlightsAResearchCntAugHumanIntellect 8af1d4cf447933ed3c7f4871162602dbz2XD300-23_68HighlightsAResearchCntAugHumanIntellectogvz01968 Demo - FJCC Conference Presentation Reel #1z$md5:da45c349df039f1cc8075268eb1b5c2519681210iK20100315zSRI Internationalzlaura@archive.orgz(re:https://archive\.org/download/.*\.jpgz6XD300-23_68HighlightsAResearchCntAugHumanIntellect.cdrz2XD300-23 68HighlightsAResearchCntAugHumanIntellect)idexttitledescriptionrelease_date	timestampupload_datecreatorsuploader	thumbnail
display_idtrack)urlmd5	info_dictz$https://archive.org/details/Cops1922 0869000b4ce265e8ca62738b336b268aCops1922mp4zBuster Keaton's "Cops" (1922)z$md5:cd6f9910c35aedd5fc237dbc3957e2cazyorkmba99@hotmail.comiR20131222zCops-v2.mp4gp=
@zCops-v2)r*   r+   r,   r-   r2   r/   r0   r4   r3   durationr5   zKhttp://archive.org/embed/XD300-23_68HighlightsAResearchCntAugHumanIntellectTr6   only_matchingz(https://archive.org/details/Election_Ads eec5cddebd4793c6a653b69c3b11f2e6z;Election_Ads/Commercial-JFK1960ElectionAdCampaignJingle.mpgz.Commercial-JFK1960ElectionAdCampaignJingle.mpgmpgg(\M@z*Commercial-JFK1960ElectionAdCampaignJingle)r*   r,   r+   r3   r=   r4   r5   zYhttps://archive.org/details/Election_Ads/Commercial-Nixon1960ElectionAdToughonDefense.mpg ea1eed8234e7d4165f38c8c769edef38z=Election_Ads/Commercial-Nixon1960ElectionAdToughonDefense.mpgz0Commercial-Nixon1960ElectionAdToughonDefense.mpgiMGzmikedavisstripmaster@yahoo.comzO1960 Presidential Campaign Election Commercials John F Kennedy, Richard M Nixon20080315gzGM@z1http://creativecommons.org/licenses/publicdomain/z,Commercial-Nixon1960ElectionAdToughonDefense)r*   r,   r+   r/   r2   r-   r0   r4   r=   licenser3   r5   zGhttps://archive.org/details/gd1977-05-08.shure57.stevenson.29303.flac16 7d07ffb42aba6537c28e053efa4b54c9zCgd1977-05-08.shure57.stevenson.29303.flac16/gd1977-05-08d01t01.flacTurningflaczGrateful Deadzgd1977-05-08d01t01.flacr   z-1977-05-08 - Barton Hall - Cornell UniversitygfffffC@)	r*   r,   r+   r5   r1   r4   track_numberalbumr=   z_https://archive.org/details/gd1977-05-08.shure57.stevenson.29303.flac16/gd1977-05-08d01t07.flac a07cd8c6ab4ee1560f8a0021717130f3zCgd1977-05-08.shure57.stevenson.29303.flac16/gd1977-05-08d01t07.flacDealiȁGzmvernon54@yahoo.comz$md5:6c921464414814720c6593810a5c7e3d20080319z Barton Hall - Cornell Universityg{Gj{@19770508zgd1977-05-08d01t07.flac   )r*   r,   r+   r/   r2   r-   r0   locationr=   r5   r1   rI   r.   r4   rH   z]https://archive.org/details/lp_the-music-of-russia_various-artists-a-askaryan-alexander-melik 7cb019baa9b332e82ea7c10403acd180zblp_the-music-of-russia_various-artists-a-askaryan-alexander-melik/disc1/01.01. Bells Of Rostov.mp3zBells Of Rostovmp3)r*   r,   r+   
restricted)r6   r7   r8   skipzhttps://archive.org/details/lp_the-music-of-russia_various-artists-a-askaryan-alexander-melik/disc1/02.02.+Song+And+Chorus+In+The+Polovetsian+Camp+From+%22Prince+Igor%22+(Act+2%2C+Scene+1).mp3 1d0aabe03edca83ca58d9ed3b493a3c3zlp_the-music-of-russia_various-artists-a-askaryan-alexander-melik/disc1/02.02. Song And Chorus In The Polovetsian Camp From "Prince Igor" (Act 2, Scene 1).mp3zKSong And Chorus In The Polovetsian Camp From "Prince Igor" (Act 2, Scene 1)i{&]z%associate-joygen-odiongan@archive.orgz$md5:012b2d668ae753be36896f343d12a23620190928)r*   r,   r+   r/   r2   r-   r0   z7https://archive.org/details/irelandthemakingofarepublicirelandthemakingofarepublicz!Ireland: The Making of a Republic20160610z$md5:f70956a156645a658a0dc9513d9e78b7zdimitrios@archive.orgz British Broadcasting CorporationzTime-Life FilmsiC4[W)r*   r,   r0   r-   r2   r1   r/    0b211261b26590d49df968f71b90690dzCirelandthemakingofarepublic/irelandthemakingofarepublicreel1_01.movz'irelandthemakingofarepublicreel1_01.movgQN`@zhttps://archive.org/download/irelandthemakingofarepublic/irelandthemakingofarepublic.thumbs/irelandthemakingofarepublicreel1_01_000117.jpgz#irelandthemakingofarepublicreel1 01)r*   r+   r,   r=   r3   r4   r5   )r7   r8    67335ee3b23a0da930841981c1e79b02zCirelandthemakingofarepublic/irelandthemakingofarepublicreel1_02.movgQ̕@z'irelandthemakingofarepublicreel1_02.movzhttps://archive.org/download/irelandthemakingofarepublic/irelandthemakingofarepublic.thumbs/irelandthemakingofarepublicreel1_02_001374.jpgz#irelandthemakingofarepublicreel1 02)r*   r+   r=   r,   r4   r3   r5    e470e86787893603f4a341a16c281eb5z@irelandthemakingofarepublic/irelandthemakingofarepublicreel2.movgHz
@z$irelandthemakingofarepublicreel2.movzhttps://archive.org/download/irelandthemakingofarepublic/irelandthemakingofarepublic.thumbs/irelandthemakingofarepublicreel2_001554.jpg irelandthemakingofarepublicreel2)r*   r+   r=   r,   r3   r4   r5   )r6   r8   playlistzOhttps://archive.org/details/gd95-04-02.sbd.11622.sbeok.shnf/gd95-04-02d1t04.shnz3gd95-04-02.sbd.11622.sbeok.shnf/gd95-04-02d1t04.shnz3Stuck Inside of Mobile with the Memphis Blues Againg)\$u@z$md5:764348a470b986f1217ffd38d6ac7b72zgd95-04-02d1t04.shnzPyramid Arenazjon@archive.orgz1995-04-02 - Pyramid Arena20040519   19950402i@)r*   r+   r,   r1   r=   r5   r-   r4   rO   r2   rI   r0   rH   r.   r/   r6   r8   z)https://archive.org/details/pra-KZ1908.02zpra-KZ1908.02zKZ1908.02_01.wavz&Crips and Bloods speak about gang lifez$md5:2b56b35ff021311e3554b47a285e70b3zjake@archive.orgg)\@zKZ1908.02 01i#O20120503i  )r*   r+   r4   r,   r-   r2   r=   r5   rH   r/   r0   release_yearc                d    [        SU 5      S   n[        R                  " [        U5      S   5      $ )Nzplay-avr   r\   )r   jsonloadsr   )webpageelements     U/home/james-whalen/.local/lib/python3.13/site-packages/yt_dlp/extractor/archiveorg.py_playlist_dataArchiveOrgIE._playlist_data   s-    29gFqIzz,W5jABB    c                   [         R                  R                  U R                  U5      5      nUR	                  S5      u  p4nU R                  SU 3U5      nU R                  U5      n0 nU H  n	U(       a  U	S   U:w  a  M  / / U	R                  S5      U	R                  S5      0 S.XS   '   U	R                  S/ 5       H2  n
U
S   S	:w  a  M  S
SU
S   R                  S5      -   0XS      U
S   '   M4     M     U R                  SU-   U5      nUS   nUS   n[        US[        14S[        1S[        SR                  144[        1[        [         4S[        1[         4SS[        1[        [        [        4S["        14S[$        14S[&        1[         4S[        14S[(        14S.	5      nUR+                  USU 3S.5        US    GH  nUS    U;   a  [-        XS       S!US-   US    -   0[        US"[        1[         4S [        14S[        1S[        SR                  144[        1[        [         4SS[        1[        [        [        4S#[.        14S$[(        14S%[        14S&[(        14S[(        14S'.	5      E5      XS    '   XS       nO![        US([        145      U;   a  XS(      nOM  UR                  S)5      S*:X  aq  US+   R1                  US    S,U-   S-   US    -   [)        UR                  S-5      5      [)        UR                  S-5      5      [)        UR                  S.5      5      S/.5        US    R3                  S05      u  nnnU(       d  S n[5        U R7                  S15      R                  S25      5      nU[8        ;   d  GM  UR                  S35      (       a
  U(       d  GM  US4   R1                  S,U-   S-   [         R                  R;                  US    5      -   UR                  S)5      [)        UR                  S-5      5      [)        UR                  S55      5      [)        UR                  S.5      5      S6UR                  S75      S(:X  a  S8OS9UR                  S75      S:.5        GM     UR=                  5        H  nS;US<'   M
     [?        U5      S=:X  aC  [A        [C        UR=                  5       5      5      nU(       a  [-        UU5      nO.[-        UU5      nO!S>US?'   [E        UR=                  5       5      US@'   UR                  SA5      (       ak  / USB'   USA    H]  nUSB   R1                  UR                  SC5      UR                  SD5      [G        SESFUSGSH9['        UR                  SI5      5      SJSK.5        M_     U$ )LN/zhttps://archive.org/embed/origartistr,   )formats
thumbnailsro   r5   	subtitlestrackskindrr   r6   zhttps://archive.org/filelabelzhttp://archive.org/metadata/metadata
identifierr-   . )r2   addercreator)N.
licenseurldate)
publicdate	addeddatevenueyear)	r,   r-   r2   r1   rD   r.   r/   rO   rb   zhttps://archive.org/details/)r*   webpage_urlfilesnamer*   )r,   r   lengthr5   rI   disc)	r,   r4   r-   r1   r=   rH   rI   
discnumberrb   originalformat	Thumbnailrq   zhttps://archive.org/download/widthsize)r*   r6   r   heightfilesize.zhttps://archive.orgzlogged-in-sigprivaterp   r   httpssourcer   )r6   r   r   r   r   protocolsource_preferenceformat_note)r   _format_sort_fieldsr   r\   _typeentriesreviewscomments	review_idreviewerreviewtitle
reviewbodyz

)	from_dictdelim
createdateroot)r*   authortextr/   parent)$urllibparseunquote_plus	_match_id	partition_download_webpageri   getlstrip_download_jsonr   stralljoinr   filteranyr!   r   r    r   updater   r   append
rpartitionbool_get_cookiesr   quotevalueslennextiterlistr   )selfr6   video_idrx   _entry_id
embed_pager\   r   pr5   rw   minfofentryhas_ext	extensionis_logged_in
only_videoreviews                        rh   _real_extractArchiveOrgIE._real_extract  s   <<,,T^^C-@A"*"4"4S"9
x ++.H,UWab
&&z2A AfI1  %%/w"GfI x,=K/1E&M4H4H4MM6&	"5>2 - * &&'E
'RT^_Z |_
Au%)SECsxxj3I+JZLZ`bef.s;"K#VL${m4#o%6758I7JCP 3%(#k]3
 
 
 	9*F
 	
 '"AyG#%061C*s*QvY6F"1"3cUC!@'-uo(5S388*?U7VYcXdflnq'r%.cUFCQW$X%-/?$@)0;-(@")C5!1'-}&=)/+(?
' 
F &&	"  &	*a*se!45@*.uuX+-l#**F):ZG#MPQRXPYY(w8)!%%.9 +AEE&M :,< = %&fI$8$8$=!Aw	 	
   1 12G H L L_ ]^L,,aeeI6F6F,,i '':ZG#MPVP\P\PbPbcdekclPmmeeHo(w8)!%%/: +AEE&M : './eeHo.KQS#$55?	) 	O #d ^^%E+7E'( & w<1d7>>#345J":t4"44 'DM"7>>#34DO<<	""!D"9-Z '' **[1$jj4)-QW_ef!26::l3K!L$)& ' . rk    N)__name__
__module____qualname____firstlineno__IE_NAMEIE_DESC
_VALID_URL_TESTSstaticmethodri   r   __static_attributes__r   rk   rh   r$   r$   '   s   G+G_J^1FGA&#%,-+DRI
& 615A/#%'D
" ] :1OEDJA
 k1QG#8l%LJDC
$ Y1W()3D

 q1W#-A%:()D&3
, o1v&

 
 R1 sb#?A%
  I/8%A/;=NO#
 :_ F & "n"KB :_  'F"K "nB :\  'C "k"H?/#
0d aGJ()JA/')1%&#
, ;!,=A*##% 
PFd C C~rk   r$   c                     \ rS rSrSrSrSrSSSSS	S
SSSSSSSS.S.SSSSSSSSSSSSSS.S.SS SS!S"S#S$S%S&SS%S'.
S.S(S)S*S+S,S-S.S/S0S1S2SS0S3.S.S4S5S*S6S7S8S9S:S;S<S=S>SS?.S.S@SASSBSCSDSESFSGSHSISSJS3.S.SKSLSSMSNSDSOSPSGSHSISSJS3.SQ/SR.SSSTS*SUSV.S.SWSXSSYSZS[S\S]S^SS_S`.
S.SaSbSScSdSeSfSgShSiSiSjSSk.S.SlSmS*SnSoSpSqSqSSrSsSt.
S.SuSvS*SwSxSySzSxSS{S|S}.
S.S~SSSSqSqSrSSSSS.
S.SSSSSSSSSSS.	S.SSSSSSSSSSSSS.S.SSSSSSSSSSSSSS.S.SSSSSSSSSSSS.
S.SSSSSSSSSSSS.
S.SSS.SSS.SSS.SSS.SSS.SSS.SSS.SSS.SSS./r\R                  r	S\R                   S3r
S/r\" / \QSPS V VVVs/ s H*  n/ [        S5      QSP7  H  o! U=(       d    S S3PM     M,     snnnn Q5      rSrSrSrSSS jjrS rS rS rS rS rSrgs  snnnn f )YoutubeWebArchiveIEi  zweb.archive:youtubez9web.archive.org saved youtube videos, "ytarchive:" prefixaE  (?x)(?:(?P<prefix>ytarchive:)|
            (?:https?://)?web\.archive\.org/
            (?:web/)?(?:(?P<date>[0-9]{14})?[0-9A-Za-z_*]*/)?  # /web and the version index is optional
            (?:https?(?::|%3[Aa])//)?(?:
                (?:\w+\.)?youtube\.com(?::(?:80|443))?/watch(?:\.php)?(?:\?|%3[fF])(?:[^\#]+(?:&|%26))?v(?:=|%3[dD])  # Youtube URL
                |(?:wayback-fakeurl\.archive\.org/yt/)  # Or the internal fake url
            )
        )(?P<id>[0-9A-Za-z_-]{11})
        (?(prefix)
            (?::(?P<date2>[0-9]{14}))?$|
            (?:%26|[#&]|$)
        )zVhttps://web.archive.org/web/20150415002341/https://www.youtube.com/watch?v=aYAGB11YrSsaYAGB11YrSswebmzTeam Fortress 2 - Sandviches!z$md5:4984c0f9a07f349fc5d8e82ab7af4eaf20110926ZeurelzUCukCyHaD-bK3in_pKpfH9Eg    z#https://www.youtube.com/user/Zeurelzre:https?://.*\.(jpg|webp)z8https://www.youtube.com/channel/UCukCyHaD-bK3in_pKpfH9Eg)r*   r+   r,   r-   r0   r2   
channel_idr=   uploader_iduploader_urlr3   channel_urlr`   zQhttps://web.archive.org/web/2oe/http://wayback-fakeurl.archive.org/yt/97t7Xj_iBv097t7Xj_iBv0r;   z!Why Machines That Bend Are Betterz$md5:00404df2c632d16a674ff8df1ecfbb6c20190312
VeritasiumzUCHnyfMqiRRG1u-2MsSQLbXAi  1veritasiumz(https://www.youtube.com/user/1veritasiumz8https://www.youtube.com/channel/UCHnyfMqiRRG1u-2MsSQLbXAzahttps://web.archive.org/web/20120712231619/http://www.youtube.com/watch?v=AkhihxRKcrs&gl=US&hl=enAkhihxRKcrsz6Limited Run: Mondo's Modern Classic 1 of 3 (SDCC 2012)20120712i  z$md5:ff4de6a7980cb65d951c2f6966a4f2f3	machinimaz&https://www.youtube.com/user/machinima)
r*   r+   r,   r0   r=   r-   r   r   r3   r2   zUhttps://web.archive.org/web/20081211103536/http://www.youtube.com/watch?v=jNQXAC9IVRwjNQXAC9IVRwflvzMe at the zoo20050423UC4QobU6STFB0P71PMvOGN5A   z$md5:10436b12e07ac43ff8df65287a56efb4jawedz"https://www.youtube.com/user/jawedz8https://www.youtube.com/channel/UC4QobU6STFB0P71PMvOGN5A)r*   r+   r,   r0   r   r=   r-   r   r   r   r3   r2   zUhttps://web.archive.org/web/20110712231407/http://www.youtube.com/watch?v=lTx3G6h2xyAlTx3G6h2xyAz"Madeon - Pop Culture (live mashup)20110711MadeonUCqMDNf3Pn5L7pcNkuSEeO3w   z$md5:f7535343b6eda34a314eff8b85444680	itsmadeonz&https://www.youtube.com/user/itsmadeonz8https://www.youtube.com/channel/UCqMDNf3Pn5L7pcNkuSEeO3w)r*   r+   r,   r0   r2   r   r=   r-   r   r   r   r3   zChttps://web.archive.org/https://www.youtube.com/watch?v=1JYutPM8O6E1JYutPM8O6Ez3Fake Teen Doctor Strikes AGAIN! - Weekly Weird News20160218UCdIaNUarhzLSXGoItz7BHVAi  z$md5:21032bae736421e89c2edf36d1936947MachinimaETCz)https://www.youtube.com/user/MachinimaETCz8https://www.youtube.com/channel/UCdIaNUarhzLSXGoItz7BHVAzETC NewszVhttps://web.archive.org/web/20180803221945/https://www.youtube.com/watch?v=6FPhZJGvf4E6FPhZJGvf4Ez1WTF: Video Games Still Launch BROKEN?! - T.U.G.S.20160219i  z$md5:a1dbf12d9a3bd7cb4c5e33b27d77ffe7z=unable to download capture webpage \(it may not be archived\))r6   r8   expected_warningszPhttp://web.archive.org/web/20070302011044/http://youtube.com/watch?v=-06-KB9XTzgz-06-KB9XTzgzNew Coin Hack!! 100% Safe!!)r*   r+   r,   z;web.archive.org/https://www.youtube.com/watch?v=dWW7qP423y8dWW7qP423y8zIt's Bootleg AirPods Time.20211021UC7Jwj9fkrf1adN4fMmTkpugz8https://www.youtube.com/channel/UC7Jwj9fkrf1adN4fMmTkpugi*  z$md5:7b567f898d8237b256f36c1a07d6d7bcDankPods)
r*   r+   r,   r0   r   r   r=   r-   r3   r2   zXhttps://web.archive.org/web/20200827003909if_/http://www.youtube.com/watch?v=6Dh-RL__uN4z6Dh-RL__uN4zbitch lasagna20181005zUC-lHJZR3Gqxm24_Vd_AJ5Ywz8https://www.youtube.com/channel/UC-lHJZR3Gqxm24_Vd_AJ5Yw   z$md5:2dbe4051feeff2dab5f41f82bb6d11d0	PewDiePiez&https://www.youtube.com/user/PewDiePie)r*   r+   r,   r0   r   r   r=   r-   r2   r   r   r3   zIhttps://web.archive.org/web/0/https://www.youtube.com/watch?v=8XeW5ilk-9Yz8XeW5ilk-9Yz(Story of Stuff, The Critique Part 4 of 4i  z$md5:28157da06f2c5e94c97f7f3072509972HowTheWorldWorksz-https://www.youtube.com/user/HowTheWorldWorks20090520)
r*   r+   r,   r=   r-   r2   r   r3   r   r0   zUhttps://web.archive.org/web/20110126141719/http://www.youtube.com/watch?v=Q_yjX80U7YcQ_yjX80U7Ycz5Spray Paint Art by Clay Butler: Purple Fantasy Forestclaybutlermusicz$md5:4595264559e3d0a0ceb3f011f633454320090803   z,https://www.youtube.com/user/claybutlermusic)
r*   r+   r,   r   r-   r0   r2   r3   r=   r   zIhttps://web.archive.org/web/0/https://www.youtube.com/watch?v=c5uJgG05xUYc5uJgG05xUYz(Story of Stuff, The Critique Part 1 of 420090513z$md5:4ca77d79538064e41e4cc464e93f44f0i  )
r*   r+   r,   r   r2   r   r0   r-   r3   r=   zUhttps://web.archive.org/web/20120607174520/http://www.youtube.com/watch?v=xWTLLl-dQaAzxWTLLl-dQaAz,Black Nerd eHarmony Video Bio Parody (SPOOF)z,https://www.youtube.com/user/BlackNerdComedyz$md5:e25f0133aaf9e6793fb81c18021d193eBlackNerdComedy   )	r*   r+   r,   r   r-   r   r2   r=   r3   zIhttps://web.archive.org/web/*/https://www.youtube.com/watch?v=9eO1aasHyTM9eO1aasHyTMz	Polar-oidz Cameras and bears are dangerous!z&https://www.youtube.com/user/punkybird	punkybird   UC62R2cBezNBOqxSerfb1nMQz8https://www.youtube.com/channel/UC62R2cBezNBOqxSerfb1nMQ20060428)r*   r+   r,   r-   r   r   r=   r   r   r0   r2   zbhttps://web.archive.org/web/20200416034815/https://www.youtube.com/watch?v=Cf7vS8jc7dY&gl=US&hl=enCf7vS8jc7dYzDA Dramatic Pool Story (by Jamie Spicer-Lewis) - Game Grumps Animated@   20200408
GameGrumpsz8https://www.youtube.com/channel/UC9CuvdOVfMPvKCiwdGKL3cQUC9CuvdOVfMPvKCiwdGKL3cQz$md5:c625bb3c02c4f5fb4205971e468fa341z'https://www.youtube.com/user/GameGrumps)r*   r+   r,   r=   r0   r   r2   r   r   r3   r-   r   z$ytarchive:kbh4T_b4Ixw:20160307085057kbh4T_b4IxwzXShovel Knight OST - Strike the Earth! Plains of Passage 16 bit SNES style remake / remixz8https://www.youtube.com/channel/UCnTaGvsHmMy792DWeT6HbGAzNelward music   z$md5:804b4a9ce37b050a5fefdbb23aeba54d20150503UCnTaGvsHmMy792DWeT6HbGA)
r*   r+   r,   r   r2   r=   r-   r3   r0   r   zIhttps://web.archive.org/web/0/https://www.youtube.com/watch?v=SOm7mPoPskUSOm7mPoPskUz Boyfriend - Justin Bieber Parodyz.https://www.youtube.com/user/thecomputernerd01thecomputernerd01z$md5:dd7fa635519c2a5b4d566beaecad7491   20120407)
r*   r+   r,   r   r2   r3   r-   r=   r0   r   zFhttps://web.archive.org/web/http://www.youtube.com/watch?v=kH-G_aIBlFwTr>   zXhttps://web.archive.org/web/20050214000000_if/http://www.youtube.com/watch?v=0altSZ96U4Mzchttps://web.archive.org/web/20210530071008/https://www.youtube.com/watch?v=lHJTf93HL1s&spfreload=10zohttps://web.archive.org/web/20120712231619/http%3A//www.youtube.com/watch%3Fgl%3DUS%26v%3DAkhihxRKcrs%26hl%3Denzohttps://web.archive.org/web/20120712231619/http%3A//www.youtube.com/watch%3Fv%3DAkhihxRKcrs%26gl%3DUS%26hl%3Denznhttps://web.archive.org/web/20060527081937/http://www.youtube.com:80/watch.php?v=ELTFsLT73fA&amp;search=soccerzEhttps://web.archive.org/http://www.youtube.com:80/watch?v=-05VVye-ffgz$ytarchive:BaW_jenozKc:20050214000000zytarchive:BaW_jenozKczq(?x:
        (?:window\s*\[\s*["\']ytInitialPlayerResponse["\']\s*\]|ytInitialPlayerResponse)\s*=[(\s]*|
        z
    )zi.ytimg.comzimg.youtube.com)is   	    z
.ytimg.comz"https://web.archive.org/web/%sif_/l   Hl   @kyJNc           	        USSSS/U=(       d    / -   U=(       d    / S.U=(       d    0 EnU R                  SUU=(       d    SXWS9n[        U[        5      (       a;  [        U5      S	:  a,  US
S   V	s/ s H  n	[	        [        US   U	5      5      PM     sn	$ [        U[        5      (       a  [        U5      S:w  a  U R                  S[        5       -   5        g g s  sn	f )Nrd   z"original,mimetype,length,timestampi  zstatuscode:200)r6   outputfllimitr   collapsez&https://web.archive.org/cdx/search/cdxzDownloading CDX API JSON)queryfatalr   r   r   z$Error while parsing CDX API response)r   
isinstancer   r   dictzipreport_warningr   )
r   item_idr6   filtersr-  r.  noter/  resvs
             rh   _call_cdx_api!YoutubeWebArchiveIE._call_cdx_api  s     6'(GMr: B
 {
 !!4g..e " J c4  SX]25ab':'QDSVQ('::C&&#c(a- FI\I^ ^_ +8 ;s   1"Cc                F    U R                  USS9nU R                  SUSSS9$ )Nr(  defaultz/(?:YouTube\s*-\s*(.*)$)|(?:(.*)\s*-\s*YouTube$)r,   )_html_extract_title_html_search_regex)r   rf   
page_titles      rh   _extract_webpage_title*YoutubeWebArchiveIE._extract_webpage_title  s9    --gr-B
&&> ' - 	-rk   c                	  ^ ^ T(       a  U U4S jOS nT R                  T R                  TSU0 S9nT R                  T R                  TSU0 S9n0 n[        R                  " ST5       H2  nUR                  T R                  XqSS[        S	S
9=(       d    0 5        M4     T R                  STSUS S9=(       d    UR                  S5      =(       d    0 nT R                  STSU0 S9n	U	(       a  [        US5      (       d  XS'   U(       d$  T R                  [        US5      =(       d    SUSS9n[        US[        S0 S9n
[        US[        S0 S9n[        US[        S0 S9nUR                  S5      =(       dq    [        R                  " US5      =(       dS    [        R                  " U
S5      =(       d5    [        US5      =(       d"    T R                  T5      =(       d
    U" / SQ5      nU 4S jnSnT R                  SU S3S U 3/TS!S S9n[        UR                  S"5      5      nU" US#5      =(       d!    U" US#5      =(       d    UR                  S$5      nU(       a  S%U 3OS nT R                  / S&QTS'S S9=(       dl    T R!                  S(S)/[#        S*T5      S'S S9=(       dG    T R!                  S+[#        S,T5      S'S S9=(       d$    [        US-5      =(       d    UR                  S.5      n[%        UR                  S/5      =(       dm    UR                  S05      =(       dU    U" S/5      =(       dF    T R                  S1TS2S S3S49=(       d,    U" US55      =(       d    U" US55      =(       d    [        US65      5      nU(       a  S7U 3OS n['        UR                  S85      =(       d;    UR                  S85      =(       d#    [        US9SS:9=(       d    [)        U" S;5      5      5      nUR                  S<5      =(       dD    [        R                  " US=5      =(       d&    [+        [#        S>T5      5      =(       d
    U" / S?Q5      n[-        [/        US@5      =(       d%    U" SASB/5      =(       d    T R                  / SCQTSDS S95      nUUUUUUUUUSE.	$ )FNc                &   > TR                  U TS S9$ )Nr<  )_html_search_meta)xr   rf   s    rh   <lambda>7YoutubeWebArchiveIE._extract_metadata.<locals>.<lambda>  s    $"8"8GT"8"Rrk   c                    g )Nr   rF  s    rh   rG  rH    s    osrk   zinitial player responser<  zinitial dataz2yt\.setConfig\(\s*(?P<json>{\s*(?s:.+?)\s*})\s*\);FTr(  )r/  ignore_extratransform_sourceerrnotez3(?:yt\.playerConfig|ytplayer\.config|swfConfig)\s*=zplayer configPLAYER_CONFIGzswfArgs\s*=z
swf config)argsrO  )rO  player_responsez{}r/  )contentstwoColumnWatchNextResultsresultsrT  rR  .videoPrimaryInfoRenderer)expected_typeget_allr=  videoDetails)microformatplayerMicroformatRendererr,   )rO  r,   )zog:titleztwitter:titler,   c                H   > TR                  SU S3U =(       d    SU S3S S9$ )Nz(?:z)/([^/#&?]+)r(  z idr<  )_search_regex)r6   type_r   s     rh   id_from_url:YoutubeWebArchiveIE._extract_metadata.<locals>.id_from_url!  s9    %%ug\*CI2%}d & T Trk   zFhref="[^"]*(?P<url>https?://www\.youtube\.com/(?:user|channel)/[^"]+)"z;<(?:link\s*itemprop=\"url\"|a\s*id=\"watch-username\").*?\b>zP<div\s*id=\"(?:watch-channel-stats|watch-headline-user-info)\"[^>]*>\s*<a[^>]*\bzuploader or channel urlownerProfileUrluserVIDEO_USERNAMEzhttps://www.youtube.com/user/)z9<a\s*id="watch-username"[^>]*>\s*<strong>([^<]+)</strong>z$var\s*watchUsername\s*=\s*\'(.+?)\';zA<div\s*\bid=\"watch-channel-stats"[^>]*>\s*<a[^>]*>\s*(.+?)\s*</az2<a\s*id="watch-userbanner"[^>]*title="\s*(.+?)\s*"r2   z=(?s)<div\s*class="yt-user-info".*?<a[^>]*[^>]*>\s*(.*?)\s*</az+(?s)<a[^>]*yt-user-name[^>]*>\s*(.*?)\s*</azwatch7-user-headerz6<button\s*href="/user/[^>]*>\s*<span[^>]*>\s*(.+?)\s*<zwatch-headline-user-info)rO  r{   r   	channelIdexternalChannelIdz6data-channel-external-id=(["\'])(?P<id>(?:(?!\1).)+)\1z
channel idr*   )r=  groupchannel)rO  ucidz https://www.youtube.com/channel/lengthSeconds)rO  )length_secondsl)rW  r=   shortDescriptionr-   zeow-description)r-   zog:descriptionztwitter:description)
uploadDatepublishDaterm  datePublished)z&(?s)id="eow-date.*?>\s*(.*?)\s*</span>z(?:id="watch-uploader-info".*?>.*?|["\']simpleText["\']\s*:\s*["\'])(?:Published|Uploaded|Streamed live|Started) on (.+?)[<"\']zSclass\s*=\s*"(?:watch-video-date|watch-video-added post-date)"[^>]*>\s*([^<]+?)\s*<zupload date)	r,   r-   r0   r2   r   r   r=   r   r   )_search_json_YT_INITIAL_PLAYER_RESPONSE_RE_YT_INITIAL_DATA_RErefindallr   _parse_jsonr   r   r   r1  r   	_get_textrA  r\  r!   r?  r   r   r   r   r   r   r   )r   r   rf   search_metarP  initial_dataytcfgjplayer_configswf_argsinitial_data_videovideo_detailsmicroformatsvideo_titler^  _CHANNEL_URL_HREF_REuploader_or_channel_urlowner_profile_urlr   r   r2   r   r   r=   r-   r0   s   ` `                       rh   _extract_metadata%YoutubeWebArchiveIE._extract_metadata  s[   W^Res++//:Sb , " (($$g~xQS ) U QSZ[ALL))!UQUhr|~)  F  DF  G \
 F(D  B 0 yy)0 .0	 	 $$^WlH^`$aL	BB$,&!"..],GHPDRZbg / iO *  Gr; %^4XZ\ $IY]glvxz g& C'11,HC'112DgNC M+<=C **73	C
 AB 		T
  i"&"4"4KL`Kaabc`au`vwy. #5 #>
 ((8(89J(KL )62 +2F;+yy)* 	 IT6{mDY] H T  3 + &&Q?A!"6@*VZ ' \+ &&I!"<gF
\` ' b+ M+>?+   * 	" !k* = 34=;'= !!It4 " A= ,i8= 2I>= M+;<	>
 JT8EY]o. 707M+LV[\7 k*56	8 01 U'11,NU+,=wGHU ST	 	 &\#@A 6L/:;6!!i 	 " 67 !&& $& (&

 
	
rk   c                  ^  ST R                  S5      ;   nU(       a  T R                  OT R                   VVs/ s H-  o2(       a  SOS  H  nSR                  US:X  a  SOSXS	9PM     M/     nnn/ nU HF  nT R	                  XS
/S/SS0S9nU(       d  M"  UR                  U 4S jU 5       5        U(       a  MF    O   T R                  U5        U$ s  snnf )Nrq   	check_all)jpgwebp)r  z#http://{server}/vi{webp}/{video_id}r  _webpr(  )r  r   serverzmimetype:image/(?:webp|jpeg)urlkey	matchTypeprefixr5  r-  r.  c              3  $  >#    U  H  nTR                   [        UR                  S 5      5      =(       d    TR                  -  UR                  S5      -   [        UR                  S5      5      [        UR                  S5      5      S.v   M     g7f)r/   r   r   )r6   r   
preferenceN)_WAYBACK_BASE_URLr   r   _OLDEST_CAPTURE_DATE).0thumbnail_dictr   s     rh   	<genexpr>:YoutubeWebArchiveIE._extract_thumbnails.<locals>.<genexpr>  s      2
 )1n !22k.BTBTU`Ba6b6fjff  A  ES  EW  EW  Xb  Ec  c +N,>,>x,H I"-n.@.@.J"K )1s   BB)_configuration_arg_YT_ALL_THUMB_SERVERS_YT_DEFAULT_THUMB_SERVERSr   r9  extend_remove_duplicate_formats)	r   r   try_allr  r+   thumbnail_base_urlsrq   r6   responses	   `        rh   _extract_thumbnails'YoutubeWebArchiveIE._extract_thumbnailss  s#   $"9"9+"FF :A455dFdFdd]d  FM  sB  S[  s[jm  EKK6MrH  L  U s[ Ud 	 ] 
&C))(F'G"K+B * DH  2
 )12 2 7 ' 	&&z2+]s   4Cc                   / nU R                  USU 3S/SS/SS0S9=(       d    / n[        S U 5       5      nU Vs/ s H  ofS	:  d  M
  UPM     nnU(       a  UR                  US
   5        UR                  U5        U(       a  UR                  US
   5        SU R                  S5      ;   a  UR	                  Xu-   5        UR	                  U R
                  U R                  /5        [        [        S U5      5      $ s  snf )Nz https://www.youtube.com/watch?v=zmimetype:text/htmlztimestamp:6digestr  r  r  c              3  `   #    U  H$  n[        US    5      c  M  [        US    5      v   M&     g7f)r/   N)r   )r  rs     rh   r  9YoutubeWebArchiveIE._get_capture_dates.<locals>.<genexpr>  s-     w8a{[\]h[iOj9k!K.998s   ..l   @y6/}Ir   capturesr  )	r9  sortedr   r  r  r  _NEWEST_CAPTURE_DATEr   r   )r   r   url_datecapture_datesr  all_capturesrF  modern_capturess           rh   _get_capture_dates&YoutubeWebArchiveIE._get_capture_dates  s   %%8
C)*mX5NWbdlVm & o urt 	 w8ww '3Jl>6I1lJ  !34X&  a100==  !?@ 	d779R9RST&}566 Ks   	C=
C=c           	        U R                  U5      R                  SSS5      u  p#nU=(       d    UnS nU R                  SS9nU H"  n U R                  [	        SU 35      USSS	9nM$     UR                  (       a  U R                  UR                  SUS9  U R                  U[        U5      5      n	U R                  S[        U	SS06-   5        SU0n
U	 H{  nU R!                  U R"                  S-   X4-  USSSS9nU R%                  X,=(       d    S5      nUR'                  S5      (       d  MY  [)        X5      n
SU R+                  S5      ;  d  M{    O   U R-                  U5      U
S'   U(       GaV  [.        R0                  R3                  UR4                  5      n[7        U5      nU[        UR8                  R'                  S5      5      S.n[;        US 5      nU(       aJ  U[<        R>                  ;   a6  URA                  [<        R>                  U   5        URA                  SU05        Oh[;        US 5      n[C        U5      =(       d6    [E        U5      =(       d$    [C        UR8                  R'                  S5      5      nURA                  S U05        U/U
S!'   U
R'                  S"5      (       d  [G        [;        US# 5      5      U
S"'   U
R'                  S5      (       d  X*S'   U
$ ! [
         ab  n[        UR                  [        5      (       a1  UR                  R                  S
:X  a  U R                  SSS9   S nAGM  Xl         S nAGM  S nAff = f)$Nr*   r}   date2FrQ  zGhttps://web.archive.org/web/2oe_/http://wayback-fakeurl.archive.org/yt/z Fetching archived video file urlT)r6  expected_statusi  ziThe requested video is not archived, indexed, or there is an issue with web.archive.org (try again later))expected)r  r   zCaptures to try: r   z, z!http://www.youtube.com/watch?v=%sz;unable to download capture webpage (it may not be archived)zDownloading capture webpage)r   r/  rM  r6  r(  r,   r  r  rq   zx-archive-orig-content-length)r6   r   c                    U S   S   $ )Nitagr   r   rJ  s    rh   rG  3YoutubeWebArchiveIE._real_extract.<locals>.<lambda>  s    &	!rk   	format_idc                    U S   S   $ )Nmimer   r   rJ  s    rh   rG  r    s    AfIaLrk   zx-archive-guessed-content-typer+   rp   r=   c                    U S   S   $ )Ndurr   r   rJ  s    rh   rG  r    s    STUZS[\]S^rk   )$_match_valid_urlrf  RetryManager_request_webpager	   r   r0  causer
   statusraise_no_formatserrorr  r   write_debugr   r   r  r  r   r   r  r  r   r   unquoter6   r   headersr   r   _formatsr   r   r"   r   )r   r6   r   r  
url_date_2urlhretry_managerretryer  r   capturerf   current_infovideo_file_url_qsfmtr  r  r+   s                      rh   r   !YoutubeWebArchiveIE._real_extract  s#   )-)>)>s)C)I)I$PVX_)`&J)z)))6"E
$,,"ijris tu#EW[ - ] # !!-"5"5x!X//+h:OP,}m/XSW/XXYh$G,,''*MMRYQdd!8u2 - 4G  11(MrJL(("46T%<%<[%II % "55h?\,,&&txx0C (;t||7G7GHg7h+ijC,.DED	 2 22

9--d34

K./02HI#D) [.t4[&t||'7'78X'YZ  

E3<("eDO88J''#-g6GI^._#`Z xx  $Mc " $aggy11aggnn6K)) D  OS * T T #$KK$s   K!!
M+A	M;MMr   )NNNNF)r5  list | Noner-  r  r.  zdict | None)r   r   r   r   r   r   r   r   r   rr  rq  r  r   ranger  r  r  r  r9  rA  r  r  r  r   r   )r  cnr  s   0000rh   r   r     s   #GIGJ l#8E)$8' E:Y	
$ g#<E)(8, J:Y
( w#R)E* H:'	
$ k#()8E& DY:#
$ k#=)$8E* HY:
$ Y#N)8 E- KY:&
& l#L)8E- KY:& Q"#
* f#6
 Q#6)8YE:&
  n#()8YE'* H:
& _#CE.1: O)
" k#P0E)-: N
" _#C1. O)E:
" k#G NE0-:

  _#$A H*8Y)'
$ x#_)+(Y8:E I
& :#sY+E:)8
" _#; P/:E)2
  \!
 n!

 y!

 E!
 E!
 D!
 [!
 :!
 +!
c	uFl	 3FF+		!	@	@A B&	"
 "/& 	B
#  	B%6  	B]g  :A]gXYqsxyzs{q}~qlmCRy
:Sq:S]g  :A  	BC =))`(-
B270<g :As   91Gr   )*
__future__r   rd   rs  urllib.parser   commonr   youtuber   r   
networkingr	   networking.exceptionsr
   utilsr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r$   r   r   rk   rh   <module>r     s]    "  	  ! 8 $ -      8Y= Yx
]	- ]	rk   