]>
jfr.im git - yt-dlp.git/blob - youtube_dl/extractor/dailymotion.py
3 from .common
import InfoExtractor
12 class DailymotionIE(InfoExtractor
):
13 """Information Extractor for Dailymotion"""
15 _VALID_URL
= r
'(?i)(?:https?://)?(?:www\.)?dailymotion\.[a-z]{2,3}/video/([^/]+)'
16 IE_NAME
= u
'dailymotion'
18 u
'url': u
'http://www.dailymotion.com/video/x33vw9_tutoriel-de-youtubeur-dl-des-video_tech',
19 u
'file': u
'x33vw9.mp4',
20 u
'md5': u
'392c4b85a60a90dc4792da41ce3144eb',
22 u
"uploader": u
"Alex and Van .",
23 u
"title": u
"Tutoriel de Youtubeur\"DL DES VIDEO DE YOUTUBE\""
27 def _real_extract(self
, url
):
28 # Extract id and simplified title from URL
29 mobj
= re
.match(self
._VALID
_URL
, url
)
31 video_id
= mobj
.group(1).split('_')[0].split('?')[0]
33 video_extension
= 'mp4'
35 # Retrieve video webpage to extract further information
36 request
= compat_urllib_request
.Request(url
)
37 request
.add_header('Cookie', 'family_filter=off')
38 webpage
= self
._download
_webpage
(request
, video_id
)
40 # Extract URL, uploader and title from webpage
41 self
.report_extraction(video_id
)
42 mobj
= re
.search(r
'\s*var flashvars = (.*)', webpage
)
44 raise ExtractorError(u
'Unable to extract media URL')
45 flashvars
= compat_urllib_parse
.unquote(mobj
.group(1))
47 for key
in ['hd1080URL', 'hd720URL', 'hqURL', 'sdURL', 'ldURL', 'video_url']:
50 self
.to_screen(u
'Using %s' % key
)
53 raise ExtractorError(u
'Unable to extract video URL')
55 mobj
= re
.search(r
'"' + max_quality
+ r
'":"(.+?)"', flashvars
)
57 raise ExtractorError(u
'Unable to extract video URL')
59 video_url
= compat_urllib_parse
.unquote(mobj
.group(1)).replace('\\/', '/')
61 # TODO: support choosing qualities
63 mobj
= re
.search(r
'<meta property="og:title" content="(?P<title>[^"]*)" />', webpage
)
65 raise ExtractorError(u
'Unable to extract title')
66 video_title
= unescapeHTML(mobj
.group('title'))
69 video_uploader
= self
._search
_regex
([r
'(?im)<span class="owner[^\"]+?">[^<]+?<a [^>]+?>([^<]+?)</a>',
70 # Looking for official user
71 r
'<(?:span|a) .*?rel="author".*?>([^<]+?)</'],
72 webpage
, 'video uploader')
74 video_upload_date
= None
75 mobj
= re
.search(r
'<div class="[^"]*uploaded_cont[^"]*" title="[^"]*">([0-9]{2})-([0-9]{2})-([0-9]{4})</div>', webpage
)
77 video_upload_date
= mobj
.group(3) + mobj
.group(2) + mobj
.group(1)
82 'uploader': video_uploader
,
83 'upload_date': video_upload_date
,
85 'ext': video_extension
,