
    V|h                     \    S SK Jr  SSKJrJrJrJrJrJr   " S S\5      r	 " S S\5      r
g)	   )InfoExtractor   )ExtractorError
js_to_jsonsmuggle_urlstr_or_nonetraverse_objunescapeHTMLc                       \ 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./rS# rS$rg%)&GeniusIE   zHhttps?://(?:www\.)?genius\.com/(?:videos|(?P<article>a))/(?P<id>[^?/#]+)zRhttps://genius.com/videos/Vince-staples-breaks-down-the-meaning-of-when-sparks-fly 64c2ad98cfafcfda23bfa0ad0c512f4c6313303597112mp4u>   Vince Staples Breaks Down The Meaning Of “When Sparks Fly”z$md5:bc15e00342c537c0039d414423ae5752zcount:14863540648001g-Fx@20221005iE=czre:^https?://.*\.jpg$)
idexttitledescriptiontagsuploader_iddurationupload_date	timestamp	thumbnail)urlmd5	info_dictz]https://genius.com/videos/Breaking-down-drakes-certified-lover-boy-kanye-beef-way-2-sexy-cudi b8ed87a5efd1473bd027c20a969d40606271792014001z$md5:c6355f7fa8a70bc86492a3963919fc15z$md5:1774638c31548b31b037c09e9b821393zcount:3g 2@20210909iF:azLhttps://genius.com/a/cordae-anderson-paak-break-down-the-meaning-of-two-tens f98a4e03b16b0a2821bd6e52fb3cc9d76321509903112uA   Cordae & Anderson .Paak Breaks Down The Meaning Of “Two Tens”z$md5:1255f0e1161d07342ce56a8464ac339dzsong id: 5457554g^Iv@20230301icc           
         U R                  U5      R                  SS5      u  p#U R                  X5      nU R                  SUSUS[        S9n[        USSS	S
 SS444SS9nU(       d  [        S[        U5      S9eU R                  SUSU0 S9nUR                  SS5      n[        USSSSSS9n	U R                  [        SU SU	 SU 3SU05      SU5      $ ) Nr   articlez<meta content="metadataz"\s+itemprop="page_data")end_patterntransform_source))r'   media.)videoNprovider_iddfp_kvc                     US   S:H  $ )Nnamebrightcove_video_id )_vs     Q/home/james-whalen/.local/lib/python3.13/site-packages/yt_dlp/extractor/genius.py<lambda>(GeniusIE._real_extract.<locals>.<lambda>F   s    AfIAV4V    values.F)get_allz(Brightcove video ID not found in webpage)expectedzvar\s*APP_CONFIG\s*=config)defaultbrightcove_account_idr   !brightcove_standard_web_player_id-brightcove_standard_no_autoplay_web_player_idbrightcove_modal_web_player_id#brightcove_song_story_web_player_id
S1ZcmcOC1xzhttps://players.brightcove.net//z_default/index.html?videoId=referrerBrightcoveNew)_match_valid_urlgroup_download_webpage_search_jsonr
   r	   r   boolget
url_resultr   )
selfr   
display_id
is_articlewebpager(   video_idr<   
account_id	player_ids
             r5   _real_extractGeniusIE._real_extract=   s,   !%!6!6s!;!A!A$	!R
((9$$Z3l % T  8X'VX`befg+i   !KVZ[eVfgg""#:GXxac"dZZ 7I
 79h,.S]ik	 1*QykIefneopS!#$3X? 	?r8   r2   N__name__
__module____qualname____firstlineno__
_VALID_URL_TESTSrU   __static_attributes__r2   r8   r5   r   r      s    \Jc1!UA*%#1
  o1!;A* %#1
  ^1!XA'(*%#1
=-F^?r8   r   c                   X    \ 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	./rS rSrg)GeniusLyricsIEX   z@https?://(?:www\.)?genius\.com/(?P<id>[^?/#]+)-lyrics(?:[?/#]|$)z'https://genius.com/Lil-baby-heyy-lyricsr   8454545HeyyzHeyy by Lil Baby)r   r   r   )r   playlist_mincountr   z=https://genius.com/Outkast-two-dope-boyz-in-a-cadillac-lyricsr   36239zTwo Dope Boyz (In a Cadillac)z(Two Dope Boyz (In a Cadillac) by OutKastz+https://genius.com/Playboi-carti-rip-lyrics3710582zR.I.P.zR.I.P. by Playboi Cartic           	         U R                  U5      nU R                  X5      nU R                  SUSU[        SS9nU R	                  XB5      n[        [        US5      5      nU(       d  [        S5      e[        USSS	 S
4SSS9n[        USSS S
4SSS9n[        USSUS4[        / S9n	/ n
U	 H  nUR                  S5      S;   d  M  UR                  S5      (       d  M2  UR                  S5      S:X  a  U R                  U S35        M]  U
R                  U R                  US   5      5        M     U R                  XXw SU 35      $ )Nz/window\.__PRELOADED_STATE__\s*=\s*JSON\.parse\(zjson stringz\'{(?s:.+)}\')r*   contains_pattern)songPagesongzSong id not found in webpageri   trackingDatac                     US   S:H  $ )NkeyTitler2   r3   xs     r5   r6   .GeniusLyricsIE._real_extract.<locals>.<lambda>   s    5WATr8   valueFuntitled)r:   r=   c                     US   S:H  $ )Nrm   zPrimary Artistr2   ro   s     r5   r6   rq      s    5M]A]r8   zunknown artistentitiessongsr+   )expected_typer=   type)r,   audior   providerspotifyz: Skipping Spotify audio embedz by )	_match_idrI   rJ   r   _parse_jsonr   r	   r   listrL   	to_screenappendrM   playlist_result)rN   r   rO   rQ   json_string	song_infosong_idr   artistr+   entriesms               r5   rU   GeniusLyricsIE._real_extractt   se   ^^C(
((9''>FV ( X $$[=	l96JKL !?@@
N4TV]^:/ 
N4]_fg#35 
GWg>d\^` AuuV} 22quuU||55$	1NNgY.L#MNNN4??1U8#<=  ##Gewd6(=STTr8   r2   NrW   r2   r8   r5   r`   r`   X   sd    TJ8-
 O4E
 =4
!F4Ur8   r`   N)commonr   utilsr   r   r   r   r	   r
   r   r`   r2   r8   r5   <module>r      s/    ! I?} I?X9U] 9Ur8   