
    VGh                      p    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e      Z G d	 d
e      Zy)    N   )InfoExtractor   )HEADRequest)
clean_htmlint_or_nonetry_geturlhandle_detect_extc                       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$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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                     d| d}t        t        j                               }| j                  d|z   ||d|iddt        j                  ||z   j                               j                          d| di	      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_idr0   pathrands         a/var/www/it7/html/youtubeDownloader/venv/lib/python3.12/site-packages/yt_dlp/extractor/jamendo.py	_call_apizJamendoIE._call_api2   s    xj"6==?#""%,kO ',,t/C/C/E"F"P"P"R!SSTUYTZZ[\ # 
  	    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 ]  }|j                         D ]{  \  }}|r||v r|j                  |       | j                  t        |      |ddd      }|s@t        |j                  d            }|j                  |t        |d      |||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   nameartistartistIdF)r0   r   albumId))mp31mp3lmp3)mp32mp3drI   )ogg1oggrM   )r   r   r   zhttps://z.jamendo.com/?trackid=z&format=z&from=app-97dab294)r'   	format_idr   qualitycoverzChecking thumbnail extension)errnoter0   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)r:   r'   track_idr   r   r   
track_namerD   r   rO   rN   
sub_domainr   r[   urlsrY   coverscover_id	cover_urlurlhrR   r!   tagtag_namerW   video_licenses                             r?   _real_extractzJamendoIE._real_extract<   sU   #44S9@@B* w1"6]*
 %))J*?uMw		)(<EJ 8A B
 8
 

 4g3	:s	 j\)?zR[Q\\no"	
 
 
 
yy)/R779 	F'-||~ #) I$5I&,,	*H6T! - 0 "8??6#:;!!"/eD$!"# 	& 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__
_VALID_URLint_TESTSr@   rv    rA   r?   r   r      s   J K1
(
0
 6

 +
 (
 )
 +
 
 g
 
 :
 z
 #
 #
  c!
" H#
. O-F6O
rA   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   rZ    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   rD   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   rD   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   rC   tracksr   url_transparentzhttps://www.jamendo.com/track/)_typer'   ie_keyr   r   c                     | d   d   S )NrZ   enr}   )xs    r?   <lambda>z.JamendoAlbumIE._real_extract.<locals>.<lambda>   s    -0@0F rA   )
	_match_idr@   rc   r3   rg   r   r   playlist_resultr   r	   )r:   r'   album_idr   
album_nameentriesr   rk   s           r?   rv   zJamendoAlbumIE._real_extract   s    >>#&w1YYv&
ii)/R 	EyyH8}HNN*7(B#**,# 	 ##Xzwu&FLMO 	OrA   N)rw   rx   ry   rz   r{   r|   rv   r}   rA   r?   r   r      s    HJC$A
 6%#%')!m("#M!
( 6-#-')B(m!"#!
'&P 1
]1 1FfOrA   r   )r6   r4   commonr   
networkingr   utilsr   r   r	   r
   r   r   r}   rA   r?   <module>r      s:      ! $ }
 }
@JOY JOrA   