
    yf                     ^    d dl Z d dlZd dlZddlmZ ddlmZ ddlm	Z	m
Z
mZ  G d de      Zy)	    N   )InfoExtractor   )compat_urllib_parse_unquote)ExtractorErrorupdate_url_queryurl_basenamec                   J    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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                 t   | j                  |      }|j                  d      }| j                  ||      }t        t	        |            }t
        j                  j                  |      d   }| j                  d      }| j                  |      dk(  sd|v r|r| j                  d|d      }d| j                  d	      j                  d
      j                   d| d| d| }	| j                  d|d|	j                  d      ddi      }
|
j                  d      dk7  rt!        dd      | j                  ||      }n@| j                  d      j                  d      r| j                  ||      }nt!        dd      g i d}}}t#        t%        j&                  d|            D ]m  }t)        j*                  |      j-                  dd      }|s| j                  d |d!d"      }| j                  d#|d$d "      }|sW| j/                  ||d%      \  }} n |r"|j1                  t3        |d&d'i      d(d)d*d+       ||||d,S )-Nr   r   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UTF-8zcontent-typez0application/x-www-form-urlencoded; charset=UTF-8)dataheadersstatusauthedzAuthentication failed!T)expectedzhttps://dropbox.comsm_authz9Password protected video, use --video-password <password>Fz=registerStreamedPrefetch\s*\(\s*"[\w/+=]+"\s*,\s*"([\w/+=]+)"zutf-8ignorez(anonymous:\tanonymous)	anonymous)defaultz%\n.(https://[^\x03\x08\x12\n]+\.m3u8)ztranscode urlr   dl1originalOriginalr   )r   	format_idformat_notequality)r   r   formats	subtitles)_match_valid_urlgroup_download_webpager   r	   ospathsplitext	get_param_og_search_title_search_regex_get_cookiesgetvalue_download_jsonencoder   reversedrefindallbase64	b64decodedecode#_extract_m3u8_formats_and_subtitlesappendr   )selfr   mobjvideo_idwebpagefnr   passwordr   payloadresponser(   r)   has_anonymous_downloadencodeddecodedtranscode_urls                    :/usr/lib/python3/dist-packages/yt_dlp/extractor/dropbox.py_real_extractzDropboxIE._real_extract'   s   $$S)::d#((h7(c):;  $Q'>>/2!!'*.KK5@!//0H'S_`
*4+<+<=V+W+[+[\_+`+f+f*ggst~s  @J  KS  JT  TY  Z]  Y^  _..5xAY`g`n`nov`w+-_` / b <<)X5()ADQQ00h?""#89==iH00h?$%`kopp57U2

+kmt uv 
	G&&w/66wIG))-););.e *< *U& ..8'?\` / bM !%!I!I-Yach!iGY
	 "NN'dC[9')	  "	
 	
    N)__name__
__module____qualname__
_VALID_URL_TESTSrM    rN   rL   r   r      sc    UJ |'A	
 ?!
 v!
 |!
 ~!
#F.5
rN   r   )r;   os.pathr-   r9   commonr   compatr   utilsr   r   r	   r   rT   rN   rL   <module>rY      s,      	 ! 0 N
 N
rN   