diff options
author | remitamine <remitamine@gmail.com> | 2015-10-10 00:45:23 +0100 |
---|---|---|
committer | Sergey M․ <dstftw@gmail.com> | 2015-10-11 19:17:09 +0600 |
commit | 70cb4d51c91c5b6c72b8564258cb161bcc68626c (patch) | |
tree | ba87d790c11e92118e44e30bcff18ec3285cd22c | |
parent | 7c84562945cc5c37979b0d8d786118b1fe31f731 (diff) |
[bild] extract info from json request
-rw-r--r-- | youtube_dl/extractor/bild.py | 19 |
1 files changed, 8 insertions, 11 deletions
diff --git a/youtube_dl/extractor/bild.py b/youtube_dl/extractor/bild.py index 4d8cce1ef..ea84f20f2 100644 --- a/youtube_dl/extractor/bild.py +++ b/youtube_dl/extractor/bild.py @@ -4,7 +4,7 @@ from __future__ import unicode_literals from .common import InfoExtractor from ..utils import ( int_or_none, - fix_xml_ampersands, + unescapeHTML, ) @@ -17,7 +17,7 @@ class BildIE(InfoExtractor): 'info_dict': { 'id': '38184146', 'ext': 'mp4', - 'title': 'BILD hat sie getestet', + 'title': 'Das können die neuen iPads ', 'thumbnail': 're:^https?://.*\.jpg$', 'duration': 196, 'description': 'Mit dem iPad Air 2 und dem iPad Mini 3 hat Apple zwei neue Tablet-Modelle präsentiert. BILD-Reporter Sven Stein durfte die Geräte bereits testen. ', @@ -27,16 +27,13 @@ class BildIE(InfoExtractor): def _real_extract(self, url): video_id = self._match_id(url) - xml_url = url.split(".bild.html")[0] + ",view=xml.bild.xml" - doc = self._download_xml(xml_url, video_id, transform_source=fix_xml_ampersands) - - duration = int_or_none(doc.attrib.get('duration'), scale=1000) + video_data = self._download_json(url.split(".bild.html")[0] + ",view=json.bild.html", video_id) return { 'id': video_id, - 'title': doc.attrib['ueberschrift'], - 'description': doc.attrib.get('text'), - 'url': doc.attrib['src'], - 'thumbnail': doc.attrib.get('img'), - 'duration': duration, + 'title': unescapeHTML(video_data['title']), + 'description': unescapeHTML(video_data.get('description')), + 'url': video_data['clipList'][0]['srces'][0]['src'], + 'thumbnail': video_data.get('poster'), + 'duration': int_or_none(video_data.get('durationSec')), } |