2 from __future__ 
import unicode_literals
 
   7 from .common 
import InfoExtractor
 
   8 from ..compat 
import compat_urllib_parse_unquote
 
   9 from ..utils 
import url_basename
 
  12 class DropboxIE(InfoExtractor
): 
  13     _VALID_URL 
= r
'https?://(?:www\.)?dropbox[.]com/sh?/(?P<id>[a-zA-Z0-9]{15})/.*' 
  16             'url': 'https://www.dropbox.com/s/nelirfsxnmcfbfh/youtube-dl%20test%20video%20%27%C3%A4%22BaW_jenozKc.mp4?dl=0', 
  18                 'id': 'nelirfsxnmcfbfh', 
  20                 'title': 'youtube-dl test video \'ä"BaW_jenozKc' 
  23             'url': 'https://www.dropbox.com/sh/662glsejgzoj9sr/AAByil3FGH9KFNZ13e08eSa1a/Pregame%20Ceremony%20Program%20PA%2020140518.m4v', 
  24             'only_matching': True, 
  28     def _real_extract(self
, url
): 
  29         mobj 
= re
.match(self
._VALID
_URL
, url
) 
  30         video_id 
= mobj
.group('id') 
  31         fn 
= compat_urllib_parse_unquote(url_basename(url
)) 
  32         title 
= os
.path
.splitext(fn
)[0] 
  33         video_url 
= re
.sub(r
'[?&]dl=0', '', url
) 
  34         video_url 
+= ('?' if '?' not in video_url 
else '&') + 'dl=1'