
    Ğiyf                     b   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dS )    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
dS )NetEaseMusicBaseIE)standardhigherexhighlosslesshiresjyeffectjymasterskyzhttp://music.163.com/api/c                     t          j        i |d|id          }d| d| d                    d          }t          j        |                                          }t          t          t                              | d| d|                               }t          t          |t          d	                              }d
|                                                                                                 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	            bC:\Users\betacode\Desktop\descargarYoutube\venv\Lib\site-packages\yt_dlp/extractor/neteasemusic.py_create_eapi_cipherz&NetEaseMusicBaseIE._create_eapi_cipher&   s    z"CZ"C7"C"CPZ[[[C8CCCCCJJ8TT[))3355
T#**MMlMMMM#O #O P P Q Q/$5H0I0IJJKK	2..002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                  ddd hfi          }| j        r|                    d| j                    | j	        t          dd|           |f|                     d| ||          dd                    d |                                D                       d|d|S )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; c                 "    g | ]\  }}| d | S )= ).0kvs      r9   
<listcomp>z:NetEaseMusicBaseIE._download_eapi_json.<locals>.<listcomp>H   s&    $L$L$LDAqZZAZZ$L$L$Lr;   )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   r`   kwargsr3   s          r9   _download_eapi_jsonz&NetEaseMusicBaseIE._download_eapi_json1   s^    # %$%"	d 233RRfnQ6M6MRRR
 
 4,,T^<<I(9(9':;?  
  # 	F{D,DEEE"t"7HH())---WMM2))$L$LGMMOO$L$L$LMMX X X    	r;   c                 J    |                      d|d| d|ddd|           S )Nz/song/enhance/player/url/v1[]flac)idslevel
encodeTypez!Downloading song URL info: level note)ro   )r0   song_idru   s      r9   _call_player_apiz#NetEaseMusicBaseIE._call_player_apiL   sD    '')7"NNNU&II<U<< ( > > 	>r;   c                    g }|d         }| j         D ]}t          |                     ||          dd t          f          }|s n}|                    d          }|r||k    r|dv r nZW|                    |d         |ddt          |d	t          hfd
t          d          hfdt          hfd                     |s n|s|                     ddg           |S )Nidr7   c                 ,    t          |d                   S )Nurl)r   )rD   r\   s     r9   rV   z5NetEaseMusicBaseIE._extract_formats.<locals>.<lambda>W   s    [YZ[`YaMbMb r;   ru   )r   r   r~   none)r~   	format_idvcodectypebrrC   scalesize)extabrfilesizez5No media links found; possibly due to geo restrictionCN)	countries)	_LEVELSr   rz   anygetappendr,   r	   raise_geo_restricted)r0   infoformatsry   ru   songactual_levels          r9   _extract_formatsz#NetEaseMusicBaseIE._extract_formatsR   sX   t*\ 	 	E%%gu55@b@bdg7hj jD 88G,,L  5 5444ENNE{" 	 	 t"SE? ;T#:#:#:";<!'+ 7& &  		 	 	 	    	[%%GTXSY & [ [ [r;   c                 0   |                      | j         | ||d| j        i          }t          |dt          hf          }t          |dt          hf          pd}|dk    r|                     d|            n|dk    rt          d	| d
|           |S )Nr^   )r`   coder5   rA   i2zLogin required to download:    zFailed to get meta info:  )ri   rf   r   ra   r,   raise_login_requiredr   )r0   endpointrm   rx   resultr   r5   s          r9   
_query_apizNetEaseMusicBaseIE._query_apip   s    $$~)x))8TIt~C^ % ` `FVcUO44v	C5'9::@b4<<%%&NW&N&NOOOOS[[ !MT!M!MG!M!MNNNr;   Nr|   namec              #   (  K   t          |g t          |t          t          t          t
          f          fdR           D ]O}t          |                   }|                     d| t          |t          ||t          hf                    V  Pd S )Nc                 2    t          |                   d uS rS   r	   )rD   r\   id_keys     r9   rV   z1NetEaseMusicBaseIE._get_entries.<locals>.<lambda>~   s    [6334? r;   zhttp://music.163.com/#/song?id=)r   r   r,   r-   dictset
url_resultNetEaseMusicIE)r0   
songs_data
entry_keysr   name_keyr   ry   s      `   r9   _get_entrieszNetEaseMusicBaseIE._get_entries{   s        .A*sE4&=>>.A????.A .A B B 	@ 	@D $v,''G//;';;^dXu,=>>@ @ @ @ @ @		@ 	@r;   )Nr|   r   )__name__
__module____qualname__r   rf   r:   ro   rz   r   r   r   rY   r;   r9   r   r      s        	G ,I	< 	< 	< GI    6> > >  <	 	 	@ @ @ @ @ @r;   r   c                   \   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	dTS )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 HZ20180405z$md5:9fd07059c2ccee3950dc8363429a3135   re:^http.*\.jpgu"   偶像练习生 表演曲目合集u   偶像练习生)r|   r   titlecreators	timestampupload_datedescriptionduration	thumbnailalbumaverage_ratingalbum_artistsr~   	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)r|   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	   国际歌19911130i7)z$md5:1ba2f911a2b0aa398479f595224f2141i  u-   伴唱:现代人乐队 合唱:总政歌舞团u   红色摇滚u	   侯牧人u   马备)r|   r   r   r   r   r   r   r   	alt_titler   r   r   r   r   r   )r~   r)   r   z'http://music.163.com/#/song?id=32102397 3e909614ce09b1ccef4a3eb20544119032102397z	Bad BloodzTaylor SwiftzKendrick Lamar20150516iiWUz$md5:21535156efb73d6d1c355f95616e285a   )r|   r   r   r   r   r   r   r   r   r   r   r   r   Blocked outside Mainland China)r~   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!)r|   r   r   r   r   r   r   r   r   r   r   r   r   r   )rx   r~   r   r   c                 B   t          |ddt          hf          }t          |ddt          hf          }|r|dk    rd S |sd|ddgiS d } ||          }t           ||                    d                    fd	|D                       }|ddg|ddg|ddgd
S )Nr   lyrictlyricu    [99:00.00]纯音乐，请欣赏
r   )r7   r   c                 H    d}t          j        ||           }d |D             S )Nz0\[([0-9]{2}):([0-9]{2})[:.]([0-9]{2,})\]([^\n]+)c              3   <   K   | ]\  }}}}d | d| d| d|fV  dS )rq   r   .rr   NrY   )rZ   minutesecmsectexts        r9   	<genexpr>zINetEaseMusicIE._process_lyrics.<locals>.collect_lyrics.<locals>.<genexpr>	  s^        +FCt ,V++c++D+++T2     r;   )refindall)r   lyrics_exprmatchess      r9   collect_lyricsz6NetEaseMusicIE._process_lyrics.<locals>.collect_lyrics  s9    MKjc22G /6   r;   
c              3   r   K   | ]1\  }}t          | |                     |d           d          V  2dS )rA   z / delimN)r
   r   )rZ   r   r   translation_ts_dicts      r9   r   z1NetEaseMusicIE._process_lyrics.<locals>.<genexpr>  sh       6 6	4 Y...0C0G0G	SU0V0V^cddd6 6 6 6 6 6r;   )lyrics_mergedr   lyrics_translated)r   r,   r   rj   )r0   lyrics_infooriginal
