mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-10-31 14:45:14 +00:00 
			
		
		
		
	[brightcove] Support videos that only provide flv versions (fixes #1504)
Moved the test from generic.py to brightcove.py
This commit is contained in:
		| @@ -1,3 +1,5 @@ | |||||||
|  | # encoding: utf-8 | ||||||
|  |  | ||||||
| import re | import re | ||||||
| import json | import json | ||||||
| import xml.etree.ElementTree | import xml.etree.ElementTree | ||||||
| @@ -7,6 +9,8 @@ from ..utils import ( | |||||||
|     compat_urllib_parse, |     compat_urllib_parse, | ||||||
|     find_xpath_attr, |     find_xpath_attr, | ||||||
|     compat_urlparse, |     compat_urlparse, | ||||||
|  |  | ||||||
|  |     ExtractorError, | ||||||
| ) | ) | ||||||
|  |  | ||||||
| class BrightcoveIE(InfoExtractor): | class BrightcoveIE(InfoExtractor): | ||||||
| @@ -14,8 +18,28 @@ class BrightcoveIE(InfoExtractor): | |||||||
|     _FEDERATED_URL_TEMPLATE = 'http://c.brightcove.com/services/viewer/htmlFederated?%s' |     _FEDERATED_URL_TEMPLATE = 'http://c.brightcove.com/services/viewer/htmlFederated?%s' | ||||||
|     _PLAYLIST_URL_TEMPLATE = 'http://c.brightcove.com/services/json/experience/runtime/?command=get_programming_for_experience&playerKey=%s' |     _PLAYLIST_URL_TEMPLATE = 'http://c.brightcove.com/services/json/experience/runtime/?command=get_programming_for_experience&playerKey=%s' | ||||||
|  |  | ||||||
|     # There is a test for Brigtcove in GenericIE, that way we test both the download |     _TESTS = [ | ||||||
|     # and the detection of videos, and we don't have to find an URL that is always valid |         { | ||||||
|  |             u'url': u'http://www.8tv.cat/8aldia/videos/xavier-sala-i-martin-aquesta-tarda-a-8-al-dia/', | ||||||
|  |             u'file': u'2371591881001.mp4', | ||||||
|  |             u'md5': u'9e80619e0a94663f0bdc849b4566af19', | ||||||
|  |             u'note': u'Test Brightcove downloads and detection in GenericIE', | ||||||
|  |             u'info_dict': { | ||||||
|  |                 u'title': u'Xavier Sala i Martín: “Un banc que no presta és un banc zombi que no serveix per a res”', | ||||||
|  |                 u'uploader': u'8TV', | ||||||
|  |                 u'description': u'md5:a950cc4285c43e44d763d036710cd9cd', | ||||||
|  |             } | ||||||
|  |         }, | ||||||
|  |         { | ||||||
|  |             u'url': u'http://medianetwork.oracle.com/video/player/1785452137001', | ||||||
|  |             u'file': u'1785452137001.flv', | ||||||
|  |             u'info_dict': { | ||||||
|  |                 u'title': u'JVMLS 2012: Arrays 2.0 - Opportunities and Challenges', | ||||||
|  |                 u'description': u'John Rose speaks at the JVM Language Summit, August 1, 2012.', | ||||||
|  |                 u'uploader': u'Oracle', | ||||||
|  |             }, | ||||||
|  |         }, | ||||||
|  |     ] | ||||||
|  |  | ||||||
|     @classmethod |     @classmethod | ||||||
|     def _build_brighcove_url(cls, object_str): |     def _build_brighcove_url(cls, object_str): | ||||||
| @@ -72,15 +96,27 @@ class BrightcoveIE(InfoExtractor): | |||||||
|                                     playlist_title=playlist_info['mediaCollectionDTO']['displayName']) |                                     playlist_title=playlist_info['mediaCollectionDTO']['displayName']) | ||||||
|  |  | ||||||
|     def _extract_video_info(self, video_info): |     def _extract_video_info(self, video_info): | ||||||
|         renditions = video_info['renditions'] |         info = { | ||||||
|         renditions = sorted(renditions, key=lambda r: r['size']) |             'id': video_info['id'], | ||||||
|         best_format = renditions[-1] |             'title': video_info['displayName'], | ||||||
|  |             'description': video_info.get('shortDescription'), | ||||||
|  |             'thumbnail': video_info.get('videoStillURL') or video_info.get('thumbnailURL'), | ||||||
|  |             'uploader': video_info.get('publisherName'), | ||||||
|  |         } | ||||||
|  |  | ||||||
|         return {'id': video_info['id'], |         renditions = video_info.get('renditions') | ||||||
|                 'title': video_info['displayName'], |         if renditions: | ||||||
|  |             renditions = sorted(renditions, key=lambda r: r['size']) | ||||||
|  |             best_format = renditions[-1] | ||||||
|  |             info.update({ | ||||||
|                 'url': best_format['defaultURL'], |                 'url': best_format['defaultURL'], | ||||||
|                 'ext': 'mp4', |                 'ext': 'mp4', | ||||||
|                 'description': video_info.get('shortDescription'), |             }) | ||||||
|                 'thumbnail': video_info.get('videoStillURL') or video_info.get('thumbnailURL'), |         elif video_info.get('FLVFullLengthURL') is not None: | ||||||
|                 'uploader': video_info.get('publisherName'), |             info.update({ | ||||||
|                 } |                 'url': video_info['FLVFullLengthURL'], | ||||||
|  |                 'ext': 'flv', | ||||||
|  |             }) | ||||||
|  |         else: | ||||||
|  |             raise ExtractorError(u'Unable to extract video url for %s' % info['id']) | ||||||
|  |         return info | ||||||
|   | |||||||
| @@ -29,17 +29,6 @@ class GenericIE(InfoExtractor): | |||||||
|                 u"title": u"R\u00e9gis plante sa Jeep" |                 u"title": u"R\u00e9gis plante sa Jeep" | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         { |  | ||||||
|             u'url': u'http://www.8tv.cat/8aldia/videos/xavier-sala-i-martin-aquesta-tarda-a-8-al-dia/', |  | ||||||
|             u'file': u'2371591881001.mp4', |  | ||||||
|             u'md5': u'9e80619e0a94663f0bdc849b4566af19', |  | ||||||
|             u'note': u'Test Brightcove downloads and detection in GenericIE', |  | ||||||
|             u'info_dict': { |  | ||||||
|                 u'title': u'Xavier Sala i Martín: “Un banc que no presta és un banc zombi que no serveix per a res”', |  | ||||||
|                 u'uploader': u'8TV', |  | ||||||
|                 u'description': u'md5:a950cc4285c43e44d763d036710cd9cd', |  | ||||||
|             } |  | ||||||
|         }, |  | ||||||
|     ] |     ] | ||||||
|  |  | ||||||
|     def report_download_webpage(self, video_id): |     def report_download_webpage(self, video_id): | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Jaime Marquínez Ferrándiz
					Jaime Marquínez Ferrándiz