
    VGh K                         d dl mZ ddlmZmZmZmZmZmZm	Z	m
Z
 ddlmZmZ  G d de      Z G d de      Z G d	 d
e      Zy)   )InfoExtractor   )ExtractorErrorfloat_or_noneformat_fieldint_or_noneparse_iso8601parse_qstruncate_stringurl_or_none)traverse_objvaluec                   *    e Zd Zd ZddZddZddZy)BandlabBaseIEc           	      t    |j                  dd       xs i } | j                  d| d| |fdddddd|i|S )	Nheadersz!https://www.bandlab.com/api/v1.3//zapplication/jsonzhttps://www.bandlab.com/zBandLab-Webz10.1.124)acceptrefererzx-client-idzx-client-version)pop_download_json)selfendpointasset_idkwargsr   s        a/var/www/it7/html/youtubeDownloader/venv/lib/python3.12/site-packages/yt_dlp/extractor/bandlab.py	_call_apizBandlabBaseIE._call_api   sk    **Y-3"t""/z8*E -5,$.	
   	    Nc                    ddt         j                         t         j                  dt        |dt	        |      ht        d      hft        t        fdt        ht        fdd	t        hfdd	t        hfd
dt        hfdddt        hfdt        hfdd	t        hfddt        hfdt        hfd
dt        hfddt        hfddt        hfddt        hfddd	t        hfd      S )Nnonerevisionvcodec
media_typeextractor_key	extractoridz#https://www.bandlab.com/revision/%stemplate
revisionIdr'   songnamemixdownfilepictureurldescriptioncreatorusername	createdOndurationcountersplayslikescommentsgenres.)webpage_urlr'   titletrackr1   	thumbnailr2   uploaderuploader_id	timestampr6   
view_count
like_countcomment_countr;   )	BandlabIEie_keyIE_NAMEr   r   r   filteranystrr   r	   r   r   )r   revision_datar1   s      r   _parse_revisionzBandlabBaseIE._parse_revision   s
   $&--/"**	

 =E#J<,@e*f)ghjpru w+cUC8 &3%0 &3%0!6K=9$iF -u5&6 ):u=)M?;&
]OD)7[MB)7[MB",j;-!H#S&3%8!+ 
 	
r   c                    ddt         j                         t         j                  dt        |dt	        |      ht        d      hft        t        fdt        ht        fddd	t        hfdd
t        hfdd
t        hfdt        hfdddt        ht        fddt        hfddt        hfddt        hfdddt        hfdd
t        hfddt        hfdt        hfd      S )Nr    r>   r"   r'   https://www.bandlab.com/post/%sr(   r*   sampleaudioUrlr-   captionr0   originalr1   r7   r8   r9   r:   r6   r3   r4   r5   )r<   r'   r1   r=   r>   r2   r?   rC   rD   rE   r6   r@   rA   rB   )rF   rG   rH   r   r   r   rI   rJ   rK   r   r   r   r	   )r   
track_datar1   s      r   _parse_trackzBandlabBaseIE._parse_track6   s   !&--/"**	

 :E#J<,@a*b)cdflnq s+cUC8:}E!6C51!6C51 )C51%y2E}VYZ)7[MB)7[MB",j;-!H$h
]OL&6 ):u=)M?;( 
 	
r   c                    dt         j                         t         j                  dt        |dt        hfdt        |      ht        d      hft        t        fddt        hfdd ht        d	
      hfdt        hfdddt        hfdddt        hfdddt        hfddt        hfddt        hfddt        hfddt        hfd      S )Nvideo)r$   r%   r&   r'   rO   r(   r1   rR   c                 &    | j                  dd      S )N
 replacexs    r   <lambda>z,BandlabBaseIE._parse_video.<locals>.<lambda>Y   s    		$0D r   H   )leftr0   r7   r8   r9   r:   r6   r3   r-   r4   )r'   r<   r1   r=   r2   r?   rC   rD   rE   r6   r@   rA   )rF   rG   rH   r   rK   r   r   rI   rJ   r   r   r   r   )r   
video_datar1   s      r   _parse_videozBandlabBaseIE._parse_videoO   s    !&--/"**
 :cUmE#J<,@a*b)cdflnq s6#&D%E]_H`Gab )C51%y%+G&
Gk]K&
Gk]K",j;-!H$j=/B&6 ):u=( 	
 	
r   )N)__name__
__module____qualname__r   rM   rV   rd    r   r   r   r      s    

