YoutubePlaylistIE: don't crash with empty lists (related #808)
The playlist_title wasn't initialized.main
parent
3820df0106
commit
aba8df23ed
|
@ -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)
|
||||||
|
|
|
@ -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 ]
|
||||||
|
|
Loading…
Reference in New Issue