X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=youtube_dl%2Fextractor%2Fhuajiao.py;h=4ca275dda18e45e18fd628a0c8a5104fd6cfb560;hb=HEAD;hp=352b481202720fc83dd1d2c0abc65f2528b971ce;hpb=b7f59a3bf69b5c935be085551d30ce4d0b8a97d4;p=youtube-dl diff --git a/youtube_dl/extractor/huajiao.py b/youtube_dl/extractor/huajiao.py index 352b48120..4ca275dda 100644 --- a/youtube_dl/extractor/huajiao.py +++ b/youtube_dl/extractor/huajiao.py @@ -1,8 +1,11 @@ # coding: utf-8 from __future__ import unicode_literals -from ..utils import parse_duration, parse_iso8601 from .common import InfoExtractor +from ..utils import ( + parse_duration, + parse_iso8601, +) class HuajiaoIE(InfoExtractor): @@ -17,7 +20,7 @@ class HuajiaoIE(InfoExtractor): 'title': '#新人求关注#', 'description': 're:.*', 'duration': 2424.0, - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'timestamp': 1475866459, 'upload_date': '20161007', 'uploader': 'Penny_余姿昀', @@ -30,21 +33,24 @@ class HuajiaoIE(InfoExtractor): webpage = self._download_webpage(url, video_id) feed_json = self._search_regex( - r'var\s*feed\s*=\s*({.*})', webpage, 'feed json str') + r'var\s+feed\s*=\s*({.+})', webpage, 'feed json') feed = self._parse_json(feed_json, video_id) description = self._html_search_meta( 'description', webpage, 'description', fatal=False) + def get(section, field): + return feed.get(section, {}).get(field) + return { 'id': video_id, 'title': feed['feed']['formated_title'], 'description': description, - 'duration': parse_duration(feed['feed']['duration']), - 'thumbnail': feed['feed']['image'], - 'timestamp': parse_iso8601(feed['creatime'], ' '), - 'uploader': feed['author']['nickname'], - 'uploader_id': feed['author']['uid'], + 'duration': parse_duration(get('feed', 'duration')), + 'thumbnail': get('feed', 'image'), + 'timestamp': parse_iso8601(feed.get('creatime'), ' '), + 'uploader': get('author', 'nickname'), + 'uploader_id': get('author', 'uid'), 'formats': self._extract_m3u8_formats( feed['feed']['m3u8'], video_id, 'mp4', 'm3u8_native'), }