U
    g                     @   sT   d dl Z d dlZddlmZ ddlmZmZmZ G dd deZG dd	 d	eZ	dS )
    N   )InfoExtractor   )
clean_htmlint_or_nonetry_getc                   @   sd   e Zd ZdZdddddddd	dd
ddddeeedddd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-iZ 6e9e82ed6db98678f171c25a8ed09ffdZ196219zstories-from-emona-iflaczStories from Emona Iu   Maya FilipičzBetween two worlds   zLhttps://usercontent.jamendo.com?type=album&id=29279&width=300&trackid=196219iHZ20080730zby-nc-ndZpianoZpeacefulZnewagestringsZupbeat)id
display_idexttitleartistalbumtrackduration	thumbnail	timestampupload_datelicense
view_count
like_countaverage_ratingtags)urlmd5	info_dictz=https://licensing.jamendo.com/en/track/1496667/energetic-rockT)r   Z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randomZ_download_jsonhashlibsha1encode	hexdigest)selfresourceZresource_idr#   pathZrand r/   </tmp/pip-unpacked-wheel-q5ljy6pj/yt_dlp/extractor/jamendo.py	_call_api0   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pi  D ]P}| D ]B\}}|r||	krq|	| t|	d}|
||||d qqg }|dpg D ]}|d}|sq|| q|dpi }|dp(g } ||
||dt|d|d||d||rjd
|nd t|dt|dt|dt|d|dS )Nr   namer   ZartistIdF)r#   r   ZalbumIdc              	      s8   g | ]0\}\}}}d | d  d| d|||dqS )zhttps://z.jamendo.com/?trackid=z&format=z&from=app-97dab294)r   	format_idr   qualityr/   ).0r4   r3   Z
sub_domainr   track_idr/   r0   
<listcomp>M   s   z+JamendoIE._real_extract.<locals>.<listcomp>))Zmp31Zmp3lmp3)Zmp32Zmp3dr9   )Zogg1oggr:   )r	   r	   r	   Zcoversize)r   r   widthheightr   statsZ	licenseCCdescriptionr   -ZdateCreatedZlistenedAllZ	favoritedZaverageNote)r   r   
thumbnailsr   r?   r   r   r   r   formatsr   r   r   r   r   r   )Z_match_valid_urlgroupsr1   get	enumeratevaluesitemsappendr   lstripjoin)r,   r   r   r   r   Z
track_namer   r   rB   urlsrA   ZcoversZcover_idZ	cover_urlr;   r   tagZtag_namer>   Zvideo_licenser/   r6   r0   _real_extract:   s^    


zJamendoIE._real_extractN)T)__name__
__module____qualname__
_VALID_URLint_TESTSr1   rM   r/   r/   r/   r0   r      s6   	

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ddddddgeddddd	dddddddddddg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-coverZ121486zDuck On Coverz$md5:c2920eaeef07d7af5b96d7c64daf1239)r   r   r?   Z e1a2fcb42bda30dfac990212924149a8Z1032333r	   Z
WarmachineZSheareridQZ20130509zNhttps://usercontent.jamendo.com?type=album&id=121486&width=300&trackid=1032333   Zby   ZrockZdrumsZbassZworldZpunkZneutral)r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r   r   Z 1f358d7b2f98edfe90fd55dac0799d50Z1032330zWithout Your Ghost   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   Zplaylistendr   )r   r   Zplaylistparamsc              
   C   s   |  |}| d|}|d}g }|dp0g D ]:}|d}|sFq2t|}|dd| t ||d q2| |||tt	|dd	 tS )
Nr   r2   Ztracksr   Zurl_transparentzhttps://www.jamendo.com/track/)_typer   ie_keyr   r   c                 S   s   | d d S )Nr?   enr/   )xr/   r/   r0   <lambda>       z.JamendoAlbumIE._real_extract.<locals>.<lambda>)
Z	_match_idr1   rD   r&   rH   r   rZ   Zplaylist_resultr   r   )r,   r   Zalbum_idr   Z
album_nameentriesr   r7   r/   r/   r0   rM      s,    



  zJamendoAlbumIE._real_extractN)rN   rO   rP   rQ   rR   rS   rM   r/   r/   r/   r0   rT      s`   ( 3rT   )
r(   r'   commonr   utilsr   r   r   r   rT   r/   r/   r/   r0   <module>   s
   z