Ë
    š„jg%  ã                   ó–   — d dl Z d dlZd dlZddlmZ ddlmZ ddl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y)é    Né   )ÚInfoExtractor)ÚVideaIEé   )ÚInAdvancePagedListÚint_or_noneÚstr_or_noneÚtraverse_objÚtry_callÚupdate_url_queryc                   ó   — e Zd ZdgZy)ÚXimalayaBaseIEÚCNN)Ú__name__Ú
__module__Ú__qualname__Ú_GEO_COUNTRIES© ó    úP/var/www/html/GAP/venv/lib/python3.12/site-packages/yt_dlp/extractor/ximalaya.pyr   r      s	   „ Ø�V�Nr   r   c                   ó¾   — 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œgdgdeedœdœdddddd	d
dddddœdddddœgdgdeedœdœdddœgZed„ «       Z	ed„ «       Z
d„ Zy)Ú
XimalayaIEÚximalayau   å–œé©¬æ‹‰é›…FMzKhttps?://(?:www\.|m\.)?ximalaya\.com/(?:(?P<uid>\d+)/)?sound/(?P<id>[0-9]+)z'http://www.ximalaya.com/sound/47740352/Ú47740352Úm4au   å°�å½¬å½¬çˆ±å�¬ä¹¦Ú61425525z'http://www.ximalaya.com/zhubo/61425525/u7   261.å”�è¯—ä¸‰ç™¾é¦–.å�·å…«.é€�å­Ÿæµ©ç„¶ä¹‹å¹¿é™µ.æ�Žç™½u–   contains:ã€Šé€�å­Ÿæµ©ç„¶ä¹‹å¹¿é™µã€‹
ä½œè€…ï¼šæ�Žç™½
æ•…äººè¥¿è¾žé»„é¹¤æ¥¼ï¼ŒçƒŸèŠ±ä¸‰æœˆä¸‹æ‰¬å·žã€‚
å­¤å¸†è¿œå½±ç¢§ç©ºå°½ï¼ŒæƒŸè§�é•¿æ±Ÿå¤©é™…æµ�ã€‚zre:^https?://.*\.jpgÚ	cover_url©ÚidÚurlÚcover_url_142é´   )r   r    ÚwidthÚheightu   å…¶ä»–é]   )r   ÚextÚuploaderÚuploader_idÚuploader_urlÚtitleÚdescriptionÚ	thumbnailÚ
thumbnailsÚ
categoriesÚdurationÚ
view_countÚ
like_count)r    Ú	info_dictz.http://m.ximalaya.com/61425525/sound/47740352/u   äººæ–‡z(https://www.ximalaya.com/sound/562111701T)r    Úonly_matchingc                 óH  ‡— dŠd}|D ]V  }t        t        d|z  dz   «      dz  «      }t        |dz  t        |«      z  «      }‰||   z  Š|j                  ||   d«      }ŒX | j	                  d«      }dj                  ˆfd„|D «       «      }|j                  d«      sd|z   }|S )	NÚ zDabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ/\:._-1234567890éÓ   iOu  i   Ú*c              3   ó\   •K  — | ]#  }|j                  «       sŒ‰t        |«         –— Œ% y ­w)N)Ú	isdecimalÚint)Ú.0ÚpartÚcgstrs     €r   ú	<genexpr>z/XimalayaIE._decrypt_filename.<locals>.<genexpr>e   s#   øè ø€ ÒR°ÀÇÁÕAQ˜5¤ T£Õ+ÑRùs   ƒ,™,ú/)Úfloatr:   ÚlenÚreplaceÚsplitÚjoinÚ
startswith)Úfile_idÚseedÚkeyÚ_ÚrÚpartsÚfilenamer=   s          @r   Ú_decrypt_filenamezXimalayaIE._decrypt_filename[   s±   ø€ àˆØUˆØò 	*ˆAÜœ˜S 4™Z¨%Ñ/Ó0°5Ñ8Ó9ˆDÜ�D˜5‘L¤3 s£8Ñ+Ó,ˆAØ�S˜‘V‰OˆEØ—+‘+˜c !™f bÓ)‰Cð		*ð
 —‘˜cÓ"ˆØ—7‘7ÓR¸ÔRÓRˆØ×"Ñ" 3Ô'Ø˜X‘~ˆHØˆr   c                 óŽ   — t        j                  t        j                  | «      d«      j	                  d«      }|d   |d   |d   fS )NÚxkt3a41psizxrh9lú-r   r   é   )r   Úrc4Úbase64Ú	b64decoderC   )Úencrypted_paramsÚparamss     r   Ú_decrypt_url_paramszXimalayaIE._decrypt_url_paramsj   sJ   € ä—‘Ü×ÑÐ-Ó.Ð0BóDßDIÁEÈ#ÃJð 	ð �a‰y˜& ™) V¨A¡YÐ.Ð.r   c                 ó†  ‡‡— |j                  d«      rdnd}| j                  |«      }| j                  |› d|› d�|dd«      Šg }‰j                  d«      �r@t	        t        j
                  «       «      }| j                  |› d|› d	|› �|d
