2 from __future__ import unicode_literals
4 from .common import InfoExtractor
12 class PhilharmonieDeParisIE(InfoExtractor):
13 _VALID_URL = r'http://live\.philharmoniedeparis\.fr/concert/(?P<id>\d+)(?:/|\.html)'
15 'url': 'http://live.philharmoniedeparis.fr/concert/1032066.html',
19 'title': "Week-end Bach. Passion selon saint Jean. Akademie für alte Musik Berlin, Rias Kammerchor, René Jacobs",
20 'upload_date': '20150404',
24 def _real_extract(self, url):
25 video_id = self._match_id(url)
27 webpage = self._download_webpage(url, video_id)
28 fichier_nom = self._html_search_regex(r'\sflashvars\s*:\s*\{\s*fichier_nom\s*:\s*\'(.*?)\'\s*,', webpage, 'fichier_nom')
30 playlist = self._download_xml('http://live.philharmoniedeparis.fr' + fichier_nom, video_id)
32 concert = playlist.find('.//concert')
37 'title': concert.find('./titre').text,
41 if concert.attrib.get('heure'):
42 info_dict['timestamp'] = parse_iso8601(('%s-%s-%s%s') % (
43 concert.attrib['date'][0:4],
44 concert.attrib['date'][4:6],
45 concert.attrib['date'][6:8],
46 concert.attrib['heure']
49 info_dict['upload_date'] = concert.attrib['date']
51 fichiers = concert.find('./fichiers')
52 for fichier in fichiers.findall('./fichier'):
53 # Sometimes <ficher>s have no attributes at all. Skip them.
54 if 'url' not in fichier.attrib:
59 'url': fichiers.attrib['serveurstream'],
60 'ext': determine_ext(fichier.attrib['url']),
61 'play_path': fichier.attrib['url'],
62 'width': int_or_none(concert.attrib['largeur']),
63 'height': int_or_none(concert.attrib['hauteur']),
69 'url': fichiers.attrib['serveurstream'],
70 'ext': determine_ext(fichier.attrib['url_hd']),
71 'play_path': fichier.attrib['url_hd'],
72 'width': int_or_none(concert.attrib['largeur_hd']),
73 'height': int_or_none(concert.attrib['hauteur_hd']),