X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=youtube_dl%2Fextractor%2Fd8.py;h=6b26ff2e3dd39fca4f5c64722942e7b1cfea72ef;hb=b21e25702f05018b64064b4aec9007e6e383b476;hp=5ce483b16ffa9f71848faa36643c27df7a847b30;hpb=495da337ae804fe013738f9d4f23002ead1276c7;p=youtube-dl diff --git a/youtube_dl/extractor/d8.py b/youtube_dl/extractor/d8.py index 5ce483b16..6b26ff2e3 100644 --- a/youtube_dl/extractor/d8.py +++ b/youtube_dl/extractor/d8.py @@ -1,52 +1,25 @@ # encoding: utf-8 -import re -import xml.etree.ElementTree +from __future__ import unicode_literals -from .common import InfoExtractor -from ..utils import unified_strdate +from .canalplus import CanalplusIE -class D8IE(InfoExtractor): + +class D8IE(CanalplusIE): _VALID_URL = r'https?://www\.d8\.tv/.*?/(?P.*)' _VIDEO_INFO_TEMPLATE = 'http://service.canal-plus.com/video/rest/getVideosLiees/d8/%s' - IE_NAME = u'd8.tv' + IE_NAME = 'd8.tv' _TEST = { - u'url': u'http://www.d8.tv/d8-docs-mags/pid6589-d8-campagne-intime.html', - u'file': u'966289.flv', - u'info_dict': { - u'title': u'Campagne intime - Documentaire exceptionnel', - u'description': u'md5:d2643b799fb190846ae09c61e59a859f', - u'upload_date': u'20131108', + 'url': 'http://www.d8.tv/d8-docs-mags/pid6589-d8-campagne-intime.html', + 'file': '966289.flv', + 'info_dict': { + 'title': 'Campagne intime - Documentaire exceptionnel', + 'description': 'md5:d2643b799fb190846ae09c61e59a859f', + 'upload_date': '20131108', }, - u'params': { - u'skip_download': True, + 'params': { + # rtmp + 'skip_download': True, }, + 'skip': 'videos get deleted after a while', } - - def _real_extract(self, url): - mobj = re.match(self._VALID_URL, url) - webpage = self._download_webpage(url, mobj.group('path')) - video_id = self._search_regex(r'videoId = "(\d+)";', webpage, u'video id') - info_url = self._VIDEO_INFO_TEMPLATE % video_id - info_page = self._download_webpage(info_url,video_id, - u'Downloading video info') - - self.report_extraction(video_id) - doc = xml.etree.ElementTree.fromstring(info_page.encode('utf-8')) - video_info = [video for video in doc if video.find('ID').text == video_id][0] - infos = video_info.find('INFOS') - media = video_info.find('MEDIA') - formats = [media.find('VIDEOS/%s' % format) - for format in ['BAS_DEBIT', 'HAUT_DEBIT', 'HD']] - video_url = [format.text for format in formats if format is not None][-1] - - return {'id': video_id, - 'title': u'%s - %s' % (infos.find('TITRAGE/TITRE').text, - infos.find('TITRAGE/SOUS_TITRE').text), - 'url': video_url, - 'ext': 'flv', - 'upload_date': unified_strdate(infos.find('PUBLICATION/DATE').text), - 'thumbnail': media.find('IMAGES/GRAND').text, - 'description': infos.find('DESCRIPTION').text, - 'view_count': int(infos.find('NB_VUES').text), - }