Ë
    š„j†f  ã                   ó0  — d dl Z d dlZd dlZd dlZd dlZd dlZddlmZ ddlm	Z	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  G d„ de«      Z G d	„ d
e«      Z G d„ de«      Z G d„ de«      Z G d„ de«      Z G d„ de«      Z G d„ de«      Z G d„ de«      Zy)é    Né   )ÚInfoExtractoré   )Úaes_ecb_encryptÚpkcs7_padding)
ÚExtractorErrorÚint_or_noneÚjoin_nonemptyÚstr_or_noneÚstrftime_or_noneÚtraverse_objÚunified_strdateÚurl_or_noneÚurljoinÚvariadicc                   ó>   — e Zd ZdZdZd„ Zi fd„Zd„ Zd„ Zd„ Z	d
d	„Z
y)ÚNetEaseMusicBaseIE)ÚstandardÚhigherÚexhighÚlosslessÚhiresÚjyeffectÚjymasterÚskyzhttp://music.163.com/api/c                 óª  — t        j                  i |¥d|i¥d¬«      }d|› d|› d�j                  d«      }t        j                  |«      j                  «       }t        t        t        j                  |› d|› d|› �«      «      «      }t        t        |t        d	«      «      «      }d
|j                  «       j                  «       › �j                  «       S )NÚheader)ú,ú:)Ú
separatorsÚnobodyÚuseÚmd5forencryptÚlatin1z-36cd479b6b5-s   e82ckenh8dichen8zparams=)ÚjsonÚdumpsÚencodeÚhashlibÚmd5Ú	hexdigestr   ÚlistÚstrÚbytesr   ÚhexÚupper)	ÚselfÚapi_pathÚ
query_bodyÚcookiesÚrequest_textÚmessageÚ
msg_digestÚdataÚ	encrypteds	            úT/var/www/html/GAP/venv/lib/python3.12/site-packages/yt_dlp/extractor/neteasemusic.pyÚ_create_eapi_cipherz&NetEaseMusicBaseIE._create_eapi_cipher&   sÆ   € Ü—z‘zÐ"C ZÐ"C°¸7Ñ"CÐPZÔ[ˆà˜8˜* C¨ ~°]ÐC×JÑJÈ8ÓTˆÜ—[‘[ Ó)×3Ñ3Ó5ˆ
äœT¤#§*¡*Øˆj˜ l ^°=ÀÀÐMó#Oó Pó Qˆäœ/¨$´Ð5HÓ0IÓJÓKˆ	Ø˜Ÿ™›×.Ñ.Ó0Ð1Ð2×9Ñ9Ó;Ð;ó    c                 ó$  — ddddddddddt        t        j                  «       dz  «      › d	t        j                  d
d«      d›�dœt	        | j                  | j                  «      ddd„ hfi«      ¥}| j                  r|j                  d| j                  «        | j                  t        dd|› �«      |f| j                  d|› �||«      ddj                  |j                  «       D ��cg c]  \  }}|› d|› �‘Œ c}}«      dœ|¥dœ|¤ŽS c c}}w )NÚ	undefinedz8.0.0Ú140Ú
1623435496Ú	1920x1080Ú Úpcéè  Ú_r   Ú04)ÚosverÚdeviceIdÚappverÚversioncodeÚ
mobilenameÚbuildverÚ
resolutionÚ__csrfÚosÚchannelÚ	requestIdÚMUSIC_Uc                 ó   — | j                   S ©N)Úvalue)Úis    r9   ú<lambda>z8NetEaseMusicBaseIE._download_eapi_json.<locals>.<lambda>?   s
   € °!·'±'€ r;   z	X-Real-IPz!https://interface3.music.163.com/z/eapiz/apizhttps://music.163.comz; ú=)ÚRefererÚCookie)r7   Úheaders)ÚintÚtimeÚrandomÚrandintr   Ú_get_cookiesÚ	_API_BASEÚ_x_forwarded_for_ipÚ
