
    Ği                        d dl mZ d dlZd dlZd dlZddlmZ ddlm	Z	 ddl
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ  G d d	e          Z G d
 de          ZdS )    )annotationsN   )InfoExtractor)YoutubeBaseInfoExtractor   )KNOWN_EXTENSIONS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
orderedSetparse_durationparse_qsstr_or_nonetraverse_objunified_strdateunified_timestampurl_or_nonec                     e Zd ZdZdZdZdddddd	d
dddgdddddddddddddddddddd dd!d"d#d$d%d&d'd(dd)d'd*d+dd,d-d.d/d(d0d1d2d3d/d4d5dd6d7dd8d9d:d;d<d;d=gd>d?d@dAdB	ddCdDdEdFd<dGdHdIdJdKdLdFd=gd@dMdNdOdPddQdRdSdTdUdVdWdXdYdZd[d\dUd]d^d_d`dadWdXdbdcdddedfdgdhdigdjdkdldmddndodpdndqdrdsdtduddvdwdwdxdydzdsd{d|dd}d~dd~dddsgddddUdd=gddddddddddddddddUddddddd?dddddgZed             Zd Z	dS )ArchiveOrgIEz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$   r)   r&   r'   r+   r*   durationr,   zKhttp://archive.org/embed/XD300-23_68HighlightsAResearchCntAugHumanIntellectTr-   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"   r*   r4   r+   r,   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&   r)   r$   r'   r+   r4   licenser*   r,   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"   r,   r(   r+   track_numberalbumr4   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&   r)   r$   r'   locationr4   r,   r(   r@   r%   r+   r?   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)r-   r.   r/   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&   r)   r$   r'   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#   r'   r$   r)   r(   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#   r4   r*   r+   r,   )r.   r/    67335ee3b23a0da930841981c1e79b02zCirelandthemakingofarepublic/irelandthemakingofarepublicreel1_02.movgQ̕@z'irelandthemakingofarepublicreel1_02.movzhttps://archive.org/download/irelandthemakingofarepublic/irelandthemakingofarepublic.thumbs/irelandthemakingofarepublicreel1_02_001374.jpgz#irelandthemakingofarepublicreel1 02)r!   r"   r4   r#   r+   r*   r,    e470e86787893603f4a341a16c281eb5z@irelandthemakingofarepublic/irelandthemakingofarepublicreel2.movgHz
@z$irelandthemakingofarepublicreel2.movzhttps://archive.org/download/irelandthemakingofarepublic/irelandthemakingofarepublic.thumbs/irelandthemakingofarepublicreel2_001554.jpg irelandthemakingofarepublicreel2)r!   r"   r4   r#   r*   r+   r,   )r-   r/   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#   r(   r4   r,   r$   r+   rF   r)   r@   r'   r?   r%   r&   r-   r/   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"   r+   r#   r$   r)   r4   r,   r?   r&   r'   release_yearc                |    t          d|           d         }t          j        t          |          d                   S )Nzplay-avr   rS   )r   jsonloadsr   )webpageelements     `C:\Users\betacode\Desktop\descargarYoutube\venv\Lib\site-packages\yt_dlp/extractor/archiveorg.py_playlist_datazArchiveOrgIE._playlist_data   s4    29gFFqIz,W55jABBB    c                   t           j                            |                     |                    }|                    d          \  }}}|                     d| |          }|                     |          }i }|D ]}	|r|	d         |k    rg g |	                    d          |	                    d          i d||	d         <   |	                    dg           D ]D}
|
d         d	k    rd
d|
d                             d          z   i||	d                  |
d         <   E| 	                    d| |          }|d         }|d         }t          |dt          hfdt          hdt          dj        hfft          ht          t           fdt          ht           fddt          ht          t          t          fdt"          hfdt$          hfdt&          ht           fdt          hfdt(          hfd	          }|                    |d| d           |d         D ]1}|d          |v rt-          ||d                   d!|dz   |d          z   it          |d"t          ht           fd t          hfdt          hdt          dj        hfft          ht          t           fddt          ht          t          t          fd#t.          hfd$t(          hfd%t          hfd&t(          hfdt(          hfd'	                    ||d          <   ||d                   }n+t          |d(t          hf          |v r||d(                  }n|                    d)          d*k    r|d+                             |d          d,|z   dz   |d          z   t)          |                    d-                    t)          |                    d-                    t)          |                    d.                    d/           |d                              d0          \  }}}|sd }t5          |                     d1                              d2                    }|t8          v r|                    d3          r|r|d4                             d,|z   dz   t           j                            |d                    z   |                    d)          t)          |                    d-                    t)          |                    d5                    t)          |                    d.                    d6|                    d7          d(k    rd8nd9|                    d7          d:           3|                                D ]}d;|d<<   t?          |          d=k    rRtA          tC          |                                                    }|rt-          ||          }n:t-          ||          }n)d>|d?<   tE          |                                          |d@<   |                    dA          rg |dB<   |dA         D ]z}|dB                             |                    dC          |                    dD          tG          dEdF|dGH          t'          |                    dI                    dJdK           {|S )LN/zhttps://archive.org/embed/origartistr#   )formats
thumbnailsre   r,   	subtitlestrackskindrh   r-   zhttps://archive.org/filelabelzhttps://archive.org/metadata/metadata
identifierr$   . )r)   addercreator)N.
licenseurldate)
publicdate	addeddatevenueyear)	r#   r$   r)   r(   r;   r%   r&   rF   rY   zhttps://archive.org/details/)r!   webpage_urlfilesnamer!   )r#   rz   lengthr,   r@   disc)	r#   r+   r$   r(   r4   r?   r@   
discnumberrY   originalformat	Thumbnailrg   zhttps://archive.org/download/widthsize)r!   r-   r   heightfilesize.zhttps://archive.orgzlogged-in-sigprivaterf   r   httpssourcer   )r-   r   r   r   r   protocolsource_preferenceformat_note)r   _format_sort_fieldsr   rS   _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_webpager`   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   )selfr-   video_idrn   _entry_id
embed_pagerS   r   pr,   rm   minfofentryhas_ext	extensionis_logged_in
only_videoreviews                        r_   _real_extractzArchiveOrgIE._real_extract   s   <,,T^^C-@-@AA"*"4"4S"9"9
Ax ++,U,U,UWabb
&&z22 	 	A  AfI11  %%//w" "GAfI x,,  =K//1E&M4H4H4M4MM6&	"5>22 &&'Sz'S'SU_``Z |_
Au%)SECsxj3I+JZLZ`bef.s;"K#VL${m4#o%6758I7JCP 3%(#k]3
 
 
 
 
 
 	F*FF
 
 	 	 	
 '" 0	 0	AyG##%061C*s*QvY6F"1"3cUC!@'-uo(5S38*?U7VYcXdflnq'r%.cUFCQW$X%-/?$@)0;-(@")C5!1'-}&=)/+(?
' 
' 
 
F & &&	"  &	*a*se!455@@*.uuX+--l#**F):ZG#MPQRXPYY(w88)!%%..99 +AEE&MM : :,< ,< = = = %&fI$8$8$=$=!Aw	 ! 	
   1 12G H H L L_ ] ]^^L,,,aeeI6F6F,,,i '':ZG#MPVP\PbPbcdekclPmPmmeeHoo(w88)!%%//:: +AEE&MM : : './eeHoo.K.KQS#$55??	) 	) 	 	 	 ^^%% 	8 	8E+7E'((w<<1d7>>#3#34455J 5":t44"444 'DM"7>>#3#344DO<<	"" 	'!D"9- ' 'Z '' **[11$jj44)-QW_efff!26::l3K3K!L!L$)& )& ' ' ' ' ra   N)
__name__
__module____qualname__IE_NAMEIE_DESC
_VALID_URL_TESTSstaticmethodr`   r    ra   r_   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 0d aGJ()JA/')1%&#
 
 , ;!,=A*##% 
 
 PFd C C \C~ ~ ~ ~ ~ra   r   c            "      B   e Zd ZdZdZdZdddddd	d
