
    V|h0                         S SK r S SKrSSKJr  SSKJrJrJrJ	r	J
r
   " S S\5      r " S S	\5      r " S
 S\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      rg)    N   )InfoExtractor   )ExtractorErrorInAdvancePagedList
clean_htmlget_element_by_idremove_startc            
       l    \ 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./rSS jrSrg)
KuwoBaseIE   aped   formatext
preferencemp3-320mp3320kmp3i@  P   )r   r   brabrr   zmp3-192192kmp3   F   zmp3-128128kmp3   <   wma   aac0   
   )r   r   r   r   c           
         / nU R                    H  nUS   UR                  SS5      SU 3SSS.nU R                  SUS	R                  US
   5      XPR	                  5       S9nUS:X  a  U(       d
  [        SSS9eUR                  S5      (       d  M  UR                  UUS
   US
   US   UR                  S5      S.5        M     U$ )Nr   r    MUSIC_convert_urlurl)r   r   ridtyperesponsez http://antiserver.kuwo.cn/anti.szDownload {} url infor   )notequeryheadersIPDenyz#This song is blocked in this regionTexpected)zhttp://zhttps://r   r   )r)   	format_idr   qualityr   )_FORMATSget_download_webpager   geo_verification_headersr   
startswithappend)selfsong_idtolerate_ip_denyformatsfile_formatr.   song_urls          O/home/james-whalen/.local/lib/python3.13/site-packages/yt_dlp/extractor/kuwo.py_get_formatsKuwoBaseIE._get_formats   s    ==K%e,!oodB/y)%!E --24;;K<QR%B%B%D . H 8#,<$%JUYZZ""#:;;#!,X!6)(3*<8&??51  ' )6      N)F)__name__
__module____qualname____firstlineno__r5   rB   __static_attributes__rE   rD   rA   r   r      s[    c:U)CWYZU)CWYZU)CWYZb9rDHrD   r   c            	       j    \ rS 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0S.SSS./rS r	Sr
g )!KuwoIE8   Fz	kuwo:songu   酷我音乐z.https?://(?:www\.)?kuwo\.cn/yinyue/(?P<id>\d+)z!http://www.kuwo.cn/yinyue/635632/635632r   u   爱我别走u	   张震岳20080122z$md5:ed13f58e3c3bf3f7fd9fbc4e5a7aa75c)idr   titlecreatorupload_datedescription6this song has been offline because of copyright issues)r)   	info_dictskipz"http://www.kuwo.cn/yinyue/6446136/6446136r   u   心z$md5:5d0e947b242c35dc0eb1d2fce9fbf02cIU20150518)rP   r   rQ   rT   rR   rS   r   r   r)   rV   paramsz3http://www.kuwo.cn/yinyue/3197154?catalog=yueku2016T)r)   only_matchingc           	         U R                  U5      nU R                  XSSS9u  p4X$R                  ;  d  SU;   a
  [        SSS9eU R	                  SUS	5      n[        U R	                  S
USSS9S5      n[        [        SU5      5      nUS:X  a  S nU R                  U5      nU R	                  SUSSS9n	S n
U	bA  U R                  SU	 S3USSS9nU R	                  SUSSS9n
U
(       a  U
R                  SS5      n
UUUU
UUS.$ )NzDownload song detail infozUnable to get song detail infor-   errnoteuK   对不起，该歌曲由于版权问题已被下线，将返回网站首页rU   Tr1   z<p[^>]+id="lrcName">([^<]+)</p>z	song namez@<a[^>]+href="http://www\.kuwo\.cn/artist/content\?name=([^"]+)">singer nameF)fatalu   歌手
lrcContent   暂无z/<a[^>]+href="http://www\.kuwo\.cn/album/(\d+)/"zalbum idzhttp://www.kuwo.cn/album//zDownload album detail infozUnable to get album detail infou"   发行时间：(\d{4}-\d{2}-\d{2})zpublish time-r&   )rP   rQ   rR   rS   rT   r>   )	_match_id_download_webpage_handler)   r   _html_search_regexr
   r   r	   rB   r7   replace)r;   r)   r<   webpageurlh	song_namesinger_namelrc_contentr>   album_idpublish_timealbum_info_pages               rA   _real_extractKuwoIE._real_extractZ   sq   ..%55:4 6 6 (("&sw~&~ !Ydhii++.F	"4#:#:O]% $; $12:< !!2<!IJ("K##G,**>Zu + . "44+H:Q719 5 ;O
  225e 3 -L +33C< "'&
 	
rD   rE   N)rF   rG   rH   rI   _WORKINGIE_NAMEIE_DESC
_VALID_URL_TESTSrs   rJ   rE   rD   rA   rL   rL   8   s    HGGBJ2#"%A
 I 4A%
 i
 E1F:+
rD   rL   c                   >    \ rS rSrSrSrSrSrSSSS	S
.SS.rS r	Sr
g)KuwoAlbumIE   Fz
kuwo:albumu   酷我音乐 - 专辑z/https?://(?:www\.)?kuwo\.cn/album/(?P<id>\d+?)/z http://www.kuwo.cn/album/502294/502294u   Made Series 《M》z$md5:d463f0d8a0ff3c3ea3d6ed7452a9483frP   rQ   rT   r   )r)   rV   playlist_countc                 J   U R                  U5      nU R                  XSSS9nU R                  SUS5      n[        [	        [        SU5      5      U S35      n[        R                  " SU5       Vs/ s H  o`R                  US	5      PM     nnU R                  XrXE5      $ s  snf )
NzDownload album infozUnable to get album infor_   z1<div[^>]+class="comm"[^<]+<h1[^>]+title="([^"]+)"z
album nameintro	   简介：zF<p[^>]+class="listen"><a[^>]+href="(http://www\.kuwo\.cn/yinyue/\d+/)"Kuwo)
rg   r7   ri   r
   r   r	   refindall
