mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-10-31 14:45:14 +00:00 
			
		
		
		
	[canal13cl] Add test and improve extraction (#2498)
This commit is contained in:
		| @@ -1,32 +1,48 @@ | ||||
| # coding: utf-8 | ||||
| from __future__ import unicode_literals | ||||
|  | ||||
| import re | ||||
|  | ||||
| from .common import InfoExtractor | ||||
|  | ||||
|  | ||||
| class Canal13clIE(InfoExtractor): | ||||
|     _VALID_URL = r'^http://(?:www\.)?13\.cl/' | ||||
|     IE_NAME = 'Canal13cl' | ||||
|     _VALID_URL = r'^http://(?:www\.)?13\.cl/(?:[^/?#]+/)*(?P<id>[^/?#]+)' | ||||
|     _TEST = { | ||||
|         'url': 'http://www.13.cl/t13/nacional/el-circulo-de-hierro-de-michelle-bachelet-en-su-regreso-a-la-moneda', | ||||
|         'md5': '4cb1fa38adcad8fea88487a078831755', | ||||
|         'info_dict': { | ||||
|             'id': '1403022125', | ||||
|             'display_id': 'el-circulo-de-hierro-de-michelle-bachelet-en-su-regreso-a-la-moneda', | ||||
|             'ext': 'mp4', | ||||
|             'title': 'El "círculo de hierro" de Michelle Bachelet en su regreso a La Moneda', | ||||
|             'description': '(Foto: Agencia Uno) En nueve días más, Michelle Bachelet va a asumir por segunda vez como presidenta de la República. Entre aquellos que la acompañarán hay caras que se repiten y otras que se consolidan en su entorno de colaboradores más cercanos.', | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     def _real_extract(self, url): | ||||
|         webpage = self._download_webpage(url, url) | ||||
|         video_id = self._html_search_regex( | ||||
|             r'http://streaming.13.cl/(.*)\.mp4', | ||||
|             webpage, u'video_id') | ||||
|         title = self._html_search_regex( | ||||
|             r'(articuloTitulo = \"(.*?)\"|(.*?)\|)', | ||||
|             webpage, u'title') | ||||
|         mobj = re.match(self._VALID_URL, url) | ||||
|         display_id = mobj.group('id') | ||||
|  | ||||
|         webpage = self._download_webpage(url, display_id) | ||||
|  | ||||
|         title = self._html_search_meta( | ||||
|             'twitter:title', webpage, 'title', fatal=True) | ||||
|         description = self._html_search_meta( | ||||
|             'twitter:description', webpage, 'description') | ||||
|         url = self._html_search_regex( | ||||
|             r'articuloVideo = \"(.*?)\"', | ||||
|             webpage, u'url') | ||||
|         thumbnail = self._html_search_regex ( | ||||
|             r'articuloImagen = \"(.*?)\"', | ||||
|             webpage, u'thumbnail') | ||||
|             r'articuloVideo = \"(.*?)\"', webpage, 'url') | ||||
|         real_id = self._search_regex( | ||||
|             r'[^0-9]([0-9]{7,})[^0-9]', url, 'id', default=display_id) | ||||
|         thumbnail = self._html_search_regex( | ||||
|             r'articuloImagen = \"(.*?)\"', webpage, 'thumbnail') | ||||
|  | ||||
|         return { | ||||
|             'video_id': video_id, | ||||
|             'id': real_id, | ||||
|             'display_id': display_id, | ||||
|             'url': url, | ||||
|             'title': title, | ||||
|             'description': description, | ||||
|             'ext': 'mp4', | ||||
|             'thumbnail': thumbnail | ||||
|             'thumbnail': thumbnail, | ||||
|         } | ||||
|   | ||||
| @@ -436,14 +436,14 @@ class InfoExtractor(object): | ||||
|         if secure: regexes = self._og_regexes('video:secure_url') + regexes | ||||
|         return self._html_search_regex(regexes, html, name, **kargs) | ||||
|  | ||||
|     def _html_search_meta(self, name, html, display_name=None): | ||||
|     def _html_search_meta(self, name, html, display_name=None, fatal=False): | ||||
|         if display_name is None: | ||||
|             display_name = name | ||||
|         return self._html_search_regex( | ||||
|             r'''(?ix)<meta | ||||
|                     (?=[^>]+(?:itemprop|name|property)=["\']%s["\']) | ||||
|                     [^>]+content=["\']([^"\']+)["\']''' % re.escape(name), | ||||
|             html, display_name, fatal=False) | ||||
|             html, display_name, fatal=fatal) | ||||
|  | ||||
|     def _dc_search_uploader(self, html): | ||||
|         return self._html_search_meta('dc.creator', html, 'uploader') | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Philipp Hagemeister
					Philipp Hagemeister