ddd
dddddddddddddddddddddddd d!d"d#d$d%dd$d&
dd'd(d)d*d+d,d-d.d/d0d1dd/d2dd3d4dd5d6d7d8d9d:d;d<d=dd>dd?d@ddAdBdCdDdEdFdGdHddId2ddJdKddLdMdCdNdOdFdGdHddId2dPgdQdRdSd)dTdUddVdWddXdYdZd[d\d]dd^d_
dd`daddbdcdddedfdgdhdhdiddjddkdld)dmdndodpdpddqdrds
ddtduddvdwdxdydwddzd{d|
dd}d~dddpdpdqddddd
dddddddddddd	dddddddddddddddddddddddddddddddddddddddddd
ddddddddddddd
dddddddddddd	ddddddddddddddd˜ddddddddddddddd˜ddidٜdddܜdddܜdddܜdddܜdddܜdddܜdddܜdddܜdddܜgZej        Zdej	         dZ	dgZ
 eg e
dd dD                       ZdZdZdZi dd)ddddddd)dddddddddddddddddddd ddddddddddddd)d dddddd)dd	dddd
dddddddddddddddddddddd dddddddd	ddddddddddddddddddddd	ddddddd	dddi ddddddddddd	dddddd dddddddd!dddddddd"dddddddd#dd	dddddd$dddddddd%ddd&ddd'd(ddd&ddd'd)ddd&ddd'd*dd	d&ddd'd+ddd&ddd'd,ddd&ddd'd-ddd&ddd'd.dd/d&ddd'd0dddd1d2d3dddd1d2i d4dd	dd1d2d5dddd1d2d6dddd1d2d7ddd1d8d9dddd1d2d:dd	dd1d2d;dd<dd1d2d=dddd>d1d?d@dddd>d1d?dAddBdd1d2dCdDdd1ddEdDdd1ddFdDdd1ddGdDdd1ddHdDdd1ddIdDdJd1ddKdDdLd1di dMddd ddNdOdd	dddNdPdddddNdQdddddNdRdd	dddNdSdd	dddNdTdddUd1d2dVdddUd1d2dWdddUd1d2dXdd	dUd1d2dYdd	dUd1d2dZdd	dUd1d2d[dddUd1d2d\dddUd1d2d]dd<dUd1d2d^ddBdUd1d2d_dddUd>d1d?i d`dddUd>d1d?dadd<dUd>d1d?dbddBdUd1d2dcddBdUd>d1d?ddddd1ddeddd1ddfddgd1ddhddgd1ddiddgd1ddjdddkd1d2dldddkd1d2dmdddnd1d2dodd	dpd1d2dqdddrd1d2dsdddtd1d2dudd<dvd1d2dwddBdvd1d2ZdddZd Zd Zd Zd ZddZd ZdxS (  YoutubeWebArchiveIEz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$   r'   r)   
channel_idr4   uploader_iduploader_urlr*   channel_urlrW   zQhttps://web.archive.org/web/2oe/http://wayback-fakeurl.archive.org/yt/97t7Xj_iBv097t7Xj_iBv0r2   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#   r'   r4   r$   r   r   r*   r)   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#   r'   r   r4   r$   r   r   r   r*   r)   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#   r'   r)   r   r4   r$   r   r   r   r*   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\))r-   r/   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#   r'   r   r   r4   r$   r*   r)   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#   r'   r   r   r4   r$   r)   r   r   r*   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#   r4   r$   r)   r   r*   r   r'   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$   r'   r)   r*   r4   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   r)   r   r'   r$   r*   r4   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   r)   r4   r*   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   r4   r   r   r'   r)   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#   r4   r'   r   r)   r   r   r*   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   r)   r4   r$   r*   r'   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   r)   r*   r$   r4   r'   r   zytarchive:o_T_S_TU12Mo_T_S_TU12Mz)Prairie Pulse 1218; Lin Enger, Paul Olsonz$md5:36e7a34cdc8508e35a920ec042e799c7zPrairie PublicUC4BOzQel6tvJm7OEDd3vZlwz8https://www.youtube.com/channel/UC4BOzQel6tvJm7OEDd3vZlwiF  20150213)	r!   r"   r#   r$   r)   r   r   r4   r'   zytarchive:SQCom7wjGDsSQCom7wjGDsz^Jamin Warren from PBS Game/Show decides that Portal is a feminist Game [Top Hats and No Brain]z$md5:c0cb876dd075483ead9afcc86798efb0zTop Hats and Champagne	sparrowtmz&https://www.youtube.com/user/sparrowtmzUCW3T5nG4iEkI7HjG-Du3HQAz8https://www.youtube.com/channel/UCW3T5nG4iEkI7HjG-Du3HQAi  zbhttps://web.archive.org/web/20160108040020if_/https://i.ytimg.com/vi/SQCom7wjGDs/maxresdefault.jpg20160107)r!   r"   r#   r$   r)   r   r   r   r   r4   r*   r'   zVhttps://web.archive.org/web/20240922160632/https://www.youtube.com/watch?v=z7hzvTL3k1kz7hzvTL3k1kz6Praise the Lord and Pass the Ammunition (BARRXN REMIX)z$md5:45dbf2c71c23b0734c8dfb82dd1e94b6BarrxnTheRockstar6086z,https://www.youtube.com/user/TheRockstar6086UCjJPGUTtvR9uizmawn2ThqAz8https://www.youtube.com/channel/UCjJPGUTtvR9uizmawn2ThqA}   20201207r   bv)r-   r/   paramszFhttps://web.archive.org/web/http://www.youtube.com/watch?v=kH-G_aIBlFwTr5   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.comc                N    g | ]"}g t          d           dR D ]}| |pd d#S )   	    z
.ytimg.com)range).0cns      r_   
<listcomp>zYoutubeWebArchiveIE.<listcomp>  sm      :A  :A  :AXYqsxyzs{s{q}~qq  :A  :AlmQ:SR:S:S:S  :A  :A  :A  :Ara   )isz"https://web.archive.org/web/%sif_/l   Hl   @kyJ5i     rH   h263)r"   r   r   acodecvcodec6i  i  133gpaacmp4v)r"   r3  r4  17      18i  ih  h26422i   i  3435iV  i  36i@  )r"   r   r3  r4  37i  i8  38i   i   43vorbisvp84445465978823Di)r"   r   r   r3  r4  
preference83848510010110291HLS)r"   r   r   r3  r4  9293949596132151H   133none)r"   r   r4  r3  134135136137138)r"   r4  r3  160212264i  298<   )r"   r   r4  fpsr3  299266ip  139m4a140141256258325dtse328zec-3167)r"   r   r   r4  168169170218219278vp9242243244245246247248271272302303308313315171172249opus250251394zav01.0.00M.08395396zav01.0.01M.08397zav01.0.04M.08398zav01.0.05M.08399zav01.0.08M.08400zav01.0.12M.08401NFfilterslist | Nonecollapsequerydict | Nonec                   |ddddg|pg z   |pg d|pi }|                      d||pd||          t          t                    r)t                    d	k    rfd
dd          D             S t          t                    rt                    dk    r&|                     dt                      z              d S d S )Nr[   z"original,mimetype,length,timestampi  zstatuscode:200)r-   outputfllimitr   r  z&https://web.archive.org/cdx/search/cdxzDownloading CDX API JSON)r  fatalr   c                V    g | ]%}t          t          d          |                    &S )r   )dictzip)r*  vress     r_   r-  z5YoutubeWebArchiveIE._call_cdx_api.<locals>.<listcomp>|  s-    :::QDSVQ((:::ra   r   r   z$Error while parsing CDX API response)r   
isinstancer   r   report_warningr	   )	r   item_idr-   r  r  r  noter  r  s	           @r_   _call_cdx_apiz!YoutubeWebArchiveIE._call_cdx_apil  s    6'(GMr: B
 
 {
 !!4g..e5 " J J c4   	`SXX]]::::#abb'::::C&& 	`#c((a-- FI\I^I^ ^_____ +8-ra   c                b    |                      |d          }|                     d|dd          S )Nr(  defaultz/(?:YouTube\s*-\s*(.*)$)|(?:(.*)\s*-\s*YouTube$)r#   )_html_extract_title_html_search_regex)r   r]   
page_titles      r_   _extract_webpage_titlez*YoutubeWebArchiveIE._extract_webpage_title  sA    --gr-BB
&&> ' - - 	-ra   c                	    r fdnd }                       j        d|i           }                       j        d|i           }i }t          j        d          D ]7}|                                         ||ddt          d	
          pi            8                      dd|d           p|                    d          pi }                      dd|i           }	|	rt          |d          s|	|d<   |s(                     t          |d          pd|d          }t          |dt          di           }
