
    V|h                     b    S SK r S SKrS SKrS SKrSSKJr  SSKJ	r	J
r
JrJrJr   " S S\5      rg)    N   )InfoExtractor   )ExtractorError
update_urlupdate_url_queryurl_basenameurlencode_postdatac                   X    \ rS rSrSrSSSSS.S.S	S
S.SS
S.SS
S.SS
S./rS rS rSrg)	DropboxIE   zAhttps?://(?:www\.)?dropbox\.com/(?:(?:e/)?scl/fi|sh?)/(?P<id>\w+)zfhttps://www.dropbox.com/s/nelirfsxnmcfbfh/youtube-dl%20test%20video%20%27%C3%A4%22BaW_jenozKc.mp4?dl=0nelirfsxnmcfbfhmp4u%   youtube-dl test video 'ä"BaW_jenozKc)idexttitle)url	info_dictz)https://www.dropbox.com/s/nelirfsxnmcfbfhT)r   only_matchingz`https://www.dropbox.com/sh/2mgpiuq7kv8nqdf/AABy-fW4dkydT4GmWi2mdOUDa?dl=0&preview=Drone+Shot.mp4zfhttps://www.dropbox.com/scl/fi/r2kd2skcy5ylbbta5y1pz/DJI_0003.MP4?dl=0&rlkey=wcdgqangn7t3lnmmv6li9mu9hzhhttps://www.dropbox.com/e/scl/fi/r2kd2skcy5ylbbta5y1pz/DJI_0003.MP4?dl=0&rlkey=wcdgqangn7t3lnmmv6li9mu9hc              #      #    [        [        R                  " SU5      5       H+  n[        R                  " U5      R                  SS5      v   M-     g 7f)Nz=registerStreamedPrefetch\s*\(\s*"[\w/+=]+"\s*,\s*"([\w/+=]+)"zutf-8ignore)reversedrefindallbase64	b64decodedecode)selfwebpageencodeds      R/home/james-whalen/.local/lib/python3.13/site-packages/yt_dlp/extractor/dropbox.py_yield_decoded_partsDropboxIE._yield_decoded_parts)   s@     

+kmt uvG""7+227HEE ws   AAc                    U R                  U5      nUR                  S5      nU R                  X5      n[        R                  R                  [        U5      5      n[        R                  R                  U5      S   nS nU R                  U5       H  nSU;   d  M  U R                  SUS5      n  O   U(       a  U R                  S5      n	U	(       d
  [        SSS	9eU R                  S
US[        SU R!                  S5      S   R"                  UU	[%        USSS9S.5      S9n
U
R'                  S5      S:w  a
  [        SSS	9eU R                  X5      n/ 0 pSnS nU R                  U5       H]  nU(       d  U R                  SUSSS9nU R                  SUSS S9nU(       d  M7  U R)                  XS5      u  pU R                  SUSS S9n  O   U(       a"  UR+                  [-        USS 05      S!S"S#S$.5        UUUUUS%.$ )&Nr   r   z/sm/passwordzcontent_id=([\w.+=/-]+)z
content IDvideopasswordz9Password protected video, use --video-password <password>T)expectedzhttps://www.dropbox.com/sm/authzPOSTing video passwordtruezhttps://www.dropbox.comt )schemenetloc)is_xhrr(   
content_idpasswordr   )datastatusauthedzInvalid passwordFz(anonymous:\tanonymous)	anonymous)defaultz&\n.?(https://[^\x03\x08\x12\n]+\.m3u8)ztranscode urlr   z;(https://www\.dropbox\.com/temp_thumb_from_token/[\w/?&=]+)	thumbnaildl1originalOriginalr   )r   	format_idformat_notequality)r   r   formats	subtitlesr4   )_match_valid_urlgroup_download_webpageurllibparseunquoter	   ospathsplitextr"   _search_regex	get_paramr   _download_jsonr
   _get_cookiesvaluer   get#_extract_m3u8_formats_and_subtitlesappendr   )r   r   mobjvideo_idr   fnr   r-   partr.   responser<   r=   has_anonymous_downloadr4   transcode_urls                   r!   _real_extractDropboxIE._real_extract-   s?   $$S)::d#((7\\!!,s"34  $Q'
--g6D%!//0JDR^_
 7
 ~~o6H$%`kopp**18=U'$**+DEcJPP", (%c"R@)  + H ||H%1$%7$GG,,S;G!&	--g6D))-););.k5 *< *R& ..94Z^ / `M !%!I!I-ch!iG**NPTVako + qI 7 "NN'dC[9')	  ""
 	
     N)	__name__
__module____qualname____firstlineno__
_VALID_URL_TESTSr"   rV   __static_attributes__rY   rX   r!   r   r      si    UJ |'A	
 ?!
 v!
 |!
 ~!
#F.F?
rX   r   )r   os.pathrD   r   urllib.parserA   commonr   utilsr   r   r   r	   r
   r   rY   rX   r!   <module>re      s,      	  ! \
 \
rX   