translatedr   original_ts_textsmergedr   s          @r9   _process_lyricszNetEaseMusicIE._process_lyrics   s   eWse-DEE!+'C5/IJJ
 	8'JJJ4 	HU;;< 	 	 	 +N844">>*#=#=>> 6 6 6 6#46 6 6 6 6
 (.e<<= (778+5e"D"D!E
 
 	
r;   c                    |                      |          }|                     d| d| d|d          d         d         }|                     |          }|                     |                     d| d|d	                    }|rt	          |d
d          |dni }||d                    t	          |d                    pd t	          |d          pd t	          |d          p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   )r|   r   r   r   r   r   r   publishTimerC   r   picUrlr   score)r   r   r   r   r   r   )		_match_idr   r   r   r   rj   r,   r	   r   )r0   r~   ry   r   r   r   
lyric_datas          r9   _real_extractzNetEaseMusicIE._real_extract  s   ..%%;g;;w;;;WF]_ __fhhik ''--%%doo2W222G=V'X 'X Y Y
 '0Xbghhh
 
 
  	 ,t5S"T"TUU]Y]$T+CDDL)$0QRRZVZ
 
 
 4 3%%}{7N7N7N6OP%x+?'+D*A*A*A)BC!6C51#*[M":" "  
 	
r;   N)
r   r   r   IE_NAMEIE_DESC
_VALID_URLra   _TESTSr   r  rY   r;   r9   r   r      sG       GG[J:&"#%A+9!/0
 
 " 7%#+*0!A23-."eU^$45
 
 & <*%#+*!A,-'("U<b%c%c$de
 
 & w1 %"A"eU^$45H+!#'!
)]
 
 * 91 ')9:%#A"eU^$45+ !*
 
 1% ( '82'(%#A"eU^$451+!*
 
  1' woFb
 
 
B
 
 
 
 
r;   r   c                   P    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dS )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   )r|   r   r   r   r      r~   r   playlist_mincountz&http://music.163.com/#/album?id=220780220780zB'Day20060904z$md5:71a74e1d8f392d88cf1bbe48879ad0b0   )r~   r   playlist_countc                    |                      |          }|                     d| |          }|                     d|d|dd          }|                     d|dd	          |                     d
 dD             |dt
          j        d          |                     d|dd	          t          |                     d|dd	                    d} | 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V  dS )z<div[^>]+\bid="album-desc-z"[^>]*>(.*?)</div>NrY   )rZ   suffixs     r9   r   z4NetEaseMusicAlbumIE._real_extract.<locals>.<genexpr>`  s.      hhfIvIIIhhhhhhr;   )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   r~   album_idwebpager   r  s         r9   r  z!NetEaseMusicAlbumIE._real_extractV  s,   >>#&&(()U8)U)UW_``!!<gzS[& " I I --gwu-UU22hhXghhhbd% 3 A A 11'7KW\1]]*4+A+ABVX_agot+A+u+uvv
 
 $t#D$5$5e$<$<hSS(SSSr;   Nr   r   r   r  r  r  r  r  rY   r;   r9   r  r  <  s        G(GLJ;&%6+
 
  
 
 8%A+
 
 
 
F,T T T T T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dd	d
dddddd	d
gZd ZdS )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;阿妹;阿密特)r|   r   2   rx   r~   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                 R   |                      |          }|                     d| d| |d          }t          t          |ddt          hf          t          t          |ddt          hf          dd	id
          }|                     |                     |d          ||          S )Nzartist/z?id=zDownloading singer datarw   artistr   )trans)r   .r   ;z - r   hotSongs)r   r   r
   r   r,   r#  r   )r0   r~   	singer_idr   r   s        r9   r  z"NetEaseMusicSingerIE._real_extract  s    NN3''	0i00Y00)B[  ] ] &3%899<x9RUXTY.Z[[gcfgg  
 ##D$5$5dJ$G$GTXYYYr;   Nr&  rY   r;   r9   r(  r(  h  s        G(GMJ%78
 
   .8,
 
   89?
 
  !F4Z Z Z Z 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d&S )'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})r|   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   流行r7     榜单u   Billboard公告牌48171d   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^)r|   r   r   r   r;  r9  r:  r   r*  c                    |                      |          }|                     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    r>|                    d           dt          |                    d          d           |d<    | j        | 	                    |d          |fi |S )Nz/v3/playlist/detailz-15000)r|   tnszDownloading playlist inforw   playlistr   r   r9  .creatornicknameuserId
updateTimerC   r   )r   r   r9  r:  r;  r   )rJ  specialType
   r   r   r   z%Y-%m-%d)rJ  tracks)
r   ro   r   r,   r   r	   r   r   r#  r   )r0   r~   list_idr   r  s        r9   r  z NetEaseMusicListIE._real_extract  s:   ..%%''!7E<<, ( . .
  zse_)C51S3%("J6%x+?&4)@)@)@(AB4
 4
 '   9::b@@#+<<#8#8 t t;KHLLYdLeLegq;r;r t tHW#t#D$5$5d<R$S$SU\ii`hiiir;   N	r   r   r   r  r  r  ra   r  r  rY   r;   r9   r5  r5    s         G(GdJ<-AJ&%&	
 	
    (BG5222,"&	
 	
   (CTA%$x(%#	
 	
  7)FVj j j j jr;   r5  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d"S )#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  )r|   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   )r~   r   r   zThis MV has multiple creators.z&https://music.163.com/#/mv?id=2259354322593543u   老北京杀器)u   秃子2zu   辉子u   Saber梁维嘉   20240618)
r|   r   r   r   r   r   r[  r\  r   rZ  )rx   r~   r   c                    |                      |          }|                     d| d|d          d         }d |d                                         D             }||t          |d          p|                    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 )Nzmv/detail?id=z	&type=mp4zDownloading mv infor7   c                 B    g | ]\  }}|d | dt          |          dS )rW  p)r~   r   r   heightr   )rZ   brsmv_urls      r9   r]   z2NetEaseMusicMvIE._real_extract.<locals>.<listcomp>  sG     
 
 
V 5#yyyKX[L\L\]]
 
 
r;   rg  r   
artistName)r|   r   r   r   )desc	briefDescr   coverr   rC   r   	playCount	likeCountcommentCount)r   r   r   r   r   rZ  r[  r\  Fr   )
r   r   rk   r   r   r,   filterr   r   r	   )r0   r~   mv_idr   r   s        r9   r  zNetEaseMusicMvIE._real_extract  s4   s##,E,,,e5JL LLRT
 