setdefaultÚ_download_jsonr   r:   ÚjoinÚitems)	r0   ÚpathÚvideo_idr2   rZ   Úkwargsr3   ÚkÚvs	            r9   Ú_download_eapi_jsonz&NetEaseMusicBaseIE._download_eapi_json1   s<  € à Ø#ØØ Ø%Ø$Ø%ØØØ"Ü¤§	¡	£¨dÑ 2Ó3Ð4°A´f·n±nÀQÈÓ6MÈbÐ5QÐRñ
ô ˜4×,Ñ,¨T¯^©^Ó<Ø˜IÑ(9Ð':Ð;ð?ó ð
ˆð  ×#Ò#Ø×Ñ˜{¨D×,DÑ,DÔEØ"ˆt×"Ñ"ÜÐ7¸5ÀÀ¸ÓHÈ(ðà×)Ñ)¨D°°¨-¸ÀWÓMØ2ØŸ)™)¸G¿M¹M»O×$L±D°A°q¨ s¨!¨A¨3¢ZÓ$LÓMñXð ðXñð ñð 	ùó %Ms   Ã*Dc                 óB   — | j                  d|d|› d�|ddœd|› �¬«      S )Nz/song/enhance/player/url/v1ú[ú]Úflac)ÚidsÚlevelÚ
encodeTypez!Downloading song URL info: level ©Únote)rk   )r0   Úsong_idrq   s      r9   Ú_call_player_apiz#NetEaseMusicBaseIE._call_player_apiL   s;   € Ø×'Ñ'Ø)¨7Ø˜�y �N¨UÀ&ÑIØ4°U°GÐ<ð (ó >ð 	>r;   c                 ó~  — g }|d   }| j                   D ]�  }t        | j                  ||«      dd„ t        f«      }|s nh|j	                  d«      }|r||k7  r|dv r nJŒJ|j                  |d   |ddœt        |d	t        hfd
t        d¬«      hfdt        hfdœ«      ¥«       |rŒ� n |s| j                  ddg¬«       |S )NÚidr7   c                 ó   — t        |d   «      S )NÚurl)r   )rD   rj   s     r9   rV   z5NetEaseMusicBaseIE._extract_formats.<locals>.<lambda>W   s   € Ì[ÐYZÐ[`ÑYaÓMb€ r;   rq   )r   r   rz   Únone)rz   Ú	format_idÚvcodecÚtypeÚbrrC   ©ÚscaleÚsize)ÚextÚabrÚfilesizez5No media links found; possibly due to geo restrictionÚCN)Ú	countries)	Ú_LEVELSr   rv   ÚanyÚgetÚappendr,   r	   Úraise_geo_restricted)r0   ÚinfoÚformatsru   rq   ÚsongÚactual_levels          r9   Ú_extract_formatsz#NetEaseMusicBaseIE._extract_formatsR   sü   € ØˆØ�t‘*ˆØ—\‘\ò 	ˆEÜØ×%Ñ% g¨uÓ5¸Ñ@bÔdgÐ7hójˆDáÙØŸ8™8 GÓ,ˆLÙ °Ò 5ØÐ4Ñ4ÙØØ�N‰NØ˜E‘{Ø"Ø ñ	ô ˜tØ"¤S E˜?Ø ¤;°TÔ#:Ð";Ð<Ø!'¬+¨Ð 7ñ&ó ð		ô 	ò  Ùð+	ñ, Ø×%Ñ%ØGÐTXÐSYð &ô [àˆr;   c                 ó  — | j                  | j                  › |› �||d| j                  i¬«      }t        |dt        hf«      }t        |dt        hf«      xs d}|dk(  r| j                  d|› �«       |S |dk7  rt        d	|› d
|› �«      ‚|S )NrX   )rZ   Úcoder5   rA   i2þÿÿzLogin required to download: éÈ   zFailed to get meta info: ú )rc   r`   r   r[   r,   Úraise_login_requiredr   )r0   Úendpointrg   rt   Úresultr“   r5   s          r9   Ú
_query_apizNetEaseMusicBaseIE._query_apip   s­   € Ø×$Ñ$Ø�~‰~Ð˜x˜jÐ)¨8°TÀIÈtÏ~É~ÐC^ð %ó `ˆä˜F V¬c¨U OÓ4ˆÜ˜v¨	´C°5Ð'9Ó:Ò@¸bˆØ�4Š<Ø×%Ñ%Ð(DÀWÀIÐ&NÔOð ˆð �SŠ[Ü Ð#<¸T¸FÀ!ÀGÀ9Ð!MÓNÐNØˆr;   Nc              #   óô   ‡K  — t        |g t        |t        t        t        t
        f«      ¢ˆfd„‘­«      D ]>  }t        |‰   «      }| j                  d|› �t        |t        ||t        hf«      «      –— Œ@ y ­w)Nc                 ó$   •— t        |‰   «      d uS rS   )r	   )rD   rj   Úid_keys     €r9   rV   z1NetEaseMusicBaseIE._get_entries.<locals>.<lambda>~   s   ø€ œ[¨¨6©Ó3¸4Ð?€ r;   zhttp://music.163.com/#/song?id=)r   r   r,   r-   ÚdictÚsetÚ
url_resultÚNetEaseMusicIE)r0   Ú
songs_dataÚ
entry_keysrœ   Úname_keyr�   ru   s      `   r9   Ú_get_entrieszNetEaseMusicBaseIE._get_entries{   sŠ   øè ø€ Ü  ð .AÜ˜*¤s¬E´4¼Ð&=Ó>ð.Aã?ñ.Aó Bò 	@ˆDô ˜$˜v™,Ó'ˆGØ—/‘/Ø1°'°Ð;¼^Øœ d¨X¼°uÐ,=Ó>ó@ó @ñ		@ùs   ƒA5A8)Nrx   Úname)Ú__name__Ú
__module__Ú__qualname__rˆ   r`   r:   rk   rv   r‘   r™   r¤   © r;   r9   r   r      s6   „ ð	€Gð ,€Iò	<ð GIó ò6>òò<	ô@r;   r   c                   óZ  — e Zd ZdZdZdZdddddd	d
ddddedgdœdœddddddddddeddgdgdddigidœdœdd dd!d"d#d$dd%d&ed'd&gd&gddd(d)œgidœdœd*d+d,dd-d.d/d0dddigid1d2ded3d4d5gd4gd6œd7œd8d9d:dd;d<d=gd>d?d@dddigidAdd;ed<dBœdCdDœdEdFdGddHdIgdJdKdLdddigidMdNdedOdIdPœdCdQœgZdR„ ZdS„ Z	yT)Ur    znetease:songu   ç½‘æ˜“äº‘éŸ³ä¹�zGhttps?://(?:y\.)?music\.163\.com/(?:[#m]/)?song\?.*?\bid=(?P<id>[0-9]+)z)https://music.163.com/#/song?id=550136151Ú	550136151Úmp3zIt's Ok (Live)zcount:10i HÆZÚ20180405z$md5:9fd07059c2ccee3950dc8363429a3135éÅ   úre:^http.*\.jpgu"   å�¶åƒ�ç»ƒä¹ ç”Ÿ è¡¨æ¼”æ›²ç›®å�ˆé›†u   å�¶åƒ�ç»ƒä¹ ç”Ÿ)rx   rƒ   ÚtitleÚcreatorsÚ	timestampÚupload_dateÚdescriptionÚdurationÚ	thumbnailÚalbumÚaverage_ratingÚalbum_artists©rz   Ú	info_dictz%http://music.163.com/song?id=17241424Ú17241424zOpus 28Ú20060912i€ÙEi  zPiano Solos, Vol. 2zDustin O'Halloranz$md5:b566b92c55ca348df65d206c5d689576Úlyricsrƒ   Úlrc)rx   rƒ   r°   r³   r²   rµ   r¶   r·   Úalbum_artistr¸   r´   r¹   r±   Ú	subtitlesz*https://music.163.com/#/song?id=2755669231Ú
2755669231u   å��äºŒæœˆ-DepartureÚ20251111i€]ié¼   u   å††u   ã�²ã�¨ã�²ã‚‰z$md5:deee249c8c9c3e2c54ecdab36e87d174z$md5:d32b4425a5d6c9fa249ca6e803dd0401)rƒ   r7   zehttps://y.music.163.com/m/song?app_version=8.8.45&id=95670&uct2=sKnvS4+0YStsWkqsPhFijw%3D%3D&dlt=0846Ú b896be78d8d34bd7bb665b26710913ffÚ95670u	   å›½é™…æ­ŒÚ19911130i€µ7)z$md5:1ba2f911a2b0aa398479f595224f2141i  u-   ä¼´å”±:çŽ°ä»£äººä¹�é˜Ÿ å�ˆå”±:æ€»æ”¿æ­Œèˆžå›¢u   çº¢è‰²æ‘‡æ»šu	   ä¾¯ç‰§äººu   é©¬å¤‡)rx   rƒ   r°   r³   r²   r´   rÁ   rµ   Ú	alt_titler¶   r¸   r·   rÀ   r±   r¹   )rz   r)   r»   z'http://music.163.com/#/song?id=32102397Ú 3e909614ce09b1ccef4a3eb205441190Ú32102397z	Bad BloodzTaylor SwiftzKendrick LamarÚ20150516i€iWUz$md5:21535156efb73d6d1c355f95616e285aéÇ   )rx   rƒ   r°   r±   r³   r²   r´   rÁ   rµ   r¶   r·   r¸   rÀ   úBlocked outside Mainland China)rz   r)   r»   ÚskipzHas translated name.z'http://music.163.com/#/song?id=22735043Ú22735043u   ì†Œì›�ì�„ ë§�í•´ë´� (Genie)u   å°‘å¥³æ—¶ä»£Ú20100127i c`Kz$md5:03d1ffebec3139aa4bafe302369269c5éå   u   è¯´å‡ºæ„¿æœ›å�§(Genie)zOh!)rx   rƒ   r°   r±   r³   r²   r´   rÁ   rµ   rÈ   r¶   r¸   r·   rÀ   )rt   rz   r»   rÎ   c                 ó  ‡— t        |ddt        hf«      }t        |ddt        hf«      }|r|dk(  ry |sd|ddœgiS d„ } ||«      }t         ||«      «      Šdj                  ˆfd	„|D «       «      }|ddœg|ddœg|ddœgd
œS )Nr¿   ÚlyricÚtlyricu    [99:00.00]çº¯éŸ³ä¹�ï¼Œè¯·æ¬£èµ�
r¾   )r7   rƒ   c                 óD   — d}t        j                  || «      }d„ |D «       S )Nz0\[([0-9]{2}):([0-9]{2})[:.]([0-9]{2,})\]([^\n]+)c              3   óB   K  — | ]  \  }}}}d |› d|› d|› d�|f–— Œ y­w)rm   r   ú.rn   Nr©   )Ú.0ÚminuteÚsecÚmsecÚtexts        r9   ú	<genexpr>zINetEaseMusicIE._process_lyrics.<locals>.collect_lyrics.<locals>.<genexpr>	  s:   è ø€ ò á+�F˜C  tð �V�H˜A˜c˜U ! D 6¨Ð+¨TÔ2ñùs   ‚)ÚreÚfindall)r¿   Úlyrics_exprÚmatchess      r9   Úcollect_lyricsz6NetEaseMusicIE._process_lyrics.<locals>.collect_lyrics  s)   € ØMˆKÜ—j‘j ¨cÓ2ˆGñà/6ôð r;   ú
c              3   óh   •K  — | ])  \  }}t        |› |› �‰j                  |d «      d¬«      –— Œ+ y­w)rA   z / ©ÚdelimN)r
   rŠ   )rØ   r²   rÜ   Útranslation_ts_dicts      €r9   rÝ   z1NetEaseMusicIE._process_lyrics.<locals>.<genexpr>  sB   øè ø€ ò 6á�	˜4ô ˜Y˜K¨ vÐ.Ð0C×0GÑ0GÈ	ÐSUÓ0VÐ^c×dÐdñ6ùs   ƒ/2)Úlyrics_mergedr¾   Úlyrics_translated)r   r,   r�   rd   )r0   Úlyrics_infoÚoriginalÚ
