mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-10-31 06:35:12 +00:00 
			
		
		
		
	Add BrightcoveIE (closes #832)
It only accepts the urls that are use for embedding the video, it doesn't search in generic webpages to find Brightcove videos
This commit is contained in:
		
							
								
								
									
										32
									
								
								youtube_dl/extractor/brightcove.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								youtube_dl/extractor/brightcove.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,32 @@ | ||||
| import re | ||||
| import json | ||||
|  | ||||
| from .common import InfoExtractor | ||||
|  | ||||
| class BrightcoveIE(InfoExtractor): | ||||
|     _VALID_URL = r'http://.*brightcove\.com/.*\?(?P<query>.*videoPlayer=(?P<id>\d*).*)' | ||||
|  | ||||
|     def _real_extract(self, url): | ||||
|         mobj = re.match(self._VALID_URL, url) | ||||
|         query = mobj.group('query') | ||||
|         video_id = mobj.group('id') | ||||
|  | ||||
|         request_url = 'http://c.brightcove.com/services/viewer/htmlFederated?%s' % query | ||||
|         webpage = self._download_webpage(request_url, video_id) | ||||
|  | ||||
|         self.report_extraction(video_id) | ||||
|         info = self._search_regex(r'var experienceJSON = ({.*?});', webpage, 'json') | ||||
|         info = json.loads(info)['data'] | ||||
|         video_info = info['programmedContent']['videoPlayer']['mediaDTO'] | ||||
|         renditions = video_info['renditions'] | ||||
|         renditions = sorted(renditions, key=lambda r: r['size']) | ||||
|         best_format = renditions[-1] | ||||
|          | ||||
|         return {'id': video_id, | ||||
|                 'title': video_info['displayName'], | ||||
|                 'url': best_format['defaultURL'],  | ||||
|                 'ext': 'mp4', | ||||
|                 'description': video_info.get('shortDescription'), | ||||
|                 'thumbnail': video_info.get('videoStillURL') or video_info.get('thumbnailURL'), | ||||
|                 'uploader': video_info.get('publisherName'), | ||||
|                 } | ||||
		Reference in New Issue
	
	Block a user
	 Jaime Marquínez Ferrándiz
					Jaime Marquínez Ferrándiz