0
0
Fork 0

YoutubePlaylistIE: don't crash with empty lists (related #808)

The playlist_title wasn't initialized.
main
Jaime Marquínez Ferrándiz 2013-04-27 10:41:52 +02:00
parent 3820df0106
commit aba8df23ed
2 changed files with 8 additions and 2 deletions

View File

@ -72,6 +72,13 @@ class TestYoutubeLists(unittest.TestCase):
self.assertFalse('pElCt5oNDuI' in ytie_results) self.assertFalse('pElCt5oNDuI' in ytie_results)
self.assertFalse('KdPEApIVdWM' 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): def test_youtube_course(self):
dl = FakeDownloader() dl = FakeDownloader()
ie = YoutubePlaylistIE(dl) ie = YoutubePlaylistIE(dl)

View File

@ -1723,12 +1723,11 @@ class YoutubePlaylistIE(InfoExtractor):
if 'feed' not in response: if 'feed' not in response:
self._downloader.report_error(u'Got a malformed response from YouTube API') self._downloader.report_error(u'Got a malformed response from YouTube API')
return return
playlist_title = response['feed']['title']['$t']
if 'entry' not in response['feed']: if 'entry' not in response['feed']:
# Number of videos is a multiple of self._MAX_RESULTS # Number of videos is a multiple of self._MAX_RESULTS
break break
playlist_title = response['feed']['title']['$t']
videos += [ (entry['yt$position']['$t'], entry['content']['src']) videos += [ (entry['yt$position']['$t'], entry['content']['src'])
for entry in response['feed']['entry'] for entry in response['feed']['entry']
if 'content' in entry ] if 'content' in entry ]