translatedrâ   Úoriginal_ts_textsÚmergedrç   s          @r9   Ú_process_lyricszNetEaseMusicIE._process_lyricsú   s¿   ø€ Ü ¨e°W¼s¸eÐ-DÓEˆÜ! +°¸'ÄCÀ5Ð/IÓJˆ
á˜8Ð'JÒJØáà H°UÑ;Ð<ðð ò	ñ +¨8Ó4ÐÜ"¡>°*Ó#=Ó>Ðà—‘ó 6à#4ô6ó 6ˆð
 (.°eÑ<Ð=Ø (°Ñ7Ð8Ø+5¸eÑ"DÐ!Eñ
ð 	
r;   c                 ó  — | j                  |«      }| j                  d|› d|› d�|d«      d   d   }| j                  |«      }| j                  | j                  d|› d�|d	«      «      }|rt	        |d
d¬«      |dœni }||dj                  t	        |d«      «      xs d t	        |d«      xs d t	        |d«      xs d dœ|¥t	        |dt        hfddt        d¬«      hfddt        hfdt        d¬«      hfddt        hfdt        hfdœ«      ¥S )Nzsong/detail?id=z&ids=%5Bz%5DzDownloading song infoÚsongsr   zsong/lyric?id=z&lv=-1&tv=-1zDownloading lyrics data))rè   r¾   r   r7   F©Úget_all)r´   rÁ   ú/))Ú
transNamesÚalias.©Úartists.r¥   )r·   rø   .r¥   )rx   rŽ   rÈ   r±   r¹   r¥   r·   ÚpublishTimerC   r€   ÚpicUrlrµ   Úscore)r°   r²   r¶   rµ   r·   r¸   )	Ú	_match_idr™   r‘   rï   r   rd   r,   r	   r   )r0   rz   ru   r�   rŽ   r¾   Ú
lyric_datas          r9   Ú_real_extractzNetEaseMusicIE._real_extract  si  € Ø—.‘. Ó%ˆà�‰Ø˜g˜Y h¨w¨i°sÐ;¸WÐF]ó_Ø_fñhØhiñkˆð ×'Ñ'¨Ó-ˆà×%Ñ% d§o¡oØ˜W˜I \Ð2°GÐ=Vó'Xó Yˆñ
 ô (¨Ð0XÐbgÔhØò
ð ð 	ð ØØŸ™¤,¨tÐ5SÓ"TÓUÒ]ÐY]Ü$ TÐ+CÓDÒLÈÜ)¨$Ð0QÓRÒZÐVZñ
ð ð
ô ˜4Ø ¤3 %˜Ø% }´{ÈÔ7NÐ6OÐPØ% x´+°Ð?Ø'¬+¸DÔ*AÐ)BÐCØ! 6¬C¨5Ð1Ø#*¬[¨MÐ":ñ"ó ð
ð 	
r;   N)
r¦   r§   r¨   ÚIE_NAMEÚIE_DESCÚ
_VALID_URLr[   Ú_TESTSrï   rþ   r©   r;   r9   r    r    …   sâ  „ Ø€GØ€GØ[€Jà:àØØ&Ø"Ø#Ø%ØAØØ+Ø9Ø!Ø/Ð0ñ
ñð" 7àØØØ%Ø#ØØ+Ø*Ø0Ø!ØAØ2Ð3Ø-Ð.Ø" e¨U ^Ð$4Ð5ñ
ñð& <àØØ*Ø%Ø#ØØ+ØØ*Ø!ØAØ,Ð-Ø'Ð(Ø"¨UÐ<bÑ%cÐ$dÐeñ
ñð& wØ1àØØ Ø%Ø"ØAØ" e¨U ^Ð$4Ð5ØØHØ+Ø!Ø#Ø'Ø!˜
Ø)˜]ñ
ñð* 9Ø1àØØ Ø'Ð)9Ð:Ø%Ø#ØAØ" e¨U ^Ð$4Ð5ØØ+Ø Ø!Ø*ñ
ð 1ñ%ð( 'Ø8àØØ2Ø'Ð(Ø%Ø#ØAØ" e¨U ^Ð$4Ð5ØØ1Ø+Ø!ØØ*ñ
ð  1ñ'ðwo€Fòb
óB
r;   r    c                   óN   — 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œgZd„ Zy)ÚNetEaseMusicAlbumIEznetease:albumu   ç½‘æ˜“äº‘éŸ³ä¹� - ä¸“è¾‘z8https?://music\.163\.com/(?:#/)?album\?id=(?P<id>[0-9]+)z*https://music.163.com/#/album?id=133153666Ú	133153666u   æ¡ƒå‡ çš„ç¿»å”±Ú20210913u   æ¡ƒå‡ 2021å¹´ç¿»å”±å�ˆé›†r¯   )rx   r°   r³   r´   r¶   é   ©rz   r»   Úplaylist_mincountz&http://music.163.com/#/album?id=220780Ú220780zB'DayÚ20060904z$md5:71a74e1d8f392d88cf1bbe48879ad0b0é   )rz   r»   Úplaylist_countc                 ó¦  — | j                  |«      }| j                  d|› �|«      }| j                  d|d|dd¬«      }| j                  d|dd¬	«      | j	                  d
„ dD «       |dt
        j                  d¬«      | j                  d|dd¬	«      t        | j                  d|dd¬	«      «      dœ} | j                  | j                  |«      |fi |¤ŽS )Nzhttps://music.163.com/album?id=z-<textarea[^>]+\bid="song-list-pre-data"[^>]*>Úmetainfoz</textarea>z\[(?s:.+)\])Úend_patternÚcontains_patternr°   F)Úfatalc              3   ó(   K  — | ]
  }d |› d�–— Œ y­w)z<div[^>]+\bid="album-desc-z"[^>]*>(.*?)</div>Nr©   )rØ   Úsuffixs     r9   rÝ   z4NetEaseMusicAlbumIE._real_extract.<locals>.<genexpr>`  s   è ø€ ÒhÈfÐ.¨v¨hÐ6HÔIÑhùs   ‚)ÚmoreÚdotr´   )Úflagsr  Úimager¶   zmusic:release_dateÚdate)r°   r´   r¶   r³   )rü   Ú_download_webpageÚ_search_jsonÚ_og_search_propertyÚ_html_search_regexrÞ   ÚSr   Ú_html_search_metaÚplaylist_resultr¤   )r0   rz   Úalbum_idÚwebpagerñ   r  s         r9   rþ   z!NetEaseMusicAlbumIE._real_extractV  sû   € Ø—>‘> #Ó&ˆØ×(Ñ(Ð+JÈ8È*Ð)UÐW_Ó`ˆà×!Ñ!Ø<¸gÀzÐS[Ø&¸ð "ó Iˆð ×-Ñ-¨g°wÀÈuÐ-ÓUØ×2Ñ2ÙhÐXgÔhØ˜¬b¯d©d¸%ð 3ó Að ×1Ñ1°'¸7ÀKÐW\Ð1Ó]Ü*¨4×+AÑ+AÐBVÐX_ÐagÐotÐ+AÓ+uÓvñ
ˆð $ˆt×#Ñ# D×$5Ñ$5°eÓ$<¸hÑSÈ(ÑSÐSr;   N©r¦   r§   r¨   rÿ   r   r  r  rþ   r©   r;   r9   r  r  <  sb   „ Ø€GØ(€GØL€Jà;àØ&Ø%Ø6Ø+ñ
ð  ñ
ð 8àØØ%ØAØ+ñ
ð ñ
ð€Fó,Tr;   r  c                   óX   — 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
œgZd„ Zy)ÚNetEaseMusicSingerIEznetease:singeru   ç½‘æ˜“äº‘éŸ³ä¹� - æ­Œæ‰‹z9https?://music\.163\.com/(?:#/)?artist\?id=(?P<id>[0-9]+)zSinger has aliases.z&http://music.163.com/#/artist?id=10559Ú10559u!   å¼ æƒ å¦¹ - aMEI;é˜¿å¦¹;é˜¿å¯†ç‰¹)rx   r°   é2   ©rt   rz   r»   r  zSinger has translated name.z'http://music.163.com/#/artist?id=124098Ú124098u   æ�Žæ˜‡åŸº - ì�´ìŠ¹ê¸°z%Singer with both translated and aliasz(https://music.163.com/#/artist?id=159692Ú159692u(   åˆ�éŸ³ãƒŸã‚¯ - åˆ�éŸ³æœªæ�¥;Hatsune Mikuc                 ó  — | j                  |«      }| j                  d|› d|› �|d¬«      }t        t        |ddt        hf«      t        t        |ddt        hf«      dd	iŽd
¬«      }| j                  | j                  |d«      ||«      S )Nzartist/z?id=zDownloading singer datars   Úartistr¥   )Útrans)rö   .ræ   ú;z - rå   ÚhotSongs)rü   r™   r
   r   r,   r   r¤   )r0   rz   Ú	singer_idr�   r¥   s        r9   rþ   z"NetEaseMusicSingerIE._real_extract†  s¡   € Ø—N‘N 3Ó'ˆ	à�‰Ø�i�[  Y KÐ0°)ÐB[ð ó ]ˆô Ü˜ ¨&´3°%Ð8Ó9Üœ<¨¨xÐ9RÔUXÐTYÐ.ZÓ[ÐgÐcfÑgØôˆð
 ×#Ñ# D×$5Ñ$5°d¸JÓ$GÈÐTXÓYÐYr;   Nr#  r©   r;   r9   r%  r%  h  ss   „ Ø€GØ(€GØM€Jà%Ø7àØ8ñ
