diff options
author | Sergey M․ <dstftw@gmail.com> | 2020-04-09 22:42:43 +0700 |
---|---|---|
committer | Sergey M․ <dstftw@gmail.com> | 2020-04-09 22:42:43 +0700 |
commit | 6b09401b0ba95da5669d249c8930b3adb873d96e (patch) | |
tree | de2222d03f7b11d93c67fbc6269393d1b964fe4e | |
parent | 5caf88ccb4bfe3d1b53885b78b2bc509ba333f15 (diff) |
[youtube] Skip broken multifeed videos (closes #24711)
-rw-r--r-- | youtube_dl/extractor/youtube.py | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/youtube_dl/extractor/youtube.py b/youtube_dl/extractor/youtube.py index 908defecd..633b839e0 100644 --- a/youtube_dl/extractor/youtube.py +++ b/youtube_dl/extractor/youtube.py @@ -1840,15 +1840,26 @@ class YoutubeIE(YoutubeBaseInfoExtractor): # fields may contain comma as well (see # https://github.com/ytdl-org/youtube-dl/issues/8536) feed_data = compat_parse_qs(compat_urllib_parse_unquote_plus(feed)) + + def feed_entry(name): + return try_get(feed_data, lambda x: x[name][0], compat_str) + + feed_id = feed_entry('id') + if not feed_id: + continue + feed_title = feed_entry('title') + title = video_title + if feed_title: + title += ' (%s)' % feed_title entries.append({ '_type': 'url_transparent', 'ie_key': 'Youtube', 'url': smuggle_url( '%s://www.youtube.com/watch?v=%s' % (proto, feed_data['id'][0]), {'force_singlefeed': True}), - 'title': '%s (%s)' % (video_title, feed_data['title'][0]), + 'title': title, }) - feed_ids.append(feed_data['id'][0]) + feed_ids.append(feed_id) self.to_screen( 'Downloading multifeed video (%s) - add --no-playlist to just download video %s' % (', '.join(feed_ids), video_id)) |