aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorknagano <knagano@sodan.org>2011-05-07 22:53:37 +0900
committerknagano <knagano@sodan.org>2011-05-07 22:53:37 +0900
commit62a29bbf7bd0b0d9539aa903519f252671e4eebd (patch)
treef358c24215f45a12ac0a04100221f0654af7d180
parent4b0d9eed458d862ce938849a9dc88a9a56f57dc2 (diff)
Fixed download from Dailymotion.
Fetches FLV URL from "sdURL" in addVariable("sequence") JSON, instead of addVariable("video") which doesnot exist today. Supports new title, uploader nickname format.
-rwxr-xr-xyoutube-dl15
1 files changed, 10 insertions, 5 deletions
diff --git a/youtube-dl b/youtube-dl
index 3ac27a857..377ceff58 100755
--- a/youtube-dl
+++ b/youtube-dl
@@ -1320,6 +1320,7 @@ class DailymotionIE(InfoExtractor):
# Retrieve video webpage to extract further information
request = urllib2.Request(url)
+ request.add_header('Cookie', 'family_filter=off')
try:
self.report_download_webpage(video_id)
webpage = urllib2.urlopen(request).read()
@@ -1329,25 +1330,29 @@ class DailymotionIE(InfoExtractor):
# Extract URL, uploader and title from webpage
self.report_extraction(video_id)
- mobj = re.search(r'(?i)addVariable\(\"video\"\s*,\s*\"([^\"]*)\"\)', webpage)
+ mobj = re.search(r'(?i)addVariable\(\"sequence\"\s*,\s*\"([^\"]+?)\"\)', webpage)
if mobj is None:
self._downloader.trouble(u'ERROR: unable to extract media URL')
return
- mediaURL = urllib.unquote(mobj.group(1))
+ sequence = urllib.unquote(mobj.group(1))
+ mobj = re.search(r',\"sdURL\"\:\"([^\"]+?)\",', sequence)
+ if mobj is None:
+ self._downloader.trouble(u'ERROR: unable to extract media URL')
+ return
+ mediaURL = urllib.unquote(mobj.group(1)).replace('\\', '')
# if needed add http://www.dailymotion.com/ if relative URL
video_url = mediaURL
- # '<meta\s+name="title"\s+content="Dailymotion\s*[:\-]\s*(.*?)"\s*\/\s*>'
- mobj = re.search(r'(?im)<title>Dailymotion\s*[\-:]\s*(.+?)</title>', webpage)
+ mobj = re.search(r'(?im)<title>Dailymotion\s*-\s*(.+)\s*-\s*[^<]+?</title>', webpage)
if mobj is None:
self._downloader.trouble(u'ERROR: unable to extract title')
return
video_title = mobj.group(1).decode('utf-8')
video_title = sanitize_title(video_title)
- mobj = re.search(r'(?im)<Attribute name="owner">(.+?)</Attribute>', webpage)
+ mobj = re.search(r'(?im)<span class="owner[^\"]+?">[^<]+?<a [^>]+?>([^<]+?)</a></span>', webpage)
if mobj is None:
self._downloader.trouble(u'ERROR: unable to extract uploader nickname')
return