# coding: utf-8 from __future__ import unicode_literals from .common import InfoExtractor from ..utils import ( js_to_json, smuggle_url, ) class LA7IE(InfoExtractor): IE_NAME = 'la7.it' _VALID_URL = r'''(?x)(https?://)?(?: (?:www\.)?la7\.it/([^/]+)/(?:rivedila7|video)/| tg\.la7\.it/repliche-tgla7\?id= )(?P.+)''' _TESTS = [{ # 'src' is a plain URL 'url': 'http://www.la7.it/crozza/video/inccool8-02-10-2015-163722', 'md5': '8b613ffc0c4bf9b9e377169fc19c214c', 'info_dict': { 'id': '0_42j6wd36', 'ext': 'mp4', 'title': 'Inc.Cool8', 'description': 'Benvenuti nell\'incredibile mondo della INC. COOL. 8. dove “INC.” sta per “Incorporated” “COOL” sta per “fashion” ed Eight sta per il gesto atletico', 'thumbnail': 're:^https?://.*', 'uploader_id': 'kdla7pillole@iltrovatore.it', 'timestamp': 1443814869, 'upload_date': '20151002', }, }, { # 'src' is a dictionary 'url': 'http://tg.la7.it/repliche-tgla7?id=189080', 'md5': '6b0d8888d286e39870208dfeceaf456b', 'info_dict': { 'id': '189080', 'ext': 'mp4', 'title': 'TG LA7', }, }, { 'url': 'http://www.la7.it/omnibus/rivedila7/omnibus-news-02-07-2016-189077', 'only_matching': True, }] def _real_extract(self, url): video_id = self._match_id(url) webpage = self._download_webpage(url, video_id) player_data = self._parse_json( self._search_regex( [r'(?s)videoParams\s*=\s*({.+?});', r'videoLa7\(({[^;]+})\);'], webpage, 'player data'), video_id, transform_source=js_to_json) return { '_type': 'url_transparent', 'url': smuggle_url('kaltura:103:%s' % player_data['vid'], { 'service_url': 'http://nkdam.iltrovatore.it', }), 'id': video_id, 'title': player_data['title'], 'description': self._og_search_description(webpage, default=None), 'thumbnail': player_data.get('poster'), 'ie_key': 'Kaltura', }