ddd|dœ¬«      }| j                  |d   |d   «      }| j                  |d   «      \  }}	}
t        |d   › d|d   › |› �||	|
|d   |d   dœ«      }d|ddœŠd|v rT| j                  d| j                  «       › �«       ‰j                  ddd œt        |d!t        hfd"t        hfd#œ«      ¥«       n,‰j                  t        |d$t        hfdt        hfd#œ«      «       t        ˆfd%„«      ‰d&<   |j                  ‰«       |j!                  d'D ��cg c]#  \  }}‰j                  |«      r|› d(�‰|   |dd)œ‘Œ% c}}«       g }‰D ]<  }|j                  d*«      sŒ|‰|   d+œ}|d,k(  r
d-|d.<   d-|d/<   |j                  |«       Œ> ‰j                  d0«      }t        ˆfd1„«      }|‰j                  d2«      t#        |«      |r|› d3|› d	�nd ‰d4   ||t%        t'        d ‰j                  d5«      g«      «      ‰j                  d«      ‰j                  d6«      ‰j                  d7«      |d8œS c c}}w )9NÚhttpsÚhttpz://m.ximalaya.com/tracks/z.jsonzDownloading info jsonzUnable to download info fileÚis_paidz&://mpay.ximalaya.com/mobile/track/pay/r?   zDownloading VIP info jsonz Unable to download VIP info fileÚpcÚtrue)ÚdeviceÚ	isBackendrI   )ÚqueryÚfileIdrG   ÚepÚdomainz
/download/Ú
apiVersionÚbuyKeyr/   )ÚsignÚtokenÚ	timestampÚbuy_keyr/   ÚvipÚnone)Ú	format_idr    ÚvcodecÚ	_preview_z<This tracks requires a VIP account. Using a sample instead. ÚSampleiöÿÿÿ)Úformat_noteÚ
preferenceÚsampleLengthÚsampleDuration)Úfilesizer/   ÚtotalLengthc                  ó&   •— ‰ d   dz  ‰ d   z  dz  S )Nrt   é   r/   i   r   )Úfmts   €r   ú<lambda>z*XimalayaIE._real_extract.<locals>.<lambda>¡   s   ø€ ¨#¨j©/¸AÑ*=ÀÀJÁÑ*OÐRVÑ*V€ r   Úabr))é   Úplay_path_32)é@   Úplay_path_64Úk)rl   r    rz   rm   r   r   r!   r"   r#   r$   Úuidc                  óN   •— ‰ d   j                  dd«      j                  dd«      S )NÚintroz


 ú