t          |dt          di           }t          |dt          di           }|                    d          p[t          j        |d          pFt          j        |
d          p1t          |d          p!                               p |g d          } fd}d}                     d| dd | gd!d           }t          |                    d"                    } ||d#          p  ||d#          p|                    d$          }|rd%| nd }                     g d&d'd           pt                     d(d)gt#          d*          d'd           pK                     d+t#          d,          d'd           p$t          |d-          p|                    d.          }t%          |                    d/          pa|                    d0          pL |d/          pA                     d1d2d d34          p' ||d5          p ||d5          pt          |d6                    }|rd7| nd }t'          |                    d8          p>|                    d8          p)t          |d9d:          pt)           |d;                              }|                    d<          p>t          j        |d=          p)t+          t#          d>                    p |g d?          }t-          t/          |d@          p' |dAdBg          p                     g dCdDd                     }|||||||||dE	S )FNc                4                         | d           S )Nr  )_html_search_meta)xr   r]   s    r_   <lambda>z7YoutubeWebArchiveIE._extract_metadata.<locals>.<lambda>  s    $"8"8GT"8"R"R ra   c                    d S Nr   r  s    r_   r  z7YoutubeWebArchiveIE._extract_metadata.<locals>.<lambda>  s    os ra   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)argsr  )r  player_responsez{})r  )contentstwoColumnWatchNextResultsresultsr  r  .videoPrimaryInfoRenderer)expected_typeget_allr  videoDetails)microformatplayerMicroformatRendererr#   )r  r#   )zog:titleztwitter:titler#   c                H                         d| d| pd| dd           S )Nz(?:z)/([^/#&?]+)r(  z idr  )_search_regex)r-   type_r   s     r_   id_from_urlz:YoutubeWebArchiveIE._extract_metadata.<locals>.id_from_url  sA    %%*u***CI2%}}}d & T T Tra   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*"r)   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)r  rq   r   	channelIdexternalChannelIdz6data-channel-external-id=(["\'])(?P<id>(?:(?!\1).)+)\1z
channel idr!   )r  groupchannel)r  ucidz https://www.youtube.com/channel/lengthSeconds)r  )length_secondsl)r  r4   shortDescriptionr$   zeow-description)r$   zog:descriptionztwitter:description)
uploadDatepublishDater  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$   r'   r)   r   r   r4   r   r   )_search_json_YT_INITIAL_PLAYER_RESPONSE_RE_YT_INITIAL_DATA_RErefindallr   _parse_jsonr   r   r   r  r   	_get_textr  r  r   r  r   r   r   r   r
   r   r   )r   r   r]   search_metar  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   r)   r   r   r4   r$   r'   s   ` `                       r_   _extract_metadataz%YoutubeWebArchiveIE._extract_metadata  s   W^tRRRRRReses++/:Sb , " " (($g~xQS ) U U QSZ[[ 	G 	GALL))!XUQUhr|~)  F  DF  G  G  G  G F(D  B B 0 yy))0 .0	 	 $$^WlH^`$aa 	-L	BB 	-$,M&! 	i"..],GHHPDRZbg / i iO *  Gr; ; ; %^4XZ\ \ \ $IY]glvxz z z g&& C'1,HHC'12DgNNC M+<==C **733	C
 {AAABB 		T 	T 	T 	T 	T
  i"&"4"4cL`cccwauwwy. #5 #> #>
 ((8(89J(K(KLL K)622 +{2F;;+yy)** 	 IT]D{DDDY] H H H T  3 3 + &&Q?A!"6@@*VZ ' \ \+ &&I!"<gFF
\` ' b b+ M+>??+   ** 	" !k** = 344={;''= !!It4 " A A= {,i88= {2I>>= M+;<<	> 	>
 JT]EEEEY]o.. 7007M+LV[\\\7 kk*5566	8 8 011 U'1,NNU+,=wGGHHU {SSSTT	 	 &\#@AA 6{L/:;;6!!i i i 	 " 6 67 7 !&& $& (&

 

 
	
ra   c           	     8    d                      d          v fdr j        n j        D             }g }|D ]H}                     |dgdgddi          }|s#|                     fd	|D                        s nI                     |           |S )
Nrg   	check_allc                b    g | ]+}rd ndD ]"}d                     |dk    rdnd|          #,S ))jpgwebp)r  z#http://{server}/vi{webp}/{video_id}r  _webpr(  )r  r   server)r   )r*  r  r"   try_allr   s      r_   r-  z;YoutubeWebArchiveIE._extract_thumbnails.<locals>.<listcomp>
  s     ] ] ]  FM  s[  sB  sB  S[] ]jm  EKK6MMrHV  L  U  U ] ] ] ]ra   zmimetype:image/(?:webp|jpeg)urlkey	matchTypeprefixr  r  r  c              3  .  K   | ]}j         t          |                    d                     pj        z  |                    d          z   t          |                    d                    t          |                    d                    dV  dS )r&   r~   r{   )r-   r   rO  N)_WAYBACK_BASE_URLr   r   _OLDEST_CAPTURE_DATE)r*  thumbnail_dictr   s     r_   	<genexpr>z:YoutubeWebArchiveIE._extract_thumbnails.<locals>.<genexpr>  s       2 2
 % !2k.BTBTU`BaBa6b6b6fjf  A  ES  EW  EW  Xb  Ec  Ec  c +N,>,>x,H,H I I"-n.@.@.J.J"K"K 2 2 2 2 2 2ra   )_configuration_arg_YT_ALL_THUMB_SERVERS_YT_DEFAULT_THUMB_SERVERSr  extend_remove_duplicate_formats)r   r   thumbnail_base_urlsrg   r-   responser  s   ``    @r_   _extract_thumbnailsz'YoutubeWebArchiveIE._extract_thumbnails  s)   $"9"9+"F"FF] ] ] ] ]9@d455dFd] ] ] 
& 	 	C))#(F'G"K+B * D DH   2 2 2 2
 )12 2 2 2 2 2   	&&z222ra   c                   g }|                      |d| dgddgddi          pg }t          d |D                       }d	 |D             }|r|                    |d
                    |                    |           |r|                    |d
                    d|                     d          v r|                    ||z              |                    | j        | j        g           t          t          d |                    S )Nz https://www.youtube.com/watch?v=zmimetype:text/htmlztimestamp:6digestr   r  r  c              3  j   K   | ].}t          |d                    t          |d                    V  /dS )r&   N)r   )r*  rs     r_   r  z9YoutubeWebArchiveIE._get_capture_dates.<locals>.<genexpr>'  sB      wwa{[\]h[iOjOjOvk!K.99OvOvOvOvwwra   c                    g | ]
}|d k    |S )l   @y6/}Ir   )r*  r  s     r_   r-  z:YoutubeWebArchiveIE._get_capture_dates.<locals>.<listcomp>+  s"    JJJa>6I6I16I6I6Ira   r   capturesr  )	r  sortedr   r  r  r  _NEWEST_CAPTURE_DATEr   r   )r   r   url_datecapture_datesr  all_capturesmodern_capturess          r_   _get_capture_datesz&YoutubeWebArchiveIE._get_capture_dates!  sG   %%CCC)*mX5NWbdlVm & o o urt 	 ww8wwwww KJlJJJ 	5  !3444X&&& 	2  a11100====  <!?@@@ 	d79RSTTT&}55666ra   c                    t          |dt          hddf          }d|i| j                            |i           t          |dd hfdt          hfdt          hddt
          hfd          |pi S )	Nr-   itagr   	format_idc                    d|  S )Nz!https://web.archive.org/web/2id_/r   r  s    r_   r  z0YoutubeWebArchiveIE._parse_fmt.<locals>.<lambda>?  s    *Qa*Q*Q ra   r"   clen)r-   r"   r   )r   r   _FORMATSr   r   r   )r   fmt
