a
    h                      @   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dddddgd	dd
ddddeeeg d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-nd)ZpianoZpeacefulZnewagestringsZupbeat)id
display_idexttitleZartists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 r0   M/mnt/pikpak/tmp/myenv/lib/python3.9/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pi  D ]x}| D ]j\}}|r||	v rq|	| | jt	| dddd}|sqt
|d}|
|t|dd|||d qqg }|dpg D ]$}|d}|s,q|| q|dpHi }|dpXg } ||
||dt
|d|d||d||rd|nd t
|dt
|dt
|dt
|d|dS )Nr   nameartistZ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   qualityr0   ).0r6   r5   Z
sub_domainr   track_idr0   r1   
<listcomp>O   s   z+JamendoIE._real_extract.<locals>.<listcomp>))Zmp31Zmp3lmp3)Zmp32Zmp3dr;   )Zogg1oggr<   )r   r   r   ZcoverzChecking thumbnail extension)Zerrnoter$   sizeZjpg)default)r   r   r   widthheightr   statsZ	licenseCCdescriptionr   -ZdateCreatedZlistenedAllZ	favoritedZaverageNote)r   r   
thumbnailsr   rB   r   r4   r   r   formatsr   r   r   r   r   r   )Z_match_valid_urlgroupsr2   get	enumeratevaluesitemsappendZ_request_webpager   r   lstripr	   join)r-   r   r   r   r   Z
track_namer4   r   rE   urlsrD   ZcoversZcover_idZ	cover_urlZurlhr=   r   tagZtag_namerA   Zvideo_licenser0   r8   r1   _real_extract<   sl    




zJamendoIE._real_extractN)T)__name__
__module____qualname__
_VALID_URLint_TESTSr2   rP   r0   r0   r0   r1   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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-coverZ121486zDuck On Coverz$md5:c2920eaeef07d7af5b96d7c64daf1239)r   r   rB   Z e1a2fcb42bda30dfac990212924149a8Z1032333r   Z
WarmachineZSheareridQZ20130509zNhttps://usercontent.jamendo.com?type=album&id=121486&width=300&trackid=1032333   Zby   )rockdrumsbassworldpunkZneutral)r   r   r   r4   r   r   r   r   r   r   r   r   r   r   r   )r   r   Z 1f358d7b2f98edfe90fd55dac0799d50Z1032330zWithout Your Ghost   )rZ   r[   r\   r]   r^   zNhttps://usercontent.jamendo.com?type=album&id=121486&width=300&trackid=1032330)r   r   r   r4   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   r3   Ztracksr   Zurl_transparentzhttps://www.jamendo.com/track/)_typer   ie_keyr   r   c                 S   s   | d d S )NrB   enr0   )xr0   r0   r1   <lambda>       z.JamendoAlbumIE._real_extract.<locals>.<lambda>)
Z	_match_idr2   rG   r'   rK   r
   rb   Zplaylist_resultr   r   )r-   r   Zalbum_idr   Z
album_nameentriesr   r9   r0   r0   r1   rP      s(    



zJamendoAlbumIE._real_extractN)rQ   rR   rS   rT   rU   rV   rP   r0   r0   r0   r1   rW      s^   (3rW   )r)   r(   commonr   Z
networkingr   utilsr   r   r   r	   r
   rW   r0   r0   r0   r1   <module>   s    