4
2
r   r   c                      e Zd ZddgZded    dgZddi dd	d
ddddddddddededdddddddddgdd d!ed"d#d$d%di dd	d
ddddddddd&dededdddddddddgdd d!ed"d#d$d'd(i dd)d
dd!edd*gdd+dd,dd-dd.dd/dedd0dedd1dd2dd.d"d#d$d3d4i dd5d
ddd6dd7dd8dd9dd:dd;ded!edd9dd<gdd=dedd>d"d#d$d?d@dAdBdCdDedEdFdGedEdHdId$dJdKi ddLd
dd!eddMgddNddOddPdeddQddRddSddTddUddQded"d#d$dVdWdXddYedZdYeed[d\d]d^d_dd`d$dadbdcgZddi dded
ddeddfddgddhddid!eddjgddkddldeddmddmddnd"d#dogZdp Zyq)rrF   zShttps?://(?:www\.)?bandlab.com/(?P<url_type>track|post|revision)/(?P<id>[\da-f_-]+)zThttps?://(?:www\.)?bandlab.com/(?P<url_type>embed)/\?(?:[^#]*&)?id=(?P<id>[\da-f-]+)<iframe[^>]+src=[\'"](?P<url>r   )[\'"]z_https://www.bandlab.com/track/04b37e88dba24967b9dac8eb8567ff39_07d7f906fc96ee11b75e000d3a428fff 46f7b43367dd268bbcf0bbe466753b2cr'   z$02d7f906-fc96-ee11-b75e-000d3a428fffextm4arA   ender_milzer>   zsweet blackr2   zcomposed by juanjn3737rB   i;uerC   rD   r6   gp=
ףPK@r=   upload_date20231210r?   zUhttps://bl-prod-images.azureedge.net/v1.0/songs/fa082beb-b856-4730-9170-a57e4e32cc2c/r;   Lofir@   zender milzerE   r$   r!   )r1   md5	info_dictzAhttps://www.bandlab.com/post/07d7f906-fc96-ee11-b75e-000d3a428fffiEuezchttps://www.bandlab.com/track/048916c2-c6da-ee11-85f9-6045bd2e11f9?sharedKey=0NNWX8qYAEmI38lWAzCNDA 15174b57c44440e2a2008be9cae00250z$038916c2-c6da-ee11-85f9-6045bd2e11f9Otheruser8353034818103753zUhttps://bl-prod-images.azureedge.net/v1.0/songs/51b18363-da23-4b9b-a29c-2933a3e561ca/iePodcastMaerchen4bg
ףp=B}@u#   Podcast: Neues aus der Märchenwelt20240305zErna Wagenederzmhttps://www.bandlab.com/track/130343fc-148b-ea11-96d2-0003ffd1fc09?revId=110343fc-148b-ea11-96d2-0003ffd1fc09 74e055ef9325d63f37088772fbfe4454z$110343fc-148b-ea11-96d2-0003ffd1fc09i ^zUhttps://bl-prod-images.azureedge.net/v1.0/users/b612e533-e4f7-4542-9f50-3fcfd8dd822c/zFinal Revision.zReplay ( Instrumental)David R Sparksdavesnothome69Rock20200430g{Gvq@zAhttps://www.bandlab.com/post/5cdf9036-3857-ef11-991a-6045bd36e0d9 8caa2ef28e86c1dacf167293cfdbeba9z$5cdf9036-3857-ef11-991a-6045bd36e0d9mp4g
ףp=ZF@zVhttps://bl-prod-images.azureedge.net/v1.0/videos/67c6cef1-cef6-40d3-831e-a55bc1dcb972/zbacking vocals
marliashyaauraarX   )r'   rm   r6   r?   rE   r=   rA   r@   rD   r2   r$   zQhttps://www.bandlab.com/embed/?blur=false&id=014de0a4-7d82-ea11-a94c-0003ffd19c0f a4ad05cb68c54faaed9b0a8453a8cf4az$014de0a4-7d82-ea11-a94c-0003ffd19c0f
ElectroniczCharlie Hensoni^20200419zPositronic Meltdowngs@zUhttps://bl-prod-images.azureedge.net/v1.0/songs/87165bc3-5439-496e-b1f7-a9f13b541ff2/z1Checkout my tracks at AOMX http://aomxsounds.com/microfreaksz_https://www.bandlab.com/track/55767ac51789ea11a94c0003ffd1fc09_2f007b0a37b94ec7a69bc25ae15108a5 f05d68a3769952c2d9257c473e14c15fA55767ac51789ea11a94c0003ffd1fc09_2f007b0a37b94ec7a69bc25ae15108a5insamegRU@SorakimesorakimezUhttps://bl-prod-images.azureedge.net/v1.0/users/572a351a-0f3a-4c6a-ac39-1a5defdeeb1c/id20230804)r'   rm   r>   rD   r6   r=   rC   rE   r@   rA   r?   rB   rp   r$   zEhttps://www.bandlab.com/revision/014de0a4-7d82-ea11-a94c-0003ffd19c0fTr1   only_matchingzhttps://phantomluigi.github.io/z$e14223c3-7871-ef11-bdfd-000d3a980db320240913phantommusicofficialiѤfPhantomzProgresive Rockz$md5:a38cd668f7a2843295ef284114f18429g(\'l@zVermilion Pt. 2 (Cover)zThttps://bandlabimages.azureedge.net/v1.0/songs/62b10750-7aef-4f42-ad08-1af52f577e97/)r1   rt   c           
      2   | j                  |      j                  dd      \  }}t        |      }t        |ddt        f      }|dk(  r|}d }|s| j                  d|dt        |dd	i      
      }t        |dt        ht        f      }t        |dt        hf      }|sQ|sO|j                  d      }|dk(  r| j                  ||      S |dk(  r| j                  ||      S t        d|      |s| j                  d|dddi
      }| j                  ||      S )Nr'   url_type)revIdr'       r!   postszDownloading post data	sharedKey)r   r   )notequery)r+   )r!   r'   typeVideo)r1   Trackz%Could not extract data for post type 	revisionszDownloading revision dataeditfalse)_match_valid_urlgroupr
   r   rJ   r   rK   dictgetrd   rV   r   rM   )	r   r1   