extra_infor  s       r_   
_parse_fmtzYoutubeWebArchiveIE._parse_fmt9  s     uxj&!&DEE		
m	2..	
 3 Q QRSu~"XJK=I! !  	
 R	
 		
ra   c                r   |                      |                              ddd          \  }}}|p|}|                     d|d|d          }t          |d          s|                     d	d
           |                     |t          |                    }|                     dt          |ddiz              d|i}|D ]}| 	                    | j
        dz   ||fz  |ddd          }	|                     ||	pd          }
|
                    d          r)t          ||
          }d|                     d          vr n|                     |          |d<   g }|                    d          rt          |ddd f          D ]-}|                    |                     |ddi                     .t          |ddd f          D ]-}|                    |                     |d di                     .n>t          |dd! f          D ]*}|                    |                     |                     +||d<   |S )"Nr!   rs   date2z&https://web.archive.org/__wb/videoinfoyoutube)vtypevid)r  rf   z.The requested video is not archived or indexedT)expectedzCaptures to try: r   z, z!http://www.youtube.com/watch?v=%sFz;unable to download capture webpage (it may not be archived)zDownloading capture webpage)r   r  r  r  r(  r#   r  r  rg   dmuxvideoc                ,    t          |d                   S Nr-   r   r   r  s     r_   r  z3YoutubeWebArchiveIE._real_extract.<locals>.<lambda>e      Q\]^_d]eQfQf ra   r3  ra  audioc                ,    t          |d                   S r/  r0  r1  s     r_   r  z3YoutubeWebArchiveIE._real_extract.<locals>.<lambda>g  r2  ra   r4  c                ,    t          |d                   S r/  r0  r1  s     r_   r  z3YoutubeWebArchiveIE._real_extract.<locals>.<lambda>j  s    UVW\U]I^I^ ra   )_match_valid_urlr  r   r   raise_no_formatsr  r   write_debugr   r   r  r  r   r   r  r  r   r%  )r   r-   r   r  