z
)rB   )Ú
audio_infos   €r   ry   z*XimalayaIE._real_extract.<locals>.<lambda>¸   s'   ø€ �J˜wÑ'×/Ñ/°ÀÓF×NÑNÈvÐW[Ó\€ r   Únicknamez://www.ximalaya.com/zhubo/r*   Úcategory_nameÚ
play_countÚfavorites_count)r   r'   r(   r)   r*   r-   r+   r.   r/   r0   r1   Úformats)rE   Ú	_match_idÚ_download_jsonÚgetr:   ÚtimerM   rW   r   Úreport_warningÚ_login_hintÚupdater
   r   r   ÚappendÚextendr	   ÚlistÚfilter)Úselfr    ÚschemeÚaudio_idr‰   ÚtsÚvip_inforL   rf   rg   rh   Úvip_urlÚbpsr   r-   r,   Úaudio_uploader_idÚaudio_descriptionr„   rx   s                     @@r   Ú_real_extractzXimalayaIE._real_extractq   s\  ù€ ØŸN™N¨7Ô3‘¸ˆà—>‘> #Ó&ˆØ×(Ñ(ØˆhÐ/°¨z¸Ð?ÀØ#Ð%CóEˆ
ð ˆà�>‰>˜)Õ$Ü”T—Y‘Y“[Ó!ˆBØ×*Ñ*Ø�(Ð@ÀÀ
È!ÈBÈ4ÐPØÐ5Ð7YØ!%°FÀÑDð +ó FˆHð ×-Ñ-¨h°xÑ.@À(È6ÑBRÓSˆHØ%)×%=Ñ%=¸hÀt¹nÓ%MÑ"ˆD�%˜Ü&Ø˜HÑ%Ð& j°¸,Ñ1GÐ0HÈÈ
ÐSØ Ø"Ø!*Ø'¨Ñ1Ø (¨Ñ 4ñVóˆGð #ØØ ñˆCð
 ˜gÑ%Ø×#Ñ#ØRÐSW×ScÑScÓSeÐRfÐgôià—
‘
Ø#+Ø"%ñô # 8Ø%3´k°]Ð$CØ%5¼°}Ð$Eñ.ó ðõ ð —
‘
œ<¨Ø!.´°Ð >Ø!+¬k¨]Ð ;ñ3ó ô ô
 "Ó"VÓWˆC�‰JØ�N‰N˜3Ôà�‰ð
 E÷[ñ
 ˆc�1È
ÏÉÐWXÔHYð	  ˜5 ˜Ø˜a‘=ØØó	
ó [ô 	\ð ˆ
Øò 	-ˆAà�|‰|˜KÕ(Ø#$¨Z¸©]Ñ;�	Ø˜Ò'Ø),�I˜gÑ&Ø*-�I˜hÑ'Ø×!Ñ! )Õ,ð	-ð 'ŸN™N¨5Ó1Ðä$Û\ó^Ðð Ø"Ÿ™ zÓ2Ü&Ð'8Ó9ÙYj˜v˜hÐ&@ÐARÐ@SÐSTÑUÐptØ Ñ(Ø$Ø,Üœv d¨Z¯^©^¸OÓ-LÐ,MÓNÓOØ"Ÿ™ zÓ2Ø$Ÿ.™.¨Ó6Ø$Ÿ.™.Ð):Ó;Øñ
ð 	
ùó-[s   Æ'(J=
N)r   r   r   ÚIE_NAMEÚIE_DESCÚ
_VALID_URLr:   Ú_TESTSÚstaticmethodrM   rW   rž   r   r   r   r   r      s  „ Ø€GØ€GØ_€Jð =à ØØ0Ø)Ø IØRð  {Ø4ð *Ø6ñð
 .Ø6Ø!$Ø"%ñ	ðð  (˜jØØ!Ø!ñ1ñ	
ð< Dà ØØ0Ø)Ø IØRð  {Ø4ð *Ø6ñð
 .Ø6Ø!$Ø"%ñ	ðð  (˜jØØ!Ø!ñ1ñ	
ð> >Ø!ñ	
ðw@€FðD ñó ðð ñ/ó ð/óV
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	œgZd„ Zd„ Zd„ Z	y)ÚXimalayaAlbumIEzximalaya:albumu   å–œé©¬æ‹‰é›…FM ä¸“è¾‘zBhttps?://(?:www\.|m\.)?ximalaya\.com/(?:\d+/)?album/(?P<id>[0-9]+)z/http://www.ximalaya.com/61425525/album/5534601/u   å”�è¯—ä¸‰ç™¾é¦–ï¼ˆå�«èµ�æž�ï¼‰Ú5534601)r*   r   iC  )r    r2   Úplaylist_mincountz&https://www.ximalaya.com/album/6912905u'   åŸƒå…‹å“ˆç‰¹ã€Šä¿®ç‚¼å½“ä¸‹çš„åŠ›é‡�ã€‹Ú6912905é)   c                 óþ   ‡ ‡‡— ‰ j                  |«      Š‰ j                  ‰d«      Št        j                  ‰d   ‰d   z  «      }t	        ˆˆˆ fd„|‰d   «      }t        ‰dt        ¬«      }‰ j                  |‰|«      S )Nr   ÚtrackTotalCountÚpageSizec                 ó\   •— ‰j                  | r‰j                  ‰| dz   «      «      S ‰«      S )Nr   )Ú_get_entriesÚ_fetch_page)ÚidxÚ
first_pageÚplaylist_idr•   s    €€€r   ry   z/XimalayaAlbumIE._real_extract.<locals>.<lambda>å   s.   ø€ ˜×)Ñ)ÑTW¨$×*:Ñ*:¸;ÈÈaÉÓ*PÓh€ Ð]gÓh€ r   )Útracksr   Ú
albumTitle)Úexpected_type)rŠ   r¯   ÚmathÚceilr   r
   ÚstrÚplaylist_result)r•   r    Ú
