
    V|h K                         S SK Jr  SSKJrJrJrJrJrJrJ	r	J
r
  SSKJrJr   " S S\5      r " S S\5      r " S	 S
\5      rg)   )InfoExtractor   )ExtractorErrorfloat_or_noneformat_fieldint_or_noneparse_iso8601parse_qstruncate_stringurl_or_none)traverse_objvaluec                   8    \ rS rSrS rSS jrSS jrSS jrSrg)	BandlabBaseIE   c           	      ~    UR                  SS 5      =(       d    0 nU R                  " SU SU 3U4SSSSSS.UE0UD6$ )	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        R/home/james-whalen/.local/lib/python3.13/site-packages/yt_dlp/extractor/bandlab.py	_call_apiBandlabBaseIE._call_api   si    **Y-3""/z8*E -5,$.	
   	    Nc                    SS[         R                  5       [         R                  S.[        US[	        U5      1[        SS914[        [        4S[        1[        4SS	[        14SS	[        14S
S[        14SSS[        14S[        14SS	[        14SS[        14S[        14S
S[        14SS[        14SS[        14SS[        14SSS	[        14S.5      E$ )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trackr3   	thumbnailr4   uploaderuploader_id	timestampr8   
view_count
like_countcomment_countr=   )	BandlabIEie_keyIE_NAMEr   r   r   filteranystrr   r	   r   r   )r   revision_datar3   s      r   _parse_revision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                    SS[         R                  5       [         R                  S.[        US[	        U5      1[        SS914[        [        4S[        1[        4SSS	[        14SS
[        14SS
[        14S[        14SSS[        1[        4SS[        14SS[        14SS[        14SSS[        14SS
[        14SS[        14S[        14S.5      E$ )Nr"   r@   r$   r)   https://www.bandlab.com/post/%sr*   r,   sampleaudioUrlr/   captionr2   originalr3   r9   r:   r;   r<   r8   r5   r6   r7   )r>   r)   r3   r?   r@   r4   rA   rE   rF   rG   r8   rB   rC   rD   )rH   rI   rJ   r   r   r   rK   rL   rM   r   r   r   r	   )r   
track_datar3   s      r   _parse_track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                 |   S[         R                  5       [         R                  S.[        US[        14S[        U5      1[        SS914[        [        4SS[        14SS 1[        S	S
914S[        14SSS[        14SSS[        14SSS[        14SS[        14SS[        14SS[        14SS[        14S.5      E$ )Nvideo)r&   r'   r(   r)   rR   r*   r3   rU   c                 &    U R                  SS5      $ )N
 replacexs    r   <lambda>,BandlabBaseIE._parse_video.<locals>.<lambda>Y   s    		$0Dr    H   )leftr2   r9   r:   r;   r<   r8   r5   r/   r6   )r)   r>   r3   r?   r4   rA   rE   rF   rG   r8   rB   rC   )rH   rI   rJ   r   rM   r   r   rK   rL   r   r   r   r   )r   
video_datar3   s      r   _parse_video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____firstlineno__r   rO   rY   ri   __static_attributes__rk   r    r   r   r      s    

4
2
r    r   c                      \ rS rSrSS/rS\S    S3/rSS0 S	S
_SS_SS_SS_SS_SS_S\_S\_SS_SS_SS_SS_SS/_S S!_S"\_S#S$_S%.S&S0 S	S
_SS_SS_SS_SS_SS'_S\_S\_SS_SS_SS_SS_SS/_S S!_S"\_S#S$_S%.S(S)0 S	S*_SS_S"\_SS+/_SS,_SS-_SS._SS/_SS0_S\_SS1_S\_SS2_S S3_SS/_S#S$_S%.S4S50 S	S6_SS_SS7_SS8_SS9_SS:_S S;_SS<_S\_S"\_SS:_SS=/_SS>_S\_SS?_S#S$_S%.S@SASBSCSDSE\SFSGSH\SFSISJ.S%.SKSL0 S	SM_SS_S"\_SSN/_S SO_SSP_SSQ_S\_SSR_SSS_SST_SSU_SSV_SSR_S\_S#S$_S%.SWSXSYSSZ\S[SZ\\S\S]S^S_S`SSa.S%.SbScSd./rSe0 S	Sf_SS_S\_SSg_SSh_SSi_S Sj_S"\_SSk/_SSl_SSm_S\_SSn_SSn_SSo_S#S$_Sp./rSq r	Srr
gs)trH   f   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m4arC   ender_milzer@   zsweet blackr4   zcomposed by juanjn3737rD   i;uerE   rF   r8   gp=
ףPK@r?   upload_date20231210rA   zUhttps://bl-prod-images.azureedge.net/v1.0/songs/fa082beb-b856-4730-9170-a57e4e32cc2c/r=   LofirB   zender milzerG   r&   r#   )r3   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auraar\   )r)   rv   r8   rA   rG   r?   rC   rB   rF   r4   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)   rv   r@   rF   r8   r?   rE   rG   rB   rC   rA   rD   ry   r&   zEhttps://www.bandlab.com/revision/014de0a4-7d82-ea11-a94c-0003ffd19c0fTr3   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/)r3   r}   c           
      <   U R                  U5      R                  SS5      u  p#[        U5      n[        USS[        45      nUS:X  a  UnS nU(       d  U R                  SUS[        USS	05      S
9n[        US[        1[        45      n[        US[        145      nU(       dQ  U(       dJ  UR                  S5      nUS:X  a  U R                  XqS9$ US:X  a  U R                  XqS9$ [        SU< 35      eU(       d  U R                  SUSSS0S
9nU R                  XaS9$ )Nr)   url_type)revIdr)       r#   postszDownloading post data	sharedKey)r   r   )notequery)r-   )r#   r)   typeVideo)r3   Trackz%Could not extract data for post type 	revisionszDownloading revision dataeditfalse)_match_valid_urlgroupr
   r   rL   r   rM   dictgetri   rY   r   rO   )	r   r3   
display_idr   qsrevision_idrN   	post_data	post_types	            r   _real_extractBandlabIE._real_extract  sI   #44S9??jQ
c]"2C'@Az!$K*A"25E'FG ' II 'y3UX[W\^a2bcK(Z$4HIM %MM&1	',,Y,@@',,Y,@@$'LYM%Z[[ NN[/JSY[bRc + eM ##M#;;r    rk   N)rl   rm   rn   ro   
_VALID_URL_EMBED_REGEXint_TESTS_WEBPAGE_TESTSr   rp   rk   r    r   rH   rH   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    rH   c                       \ rS rSrSS/rS\S    S3/rSSS	S
S
\SS\\SSSS.SS.SSS\SSSS\SS.	SS.SSSS \S!S"\S#\S$S!SS%.S&S.S'\S(\S)\S*S+S,S,S-S.S/S0.S1S.S2S3S4./rS5 rS6 r	S7r
g8)9BandlabPlaylistIEi8  zXhttps?://(?: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-]+)rs   r   rt   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   )rA   release_dater?   albumrF   
album_typer4   rG   rE   r)   rB   rC   
   )r3   r}   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)   rD   rE   r?   rC   rB   ry   rF   rA   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   r4   rE   r?   rC   rG   rA   rF   rB   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/)rF   rC   rG   rB   rE   r4   r   r?   r   r   r)   rA      zChttps://www.bandlab.com/albums/89b79ea6-de42-ed11-b495-00224845aac7Tr   c              #   ,  #    [        USS 45       H}  nUS   nUS:X  a$  U R                  UR                  S5      5      v   M2  US:X  a  U R                  U5      v   MM  US:X  a  U R	                  U5      v   Mh  U R                  SU S	35        M     g 7f)
Nr   c                     US   $ )Nr   rk   )_vs     r   rd   ,BandlabPlaylistIE._entries.<locals>.<lambda>  s    AfIr    r   Revisionr#   r   r   zSkipping unknown post type: "")r   rO   r   rY   ri   report_warning)r   
album_datapostr   s       r   _entriesBandlabPlaylistIE._entries  s      g7M-NODVIJ&**488J+?@@g%''--g%''--##&CI;a$PQ Ps   BBc                    U R                  U5      R                  SS5      u  p#S/S/SS/S.R                  U5      nU H6  nU R                  XRSUS S  S3S	S
S9nUR                  S5      (       a  M4  Un  O   WR                  S5      =n(       a  [	        SU S35      eU R
                  " U R                  U5      U40 [        US[        14S[        14SS[        14SS[        14S[        14SS 1[        4SS[        1[        4SS[        14SS[        14SS[        14S.
5      DUS:X  a  [        US[        14S[        14S.5      D6$ 0 D6$ )Nr)   r   albumscollections)r   r   embedzDownloading z dataFi  )r   fatalexpected_status	errorCodez+Could not find playlist data. Error code: "r   r/   r4   r5   r6   r7   releaseDatec                 &    U R                  SS5      $ )N- r`   rb   s    r   rd   1BandlabPlaylistIE._real_extract.<locals>.<lambda>  s    199S";Mr    r2   rV   r9   r;   r<   r:   )
r?   r4   rB   rC   rD   r   rA   rF   rG   rE   )r   r   )r   r   r   r   r   playlist_resultr   r   rM   r	   rK   r   rL   r   )r   r3   playlist_idplaylist_type	endpointsr   playlist_data
error_codes           r   r   BandlabPlaylistIE._real_extract  s   %)%:%:3%?%E%EdF%S"  j)?#X.
 #m
	 	
 "H NNl8CR=/,OS + 2M !$$[11 ( " '**;77:7 #NzlZ[!\]]##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    rk   N)rl   rm   rn   ro   r   r   r   r   r   r   rp   rk   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   rH   r   rk   r    r   <module>r      sH    !	 	 	 2T
M T
nO< O<d}6 }6r    