U
    Mf                     @   sT   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 G dd deZdS )    N   )InfoExtractor   )ExtractorErrorupdate_url_queryurl_basenamec                   @   sL   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d ZdS )	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=0Znelirfsxnmcfbfhmp4u%   youtube-dl test video 'ä"BaW_jenozKc)idexttitle)urlZ	info_dictz)https://www.dropbox.com/s/nelirfsxnmcfbfhT)r   Z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                 C   s  |  |}|d}| ||}tjt|}tj	|d }| 
d}| |dksbd|kr|r| d|d}d| d	d
j d| d| d| }	| jd|d|	 ddid}
|
ddkrtddd| ||}n,| ddr| ||}ntdddg i d  }}}ttd|D ]d}t|dd}|s\| jd|d dd!}| jd"|d#d d!}|sxq.| ||d$\}} qq.|r|t|d%d&id'd(d)d* ||||d+S ),Nr
   r   ZvideopasswordzDropbox - Password Requiredz Enter the password for this linkzcontent_id=(.*?)["\']
content_idzis_xhr=true&t=zhttps://www.dropbox.comtz&content_id=z
&password=z&url=zhttps://www.dropbox.com/sm/authzPOSTing video passwordzcontent-typez0application/x-www-form-urlencoded; charset=UTF-8)dataheadersstatusZauthedzAuthentication failed!T)expectedzhttps://dropbox.comZsm_authz9Password protected video, use --video-password <password>Fz=registerStreamedPrefetch\s*\(\s*"[\w/+=]+"\s*,\s*"([\w/+=]+)"zutf-8ignorez(anonymous:\tanonymous)Z	anonymous)defaultz%\n.(https://[^\x03\x08\x12\n]+\.m3u8)ztranscode urlr	   dl1originalZOriginalr   )r   Z	format_idZformat_noteZquality)r
   r   formats	subtitles)Z_match_valid_urlgroupZ_download_webpageurllibparseunquoter   ospathsplitext	get_paramZ_og_search_titleZ_search_regexZ_get_cookiesgetvalueZ_download_jsonencoder   reversedrefindallbase64	b64decodedecodeZ#_extract_m3u8_formats_and_subtitlesappendr   )selfr   ZmobjZvideo_idZwebpagefnr   passwordr   payloadresponser   r   Zhas_anonymous_downloadencodeddecodedZtranscode_url r4   </tmp/pip-unpacked-wheel-zk9bgjdq/yt_dlp/extractor/dropbox.py_real_extract'   sr    


*         
zDropboxIE._real_extractN)__name__
__module____qualname__Z
_VALID_URLZ_TESTSr6   r4   r4   r4   r5   r      s*   r   )r)   os.pathr   r'   urllib.parser   commonr   utilsr   r   r   r   r4   r4   r4   r5   <module>   s   