Errors in playlist extraction should obey --ignore-errors

Related: https://github.com/yt-dlp/yt-dlp/issues/535#issuecomment-883277272, https://github.com/yt-dlp/yt-dlp/issues/518#issuecomment-881794754
This commit is contained in:
pukkandan 2021-07-21 01:00:46 +05:30
parent a1a7907bc0
commit 50fed816dd
No known key found for this signature in database
GPG Key ID: 0F00D95A001F4698

View File

@ -1363,13 +1363,18 @@ def iter_playlistitems(format):
if not isinstance(ie_entries, (list, PagedList)): if not isinstance(ie_entries, (list, PagedList)):
ie_entries = LazyList(ie_entries) ie_entries = LazyList(ie_entries)
def get_entry(i):
return YoutubeDL.__handle_extraction_exceptions(
lambda self, i: ie_entries[i - 1]
)(self, i)
entries = [] entries = []
for i in playlistitems or itertools.count(playliststart): for i in playlistitems or itertools.count(playliststart):
if playlistitems is None and playlistend is not None and playlistend < i: if playlistitems is None and playlistend is not None and playlistend < i:
break break
entry = None entry = None
try: try:
entry = ie_entries[i - 1] entry = get_entry(i)
if entry is None: if entry is None:
raise EntryNotInPlaylist() raise EntryNotInPlaylist()
except (IndexError, EntryNotInPlaylist): except (IndexError, EntryNotInPlaylist):