mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-10-31 14:45:14 +00:00 
			
		
		
		
	[tlc] fix extraction and update extractor to use BrightcoveNewIE
This commit is contained in:
		| @@ -4,12 +4,12 @@ import re | ||||
|  | ||||
| from .common import InfoExtractor | ||||
| from .brightcove import BrightcoveLegacyIE | ||||
| from ..compat import compat_urlparse | ||||
| from ..compat import compat_parse_qs | ||||
|  | ||||
|  | ||||
| class TlcDeIE(InfoExtractor): | ||||
|     IE_NAME = 'tlc.de' | ||||
|     _VALID_URL = r'http://www\.tlc\.de/sendungen/[^/]+/videos/(?P<title>[^/?]+)' | ||||
|     _VALID_URL = r'http://www\.tlc\.de/(?:[^/]+/)*videos/(?P<title>[^/?#]+)?(?:.*#(?P<id>\d+))?' | ||||
|  | ||||
|     _TEST = { | ||||
|         'url': 'http://www.tlc.de/sendungen/breaking-amish/videos/#3235167922001', | ||||
| @@ -17,32 +17,23 @@ class TlcDeIE(InfoExtractor): | ||||
|             'id': '3235167922001', | ||||
|             'ext': 'mp4', | ||||
|             'title': 'Breaking Amish: Die Welt da draußen', | ||||
|             'uploader': 'Discovery Networks - Germany', | ||||
|             'description': ( | ||||
|                 'Vier Amische und eine Mennonitin wagen in New York' | ||||
|                 '  den Sprung in ein komplett anderes Leben. Begleitet sie auf' | ||||
|                 ' ihrem spannenden Weg.'), | ||||
|             'timestamp': 1396598084, | ||||
|             'upload_date': '20140404', | ||||
|             'uploader_id': '1659832546', | ||||
|         }, | ||||
|     } | ||||
|     BRIGHTCOVE_URL_TEMPLATE = 'http://players.brightcove.net/1659832546/default_default/index.html?videoId=%s' | ||||
|  | ||||
|     def _real_extract(self, url): | ||||
|         mobj = re.match(self._VALID_URL, url) | ||||
|         title = mobj.group('title') | ||||
|         webpage = self._download_webpage(url, title) | ||||
|         iframe_url = self._search_regex( | ||||
|             '<iframe src="(http://www\.tlc\.de/wp-content/.+?)"', webpage, | ||||
|             'iframe url') | ||||
|         # Otherwise we don't get the correct 'BrightcoveExperience' element, | ||||
|         # example: http://www.tlc.de/sendungen/cake-boss/videos/cake-boss-cannoli-drama/ | ||||
|         iframe_url = iframe_url.replace('.htm?', '.php?') | ||||
|         url_fragment = compat_urlparse.urlparse(url).fragment | ||||
|         if url_fragment: | ||||
|             # Since the fragment is not send to the server, we always get the same iframe | ||||
|             iframe_url = re.sub(r'playlist=(\d+)', 'playlist=%s' % url_fragment, iframe_url) | ||||
|         iframe = self._download_webpage(iframe_url, title) | ||||
|  | ||||
|         return { | ||||
|             '_type': 'url', | ||||
|             'url': BrightcoveLegacyIE._extract_brightcove_url(iframe), | ||||
|             'ie': BrightcoveLegacyIE.ie_key(), | ||||
|         } | ||||
|         brightcove_id = mobj.group('id') | ||||
|         if not brightcove_id: | ||||
|             title = mobj.group('title') | ||||
|             webpage = self._download_webpage(url, title) | ||||
|             brightcove_legacy_url = BrightcoveLegacyIE._extract_brightcove_url(webpage) | ||||
|             brightcove_id = compat_parse_qs(brightcove_legacy_url)['@videoPlayer'][0] | ||||
|         return self.url_result(self.BRIGHTCOVE_URL_TEMPLATE % brightcove_id, 'BrightcoveNew', brightcove_id) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 remitamine
					remitamine