display_idr   qsrevision_idrL   	post_data	post_types	            r   _real_extractzBandlabIE._real_extract  sQ   #44S9??jQ
Hc]"2C'@Az!$K*A"25E'FG ' II 'y3UX[W\^a2bcK(Z$4HIM %MM&1	',,YC,@@',,YC,@@$'LYM%Z[[ NN[/JSY[bRc + eM ##Ms#;;r   N)	re   rf   rg   
_VALID_URL_EMBED_REGEXint_TESTS_WEBPAGE_TESTSr   rh   r   r   rF   rF   f   s   ^_J 5Z]O6JKLp1
8
5
 =
 ]	

 3
 
 #
 #
 *
 ]
 :
 p
 vh
 
 S
  *!
. S1
8
5
 =
 ]	

 3
 
 #
 #
 *
 ]
 :
 p
 vh
 
 S
  *!
	0 u1
8
5
 S
 wi	

 1
 p
 
 (
 
 #
 @
 #
 :
 (
 (
  *!
	0 1
8
5
 
 p	

 ,
 -
 (
 +
 #
 S
 -
 vh
 :
 #
 
  *!
	0 S18q %'+!
	& c1
8
5
 S
 |n	

 (
 
 :
 #
 *
 
 p
 N
 =
 *
 #
  *!
	0 q1U "%p#%!
	* WeUFn 1
8
5
 #
 :	

 1
 
 	
 S
 ()
 A
 
 #
 .
 .
 o
  *!
 N,<r   rF   c                       e Zd ZddgZded    dgZdddd	d	ed
deedddddddddeddddedd	dddddded d!ed"ed#d d
d$d%dd&ed'ed(ed)d*d+d+d,d-d.d/d0dd1d2d3gZd4 Zd5 Zy6)7BandlabPlaylistIEzXhttps?://(?:www\.)?bandlab.com/(?:[\w]+/)?(?P<type>albums|collections)/(?P<id>[\da-f-]+)z[https?://(?:www\.)?bandlab.com/(?P<type>embed)/collection/\?(?:[^#]*&)?id=(?P<id>[\da-f-]+)rj   r   rk   zRhttps://www.bandlab.com/davesnothome69/albums/89b79ea6-de42-ed11-b495-00224845aac7zVhttps://bl-prod-images.azureedge.net/v1.3/albums/69507ff3-579a-45be-afca-9e87eddec944/20221003RemnantsLPz*A collection of some feel good, rock hits.z$89b79ea6-de42-ed11-b495-00224845aac7r{   r|   )r?   release_dater=   albumrD   
album_typer2   rE   rC   r'   r@   rA   
   )r1   rt   playlist_countzShttps://www.bandlab.com/slytheband/collections/955102d4-1040-ef11-86c3-000d3a42581bz$955102d4-1040-ef11-86c3-000d3a42581bi#fu   My Shit 🖤
slythebandu   𝓢𝓛𝓨20240712zZhttps://bandlabimages.azureedge.net/v1.0/collections/2c64ca12-b180-4b76-8587-7a8da76bddc8/)	r'   rB   rC   r=   rA   r@   rp   rD   r?      zQhttps://www.bandlab.com/embed/collection/?id=12cc6f7f-951b-ee11-907c-00224844f303z$12cc6f7f-951b-ee11-907c-00224844f30320230706zEThis is a collection of songs I created when I had an Amiga computer.zMark Salud The Amiga Collectionmssirmooth1962zVhttps://bl-prod-images.azureedge.net/v1.3/albums/d618bd7b-0537-40d5-bdd8-61b066e77d59/z
Mark Salud)r'   r   r2   rC   r=   rA   rE   r?   rD   r@   r   r      zQhttps://www.bandlab.com/embed/collection/?id=e98aafb5-d932-ee11-b8f0-00224844c719r   r   z$md5:4ec31c568a5f5a5a2b17572ea64c382520230812ArtAlbumz$e98aafb5-d932-ee11-b8f0-00224844c719zVhttps://bl-prod-images.azureedge.net/v1.3/albums/20c890de-e94a-4422-828a-2da6377a13c8/)rD   rA   rE   r@   rC   r2   r   r=   r   r   r'   r?      zChttps://www.bandlab.com/albums/89b79ea6-de42-ed11-b495-00224845aac7Tr   c              #     K   t        |dd f      D ]v  }|d   }|dk(  r#| j                  |j                  d             0|dk(  r| j                  |       I|dk(  r| j	                  |       b| j                  d| d	       x y w)
Nr   c                     |d   S )Nr   rh   )_vs     r   r`   z,BandlabPlaylistIE._entries.<locals>.<lambda>  s
    AfI r   r   Revisionr!   r   r   zSkipping unknown post type: "")r   rM   r   rV   rd   report_warning)r   
album_datapostr   s       r   _entrieszBandlabPlaylistIE._entries  s      g7M-NO 		RDVIJ&**488J+?@@g%''--g%''--##&CI;a$PQ		Rs   B
Bc                    | j                  |      j                  dd      \  }}dgdgddgdj                  |      }|D ]4  }| j                  ||d|d d  dd	d
      }|j                  d      r2|} n j                  d      x}rt	        d| d       | j
                  | j                  |      |fi t        |dt        hfdt        hfddt        hfddt        hfdt        hfdd ht        fddt        ht        fddt        hfddt        hfddt        hfd
      |dk(  rt        |dt        hfdt        hfd      S i S )Nr'   r   albumscollections)r   r   embedzDownloading z dataFi  )r   fatalexpected_status	errorCodez+Could not find playlist data. Error code: "r   r-   r2   r3   r4   r5   releaseDatec                 &    | j                  dd      S )N- r\   r^   s    r   r`   z1BandlabPlaylistIE._real_extract.<locals>.<lambda>  s    199S";M r   r0   rS   r7   r9   r:   r8   )
r=   r2   r@   rA   rB   r   r?   rD   rE   rC   )r   r   )r   r   r   r   r   playlist_resultr   r   rK   r	   rI   r   rJ   r   )r   r1   playlist_idplaylist_type	endpointsr   playlist_data
error_codes           r   r   zBandlabPlaylistIE._real_extract  s   %)%:%:3%?%E%EdF%S"]  j)?#X.
 #m
	 	
 " 	H NN+l8CR=/,OS + 2M !$$[1 (	 '**;77:7 #NzlZ[!\]]#t##MM-(+6= 3% -u5&6 ):u=)M?;!.1M0NPV W')<{mSQ)7[MB",j;-!H)7[MB+ 6"  8+ M 3%%uo, 6 	6" 24#6 	6r   N)	re   rf   rg   r   r   r   r   r   r   rh   r   r   r   r   8  s!   cfJ 5Z]O6JKLcq&G 8(+
 !$ e8##'&%u

   c8&b6+ q$6
 #( c% "A&!8q
 #& UGFFP
R#6r   r   N)commonr   utilsr   r   r   r   r	   r
   r   r   utils.traversalr   r   r   rF   r   rh   r   r   <module>r      sH    !	 	 	 2T
M T
nO< O<d}6 }6r   