page_countÚentriesr*   r±   r²   s   `    @@r   rž   zXimalayaAlbumIE._real_extractÞ   s   ú€ Ø—n‘n SÓ)ˆà×%Ñ% k°1Ó5ˆ
Ü—Y‘Y˜zÐ*;Ñ<¸zÈ*Ñ?UÑUÓVˆ
ä$ÝhØ˜
 :Ñ.ó0ˆô ˜ZÐ)DÔTWÔXˆà×#Ñ# G¨[¸%Ó@Ð@r   c                 ó>   — | j                  d|d|› �||dœ¬«      d   S )Nz8https://www.ximalaya.com/revision/album/v1/getTracksListzDownloading tracks list page )ÚalbumIdÚpageNum)Únoter`   Údata)r‹   )r•   r²   Úpage_idxs      r   r¯   zXimalayaAlbumIE._fetch_pageì   sA   € Ø×"Ñ"ØFØÐ =¸h¸ZÐHØ)°hÑ?ð #ó Að BHñIð 	Ir   c           	   #   óº   K  — |d   D ]O  }| j                  | j                  d|d   › �«      t        |j                  d«      |j                  d«      «      –— ŒQ y ­w)Nr³   z//www.ximalaya.comr    ÚtrackIdr*   )Ú
url_resultÚ_proto_relative_urlr   rŒ   )r•   Ú	page_dataÚes      r   r®   zXimalayaAlbumIE._get_entriesò   s]   è ø€ Ø˜8Ñ$ò 	>ˆAØ—/‘/Ø×(Ñ(Ð+=¸aÀ¹h¸ZÐ)HÓIÜ˜AŸE™E )Ó,¨a¯e©e°G«nó>ó >ñ	>ùs   ‚AAN)
r   r   r   rŸ   r    r¡   r¢   rž   r¯   r®   r   r   r   r¥   r¥   Ê   s[   „ Ø€GØ%€GØV€Jà@à5Øñ
ð !ñð 8à>Øñ
ð  ñð€Fò AòIó>r   r¥   )rS   r¶   r�   Úcommonr   Úvidear   Úutilsr   r   r	   r
   r   r   r   r   r¥   r   r   r   ú<module>rË      sE   ðÛ Û Û å !Ý ÷÷ ô�]ô ôr
�ô r
ôj,>�nõ ,>r   