[youtube] Make DASH manifest download conditional for now

DASH download fails on many videos (all with encrypted signatures? not sure yet), for example 07FYdnEawAQ, with a 403.
pull/8/head
Philipp Hagemeister 11 years ago
parent dd26ced164
commit 4919603f66

@ -244,6 +244,10 @@ def parseOpts(overrideArguments=None):
'--include-ads', dest='include_ads', '--include-ads', dest='include_ads',
action='store_true', action='store_true',
help='Download advertisements as well (experimental)') help='Download advertisements as well (experimental)')
verbosity.add_option(
'--youtube-include-dash-manifest', action='store_true',
dest='youtube_include_dash_manifest', default=False,
help='Try to download the DASH manifest on YouTube videos (experimental)')
authentication.add_option('-u', '--username', authentication.add_option('-u', '--username',
dest='username', metavar='USERNAME', help='account username') dest='username', metavar='USERNAME', help='account username')
@ -348,7 +352,8 @@ def parseOpts(overrideArguments=None):
help=optparse.SUPPRESS_HELP) help=optparse.SUPPRESS_HELP)
verbosity.add_option('--print-traffic', verbosity.add_option('--print-traffic',
dest='debug_printtraffic', action='store_true', default=False, dest='debug_printtraffic', action='store_true', default=False,
help=optparse.SUPPRESS_HELP) help='Display sent and read HTTP traffic')
filesystem.add_option('-t', '--title', filesystem.add_option('-t', '--title',
action='store_true', dest='usetitle', help='use title in file name (default)', default=False) action='store_true', dest='usetitle', help='use title in file name (default)', default=False)
@ -729,6 +734,7 @@ def _real_main(argv=None):
'prefer_ffmpeg': opts.prefer_ffmpeg, 'prefer_ffmpeg': opts.prefer_ffmpeg,
'include_ads': opts.include_ads, 'include_ads': opts.include_ads,
'default_search': opts.default_search, 'default_search': opts.default_search,
'youtube_include_dash_manifest': opts.youtube_include_dash_manifest,
} }
with YoutubeDL(ydl_opts) as ydl: with YoutubeDL(ydl_opts) as ydl:

@ -276,16 +276,17 @@ class YoutubeIE(YoutubeBaseInfoExtractor, SubtitlesInfoExtractor):
u"url": u"http://www.youtube.com/watch?v=a9LDPn-MO4I", u"url": u"http://www.youtube.com/watch?v=a9LDPn-MO4I",
u"file": u"a9LDPn-MO4I.m4a", u"file": u"a9LDPn-MO4I.m4a",
u"note": u"256k DASH audio (format 141) via DASH manifest", u"note": u"256k DASH audio (format 141) via DASH manifest",
u"params": {
u"format": "141"
},
u"info_dict": { u"info_dict": {
u"upload_date": "20121002", u"upload_date": "20121002",
u"uploader_id": "8KVIDEO", u"uploader_id": "8KVIDEO",
u"description": "No description available.", u"description": "No description available.",
u"uploader": "8KVIDEO", u"uploader": "8KVIDEO",
u"title": "UHDTV TEST 8K VIDEO.mp4" u"title": "UHDTV TEST 8K VIDEO.mp4"
} },
u"params": {
u"youtube_include_dash_manifest": True,
u"format": "141",
},
}, },
] ]
@ -1355,7 +1356,8 @@ class YoutubeIE(YoutubeBaseInfoExtractor, SubtitlesInfoExtractor):
# Look for the DASH manifest # Look for the DASH manifest
dash_manifest_url_lst = video_info.get('dashmpd') dash_manifest_url_lst = video_info.get('dashmpd')
if dash_manifest_url_lst and dash_manifest_url_lst[0]: if (dash_manifest_url_lst and dash_manifest_url_lst[0] and
self._downloader.params.get('youtube_include_dash_manifest', False)):
try: try:
dash_doc = self._download_xml( dash_doc = self._download_xml(
dash_manifest_url_lst[0], video_id, dash_manifest_url_lst[0], video_id,

Loading…
Cancel
Save