
    V|h $                     \    S SK rSSKJr  SSKJrJrJrJr   " S S\5      r	 " S S	\5      r
g)
    N   )InfoExtractor   )ExtractorErrorint_or_nonetry_getunified_timestampc                       \ rS rSrSrS rSrg)VoxMediaVolumeIE   z7https?://volume\.vox-cdn\.com/embed/(?P<id>[0-9a-f]{9})c                    U R                  U5      nU R                  X5      nU R                  U R                  SUS5      U5      nUR	                  S5      =(       d    UnUR	                  S5      =(       d    0 nUR	                  S5      =(       d    0 nUUR	                  S5      =(       d    UR	                  S5      UR	                  S5      =(       d    UR	                  S	5      UR	                  S
5      =(       d    UR	                  S5      [        UR	                  S5      5      S.n[        US [        5      =(       d    0 n	/ n
U	R	                  S5      nU(       a"  U
R                  U R                  XSSSSS95        U	R	                  S5      nU(       aA  U R                  SUSS S9nSnU(       a  USU-   -  nU
R                  UU[        U5      S.5        U
(       a#  XS'   [        U	R	                  S5      5      US'   U$ S Hc  nUR	                  U S35      nU(       d  M   US :X  a  [        S!5      eUR                  S"US#:X  a  UOU S$U 3UR                  5       S%.5        Us  $    [        S&5      e)'Nzsetup\s*=\s*({.+});setupplayer_setupvideoformatted_metadatatitletitle_shortdescription_longdescription_short	thumbnailbrightcove_thumbnailvideo_publish_date)idr   descriptionr   	timestampc                     U S   S   $ )Nembed_assetschorus )xs    S/home/james-whalen/.local/lib/python3.13/site-packages/yt_dlp/extractor/voxmedia.py<lambda>0VoxMediaVolumeIE._real_extract.<locals>.<lambda>   s    >):8)D    hls_urlmp4m3u8_nativehlsF)m3u8_idfatalmp4_urlz	-(\d+)k\.bitratedefaulthttp-)	format_idurltbrformatsduration)youtube
brightcove_idr7   z/Vox Brightcove embeds are currently unsupportedurl_transparentr6   :)_typer2   ie_keyz Unable to find provider video id)	_match_id_download_webpage_parse_json_search_regexgetr	   r   dictextend_extract_m3u8_formatsappendr   r   update
capitalize)selfr2   video_idwebpager   r   
video_datar   infoassetr4   r%   r+   r3   r1   provider_video_typeprovider_video_ids                    r!   _real_extractVoxMediaVolumeIE._real_extract   ss   >>#&((7  !3!3"GW"67?Ayy09E!%%g.4"
'^^,@AGR!%%g.O*..2O%>>*<=dPcAd+//<f
Oe@f*+=+A+ABV+WX
 DdKQr))I&NN4555-e 6 U V))I&$$\7It$TCIS3Y&	NN&"3' 
 %O*599Z+@ADK#< *2E1Fc/J K$"l2$%VWW.0Cy0P,YlXmmn  pA  oB  WC1<<> 
 K $= ?@@r$   r   N)__name__
__module____qualname____firstlineno__
_VALID_URLrP   __static_attributes__r   r$   r!   r   r      s    KJ5Ar$   r   c                       \ 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+S,S-S.S/.S0S1SS2S3S4.S5.S6S7SS8S9S4.S5./S*S:./rS;S<SS=S>.S?S@./rSA rSBr	gC)D
VoxMediaIEG   zhttps?://(?:www\.)?(?:(?:theverge|vox|sbnation|eater|polygon|curbed|racked|funnyordie)\.com|recode\.net)/(?:[^/]+/)*(?P<id>[^/?]+)zJ<iframe[^>]+?src="(?P<url>https?://(?:www\.)?funnyordie\.com/embed/[^"]+)"zghttp://www.theverge.com/2014/6/27/5849272/material-world-how-google-discovered-what-software-is-made-ofj4mLW6x17VMr&   z>Material world: how Google discovered what software is made ofz$md5:dfc17e7715e3b542d66e33a10986138220190710TheVergez	The Verge)r   extr   r   upload_dateuploader_iduploaderYoutube)r2   	info_dictadd_iez_http://www.theverge.com/2014/10/21/7025853/google-nexus-6-hands-on-photos-video-android-phablet fd19aa0cf3a0eea515d4fd5c8c0e9d68Gy8Md3Eky38z+The Nexus 6: hands-on with Google's phabletz$md5:d9f0216e5fb932dd2033d6db37ac3f1d20141021i FT)r   r^   r   r   r`   r_   ra   r   zsimilar to the previous test)r2   md5rc   rd   skipzMhttp://www.vox.com/2016/3/31/11336640/mississippi-lgbt-religious-freedom-bill	22986359bzZMississippi's laws are so bad that its anti-LGBTQ law isn't needed to allow discriminationz$md5:fc1317922057de31cd74bce91eb1c66c20150915i@Ui  )r   r^   r   r   r_   r   r5   )r2   rc   rd   ri   z1http://www.vox.com/2016/3/24/11291692/robot-dance 83b3080489fb103941e549352d3e0977FcNHTJU1ufMz=How "the robot" became the greatest novelty dance of all timez$md5:b081c0d588b8b2085870cda55e6da17620160324	voxdotcomVoxzPage no longer contain videoszhttp://www.sbnation.com/college-football-recruiting/2015/2/3/7970291/national-signing-day-rationalizations-itll-be-ok-itll-be-okz;national-signing-day-rationalizations-itll-be-ok-itll-be-okz625 lies you will tell yourself on National Signing DayzaIt's the most self-delusional time of the year, and everyone's gonna tell the same lies together!)r   r   r    721fededf2ab74ae4176c8c8cbfe092e p3cThlMjE61VDi_SD9JlIteSNPWVDBB9z*Buddy Hield vs Steph Curry (and the world)u>   Let’s dissect only the most important Final Four storylines.)r   r^   r   r   )rh   rc    bf0c5cc115636af028be1bab79217ea9 BmbmVjMjE6esPHxdALGubTrouQ0jYLHjz,Chasing Cinderella 2016: Syracuse basketballz$md5:e02d56b026d51aa32c010676765a690d)r2   rc   playlistri   zVhttp://www.theguardian.com/world/2014/mar/11/obama-zach-galifianakis-between-two-ferns
18e820ec3fz@Between Two Ferns with Zach Galifianakis: President Barack Obama)r   r^   r   zInvalid URL)r2   rc   ri   c                   ^ ^
 T R                  U5      n[        R                  R                  T R	                  X5      5      m
SU U
4S jjn/ nT R                  / SQT
SS S9nU(       a  T R                  XR5      n[        U[        5      (       a  U/nU Hn  nUR                  S5      nUR                  S5      nU(       d  M.  U(       d  M7  UR                  U" XxUR                  S5      UR                  S5      5      5        Mp     T R                  S	T
S
S S9n	U	(       a  UR                  U" U	S5      5        [        U5      S:X  a  US   $ T R                  XBT R                  T
5      T R                  T
5      5      $ )Nc                    > SSS.U   U -  nSUU=(       d    TR                  T5      U=(       d    TR                  T5      S.$ )Nz%sz"http://volume.vox-cdn.com/embed/%s)r6   volumer9   )r;   r2   r   r   )_og_search_title_og_search_description)rO   rN   r   r   	video_urlrH   rJ   s        r!   create_entry.VoxMediaIE._real_extract.<locals>.create_entry   s\    > "# &77I
 + @$"7"7"@*Rd.I.I'.R	 r$   )z-Chorus\.VideoContext\.addVideo\((\[{.+}\])\);zvar\s+entry\s*=\s*({.+});z*SBN\.VideoLinkset\.entryGroup\(\s*(\[.+\])z
video datar-   rO   rN   r   r   zdata-volume-uuid="([^"]+)"zvolume uuidry   r   r   )NN)r=   urllibparseunquoter>   r@   r?   
isinstancerB   rA   rE   lenplaylist_resultrz   r{   )rH   r2   
display_idr}   entriesentries_datarK   rO   rN   volume_uuidrJ   s   `         @r!   rP   VoxMediaIE._real_extract   s{   ^^C(
,,&&t'='=c'NO
	 
	 )) +
 L$	 * 0
 ++LEL,-- ,~*
$.NN3F$G!&0nn5J&K#$$)<)<NN<)"w/1N$P Q	 + (()7M4 ) QNN<X>?w<11:''T=R=RSZ=[]a]x]x  zA  ^B  C  Cr$   r   N)
rR   rS   rT   rU   rV   _EMBED_REGEX_TESTS_WEBPAGE_TESTSrP   rW   r   r$   r!   rY   rY   G   se    WJabL yUA%%#
 +  q1CA%%##	
 +.$ _qA%#
 +.  C1TA%&
 +/" ROM A
 68E_	
 68GE	
" 03wUFn hW

  N*Cr$   rY   )urllib.parser   commonr   utilsr   r   r   r	   r   rY   r   r$   r!   <module>r      s4     ! 8A} 8AvMC MCr$   