elpais.py (4364B)
1 # coding: utf-8 2 from __future__ import unicode_literals 3 4 from .common import InfoExtractor 5 from ..utils import strip_jsonp, unified_strdate 6 7 8 class ElPaisIE(InfoExtractor): 9 _VALID_URL = r'https?://(?:[^.]+\.)?elpais\.com/.*/(?P<id>[^/#?]+)\.html(?:$|[?#])' 10 IE_DESC = 'El País' 11 12 _TESTS = [{ 13 'url': 'http://blogs.elpais.com/la-voz-de-inaki/2014/02/tiempo-nuevo-recetas-viejas.html', 14 'md5': '98406f301f19562170ec071b83433d55', 15 'info_dict': { 16 'id': 'tiempo-nuevo-recetas-viejas', 17 'ext': 'mp4', 18 'title': 'Tiempo nuevo, recetas viejas', 19 'description': 'De lunes a viernes, a partir de las ocho de la mañana, Iñaki Gabilondo nos cuenta su visión de la actualidad nacional e internacional.', 20 'upload_date': '20140206', 21 } 22 }, { 23 'url': 'http://elcomidista.elpais.com/elcomidista/2016/02/24/articulo/1456340311_668921.html#?id_externo_nwl=newsletter_diaria20160303t', 24 'md5': '3bd5b09509f3519d7d9e763179b013de', 25 'info_dict': { 26 'id': '1456340311_668921', 27 'ext': 'mp4', 28 'title': 'Cómo hacer el mejor café con cafetera italiana', 29 'description': 'Que sí, que las cápsulas son cómodas. Pero si le pides algo más a la vida, quizá deberías aprender a usar bien la cafetera italiana. No tienes más que ver este vídeo y seguir sus siete normas básicas.', 30 'upload_date': '20160303', 31 } 32 }, { 33 'url': 'http://elpais.com/elpais/2017/01/26/ciencia/1485456786_417876.html', 34 'md5': '9c79923a118a067e1a45789e1e0b0f9c', 35 'info_dict': { 36 'id': '1485456786_417876', 37 'ext': 'mp4', 38 'title': 'Hallado un barco de la antigua Roma que naufragó en Baleares hace 1.800 años', 39 'description': 'La nave portaba cientos de ánforas y se hundió cerca de la isla de Cabrera por razones desconocidas', 40 'upload_date': '20170127', 41 }, 42 }, { 43 'url': 'http://epv.elpais.com/epv/2017/02/14/programa_la_voz_de_inaki/1487062137_075943.html', 44 'info_dict': { 45 'id': '1487062137_075943', 46 'ext': 'mp4', 47 'title': 'Disyuntivas', 48 'description': 'md5:a0fb1485c4a6a8a917e6f93878e66218', 49 'upload_date': '20170214', 50 }, 51 'params': { 52 'skip_download': True, 53 }, 54 }] 55 56 def _real_extract(self, url): 57 video_id = self._match_id(url) 58 webpage = self._download_webpage(url, video_id) 59 60 prefix = self._html_search_regex( 61 r'var\s+url_cache\s*=\s*"([^"]+)";', webpage, 'URL prefix') 62 id_multimedia = self._search_regex( 63 r"id_multimedia\s*=\s*'([^']+)'", webpage, 'ID multimedia', default=None) 64 if id_multimedia: 65 url_info = self._download_json( 66 'http://elpais.com/vdpep/1/?pepid=' + id_multimedia, video_id, transform_source=strip_jsonp) 67 video_suffix = url_info['mp4'] 68 else: 69 video_suffix = self._search_regex( 70 r"(?:URLMediaFile|urlVideo_\d+)\s*=\s*url_cache\s*\+\s*'([^']+)'", webpage, 'video URL') 71 video_url = prefix + video_suffix 72 thumbnail_suffix = self._search_regex( 73 r"(?:URLMediaStill|urlFotogramaFijo_\d+)\s*=\s*url_cache\s*\+\s*'([^']+)'", 74 webpage, 'thumbnail URL', default=None) 75 thumbnail = ( 76 None if thumbnail_suffix is None 77 else prefix + thumbnail_suffix) or self._og_search_thumbnail(webpage) 78 title = self._html_search_regex( 79 (r"tituloVideo\s*=\s*'([^']+)'", 80 r'<h2 class="entry-header entry-title.*?>(.*?)</h2>', 81 r'<h1[^>]+class="titulo"[^>]*>([^<]+)'), 82 webpage, 'title', default=None) or self._og_search_title(webpage) 83 upload_date = unified_strdate(self._search_regex( 84 r'<p class="date-header date-int updated"\s+title="([^"]+)">', 85 webpage, 'upload date', default=None) or self._html_search_meta( 86 'datePublished', webpage, 'timestamp')) 87 88 return { 89 'id': video_id, 90 'url': video_url, 91 'title': title, 92 'description': self._og_search_description(webpage), 93 'thumbnail': thumbnail, 94 'upload_date': upload_date, 95 }