
    V|hq%                         S SK r S SKrS SKrSSKJr  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 " S S\5      rg)    N   )InfoExtractor)VideaIE   )InAdvancePagedListint_or_nonestr_or_nonetraverse_objtry_callupdate_url_queryc                       \ rS rSrS/rSrg)XimalayaBaseIE   CN N)__name__
__module____qualname____firstlineno___GEO_COUNTRIES__static_attributes__r       S/home/james-whalen/.local/lib/python3.13/site-packages/yt_dlp/extractor/ximalaya.pyr   r      s	    VNr   r   c                       \ 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.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 5       r
\	S 5       rS rSrg )!
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nameurlcover_url_142   )r#   r$   widthheightu   其他]   )id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                 T  ^ SmSnU HU  n[        [        SU-  S-   5      S-  5      n[        US-  [        U5      -  5      nTX$   -  mUR                  X$   S5      nMW     U R	                  S5      nSR                  U4S jU 5       5      nUR                  S5      (       d  SU-   nU$ )	N zDabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ/\:._-1234567890   iOu  i   *c              3   l   >#    U  H)  oR                  5       (       d  M  T[        U5         v   M+     g 7f)N)	isdecimalint).0partcgstrs     r   	<genexpr>/XimalayaIE._decrypt_filename.<locals>.<genexpr>e   s$     RAQ+5T+s   44/)floatr?   lenreplacesplitjoin
startswith)file_idseedkey_rpartsfilenamerB   s          @r   _decrypt_filenameXimalayaIE._decrypt_filename[   s    UAS4Z%/0589DD5L3s8+,ASVOE++cfb)C	 
 c"77RRR""3''X~Hr   c                     [         R                  " [        R                  " U 5      S5      R	                  S5      nUS   US   US   4$ )Nxkt3a41psizxrh9l-r   r      )r   rc4base64	b64decoderI   )encrypted_paramsparamss     r   _decrypt_url_paramsXimalayaIE._decrypt_url_paramsj   sJ    -.0BDDIE#J 	 ay&)VAY..r   c                   ^^ UR                  S5      (       a  SOSnU R                  U5      nU R                  U SU S3USS5      m/ nTR                  S5      (       Ga@  [	        [
        R
                  " 5       5      nU R                  U SU S	U 3US
SSSUS.S9nU R                  US   US   5      nU R                  US   5      u  pn
[        US    SUS    U 3UU	U
US   US   S.5      nSUSS.mSU;   aT  U R                  SU R                  5        35        TR                  SSS .[        US![        14S"[        14S#.5      E5        O,TR                  [        US$[        14S[        14S#.5      5        [        U4S% j5      TS&'   UR                  T5        UR!                  S' VVs/ s H*  u  pTR                  U5      (       d  M  U S(3TU   USS).PM,     snn5        / nT HD  nUR                  S*5      (       d  M  UTU   S+.nUS,:X  a
  S-US.'   S-US/'   UR                  U5        MF     TR                  S05      n[        U4S1 j5      nUTR                  S25      [#        U5      U(       a  U S3U S	3OS TS4   UU[%        ['        S TR                  S55      /5      5      TR                  S5      TR                  S65      TR                  S75      US8.$ s  snnf )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/rE   zDownloading VIP info jsonz Unable to download VIP info filepctrue)device	isBackendrO   )queryfileIdrM   epdomainz
/download/
apiVersionbuyKeyr4   )signtoken	timestampbuy_keyr4   vipnone)	format_idr$   vcodec	_preview_z<This tracks requires a VIP account. Using a sample instead. Samplei)format_note
preferencesampleLengthsampleDuration)filesizer4   totalLengthc                  &   > T S   S-  T S   -  S-  $ )Nr|      r4   i   r   )fmts   r   <lambda>*XimalayaIE._real_extract.<locals>.<lambda>   s    #j/A*=J*ORV*Vr   abr))   play_path_32)@   play_path_64k)rt   r$   r   ru   r!   r"   r%   r&   r'   r(   uidc                  N   > T S   R                  SS5      R                  SS5      $ )Nintroz


 
z
)rH   )
audio_infos   r   r   r      s%    Jw'//FNNvW[\r   nicknamez://www.ximalaya.com/zhubo/r/   category_name
play_countfavorites_count)r*   r,   r-   r.   r/   r2   r0   r3   r4   r5   r6   formats)rK   	_match_id_download_jsongetr?   timerS   r^   r   report_warning_login_hintupdater
   r   r   appendextendr	   listfilter)selfr$   schemeaudio_idr   tsvip_inforR   rn   ro   rp   vip_urlbpsr   r2   r1   audio_uploader_idaudio_descriptionr   r   s                     @@r   _real_extractXimalayaIE._real_extractq   sh   NN733>>#&((h/z?#%CE
 >>)$$TYY[!B**(@
!B4P57Y!%FD + FH --hx.@(6BRSH%)%=%=htn%M"D&H%&j,1G0H
S "!*'1 ( 4VG # C
 g%##RSWScScSeRfgi

#+"% #8%3k]$C%5}$E.   

<!. >!+k] ;3  
 ""VWCJNN3
 E[
 Efc
WXHY
5a=	

 E[ 	\ 
A||K((%&z!}=	'),Ig&*-Ih'!!),  'NN51$\^ "z2&'89Yjvh&@AR@SSTUpt($,vdZ^^O-L,MNO"z2$..6$..):;
 	
-[s   1K
K
r   N)r   r   r   r   IE_NAMEIE_DESC
_VALID_URLr?   _TESTSstaticmethodrS   r^   r   r   r   r   r   r   r      s   GG_J = 0) IR  {4 !,6
 !06!$"%	  (j!!1	
< D 0) IR  {4 !,6
 !06!$"%	  (j!!1	
> >!	
w@FD   / /V
r   r   c                   V    \ rS rSrSrSrSrSSSS.S	S
.SSSS.SS
./rS rS r	S r
Srg)XimalayaAlbumIE   z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$   r7   playlist_mincountz&https://www.ximalaya.com/album/6912905u'   埃克哈特《修炼当下的力量》6912905)   c                    ^ ^^ T R                  U5      mT R                  TS5      m[        R                  " TS   TS   -  5      n[	        UUU 4S jUTS   5      n[        TS[        S9nT R                  UTU5      $ )Nr   trackTotalCountpageSizec                 f   > TR                  U (       a  TR                  TU S-   5      5      $ T5      $ )Nr   )_get_entries_fetch_page)idx
first_pageplaylist_idr   s    r   r   /XimalayaAlbumIE._real_extract.<locals>.<lambda>   s*    ))TW$*:*:;a*Ph]ghr   )tracksr   
albumTitle)expected_type)r   r   mathceilr   r
   strplaylist_result)r   r$   
page_countentriesr/   r   r   s   `    @@r   r   XimalayaAlbumIE._real_extract   s    nnS)%%k15
YYz*;<z*?UUV
$h
:.0 Z)DTWX##G[%@@r   c                 6    U R                  SUSU 3XS.S9S   $ )Nz8https://www.ximalaya.com/revision/album/v1/getTracksListzDownloading tracks list page )albumIdpageNum)noterh   data)r   )r   r   page_idxs      r   r   XimalayaAlbumIE._fetch_page   s?    ""F =hZH)? # A BHI 	Ir   c           	   #      #    US    HP  nU R                  U R                  SUS    35      [        UR                  S5      UR                  S5      5      v   MR     g 7f)Nr   z//www.ximalaya.comr$   trackIdr/   )
url_result_proto_relative_urlr   r   )r   	page_dataes      r   r   XimalayaAlbumIE._get_entries   sW     8$A//((+=ahZ)HIAEE),aeeGn> > %s   AAr   N)r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r      s[    G%GVJ@5
 ! 8>
  F AI>r   r   )rZ   r   r   commonr   videar   utilsr   r   r	   r
   r   r   r   r   r   r   r   r   <module>r      sE       !  ] r
 r
j,>n ,>r   