mirror of
https://github.com/yt-dlp/yt-dlp.git
synced 2024-11-16 01:25:06 +00:00
[tudou] Improve error handling (closes #8988)
This commit is contained in:
parent
8369942773
commit
5b012dfce8
1 changed files with 23 additions and 0 deletions
|
@ -5,6 +5,7 @@
|
||||||
from .common import InfoExtractor
|
from .common import InfoExtractor
|
||||||
from ..compat import compat_str
|
from ..compat import compat_str
|
||||||
from ..utils import (
|
from ..utils import (
|
||||||
|
ExtractorError,
|
||||||
int_or_none,
|
int_or_none,
|
||||||
InAdvancePagedList,
|
InAdvancePagedList,
|
||||||
float_or_none,
|
float_or_none,
|
||||||
|
@ -46,6 +47,19 @@ class TudouIE(InfoExtractor):
|
||||||
|
|
||||||
_PLAYER_URL = 'http://js.tudouui.com/bin/lingtong/PortalPlayer_177.swf'
|
_PLAYER_URL = 'http://js.tudouui.com/bin/lingtong/PortalPlayer_177.swf'
|
||||||
|
|
||||||
|
# Translated from tudou/tools/TVCHelper.as in PortalPlayer_193.swf
|
||||||
|
# 0001, 0002 and 4001 are not included as they indicate temporary issues
|
||||||
|
TVC_ERRORS = {
|
||||||
|
'0003': 'The video is deleted or does not exist',
|
||||||
|
'1001': 'This video is unavailable due to licensing issues',
|
||||||
|
'1002': 'This video is unavailable as it\'s under review',
|
||||||
|
'1003': 'This video is unavailable as it\'s under review',
|
||||||
|
'3001': 'Password required',
|
||||||
|
'5001': 'This video is available in Mainland China only due to licensing issues',
|
||||||
|
'7001': 'This video is unavailable',
|
||||||
|
'8001': 'This video is unavailable due to licensing issues',
|
||||||
|
}
|
||||||
|
|
||||||
def _url_for_id(self, video_id, quality=None):
|
def _url_for_id(self, video_id, quality=None):
|
||||||
info_url = 'http://v2.tudou.com/f?id=' + compat_str(video_id)
|
info_url = 'http://v2.tudou.com/f?id=' + compat_str(video_id)
|
||||||
if quality:
|
if quality:
|
||||||
|
@ -63,6 +77,15 @@ def _real_extract(self, url):
|
||||||
if youku_vcode:
|
if youku_vcode:
|
||||||
return self.url_result('youku:' + youku_vcode, ie='Youku')
|
return self.url_result('youku:' + youku_vcode, ie='Youku')
|
||||||
|
|
||||||
|
if not item_data.get('itemSegs'):
|
||||||
|
tvc_code = item_data.get('tvcCode')
|
||||||
|
if tvc_code:
|
||||||
|
err_msg = self.TVC_ERRORS.get(tvc_code)
|
||||||
|
if err_msg:
|
||||||
|
raise ExtractorError('Tudou said: %s' % err_msg, expected=True)
|
||||||
|
raise ExtractorError('Unexpected error %s returned from Tudou' % tvc_code)
|
||||||
|
raise ExtractorError('Unxpected error returned from Tudou')
|
||||||
|
|
||||||
title = unescapeHTML(item_data['kw'])
|
title = unescapeHTML(item_data['kw'])
|
||||||
description = item_data.get('desc')
|
description = item_data.get('desc')
|
||||||
thumbnail_url = item_data.get('pic')
|
thumbnail_url = item_data.get('pic')
|
||||||
|
|
Loading…
Reference in a new issue