ð ñð .Ø8àØ,ñ
ð ñð 8Ø9àØ?ñ
ð ñð!€Fó4Zr;   r%  c                   ó„   — e Zd ZdZdZdZdddddgd	d
eddœddœdddddg d¢ddeddœddœddddddddd gd!d"d#œd$dœgZd%„ Zy&)'ÚNetEaseMusicListIEznetease:playlistu   ç½‘æ˜“äº‘éŸ³ä¹� - æ­Œå�•zPhttps?://music\.163\.com/(?:#/)?(?:playlist|discover/toplist)\?id=(?P<id>[0-9]+)z+http://music.163.com/#/playlist?id=79177352Ú79177352zBillboard 2007 Top 100z$md5:12fd0819cab2965b9583ace0f8b7b022õ   æ¬§ç¾Žu   æµ‘ç„¶ç ´ç�­Ú67549805zre:\d{8})rx   r°   r´   ÚtagsÚuploaderÚuploader_idr²   r³   é_   r  zToplist/Charts samplez1https://music.163.com/#/discover/toplist?id=60198Ú60198u0   re:ç¾Žå›½Billboardæ¦œ [0-9]{4}-[0-9]{2}-[0-9]{2}u   ç¾Žå›½BillboardæŽ’è¡Œæ¦œ)u   æµ�è¡Œr4  õ   æ¦œå�•u   Billboardå…¬å‘Šç‰ŒÚ48171éd   r(  z2http://music.163.com/#/discover/toplist?id=3733003Ú3733003u=   re:éŸ©å›½MelonæŽ’è¡Œæ¦œå‘¨æ¦œ(?: [0-9]{4}-[0-9]{2}-[0-9]{2})?z$md5:73ec782a612711cadc7872d9c1e134fcÚ20200109Ú2937386u   éŸ©è¯­r;  u   Melonæ¦œå�•i�^)rx   r°   r´   r³   r8  r6  r7  r²   r'  c                 ó²  — | j                  |«      }| j                  d||ddddœd¬«      }t        |dd	t        hfd
t        hfddt        hfddt        hfddt        hfdt        d¬«      hfdœf«      }t        |d«      dk(  r2|j                  d«      › dt        |j                  d«      d«      › �|d<    | j                  | j                  |d«      |fi |¤ŽS )Nz/v3/playlist/detailz-1Ú500Ú0)rx   ÚtÚnÚszDownloading playlist infors   Úplaylistr¥   r´   r6  .ÚcreatorÚnicknameÚuserIdÚ
updateTimerC   r€   )r°   r´   r6  r7  r8  r²   )rG  ÚspecialTypeé
   r°   r•   r²   z%Y-%m-%d)rG  Útracks)
