
    V|h                     Z    S SK r SSKJr  SSKJrJrJrJrJr  SSK	J
r
Jr   " S S\5      rg)	    N   )InfoExtractor   )
clean_htmlextract_attributesint_or_nonestrip_or_noneunified_strdate)find_elementtraverse_objc            	       B    \ rS rSrSrSSSSSSSS	/S
.S./rS rS rSrg)MonstercatIE   z1https?://www\.monstercat\.com/release/(?P<id>\d+)z/https://www.monstercat.com/release/742779548009   zThe Secret Language of Trees742779548009z5https://www.monstercat.com/release/742779548009/cover20230711BT)titleid	thumbnailrelease_datealbumalbum_artists)urlplaylist_count	info_dictc              #   .  #    [         R                  " SU5       H  n[        U[        SS91S 1S[        145      n[        U[        SSS91[
        145      =(       d    0 nUR                  S	5      nUR                  S
5      n[        U[        SS91[        145      nU(       a  U(       d0  U R                  SU S35        U R                  SU< SU< 35        M  0 UEUUU[        U[        SS91[        1[        45      SU SU 3USS.Ev   M     g 7f)Nz<tr[^<]*>((?:(?!</tr>)[\w\W])+)zd-inline-flex flex-columnclsc                 $    U R                  S5      $ )Nz <span	partitionxs    U/home/james-whalen/.local/lib/python3.13/site-packages/yt_dlp/extractor/monstercat.py<lambda>.MonstercatIE._extract_tracks.<locals>.<lambda>!   s    1;;x0    r   z btn-play cursor-pointer mr-smallT)r   htmlzdata-track-idzdata-release-idz	py-xsmallzSkipping track z, ID(s) not foundzrelease_id=z
 track_id=zd-block fs-xxsmallz'https://www.monstercat.com/api/release/z/track-stream/mp3)r   tracktrack_numberartistsr   r   ext)refindallr   r   r   r   getr   report_warningwrite_debugall)	selftable
album_metatdr   idstrack_id
release_idr,   s	            r%   _extract_tracksMonstercatIE._extract_tracks   sF    **?GB "=>?011zl&D EE r"D4PQTfSg$i j pmo ww/H!23J'l{.K-L{m,\]L:##ol^CT$UV  ;znJxl!ST		 ,'l?S.T-UXbWceh,ij@N[cZde	 	 Hs   DDc                    U R                  U5      nU R                  X5      n[        U[        SS915      =(       d    Sn[        U[        SS91[        145      nUUSU S3[        U[        SS91[        1[
        45      [        U[        S	S91S
 1S[        1[        145      S.nU R                  " U R                  XF5      4SU0UD6$ )Nztable table-smallr    h1)tagz#https://www.monstercat.com/release/z/coverz5h-normal text-uppercase mb-desktop-medium mb-smallishz1font-italic mb-medium d-tablet-none d-phone-blockc                 $    U R                  S5      $ )Nz	Released r!   r#   s    r%   r&   ,MonstercatIE._real_extract.<locals>.<lambda>F   s    1;;{3r(   r   )r   r   r   r   r   playlist_id)
	_match_id_download_webpager   r   r   r4   r	   r
   playlist_resultr<   )r5   r   url_idr)   tracklist_tabler   r7   s          r%   _real_extractMonstercatIE._real_extract7   s    $%%c2&tl?R.S-TU[Y[T\d%;$<zl#KL >vhfM)$"YZ[^h]ikn1p q("UVW34a-?J[0] ^	

 ##  =aKQaU_a 	ar(    N)	__name__
__module____qualname____firstlineno__
_VALID_URL_TESTSr<   rJ   __static_attributes__rL   r(   r%   r   r      s=    EJ@3 P&3"V
 F4ar(   r   )r/   commonr   utilsr   r   r   r	   r
   utils.traversalr   r   r   rL   r(   r%   <module>rW      s(    	 !  9<a= <ar(   