
    V|h                      p    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
   " S S\5      r " S	 S
\5      rg)    N   )InfoExtractor   )HEADRequest)
clean_htmlint_or_nonetry_geturlhandle_detect_extc                       \ rS rSrSrSS0 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 Q_S!.S"S#S$./rS)S% jrS& rS'r	g()*	JamendoIE   a'  (?x)
                    https?://
                        (?:
                            licensing\.jamendo\.com/[^/]+|
                            (?:www\.)?jamendo\.com
                        )
                        /track/(?P<id>[0-9]+)(?:/(?P<display_id>[^/?#&]+))?
                    z9https://www.jamendo.com/track/196219/stories-from-emona-i 6e9e82ed6db98678f171c25a8ed09ffdid196219
display_idzstories-from-emona-iextflactitlezStories from Emona Iartistsu   Maya FilipičalbumzBetween two worldstrackduration   	thumbnailzLhttps://usercontent.jamendo.com?type=album&id=29279&width=300&trackid=196219	timestampiHupload_date20080730licensezby-nc-nd
view_count
like_countaverage_ratingtags)pianopeacefulnewagestringsupbeat)urlmd5	info_dictz=https://licensing.jamendo.com/en/track/1496667/energetic-rockT)r(   only_matchingc                     SU S3n[        [        R                  " 5       5      nU R                  SU-   X#SU0SS[        R                  " XE-   R                  5       5      R                  5        SU S30S	9S
   $ )Nz/api/szhttps://www.jamendo.comzid[]z
X-Jam-Call$*~)fatalqueryheadersr   )strrandom_download_jsonhashlibsha1encode	hexdigest)selfresourceresource_idr1   pathrands         R/home/james-whalen/.local/lib/python3.13/site-packages/yt_dlp/extractor/jamendo.py	_call_apiJamendoIE._call_api2   s    xj"6==?#""%,kO ',,/C/C/E"F"P"P"R!SSTUYTZZ[\ # 
  	    c                    U R                  U5      R                  5       u  p#U R                  SU5      nUS   =pVU R                  SUR                  S5      SS9nU R                  SUR                  S5      SS9n[	        S	5       V	V
VVs/ s H  u  n	u  pnS
U SU SU
 S3U
UU	S.PM     nnn
n	n/ n/ nUR                  S5      =(       d    0 R                  5        H  nUR                  5        H  u  nnU(       a  UU;   a  M  UR                  U5        U R                  [        U5      USSSS9nU(       d  MK  [        UR                  S5      5      nUR                  U[        USS9UUUS.5        M     M     / nUR                  S5      =(       d    /  H.  nUR                  S5      nU(       d  M  UR                  U5        M0     UR                  S5      =(       d    0 nUR                  S5      =(       d    / n0 SU_SU_SU_SU_SUR                  S5      _S[        UR                  S5      5      _SUR                  S5      _SU_SUR                  S5      _SU_S U(       a  S!R                  U5      OS _S"[        UR                  S#5      5      _S$[        UR                  S%5      5      _S&[        UR                  S'5      5      _S([        UR                  S)5      5      _SU_$ s  snnn
n	f )*Nr   nameartistartistIdF)r1   r   albumId))mp31mp3lmp3)mp32mp3drK   )ogg1oggrO   )r   r   r   zhttps://z.jamendo.com/?trackid=z&format=z&from=app-97dab294)r(   	format_idr   qualitycoverzChecking thumbnail extension)errnoter1   sizejpg)default)r   r   r(   widthheightr"   stats	licenseCCr   r   
thumbnailsr   descriptionr   formatsr   -r   dateCreatedr   listenedAllr    	favoritedr!   averageNote)_match_valid_urlgroupsrA   get	enumeratevaluesitemsappend_request_webpager   r   lstripr
   join)r;   r(   track_idr   r   r   
track_namerF   r   rQ   rP   
sub_domainr   r]   urlsr[   coverscover_id	cover_urlurlhrT   r"   tagtag_namerY   video_licenses                             r@   _real_extractJamendoIE._real_extract<   sD   #44S9@@B w1"6]* %))J*?uMw		)(<EJ 8A B
 8

83g3	s	 j\)?zR[Q\\no"	

8 	 
 
yy)/R779F'-||~#) I$5I&,,	*H6T! - 0 "8??6#:;!!"/eD$!"#  (6 :& IIf%++CwwvHKK!	 , 		'"(b		+.4"
(
*
 *
 U	

 599]3
 EIIj$9:
 fjj(
 Z
 UYYv&
 w
 -sxx.T
 UYY}%=>
 +eii&>?
 +eii&<=
 k%))M*BC
  D!
 	
W
s   
!K,
 N)T)
__name__
__module____qualname____firstlineno__
_VALID_URLint_TESTSrA   rx   __static_attributes__rz   rC   r@   r   r      s   J K1
(
0
 6

 +
 (
 )
 +
 
 g
 
 :
 z
 #
 #
  c!
" H#
. O-F6O
rC   r   c                       \ 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Q\S.S.SSS
SSSSSS/ SQSS\SS\S.S./SS0S./rS  rS!rg")#JamendoAlbumIE   z4https?://(?:www\.)?jamendo\.com/album/(?P<id>[0-9]+)z2https://www.jamendo.com/album/121486/duck-on-cover121486zDuck On Coverz$md5:c2920eaeef07d7af5b96d7c64daf1239)r   r   r\    e1a2fcb42bda30dfac990212924149a81032333r   
WarmachineSheareridQ20130509zNhttps://usercontent.jamendo.com?type=album&id=121486&width=300&trackid=1032333   by   )rockdrumsbassworldpunkneutral)r   r   r   rF   r   r   r   r   r   r   r   r   r!   r"   r    )r)   r*    1f358d7b2f98edfe90fd55dac0799d501032330zWithout Your Ghost   )r   r   r   r   r   zNhttps://usercontent.jamendo.com?type=album&id=121486&width=300&trackid=1032330)r   r   r   rF   r   r   r   r   r"   r   r   r   r!   r   r    playlistendr   )r(   r*   playlistparamsc                    U R                  U5      nU R                  SU5      nUR                  S5      n/ nUR                  S5      =(       d    /  HT  nUR                  S5      nU(       d  M  [        U5      nUR	                  SSU-   [
        R                  5       UUS.5        MV     U R                  XRU[        [        US [        5      5      5      $ )	Nr   rE   tracksr   url_transparentzhttps://www.jamendo.com/track/)_typer(   ie_keyr   r   c                     U S   S   $ )Nr\   enrz   )xs    r@   <lambda>.JamendoAlbumIE._real_extract.<locals>.<lambda>   s    -0@0FrC   )
	_match_idrA   re   r4   ri   r   r   playlist_resultr   r	   )r;   r(   album_idr   
album_nameentriesr   rm   s           r@   rx   JamendoAlbumIE._real_extract   s    >>#&w1YYv&
ii)/R/EyyH8}HNN*7(B#**,#  0 ##zwu&FLMO 	OrC   rz   N)	r{   r|   r}   r~   r   r   r   rx   r   rz   rC   r@   r   r      s    HJC$A
 6%#%')!m("#M!
( 6-#-')B(m!"#!
'&P 1
]1 1FfOrC   r   )r7   r5   commonr   
networkingr   utilsr   r   r	   r
   r   r   rz   rC   r@   <module>r      s:      ! $ }
 }
@JOY JOrC   