url_resultplaylist_result)r;   r)   rp   rk   
album_namealbum_intror@   entriess           rA   rs   KuwoAlbumIE._real_extract   s    >>#&(( 5. ) 0 ,,@'
 #(':;l)$&
 ?AjjY?
?(OOHf- ? 	 

 ##GzOO
s   1B rE   NrF   rG   rH   rI   ru   rv   rw   rx   _TESTrs   rJ   rE   rD   rA   r{   r{      s9    HG%GCJ10A

 EPrD   r{   c                   :    \ rS rSrSrSrSrSrSSS0S	S
.rS r	Sr
g)KuwoChartIE   Fz
kuwo:chartu   酷我音乐 - 排行榜z5https?://yinyue\.kuwo\.cn/billboard_(?P<id>[^.]+).htmu9   http://yinyue.kuwo.cn/billboard_香港中文龙虎榜.htmrP   u   香港中文龙虎榜   r)   rV   playlist_mincountc                     U R                  U5      nU R                  XSSS9n[        R                  " SU5       Vs/ s H  o@R	                  US5      PM     nnU R                  XR5      $ s  snf )NzDownload chart infozUnable to get chart infor_   z.<a[^>]+href="(http://www\.kuwo\.cn/yinyue/\d+)r   )rg   r7   r   r   r   r   )r;   r)   chart_idrk   r@   r   s         rA   rs   KuwoChartIE._real_extract   s    >>#&(( 5. ) 0
 ?AjjA7?L
?L(OOHf- ?L 	 
 ##G66	
s   A*rE   Nr   rE   rD   rA   r   r      s5    HG(GIJJ)
 E
7rD   r   c                   T    \ rS rSrSrSrSrSrSSSS	.S
S.SSSS	.SSS./rSr	S r
Srg)KuwoSingerIE   Fzkuwo:singeru   酷我音乐 - 歌手z2https?://(?:www\.)?kuwo\.cn/mingxing/(?P<id>[^/]+)z'http://www.kuwo.cn/mingxing/bruno+mars/z
bruno+marsu   Bruno Mars)rP   rQ   iI  r   z)http://www.kuwo.cn/mingxing/Ali/music.htmAli_   zRegularly stalls travis build)r)   rV   r   rW      c                 8  ^ ^^^ T R                  T5      mT R                  TTSSS9nT R                  SUS5      nT R                  SUS5      m[        T R                  SUS	5      5      nUU UU4S
 jn[	        XTT R
                  5      nT R                  UTU5      $ )NzDownload singer infozUnable to get singer infor_   z<h1>([^<]+)</h1>ra   zdata-artistid="(\d+)"z	artist idzdata-page="(\d+)"z
page countc           
        > TR                  STSU S-    3SU S-    3TU TR                  S.S9n[        R                  " SU5       Vs/ s H3  nTR	                  [
        R                  R                  TU5      S5      PM5     sn$ s  snf )	Nz+http://www.kuwo.cn/artist/contentMusicsAjaxzDownload song list page #r   zUnable to get song list page #)artistIdpnrn)r-   r`   r.   z0<div[^>]+class="name"><a[^>]+href="(/yinyue/\d+)r   )r7   	PAGE_SIZEr   r   r   urllibparseurljoin)page_numrk   r@   	artist_idr;   	singer_idr)   s      rA   	page_func-KuwoSingerIE._real_extract.<locals>.page_func   s    ,,=";HqL> J8AG#,HDNNS	 - UG !#

G!!H  4 4S( CVL!  s   :B)rg   r7   ri   intr   r   r   )	r;   r)   rk   rn   
page_countr   r   r   r   s	   ``     @@rA   rs   KuwoSingerIE._real_extract   s    NN3'	((!7/ ) 1 ---9 ++$g{<	 00 '<9 :
	 	 %YDNNK##GYDDrD   rE   N)rF   rG   rH   rI   ru   rv   rw   rx   ry   r   rs   rJ   rE   rD   rA   r   r      s_    HG%GFJ8$
 ! ;
  /F" IErD   r   c                   >    \ rS rSrSrSrSrSrSSSS	S
