1
0
mirror of https://github.com/yt-dlp/yt-dlp.git synced 2025-08-15 08:58:28 +00:00
This commit is contained in:
doe1080 2025-07-21 13:44:49 +09:00
parent a729261a24
commit be07203b75

View File

@ -114,7 +114,7 @@ class NiconicoIE(NiconicoBaseIE):
'DEFAULT': 'Page unavailable, check the URL', 'DEFAULT': 'Page unavailable, check the URL',
'HARMFUL_VIDEO': 'Sensitive content, login required', 'HARMFUL_VIDEO': 'Sensitive content, login required',
'HIDDEN_VIDEO': 'Video unavailable, set to private', 'HIDDEN_VIDEO': 'Video unavailable, set to private',
'NOT_ALLOWED': 'No parmission', 'NOT_ALLOWED': 'No permission',
'PPV_VIDEO': 'PPV video, payment information required', 'PPV_VIDEO': 'PPV video, payment information required',
'PREMIUM_ONLY': 'Premium members only', 'PREMIUM_ONLY': 'Premium members only',
}, },
@ -354,7 +354,8 @@ def _real_extract(self, url):
if meta.get('status') != 200: if meta.get('status') != 200:
err_code = meta['errorCode'] err_code = meta['errorCode']
reason_code = traverse_obj(api_data, ('reasonCode', {str_or_none})) reason_code = traverse_obj(api_data, ('reasonCode', {str_or_none}))
err_msg = 'Server busy, service temporarily unavailable' err_msg = traverse_obj(self._ERROR_MAP, (
err_code.upper(), (reason_code, 'DEFAULT'), {str}, any))
if reason_code in ('DOMESTIC_VIDEO', 'HIGH_RISK_COUNTRY_VIDEO'): if reason_code in ('DOMESTIC_VIDEO', 'HIGH_RISK_COUNTRY_VIDEO'):
self.raise_geo_restricted(countries=self._GEO_COUNTRIES) self.raise_geo_restricted(countries=self._GEO_COUNTRIES)
@ -364,12 +365,11 @@ def _real_extract(self, url):
err_msg = 'Sensitive content, adjust display settings to watch' err_msg = 'Sensitive content, adjust display settings to watch'
elif reason_code == 'HIDDEN_VIDEO' and release_timestamp: elif reason_code == 'HIDDEN_VIDEO' and release_timestamp:
err_msg = f'Scheduled release, please wait. Release time: {release_timestamp}' err_msg = f'Scheduled release, please wait. Release time: {release_timestamp}'
elif msg := traverse_obj(self._ERROR_MAP, ( elif reason_code in ('CHANNEL_MEMBER_ONLY', 'HARMFUL_VIDEO', 'HIDDEN_VIDEO', 'PPV_VIDEO', 'PREMIUM_ONLY'):
err_code.upper(), (reason_code, 'DEFAULT'), {str}, any, self.raise_login_required(err_msg)
)):
err_msg = msg
raise ExtractorError(err_msg, expected=True) raise ExtractorError(
err_msg or 'Server busy, service temporarily unavailable', expected=True)
availability = self._availability(**{ availability = self._availability(**{
**dict.fromkeys(('is_private', 'is_unlisted'), False), **dict.fromkeys(('is_private', 'is_unlisted'), False),
@ -381,9 +381,9 @@ def _real_extract(self, url):
}) })
formats = self._extract_formats(api_data, video_id) formats = self._extract_formats(api_data, video_id)
if not formats: err_msg = self._STATUS_MAP.get(availability)
if err_msg := self._STATUS_MAP.get(availability): if not formats and err_msg:
self.raise_login_required(err_msg, metadata_available=True) self.raise_login_required(err_msg, metadata_available=True)
thumb_prefs = qualities(['url', 'middleUrl', 'largeUrl', 'player', 'ogp']) thumb_prefs = qualities(['url', 'middleUrl', 'largeUrl', 'player', 'ogp'])