mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-10-30 22:25:19 +00:00 
			
		
		
		
	[itv:btcc] Add extractor (closes #16139)
This commit is contained in:
		| @@ -477,7 +477,10 @@ from .internetvideoarchive import InternetVideoArchiveIE | ||||
| from .iprima import IPrimaIE | ||||
| from .iqiyi import IqiyiIE | ||||
| from .ir90tv import Ir90TvIE | ||||
| from .itv import ITVIE | ||||
| from .itv import ( | ||||
|     ITVIE, | ||||
|     ITVBTCCIE, | ||||
| ) | ||||
| from .ivi import ( | ||||
|     IviIE, | ||||
|     IviCompilationIE | ||||
|   | ||||
| @@ -7,6 +7,7 @@ import json | ||||
| import re | ||||
|  | ||||
| from .common import InfoExtractor | ||||
| from .brightcove import BrightcoveNewIE | ||||
| from ..compat import ( | ||||
|     compat_str, | ||||
|     compat_etree_register_namespace, | ||||
| @@ -18,6 +19,7 @@ from ..utils import ( | ||||
|     xpath_text, | ||||
|     int_or_none, | ||||
|     parse_duration, | ||||
|     smuggle_url, | ||||
|     ExtractorError, | ||||
|     determine_ext, | ||||
| ) | ||||
| @@ -260,3 +262,38 @@ class ITVIE(InfoExtractor): | ||||
|             'subtitles': subtitles, | ||||
|         }) | ||||
|         return info | ||||
|  | ||||
|  | ||||
| class ITVBTCCIE(InfoExtractor): | ||||
|     _VALID_URL = r'https?://(?:www\.)?itv\.com/btcc/(?:[^/]+/)*(?P<id>[^/?#&]+)' | ||||
|     _TEST = { | ||||
|         'url': 'http://www.itv.com/btcc/races/btcc-2018-all-the-action-from-brands-hatch', | ||||
|         'info_dict': { | ||||
|             'id': 'btcc-2018-all-the-action-from-brands-hatch', | ||||
|             'title': 'BTCC 2018: All the action from Brands Hatch', | ||||
|         }, | ||||
|         'playlist_mincount': 9, | ||||
|     } | ||||
|     BRIGHTCOVE_URL_TEMPLATE = 'http://players.brightcove.net/1582188683001/HkiHLnNRx_default/index.html?videoId=%s' | ||||
|  | ||||
|     def _real_extract(self, url): | ||||
|         playlist_id = self._match_id(url) | ||||
|  | ||||
|         webpage = self._download_webpage(url, playlist_id) | ||||
|  | ||||
|         entries = [ | ||||
|             self.url_result( | ||||
|                 smuggle_url(self.BRIGHTCOVE_URL_TEMPLATE % video_id, { | ||||
|                     # ITV does not like some GB IP ranges, so here are some | ||||
|                     # IP blocks it accepts | ||||
|                     'geo_ip_blocks': [ | ||||
|                         '193.113.0.0/16', '54.36.162.0/23', '159.65.16.0/21' | ||||
|                     ], | ||||
|                     'referrer': url, | ||||
|                 }), | ||||
|                 ie=BrightcoveNewIE.ie_key(), video_id=video_id) | ||||
|             for video_id in re.findall(r'data-video-id=["\'](\d+)', webpage)] | ||||
|  | ||||
|         title = self._og_search_title(webpage, fatal=False) | ||||
|  | ||||
|         return self.playlist_result(entries, playlist_id, title) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Sergey M․
					Sergey M․