X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=youtube_dl%2Fextractor%2Fniconico.py;h=4c18904169d3f69a0bf7e95fb21d98218bca7e91;hb=7f2a9f1b4993693659820693c1b6432f3b01d21b;hp=62d5707fee87302b5f69544f768b1a56a5e3976b;hpb=7d11297f3f91e6ddd3f0caa5ad4dca1a40d6c820;p=youtube-dl diff --git a/youtube_dl/extractor/niconico.py b/youtube_dl/extractor/niconico.py index 62d5707fe..4c1890416 100644 --- a/youtube_dl/extractor/niconico.py +++ b/youtube_dl/extractor/niconico.py @@ -5,13 +5,16 @@ import re import json from .common import InfoExtractor -from ..utils import ( +from ..compat import ( compat_urllib_parse, compat_urllib_request, compat_urlparse, - unified_strdate, - parse_duration, +) +from ..utils import ( + ExtractorError, int_or_none, + parse_duration, + unified_strdate, ) @@ -108,6 +111,9 @@ class NiconicoIE(InfoExtractor): flv_info_request, video_id, note='Downloading flv info', errnote='Unable to download flv info') + if 'deleted=' in flv_info_webpage: + raise ExtractorError('The video has been deleted.', + expected=True) video_real_url = compat_urlparse.parse_qs(flv_info_webpage)['url'][0] # Start extracting information @@ -166,12 +172,13 @@ class NiconicoPlaylistIE(InfoExtractor): webpage = self._download_webpage(url, list_id) entries_json = self._search_regex(r'Mylist\.preload\(\d+, (\[.*\])\);', - webpage, 'entries') + webpage, 'entries') entries = json.loads(entries_json) entries = [{ '_type': 'url', 'ie_key': NiconicoIE.ie_key(), - 'url': 'http://www.nicovideo.jp/watch/%s' % entry['item_id'], + 'url': ('http://www.nicovideo.jp/watch/%s' % + entry['item_data']['video_id']), } for entry in entries] return {