rü   rk   r   r,   r   r	   rŠ   r   r   r¤   )r0   rz   Úlist_idr�   r  s        r9   rþ   z NetEaseMusicListIE._real_extractÃ  s	  € Ø—.‘. Ó%ˆà×'Ñ'Ø! 7Ø ¨E¸Ñ<Ø,ð (ó .ˆô
    zØœs˜e�_Ø)¬C¨5Ð1Ø˜S¤3 %Ð(Ø" J´°Ð6Ø% x´+°Ð?Ø&¬¸4Ô)@Ð(AÐBñ4
ð 'ó ˆô ˜Ð9Ó:¸bÒ@Ø#+§<¡<°Ó#8Ð"9¸Ô;KÈHÏLÉLÐYdÓLeÐgqÓ;rÐ:sÐ tˆH�WÑà#ˆt×#Ñ# D×$5Ñ$5°dÐ<RÓ$SÐU\ÑiÐ`hÑiÐir;   N©	r¦   r§   r¨   rÿ   r   r  r[   r  rþ   r©   r;   r9   r2  r2  ”  s®   „ Ø €GØ(€GØd€Jà<àØ-ØAØ�JØ&Ø%ØØ&ñ	
ð  ñð (ØBàØGØ5Ú2Ø,Ø"ØØ&ñ	
ð ñð (ØCàØTØAØ%Ø$Ø˜xÐ(Ø%Ø#ñ	
ð ñð7)€FóVjr;   r2  c                   óŒ   — e Zd ZdZdZdZdddddd	gd
ddeeedœdœddddddgdddeeedœddœdddddg d¢ddeededœ
d œgZd!„ Zy")#ÚNetEaseMusicMvIEz
netease:mvu   ç½‘æ˜“äº‘éŸ³ä¹� - MVz5https?://music\.163\.com/(?:#/)?mv\?id=(?P<id>[0-9]+)z&https://music.163.com/#/mv?id=10958064Ú10958064Úmp4u   äº¤æ�¢ä½™ç”Ÿz$md5:e845872cff28820642a2b02eda428feau	   æž—ä¿Šæ�°Ú20200916úre:http.*\.jpgil  )rx   rƒ   r°   r´   r±   r³   r¶   rµ   Ú
view_countÚ
like_countÚcomment_countrº   z#http://music.163.com/#/mv?id=415350Ú415350u   ì�´ëŸ´ê±°ë©´ ê·¸ëŸ¬ì§€ë§�ì§€u!   ç™½é›…è¨€è‡ªä½œæ›²å”±ç”œèœœçˆ±æƒ…u	   ç™½å¨¥å¨ŸÚ20150520éØ   rÍ   )rz   r»   rÎ   zThis MV has multiple creators.z&https://music.163.com/#/mv?id=22593543Ú22593543u   è€�åŒ—äº¬æ�€å™¨)u   ç§ƒå­�2zu   è¾‰å­�u   Saberæ¢�ç»´å˜‰éÎ   Ú20240618)
rx   rƒ   r°   r±   rµ   r³   rX  rY  r¶   rW  )rt   rz   r»   c                 óÌ  — | j                  |«      }| j                  d|› d�|d«      d   }|d   j                  «       D ��cg c]  \  }}|d|› d�t        |«      dœ‘Œ }}}||t	        |d	«      xs |j                  d
«      gdœt	        |dt        hfdt        ht        fdt        hfdt        hfdt        d¬«      hfdt        hfdt        hfdt        hfdœd¬«      ¥S c c}}w )Nzmv/detail?id=z	&type=mp4zDownloading mv infor7   ÚbrsrT  Úp)rz   rƒ   r|   Úheightr÷   Ú
artistName)rx   rŽ   r±   r¥   )ÚdescÚ	briefDescrù   Úcoverrµ   rC   r€   Ú	playCountÚ	likeCountÚcommentCount)r°   r´   r³   r¶   rµ   rW  rX  rY  Frò   )
rü   r™   re   r	   r   rŠ   r,   Úfilterr   r   )r0   rz   Úmv_idr�   ra  Úmv_urlrŽ   s          r9   rþ   zNetEaseMusicMvIE._real_extract  s%  € Ø—‘˜sÓ#ˆà�‰Ø˜E˜7 )Ð,¨eÐ5JóLØLRñTˆð
  $ E™{×0Ñ0Ó2÷
á��Vð  5¸#¸¸a°yÌKÐX[ÓL\Ó]ð
ˆñ 
ð ØÜ$ TÐ+CÓDÒ`ÈÏÉÐR^ÓI_ÐH`ñ
ô ˜4Ø ¤3 %˜Ø 5¼°u¼fÐEØ -´Ð/@ÐAØ%¬ }Ð5Ø'¬+¸DÔ*AÐ)BÐCØ*¬[¨MÐ:Ø*¬[¨MÐ:Ø"0´;°-Ð!@ñ	"ð ô	ð	
ð 	
ùó
s   ÁC NrP  r©   r;   r9   rR  rR  Ù  sµ   „ Ø€GØ$€GØI€Jà7àØØ#ØAØ$˜Ø%Ø*ØØØØ ñ
ñð  5àØØ3Ø>Ø$˜Ø%Ø*ØØØØ ñ
ð 1ñð" 1Ø7àØØ&Ú@ØØ%ØØ Ø*Øñ
ñð?.€Fó`
r;   rR  c                   óŒ   — e Zd ZdZdZdZdddddd	gd
ddddœ	dœddddddgddddœddœdddddddgdddddœ	ddidœd dd!œgZd"„ Zy#)$ÚNetEaseMusicProgramIEznetease:programu   ç½‘æ˜“äº‘éŸ³ä¹� - ç”µå�°èŠ‚ç›®zAhttps?://music\.163\.com/(?:#/)?(?:dj|program)\?id=(?P<id>[0-9]+)z*http://music.163.com/#/program?id=10109055Ú32593346r¬   u   ä¸�ä¸¹è¶³ç�ƒèƒŒå�Žçš„æ•…äº‹u   å–œé©¬æ‹‰é›…äººçš„è¶³ç�ƒæ¢¦ ...u   å¤§è¯�è¥¿è—�i×Ö{UÚ20150613rV  i„  )	rx   rƒ   r°   r´   r±   r²   r³   r¶   rµ   rº   z$This program has accompanying songs.z*http://music.163.com/#/program?id=10141022Ú10141022u   æ»šæ»šç”µå�°çš„æœ‰å£°èŠ‚ç›®z$md5:8d594db46cc3e6509107ede70a4aaa3bu   æ»šæ»šç”µå�°ORZi-ûUÚ20150616)rx   r°   r´   r±   r²   r³   r¶   é   r(  Ú32647209iP  Ú
noplaylistT)rt   rz   r»   Úparamsz(https://music.163.com/#/dj?id=3706179315)rz   Úonly_matchingc                 óø  — | j                  |«      }| j                  d|› �|d¬«      d   }t        |dt        hfdt        hfddt        hfd	t        hfd
t        d¬«      hfdœ«      }| j                  |d   xr ||d   d   dd¬«      sC| j                  |d   «      }t        |d   d   «      |t        |ddt        d¬«      hf«      dœ|¥S t        |d«      } | j                  | j                  |«      |fi |¤ŽS )Nzdj/program/detail?id=zDownloading program infors   Úprogramr¥   r´   ÚdjÚbrandÚcoverUrlÚ
createTimerC   r€   )r°   r´   rH  r¶   r²   rñ   ÚmainSongrx   r�   )Úplaylist_labelÚvideo_labelrµ   )rx   rŽ   rµ   ))r  )rñ   .)
rü   r™   r   r,   r   r	   Ú_yes_playlistr‘   r   r¤   )r0   rz   Ú
program_idr�   r  rŽ   rñ   s          r9   rþ   z#NetEaseMusicProgramIE._real_extract]  sJ  € Ø—^‘^ CÓ(ˆ
à�‰Ø# J <Ð0°*ÐC]ð ó _Ø_hñjˆô   Øœs˜e�_Ø)¬C¨5Ð1Ø˜g¬ uÐ-Ø$¤{ mÐ4Ø&¬¸4Ô)@Ð(AÐBñ'
ó ˆð ×!Ñ!Ø�W‘Ò, *¨d°:Ñ.>¸tÑ.DÐU^Ðlrð "ô tà×+Ñ+¨D°Ñ,<Ó=ˆGô ˜$˜zÑ*¨4Ñ0Ó1Ø"Ü(¨°
¸JÌÐ[_ÔI`ÐHaÐ/bÓcñð ð	ð ô ˜TÐ#BÓCˆØ#ˆt×#Ñ# D×$5Ñ$5°eÓ$<¸jÑUÈHÑUÐUr;   Nr#  r©   r;   r9   ro  ro  )  sÃ   „ Ø€GØ.€GØU€Jà;àØØ2Ø<Ø'Ð(Ø#Ø%Ø*Øñ

