mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-10-30 22:25:19 +00:00 
			
		
		
		
	[livestream] Fix events extraction (fixes #1467)
This commit is contained in:
		| @@ -15,6 +15,7 @@ from youtube_dl.extractor import ( | ||||
|     VimeoChannelIE, | ||||
|     UstreamChannelIE, | ||||
|     SoundcloudUserIE, | ||||
|     LivestreamIE, | ||||
| ) | ||||
| from youtube_dl.utils import * | ||||
|  | ||||
| @@ -32,6 +33,7 @@ class TestPlaylists(unittest.TestCase): | ||||
|         self.assertIsPlaylist(result) | ||||
|         self.assertEqual(result['title'], u'SPORT') | ||||
|         self.assertTrue(len(result['entries']) > 20) | ||||
|  | ||||
|     def test_dailymotion_user(self): | ||||
|         dl = FakeYDL() | ||||
|         ie = DailymotionUserIE(dl) | ||||
| @@ -64,5 +66,13 @@ class TestPlaylists(unittest.TestCase): | ||||
|         self.assertEqual(result['id'], u'9615865') | ||||
|         self.assertTrue(len(result['entries']) >= 12) | ||||
|  | ||||
|     def test_livestream_event(self): | ||||
|         dl = FakeYDL() | ||||
|         ie = LivestreamIE(dl) | ||||
|         result = ie.extract('http://new.livestream.com/tedx/cityenglish') | ||||
|         self.assertIsPlaylist(result) | ||||
|         self.assertEqual(result['title'], u'TEDCity2.0 (English)') | ||||
|         self.assertTrue(len(result['entries']) >= 4) | ||||
|  | ||||
| if __name__ == '__main__': | ||||
|     unittest.main() | ||||
|   | ||||
| @@ -2,7 +2,12 @@ import re | ||||
| import json | ||||
|  | ||||
| from .common import InfoExtractor | ||||
| from ..utils import compat_urllib_parse_urlparse, compat_urlparse | ||||
| from ..utils import ( | ||||
|     compat_urllib_parse_urlparse, | ||||
|     compat_urlparse, | ||||
|     get_meta_content, | ||||
|     ExtractorError, | ||||
| ) | ||||
|  | ||||
|  | ||||
| class LivestreamIE(InfoExtractor): | ||||
| @@ -35,8 +40,11 @@ class LivestreamIE(InfoExtractor): | ||||
|  | ||||
|         if video_id is None: | ||||
|             # This is an event page: | ||||
|             api_url = self._search_regex(r'event_design_eventId: \'(.+?)\'', | ||||
|                                          webpage, 'api url') | ||||
|             player = get_meta_content('twitter:player', webpage) | ||||
|             if player is None: | ||||
|                 raise ExtractorError('Couldn\'t extract event api url') | ||||
|             api_url = player.replace('/player', '') | ||||
|             api_url = re.sub(r'^(https?://)(new\.)', r'\1api.\2', api_url) | ||||
|             info = json.loads(self._download_webpage(api_url, event_name, | ||||
|                                                      u'Downloading event info')) | ||||
|             videos = [self._extract_video_info(video_data['data']) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Jaime Marquínez Ferrándiz
					Jaime Marquínez Ferrándiz