
    VGh                     b    d dl Z d dlZd dlZd dlZddlmZ ddlm	Z	m
Z
mZmZmZ  G d de      Zy)    N   )InfoExtractor   )ExtractorError
update_urlupdate_url_queryurl_basenameurlencode_postdatac                   P    e Zd ZdZdddddddd	d
dd	d
dd	d
dd	d
gZd Zd Zy)	DropboxIEzAhttps?://(?: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              #      K   t        t        j                  d|            D ])  }t        j                  |      j                  dd       + y w)Nz=registerStreamedPrefetch\s*\(\s*"[\w/+=]+"\s*,\s*"([\w/+=]+)"zutf-8ignore)reversedrefindallbase64	b64decodedecode)selfwebpageencodeds      a/var/www/it7/html/youtubeDownloader/venv/lib/python3.12/site-packages/yt_dlp/extractor/dropbox.py_yield_decoded_partszDropboxIE._yield_decoded_parts)   sG     

+kmt uv 	FG""7+227HEE	Fs   AAc                    | j                  |      }|j                  d      }| j                  ||      }t        j                  j                  t        |            }t        j                  j                  |      d   }d }| j                  |      D ]  }d|v s| j                  d|d      } n |r| j                  d      }	|	st        dd	      | j                  d
|dt        d| j!                  d      d   j"                  ||	t%        |dd      d            }
|
j'                  d      dk7  rt        dd	      | j                  ||      }g i }}d}d }| j                  |      D ]]  }|s| j                  d|dd      }| j                  d|dd       }|s2| j)                  ||d      \  }}| j                  d|dd       } n |r"|j+                  t-        |dd i      d!d"d#d$       |||||d%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	subtitlesr2   )_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_downloadr2   transcode_urls                   r    _real_extractzDropboxIE._real_extract-   sT   $$S)::d#((h7\\!!,s"34  $Q'
--g6 	D%!//0JDR^_
	
 ~~o6H$%`kopp**18=U'$**+DEcJPP", (%c"R@)  + H ||H%1$%7$GG,,S(;G!&	--g6 	D))-););.k5 *< *R& ..94Z^ / `M !%!I!I-Yach!iGY**NPTVako + qI	 "NN'dC[9')	  ""
 	
    N)__name__
__module____qualname__
_VALID_URL_TESTSr!   rT    rU   r    r   r      si    UJ |'A	
 ?!
 v!
 |!
 ~!
#F.F?
rU   r   )r   os.pathrB   r   urllib.parser?   commonr   utilsr   r   r   r	   r
   r   r[   rU   r    <module>r`      s,      	  ! \
 \
rU   