diff options
author | Jaime Marquínez Ferrándiz <[email protected]> | 2013-04-27 10:41:52 +0200 |
---|---|---|
committer | Jaime Marquínez Ferrándiz <[email protected]> | 2013-04-27 10:41:52 +0200 |
commit | aba8df23edf4f1078b163b490174c2d766432b55 (patch) | |
tree | 65d5dd2dc4256e3d46ec5a1c78c29b464d2c2326 | |
parent | 3820df0106d6065f50cc1eb90823906410dc9543 (diff) | |
download | youtube-dl-aba8df23edf4f1078b163b490174c2d766432b55.tar.gz youtube-dl-aba8df23edf4f1078b163b490174c2d766432b55.zip |
YoutubePlaylistIE: don't crash with empty lists (related #808)
The playlist_title wasn't initialized.
-rw-r--r-- | test/test_youtube_lists.py | 7 | ||||
-rwxr-xr-x | youtube_dl/InfoExtractors.py | 3 |
2 files changed, 8 insertions, 2 deletions
diff --git a/test/test_youtube_lists.py b/test/test_youtube_lists.py index c7f00af32..b11e6ccaa 100644 --- a/test/test_youtube_lists.py +++ b/test/test_youtube_lists.py @@ -71,6 +71,13 @@ class TestYoutubeLists(unittest.TestCase): ytie_results = [YoutubeIE()._extract_id(url['url']) for url in result['entries']] self.assertFalse('pElCt5oNDuI' in ytie_results) self.assertFalse('KdPEApIVdWM' in ytie_results) + + def test_youtube_playlist_empty(self): + dl = FakeDownloader() + ie = YoutubePlaylistIE(dl) + result = ie.extract('https://www.youtube.com/playlist?list=PLtPgu7CB4gbZDA7i_euNxn75ISqxwZPYx')[0] + self.assertIsPlaylist(result) + self.assertEqual(len(result['entries']), 0) def test_youtube_course(self): dl = FakeDownloader() diff --git a/youtube_dl/InfoExtractors.py b/youtube_dl/InfoExtractors.py index 3450f0d17..967f6a100 100755 --- a/youtube_dl/InfoExtractors.py +++ b/youtube_dl/InfoExtractors.py @@ -1723,12 +1723,11 @@ class YoutubePlaylistIE(InfoExtractor): if 'feed' not in response: self._downloader.report_error(u'Got a malformed response from YouTube API') return + playlist_title = response['feed']['title']['$t'] if 'entry' not in response['feed']: # Number of videos is a multiple of self._MAX_RESULTS break - playlist_title = response['feed']['title']['$t'] - videos += [ (entry['yt$position']['$t'], entry['content']['src']) for entry in response['feed']['entry'] if 'content' in entry ] |