.SS.rS r	Sr
g)KuwoCategoryIEi  Fzkuwo:categoryu   酷我音乐 - 分类z3https?://yinyue\.kuwo\.cn/yy/cinfo_(?P<id>\d+?).htmz(http://yinyue.kuwo.cn/yy/cinfo_86375.htm86375u   八十年代精选u*   这些都是属于八十年代的回忆！r~      r   c           	         U R                  U5      nU R                  XSSS9nU R                  SUS5      n[        [	        SU5      R                  5       U S35      nUS:X  a  S nU R                  U R                  S	US
5      U5      nUS    Vs/ s H'  nU R                  SR                  US   5      S5      PM)     nnU R                  XXE5      $ s  snf )NzDownload category infozUnable to get category infor_   z&<h1[^>]+title="([^<>]+?)">[^<>]+?</h1>zcategory namer   r   rd   zvar\s+jsonm\s*=\s*([^;]+);zcategory songs	musiclistzhttp://www.kuwo.cn/yinyue/{}/musicridr   )
rg   r7   ri   r
   r	   strip_parse_jsonr   r   r   )	r;   r)   category_idrk   category_namecategory_descjsonmsongr   s	            rA   rs   KuwoCategoryIE._real_extract  s   nnS)((#;1 ) 3 //5wQ %gw/557oY') H$ M  !8!8)74D"FGRT
 k*
* OO;BB4
CSTV\]* 	 
 ##G-WW	
s   .CrE   Nr   rE   rD   rA   r   r     s9    HG%GGJ9)G

  EXrD   r   c                   x    \ rS rSrSrSrSrSrSSSS	S
S.SS0S.r/ \	R                  QSSSS.PSSSS.Pr
S rSrg)KuwoMvIEi)  Fzkuwo:mvu   酷我音乐 - MVz,https?://(?:www\.)?kuwo\.cn/mv/(?P<id>\d+?)/zhttp://www.kuwo.cn/mv/6480076/6480076mp4z
My HouseMV2PM)rP   r   rQ   rR   r   mvr[   mkv   r      c                 p   U R                  U5      nU R                  XSU 3SU 3S9n[        R                  " SU5      nU(       a#  UR	                  S5      nUR	                  S5      nO[        S5      eU R                  USS	9nU R                  S
U 3USU S3S9nUR                  USS.5        UUUUS.$ )NzDownload mv detail info: zUnable to get mv detail info: r_   zH<h1[^>]+title="(?P<song>[^"]+)">[^<]+<span[^>]+title="(?P<singer>[^"]+)"r   singerz#Unable to find song or singer namesT)r=   z)http://www.kuwo.cn/yy/st/mvurl?rid=MUSIC_z	Download z MV URL)r-   r   )r)   r3   )rP   rQ   rR   r>   )rg   r7   r   searchgroupr   rB   r:   )	r;   r)   r<   rk   mobjrm   rn   r>   mv_urls	            rA   rs   KuwoMvIE._real_extractB  s    ..%((!:7)D4WI> ) @ yyW 

6*I**X.K !FGG##Gd#C''7yAIgYg6 ( 8 	
 	 "	
 	
rD   rE   N)rF   rG   rH   rI   ru   rv   rw   rx   r   r   r5   rs   rJ   rE   rD   rA   r   r   )  sw    HG!G@J/!	
 d
E<			<c:< c:<H

rD   r   )r   urllib.parser   commonr   utilsr   r   r   r	   r
   r   rL   r{   r   r   r   r   rE   rD   rA   <module>r      sy    	  ! ' 'TM
Z M
`"P- "PJ7- 747E= 7Et%X] %XP7
z 7
rD   