
    yf                     l    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	  G d de      Z
 G d	 d
e
      Zy)    N   )
compat_str   )InfoExtractor)
clean_htmlint_or_nonetry_getc                       e Zd ZdZddi dddddd	d
ddddddddddddddddddedededg dd d!d"d#gZd'd$Zd% Zy&)(	JamendoIEa'  (?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artistu   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                     d|z  }t        t        j                               }| j                  d|z   ||d|iddt        j                  ||z   j                               j                         d|di      d	   S )
Nz/api/%sszhttps://www.jamendo.comzid[]z
X-Jam-Call$*~)fatalqueryheadersr   )r   random_download_jsonhashlibsha1encode	hexdigest)selfresourceresource_idr.   pathrands         :/usr/lib/python3/dist-packages/yt_dlp/extractor/jamendo.py	_call_apizJamendoIE._call_api1   s    H$&--/*""%,kO 7<<8L8L8N+O+Y+Y+[]ab # 
  	    c                 >   | j                  |      j                         \  }}| j                  d|      }|d   x}}| j                  d|j                  d      d      }| j                  d|j                  d      d      }t	        d	      D 	
cg c]  \  }	\  }
}}d
|d|d|
d|
||	d }}}
}	}g }g }|j                  d      xs i j                         D ]b  }|j                         D ]M  \  }}|r||v r|j                  |       t        |j                  d            }|j                  ||||d       O d g }|j                  d      xs g D ]'  }|j                  d      }|s|j                  |       ) |j                  d      xs i }|j                  d      xs g }i d|d|d|d|d|j                  d      dt        |j                  d            d|j                  d      d|d|j                  d      d|d|rdj                  |      nd dt        |j                  d            d t        |j                  d!            d"t        |j                  d#            d$t        |j                  d%            d|S c c}}}
}	w )&Nr   namer   artistIdF)r.   r   albumId))mp31mp3lmp3)mp32mp3drE   )ogg1oggrI   )r   r   r   zhttps://z.jamendo.com/?trackid=z&format=z&from=app-97dab294)r&   	format_idr   qualitycoversize)r   r&   widthheightr    stats	licenseCCr   r   
thumbnailsr   descriptionr   formatsr   -r   dateCreatedr   listenedAllr   	favoritedr   averageNote)_match_valid_urlgroupsr=   get	enumeratevaluesitemsappendr   lstripjoin)r7   r&   track_idr   r   r   
track_namer   r   rK   rJ   
sub_domainr   rT   urlsrR   coverscover_id	cover_urlrM   r    tagtag_namerP   r   s                            r<   _real_extractzJamendoIE._real_extract;   s   #44S9@@B* w1"6]*
 %))J*?uMw		)(<EJ 8A B
 8  4g3	:s	 !(I7"
   
yy)/R779 	F'-||~ 
#) I$5I&"8??6#:;!!"$!"	# 
	 IIf%+ 	"CwwvHKK!		" 		'"(b))K(.B
(
*
 *
 U	

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

 +
 o
 )
 +
 
 g
 
 :
 z
 #
 #
  c!
" H#
. O-F6J
r>   r   c                       e Zd ZdZdddddddd	d
dd
ddedddddg deddddd	ddddddg dddeddeddgddidgZd Zy )!JamendoAlbumIEz4https?://(?: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   rS    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   r   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   r   r   r   r   r   r    r   r   r   r   r   r   playlistendr   )r&   r(   playlistparamsc                    | j                  |      }| j                  d|      }|j                  d      }g }|j                  d      xs g D ]M  }|j                  d      }|st        |      }|j	                  dd|z   t
        j                         ||d       O | j                  |||t        t        |d t                          S )	Nr   r@   tracksr   url_transparentzhttps://www.jamendo.com/track/)_typer&   ie_keyr   r   c                     | d   d   S )NrS   enrs   )xs    r<   <lambda>z.JamendoAlbumIE._real_extract.<locals>.<lambda>   s    -0@0F r>   )
	_match_idr=   r\   r   r`   r   r   playlist_resultr   r	   )r7   r&   album_idr   
album_nameentriesr   rc   s           r<   rl   zJamendoAlbumIE._real_extract   s    >>#&w1YYv&
ii)/R 	EyyH!(+HNN*7(B#**,# 	 ##Xzwu&F
STV 	Vr>   N)rm   rn   ro   rp   rq   rr   rl   rs   r>   r<   ru   ru      s    HJC$A
 6%#%')!m("#M!
( 6-#-')B(m!"#!
'&P 1
]1 1FfVr>   ru   )r3   r1   compatr   commonr   utilsr   r   r	   r   ru   rs   r>   r<   <module>r      s:       ! x
 x
vJVY JVr>   