[twitch] Determine ids from URLs when extracting playlist

This allows videos to be filtered using download_archive without needing to
fetch the info JSON for each video.
This commit is contained in:
Luc Ritchie 2018-01-01 18:34:17 -05:00
parent d7cd9a9e84
commit e129469557

View File

@ -358,9 +358,17 @@ class TwitchPlaylistBaseIE(TwitchBaseIE):
break
offset += limit
return self.playlist_result(
[self.url_result(entry) for entry in orderedSet(entries)],
[self._make_url_result(entry) for entry in orderedSet(entries)],
channel_id, channel_name)
def _make_url_result(self, url):
try:
video_id = 'v%s' % TwitchVodIE._match_id(url)
return self.url_result(url, TwitchVodIE.ie_key(), video_id=video_id)
except AssertionError:
self.to_screen('Unable to match video ID from URL: %s' % url)
return self.url_result(url)
def _extract_playlist_page(self, response):
videos = response.get('videos')
return [video['url'] for video in videos] if videos else []