From: remitamine Date: Sat, 6 Feb 2016 05:26:02 +0000 (+0100) Subject: Merge pull request #8408 from remitamine/dash X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=commitdiff_plain;h=66159b38aad38d55f84a358a0c2ed2add9a2946d;hp=-c;p=youtube-dl Merge pull request #8408 from remitamine/dash Add generic support for mpd manifests(dash formats) --- 66159b38aad38d55f84a358a0c2ed2add9a2946d diff --combined youtube_dl/extractor/youtube.py index 9b346d27a,828f5d1f4..63abe5477 --- a/youtube_dl/extractor/youtube.py +++ b/youtube_dl/extractor/youtube.py @@@ -369,7 -369,6 +369,7 @@@ class YoutubeIE(YoutubeBaseInfoExtracto # RTMP (unnamed) '_rtmp': {'protocol': 'rtmp'}, } + _SUBTITLE_FORMATS = ('ttml', 'vtt') IE_NAME = 'youtube' _TESTS = [ @@@ -919,7 -918,7 +919,7 @@@ if lang in sub_lang_list: continue sub_formats = [] - for ext in ['sbv', 'vtt', 'srt']: + for ext in self._SUBTITLE_FORMATS: params = compat_urllib_parse.urlencode({ 'lang': lang, 'v': video_id, @@@ -989,7 -988,7 +989,7 @@@ for lang_node in caption_list.findall('target'): sub_lang = lang_node.attrib['lang_code'] sub_formats = [] - for ext in ['sbv', 'vtt', 'srt']: + for ext in self._SUBTITLE_FORMATS: params = compat_urllib_parse.urlencode({ 'lang': original_lang, 'tlang': sub_lang, @@@ -1464,7 -1463,7 +1464,7 @@@ # Look for the DASH manifest if self._downloader.params.get('youtube_include_dash_manifest', True): dash_mpd_fatal = True - for dash_manifest_url in dash_mpds: + for mpd_url in dash_mpds: dash_formats = {} try: def decrypt_sig(mobj): @@@ -1472,11 -1471,11 +1472,11 @@@ dec_s = self._decrypt_signature(s, video_id, player_url, age_gate) return '/signature/%s' % dec_s - dash_manifest_url = re.sub(r'/s/([a-fA-F0-9\.]+)', decrypt_sig, dash_manifest_url) + mpd_url = re.sub(r'/s/([a-fA-F0-9\.]+)', decrypt_sig, mpd_url) - for df in self._extract_dash_manifest_formats( - dash_manifest_url, video_id, fatal=dash_mpd_fatal, - namespace='urn:mpeg:DASH:schema:MPD:2011', formats_dict=self._formats): + for df in self._extract_mpd_formats( + mpd_url, video_id, fatal=dash_mpd_fatal, + formats_dict=self._formats): # Do not overwrite DASH format found in some previous DASH manifest if df['format_id'] not in dash_formats: dash_formats[df['format_id']] = df