url_date_2
video_infor  r   capturer]   current_inforf   vfafr#  s                  r_   r   z!YoutubeWebArchiveIE._real_extractF  s   )-)>)>s)C)C)I)I$PVX_)`)`&(J)z((4h%h77 ) 9 9
 J	22 	Q!!@4 " Q Q Q //+h:O:OPP,}m/XSW/X/XXYYYh$ 
	 
	G,,'*MMRY[cQdd!8u2 - 4 4G  11(GMrJJL(( "466T%<%<[%I%IIIE!55h??\>>&!! 	5":	7DfDf/ghh H HtrHf3EFFGGGG":	7DfDf/ghh H HtrHf3EFFGGGGH $J<^<^0_`` 5 5ts334444!Yra   )NNNNF)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  r  r  r  r%  r   r   ra   r_   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 
 
" +#DE,8Y )
 

 
  +#yE4* H8Y  B) 
 
& l#QE$0 N8Y:)   &#
 
& \!
 
 n!
 

 y!
 

 E!
 
 E!
 
 D!
 
 [!
 
 :!
 
 +!
 
EfFN 3F&		!	@&	 &	 &	"
 "/&J 	B
#  	B%6  	B  :A  :A]g  :A  :A  :A  	BC C =))iUSC5TZ[[iUSC5TZ[[i 	eu??i 	ecSEU[\\	i
 	ecSEU[\\i 	edcUV\]]i 	ecSEU[\\i 	ecSEU[\\i 	ecUfMMi 	eddeW]^^i 	eddeW]^^i 	fscXY^__i 	fscXY^__i 	ftshZ_``i  	fttx[`aa!i" 	ecSEU[\\#i$ 	ecSEU[\\%i i, 	es45\bruvv-i. 	es45\bruvv/i0 	es45\bruvv1i2 	etDE]csvww3i4 	vTXafvyzz5i6 	vTXafvyzz7i8 	vTXafvyzz9i> 	es5E]cdd?i@ 	es5E]cddAiB 	es5E]cddCiD 	es5E]cddEiF 	es5E]cddGiH 	etEU^deeIiJ 	uEU^deeKiL 	u5E]cddMiR 	uvPPSiT 	uvPPUi i iV 	uvPPWiX 	uvPPYiZ 	u&QQ[i\ 	u&AA]i^ 	uvPP_i` 	uvPPaib 	u&QQcid 	uvbTZ[[eif 	urU[\\gih 	u&QQiin 	u@@oip 	u@@qir 	u@@sit 	u@@uiv 	u@@wix 	u&AAyiz 	u&AA{i i i@ 	vseLLAiB 	vseLLCiD 	vtuMMEiF 	vNNGiH 	vseLLIiJ 	vseLLKiL 	vPPMiN 	vPPOiP 	vPPQiR 	vPPSiT 	vPPUiV 	vPPWiX 	vPPYiZ 	v&QQ[i\ 	v&QQ]i` 	v&QQaib 	vbTZ[[ci i id 	vrU[\\eif 	vrU[\\gih 	v&QQiij 	vrU[\\kip 	vVDDqir 	vVDDsix 	v6BByiz 	v6BB{i| 	v6BB}iB 	uRXYYCiD 	uRXYYEiF 	uRXYYGiH 	uRXYYIiJ 	uRXYYKiL 	uSYZZMiN 	uSYZZOiP 	uSYZZQi iHV` ` ` ` `(- - -
 
 
B  27 7 70
 
 
 
( ( ( ( (ra   r   ) 
__future__r   r[   r  urllib.parser   commonr   r(  r   utilsr   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   ra   r_   <module>rC     s   " " " " " "  				     ! ! ! ! ! ! - - - - - -                                         .Y Y Y Y Y= Y Y Yx
r r r r r- r r r r rra   