mirror of
				https://code.hackerspace.pl/q3k/youtube-dl
				synced 2025-03-16 11:43:02 +00:00 
			
		
		
		
	[youtube]: add YoutubeShowIE (closes #14)
It just extracts the playlists urls for each season
This commit is contained in:
		
							parent
							
								
									d828f3a550
								
							
						
					
					
						commit
						75dff0eef7
					
				| @ -8,7 +8,7 @@ import json | |||||||
| import os | import os | ||||||
| sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) | sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) | ||||||
| 
 | 
 | ||||||
| from youtube_dl.extractor import YoutubeUserIE, YoutubePlaylistIE, YoutubeIE, YoutubeChannelIE | from youtube_dl.extractor import YoutubeUserIE, YoutubePlaylistIE, YoutubeIE, YoutubeChannelIE, YoutubeShowIE | ||||||
| from youtube_dl.utils import * | from youtube_dl.utils import * | ||||||
| 
 | 
 | ||||||
| from helper import FakeYDL | from helper import FakeYDL | ||||||
| @ -88,5 +88,11 @@ class TestYoutubeLists(unittest.TestCase): | |||||||
|         result = ie.extract('PLtPgu7CB4gbY9oDN3drwC3cMbJggS7dKl')[0] |         result = ie.extract('PLtPgu7CB4gbY9oDN3drwC3cMbJggS7dKl')[0] | ||||||
|         self.assertEqual(len(result['entries']), 2) |         self.assertEqual(len(result['entries']), 2) | ||||||
| 
 | 
 | ||||||
|  |     def test_youtube_show(self): | ||||||
|  |         dl = FakeYDL() | ||||||
|  |         ie = YoutubeShowIE(dl) | ||||||
|  |         result = ie.extract('http://www.youtube.com/show/airdisasters') | ||||||
|  |         self.assertTrue(len(result) >= 4) | ||||||
|  | 
 | ||||||
| if __name__ == '__main__': | if __name__ == '__main__': | ||||||
|     unittest.main() |     unittest.main() | ||||||
|  | |||||||
| @ -67,7 +67,7 @@ from .yahoo import YahooIE, YahooSearchIE | |||||||
| from .youjizz import YouJizzIE | from .youjizz import YouJizzIE | ||||||
| from .youku import YoukuIE | from .youku import YoukuIE | ||||||
| from .youporn import YouPornIE | from .youporn import YouPornIE | ||||||
| from .youtube import YoutubeIE, YoutubePlaylistIE, YoutubeSearchIE, YoutubeUserIE, YoutubeChannelIE | from .youtube import YoutubeIE, YoutubePlaylistIE, YoutubeSearchIE, YoutubeUserIE, YoutubeChannelIE, YoutubeShowIE | ||||||
| from .zdf import ZDFIE | from .zdf import ZDFIE | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -853,3 +853,17 @@ class YoutubeSearchIE(SearchInfoExtractor): | |||||||
|             video_ids = video_ids[:n] |             video_ids = video_ids[:n] | ||||||
|         videos = [self.url_result('http://www.youtube.com/watch?v=%s' % id, 'Youtube') for id in video_ids] |         videos = [self.url_result('http://www.youtube.com/watch?v=%s' % id, 'Youtube') for id in video_ids] | ||||||
|         return self.playlist_result(videos, query) |         return self.playlist_result(videos, query) | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | class YoutubeShowIE(InfoExtractor): | ||||||
|  |     _VALID_URL = r'https?://www\.youtube\.com/show/(.*)' | ||||||
|  |     IE_NAME = u'youtube:show' | ||||||
|  | 
 | ||||||
|  |     def _real_extract(self, url): | ||||||
|  |         mobj = re.match(self._VALID_URL, url) | ||||||
|  |         show_name = mobj.group(1) | ||||||
|  |         webpage = self._download_webpage(url, show_name, u'Downloading show webpage') | ||||||
|  |         # There's one playlist for each season of the show | ||||||
|  |         m_seasons = list(re.finditer(r'href="(/playlist\?list=.*?)"', webpage)) | ||||||
|  |         self.to_screen(u'%s: Found %s seasons' % (show_name, len(m_seasons))) | ||||||
|  |         return [self.url_result('https://www.youtube.com' + season.group(1), 'YoutubePlaylist') for season in m_seasons] | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Jaime Marquínez Ferrándiz
						Jaime Marquínez Ferrándiz