aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJaime Marquínez Ferrándiz <jaime.marquinez.ferrandiz@gmail.com>2013-04-27 10:41:52 +0200
committerJaime Marquínez Ferrándiz <jaime.marquinez.ferrandiz@gmail.com>2013-04-27 10:41:52 +0200
commitaba8df23edf4f1078b163b490174c2d766432b55 (patch)
tree65d5dd2dc4256e3d46ec5a1c78c29b464d2c2326
parent3820df0106d6065f50cc1eb90823906410dc9543 (diff)
downloadyoutube-dl-aba8df23edf4f1078b163b490174c2d766432b55.tar.xz
YoutubePlaylistIE: don't crash with empty lists (related #808)
The playlist_title wasn't initialized.
-rw-r--r--test/test_youtube_lists.py7
-rwxr-xr-xyoutube_dl/InfoExtractors.py3
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 ]