mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-10-30 22:25:19 +00:00 
			
		
		
		
	Dailymotion: fix the download of the video in the max quality (closes #986)
This commit is contained in:
		| @@ -1,9 +1,9 @@ | ||||
| import re | ||||
| import json | ||||
|  | ||||
| from .common import InfoExtractor | ||||
| from ..utils import ( | ||||
|     compat_urllib_request, | ||||
|     compat_urllib_parse, | ||||
|  | ||||
|     ExtractorError, | ||||
|     unescapeHTML, | ||||
| @@ -39,26 +39,7 @@ class DailymotionIE(InfoExtractor): | ||||
|  | ||||
|         # Extract URL, uploader and title from webpage | ||||
|         self.report_extraction(video_id) | ||||
|         mobj = re.search(r'\s*var flashvars = (.*)', webpage) | ||||
|         if mobj is None: | ||||
|             raise ExtractorError(u'Unable to extract media URL') | ||||
|         flashvars = compat_urllib_parse.unquote(mobj.group(1)) | ||||
|  | ||||
|         for key in ['hd1080URL', 'hd720URL', 'hqURL', 'sdURL', 'ldURL', 'video_url']: | ||||
|             if key in flashvars: | ||||
|                 max_quality = key | ||||
|                 self.to_screen(u'Using %s' % key) | ||||
|                 break | ||||
|         else: | ||||
|             raise ExtractorError(u'Unable to extract video URL') | ||||
|  | ||||
|         mobj = re.search(r'"' + max_quality + r'":"(.+?)"', flashvars) | ||||
|         if mobj is None: | ||||
|             raise ExtractorError(u'Unable to extract video URL') | ||||
|  | ||||
|         video_url = compat_urllib_parse.unquote(mobj.group(1)).replace('\\/', '/') | ||||
|  | ||||
|         # TODO: support choosing qualities | ||||
|  | ||||
|         mobj = re.search(r'<meta property="og:title" content="(?P<title>[^"]*)" />', webpage) | ||||
|         if mobj is None: | ||||
| @@ -76,6 +57,25 @@ class DailymotionIE(InfoExtractor): | ||||
|         if mobj is not None: | ||||
|             video_upload_date = mobj.group(3) + mobj.group(2) + mobj.group(1) | ||||
|  | ||||
|         embed_url = 'http://www.dailymotion.com/embed/video/%s' % video_id | ||||
|         embed_page = self._download_webpage(embed_url, video_id, | ||||
|                                             u'Downloading embed page') | ||||
|         info = self._search_regex(r'var info = ({.*?}),', embed_page, 'video info') | ||||
|         info = json.loads(info) | ||||
|  | ||||
|         # TODO: support choosing qualities | ||||
|  | ||||
|         for key in ['stream_h264_hd1080_url','stream_h264_hd_url', | ||||
|                     'stream_h264_hq_url','stream_h264_url', | ||||
|                     'stream_h264_ld_url']: | ||||
|             if info.get(key):#key in info and info[key]: | ||||
|                 max_quality = key | ||||
|                 self.to_screen(u'Using %s' % key) | ||||
|                 break | ||||
|         else: | ||||
|             raise ExtractorError(u'Unable to extract video URL') | ||||
|         video_url = info[max_quality] | ||||
|  | ||||
|         return [{ | ||||
|             'id':       video_id, | ||||
|             'url':      video_url, | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Jaime Marquínez Ferrándiz
					Jaime Marquínez Ferrándiz