fix: better error message when calling extract_info on unavailable video

pull/253/head
Chris Midgley 5 years ago
parent 228385340e
commit 3a0db7f292

@ -1937,24 +1937,25 @@ class YoutubeIE(YoutubeBaseInfoExtractor):
age_gate = False age_gate = False
# Try looking directly into the video webpage # Try looking directly into the video webpage
ytplayer_config = self._get_ytplayer_config(video_id, video_webpage) ytplayer_config = self._get_ytplayer_config(video_id, video_webpage)
args = ytplayer_config.get("args") if ytplayer_config:
if args is not None: args = ytplayer_config.get("args")
if args.get('url_encoded_fmt_stream_map') or args.get('hlsvp'): if args is not None:
# Convert to the same format returned by compat_parse_qs if args.get('url_encoded_fmt_stream_map') or args.get('hlsvp'):
video_info = dict((k, [v]) for k, v in args.items()) # Convert to the same format returned by compat_parse_qs
add_dash_mpd(video_info) video_info = dict((k, [v]) for k, v in args.items())
# Rental video is not rented but preview is available (e.g. add_dash_mpd(video_info)
# https://www.youtube.com/watch?v=yYr8q0y5Jfg, # Rental video is not rented but preview is available (e.g.
# https://github.com/ytdl-org/youtube-dl/issues/10532) # https://www.youtube.com/watch?v=yYr8q0y5Jfg,
if not video_info and args.get('ypc_vid'): # https://github.com/ytdl-org/youtube-dl/issues/10532)
return self.url_result( if not video_info and args.get('ypc_vid'):
args['ypc_vid'], YoutubeIE.ie_key(), video_id=args['ypc_vid']) return self.url_result(
if args.get('livestream') == '1' or args.get('live_playback') == 1: args['ypc_vid'], YoutubeIE.ie_key(), video_id=args['ypc_vid'])
is_live = True if args.get('livestream') == '1' or args.get('live_playback') == 1:
if not player_response: is_live = True
player_response = extract_player_response(args.get('player_response'), video_id) if not player_response:
elif not player_response: player_response = extract_player_response(args.get('player_response'), video_id)
player_response = ytplayer_config elif not player_response:
player_response = ytplayer_config
if not video_info or self._downloader.params.get('youtube_include_dash_manifest', True): if not video_info or self._downloader.params.get('youtube_include_dash_manifest', True):
add_dash_mpd_pr(player_response) add_dash_mpd_pr(player_response)

Loading…
Cancel
Save