o
    i                      @   sd   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
 G dd deZG d	d
 d
eZdS )    N   )InfoExtractor   )HEADRequest)
clean_htmlint_or_nonetry_geturlhandle_detect_extc                   @   s   e Zd ZdZddi dddddd	d
dddg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$d%Zd&d' Zd(S )*	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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                 C   s\   d| d}t t }| jd| ||d|iddt||    d| did	d
 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_idr-   pathrand r<   L/home/ubuntu/.local/lib/python3.10/site-packages/yt_dlp/extractor/jamendo.py	_call_api2   s   
$zJamendoIE._call_apic              
      s  |  | \ }| d }|d  }}| jd|ddd}| jd|ddd} fd	d
tdD }g }	g }
|dp@i  D ]<}| D ]5\}}|rS||	v rTqI|	| | jt	| dddd}|shqIt
|d}|
|t|dd|||d qIqCg }|dpg D ]}|d}|sq|| q|dpi }|dpg }i d d|d|
d|d|ddt
|dd|dd|d|dd|d|rd|nd dt
|d d!t
|d"d#t
|d$d%t
|d&d|S )'Nr   nameartistartistIdF)r-   r   albumIdc              	      s8   g | ]\}\}}}d | d  d| d|||dqS )zhttps://z.jamendo.com/?trackid=z&format=z&from=app-97dab294)r%   	format_idr   qualityr<   ).0rD   rC   
sub_domainr   track_idr<   r=   
<listcomp>O   s    
z+JamendoIE._real_extract.<locals>.<listcomp>))mp31mp3lmp3)mp32mp3drL   )ogg1oggrP   )r   r   r   coverzChecking thumbnail extension)errnoter-   sizejpg)default)r   r   r%   widthheightr   stats	licenseCCr   r   
thumbnailsr   descriptionr   formatsr   -r   dateCreatedr   listenedAllr   	favoritedr   averageNote)_match_valid_urlgroupsr>   get	enumeratevaluesitemsappend_request_webpager   r   lstripr	   join)r7   r%   r   r   r   
track_namer@   r   r\   urlsrZ   coverscover_id	cover_urlurlhrS   r   tagtag_namerX   video_licenser<   rG   r=   _real_extract<   s   








	
zJamendoIE._real_extractN)T)__name__
__module____qualname__
_VALID_URLint_TESTSr>   ru   r<   r<   r<   r=   r
      sX    		


r
   c                   @   s   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d  Zd!S )"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   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   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              
   C   s   |  |}| d|}|d}g }|dpg D ]}|d}|s#qt|}|dd| t ||d q| |||tt	|dd	 tS )
Nr   r?   tracksr   url_transparentzhttps://www.jamendo.com/track/)_typer%   ie_keyr   r   c                 S   s   | d d S )Nr[   enr<   )xr<   r<   r=   <lambda>   s    z.JamendoAlbumIE._real_extract.<locals>.<lambda>)
	_match_idr>   rd   r0   rh   r
   r   playlist_resultr   r   )r7   r%   album_idr   
album_nameentriesr   rH   r<   r<   r=   ru      s(   



zJamendoAlbumIE._real_extractN)rv   rw   rx   ry   rz   r{   ru   r<   r<   r<   r=   r|      s`    (3r|   )r3   r1   commonr   
networkingr   utilsr   r   r   r	   r
   r|   r<   r<   r<   r=   <module>   s     