Get the title of Youtube playlists

This commit is contained in:
Jaime Marquínez Ferrándiz 2013-04-20 18:57:05 +02:00
parent e905b6f80e
commit c72938240e
2 changed files with 5 additions and 1 deletions

View file

@ -45,6 +45,7 @@ def test_youtube_playlist(self):
ie = YoutubePlaylistIE(dl) ie = YoutubePlaylistIE(dl)
result = ie.extract('https://www.youtube.com/playlist?list=PLwiyx1dc3P2JR9N8gQaQN_BCvlSlap7re')[0] result = ie.extract('https://www.youtube.com/playlist?list=PLwiyx1dc3P2JR9N8gQaQN_BCvlSlap7re')[0]
self.assertIsPlaylist(result) self.assertIsPlaylist(result)
self.assertEqual(result['title'], 'ytdl test PL')
ytie_results = [YoutubeIE()._extract_id(url['url']) for url in result['entries']] ytie_results = [YoutubeIE()._extract_id(url['url']) for url in result['entries']]
self.assertEqual(ytie_results, [ 'bV9L5Ht9LgY', 'FXxLjLQi3Fg', 'tU3Bgo5qJZE']) self.assertEqual(ytie_results, [ 'bV9L5Ht9LgY', 'FXxLjLQi3Fg', 'tU3Bgo5qJZE'])
@ -52,6 +53,7 @@ def test_issue_673(self):
dl = FakeDownloader() dl = FakeDownloader()
ie = YoutubePlaylistIE(dl) ie = YoutubePlaylistIE(dl)
result = ie.extract('PLBB231211A4F62143')[0] result = ie.extract('PLBB231211A4F62143')[0]
self.assertEqual(result['title'], 'Team Fortress 2')
self.assertTrue(len(result['entries']) > 40) self.assertTrue(len(result['entries']) > 40)
def test_youtube_playlist_long(self): def test_youtube_playlist_long(self):

View file

@ -1801,6 +1801,8 @@ def _real_extract(self, url):
# 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 ]
@ -1812,7 +1814,7 @@ def _real_extract(self, url):
videos = [v[1] for v in sorted(videos)] videos = [v[1] for v in sorted(videos)]
url_results = [self.url_result(url, 'Youtube') for url in videos] url_results = [self.url_result(url, 'Youtube') for url in videos]
return [self.playlist_result(url_results, playlist_id)] return [self.playlist_result(url_results, playlist_id, playlist_title)]
class YoutubeChannelIE(InfoExtractor): class YoutubeChannelIE(InfoExtractor):