ñð 7Ø;àØ2ØAØ*Ð+Ø#Ø%Ø*ñ
ð ñð 7Ø;àØØ2ØAØ*Ð+Ø#Ø%Ø*Øñ

ð ˜$ð
ñð$ :ØñðW.€Fó`Vr;   ro  c                   ó6   — e Zd ZdZdZdZdddddœd	d
œZdZd„ Zy)ÚNetEaseMusicDjRadioIEznetease:djradiou   ç½‘æ˜“äº‘éŸ³ä¹� - ç”µå�°z:https?://music\.163\.com/(?:#/)?djradio\?id=(?P<id>[0-9]+)z$http://music.163.com/#/djradio?id=42Ú42u   å£°éŸ³è”“å»¶z$md5:c7381ebd7989f9f367668a5aee7d5f08)rx   r°   r´   é(   r  rC   c           
      ó„  ‡ — ‰ j                  |«      }i }g }t        j                  d‰ j                  ¬«      D ]s  }‰ j	                  d‰ j                  › d|› d|› �|d|› �¬«      }|j                  ˆ fd„|d	   D «       «       |s!t        |d	dd
dt        hfdt        hfdœf«      }|d   rŒs n  ‰ j                  ||fi |¤ŽS )Nr   )ÚstartÚstepz#dj/program/byradio?asc=false&limit=z	&radioId=z&offset=zDownloading dj programs - rs   c           	   3   ó�   •K  — | ]=  }‰j                  d |d   › �t        t        |d   «      |j                  d«      «      –— Œ? y­w)z"http://music.163.com/#/program?id=rx   r¥   N)rŸ   ro  r   rŠ   )rØ   rz  r0   s     €r9   rÝ   z6NetEaseMusicDjRadioIE._real_extract.<locals>.<genexpr>“  sM   øè ø€ ò bàELð  Ÿ?™?Ø4°W¸T±]°OÐDÔF[Ü˜G D™MÓ*¨G¯K©K¸Ó,?÷Añ bùs   ƒAAÚprogramsÚradior¥   re  )r°   r´   r  )	rü   Ú	itertoolsÚcountÚ
_PAGE_SIZEr™   Úextendr   r,   r   )r0   rz   Údj_idr  ÚentriesÚoffsetr�   s   `      r9   rþ   z#NetEaseMusicDjRadioIE._real_extract‰  sù   ø€ Ø—‘˜sÓ#ˆàˆØˆÜ—o‘o¨A°D·O±OÔDò 	ˆFØ—?‘?Ø5°d·o±oÐ5FÀiÐPUÈwÐV^Ð_eÐ^fÐgØÐ8¸¸ÐAð #ó CˆDð �N‰Nó bàPTÐU_ÑP`ôbô bñ Ü'¨¨z¸1¸gØ$¤s e˜_Ø$*¬S¨E ?ñHð /ó �ð
 ˜“<Ùð	ð" $ˆt×#Ñ# G¨UÑ?°hÑ?Ð?r;   N)	r¦   r§   r¨   rÿ   r   r  Ú_TESTr�  rþ   r©   r;   r9   r…  r…  z  s;   „ Ø€GØ(€GØN€Jà5àØ#ØAñ
ð
  ñ€Eð €Jó@r;   r…  )r(   rŽ  r%   r]   rÞ   r\   Úcommonr   Úaesr   r   Úutilsr   r	   r
   r   r   r   r   r   r   r   r   r    r  r%  r2  rR  ro  r…  r©   r;   r9   ú<module>r™     s°   ðÛ Û Û Û Û 	Û å !ß 0÷÷ ÷ ôj@˜ô j@ôZt
Ð'ô t
ôn)TÐ,ô )TôX)ZÐ-ô )ZôXBjÐ+ô BjôJM
Ð)ô M
ô`NVÐ.ô NVôb%@Ð.õ %@r;   