#E{0022
 
 
 $T+CDD`R^I_I_H`
 
 4 3% 5ufE -/@A%}5'+D*A*A*A)BC*[M:*[M:"0;-!@	" 	" 	 	 		
 	
r;   NrS  rY   r;   r9   rU  rU    s        G$GIJ7#A$%* 
 
   53>$%* 
 
 1 " 17&@@@% *
 
 ?.F`
 
 
 
 
r;   rU  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d#S )$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20150613rY  i  )	r|   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)r|   r   r   r   r   r   r      r+  32647209iP  
noplaylistT)rx   r~   r   paramsz(https://music.163.com/#/dj?id=3706179315)r~   only_matchingc                 t   |                      |          }|                     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          }|                     |d         o||d         d         dd          s\|                     |d                   }t          |d         d                   |t          |ddt          d          hf          d|S t          |d          } | j        | 	                    |          |fi |S )Nzdj/program/detail?id=zDownloading program inforw   programr   r   djbrandcoverUrl
createTimerC   r   )r   r   rK  r   r   r   mainSongr|   r   )playlist_labelvideo_labelr   )r|   r   r   ))r  )r   .)
r   r   r   r,   r   r	   _yes_playlistr   r#  r   )r0   r~   
program_idr   r  r   r   s          r9   r  z#NetEaseMusicProgramIE._real_extract]  s   ^^C((
0J00*C]  _ __hj  se_)C51gu-${m4&4)@)@)@(AB'
 '
   !!W,*d:.>t.DU^lr " t t 		++D,<==G $z*4011"(
J[_I`I`I`Ha/bcc  	  T#BCC#t#D$5$5e$<$<jUUHUUUr;   Nr&  rY   r;   r9   rs  rs  )  s       G.GUJ;2<'(#%*

 

  7;2A*+#%*
 
   7;2A*+#%*

 

 $
 $ : W.F`V V V V Vr;   rs  c                   8    e Zd ZdZdZdZdddddd	d
ZdZd ZdS )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)r|   r   r   (   r  rC   c           
                                |          }i }g }t          j        d j                  D ]}                     d j         d| d| |d|           }|                     fd|d	         D                        |s't          |d	dd
dt          hfdt          hfdf          }|d         s n  j        ||fi |S )Nr   )startstepz#dj/program/byradio?asc=false&limit=z	&radioId=z&offset=zDownloading dj programs - rw   c           	   3      K   | ]C}                     d |d          t          |d         |                    d                    V  DdS )z"http://music.163.com/#/program?id=r|   r   N)r   rs  r   )rZ   r~  r0   s     r9   r   z6NetEaseMusicDjRadioIE._real_extract.<locals>.<genexpr>  st       U U8?  ??DWT]DDF[w{{6224 4 U U U U U Ur;   programsradior   rj  )r   r   r  )	r   	itertoolscount
_PAGE_SIZEr   extendr   r,   r#  )r0   r~   dj_idr  entriesoffsetr   s   `      r9   r  z#NetEaseMusicDjRadioIE._real_extract  sM   s##oADODDD 	 	F??gdoggPUgg_eggAAA # C CD NN U U U UCG
CSU U U U U U  'z1g$se_$*SE?H H /  
 <  $t#GU??h???r;   N)	r   r   r   r  r  r  _TESTr  r  rY   r;   r9   r  r  z  se        G(GNJ5#A
 

   E J@ @ @ @ @r;   r  )r(   r  r%   rc   r   rb   commonr   aesr   r   utilsr   r	   r
   r   r   r   r   r   r   r   r   r   r  r(  r5  rU  rs  r  rY   r;   r9   <module>r     s          				  ! ! ! ! ! ! 0 0 0 0 0 0 0 0                       j@ j@ j@ j@ j@ j@ j@ j@Zt
 t
 t
 t
 t
' t
 t
 t
n)T )T )T )T )T, )T )T )TX)Z )Z )Z )Z )Z- )Z )Z )ZXBj Bj Bj Bj Bj+ Bj Bj BjJM
 M
 M
 M
 M
) M
 M
 M
`NV NV NV NV NV. NV NV NVb%@ %@ %@ %@ %@. %@ %@ %@ %@ %@r;   