mirror of
https://github.com/yt-dlp/yt-dlp.git
synced 2025-08-15 00:48:28 +00:00
Apply suggestions
This commit is contained in:
parent
b2ab183143
commit
3a1cf075cb
@ -348,14 +348,13 @@ def _real_extract(self, url):
|
|||||||
}, expected_status=[400, 404])
|
}, expected_status=[400, 404])
|
||||||
|
|
||||||
api_data = api_resp['data']
|
api_data = api_resp['data']
|
||||||
release_timestamp = traverse_obj(api_data, ('publishScheduledAt', {parse_iso8601}))
|
scheduled_time = traverse_obj(api_data, ('publishScheduledAt', {str}))
|
||||||
|
status = traverse_obj(api_resp, ('meta', 'status', {int}))
|
||||||
|
|
||||||
meta = api_resp['meta']
|
if status != 200:
|
||||||
if meta.get('status') != 200:
|
err_code = traverse_obj(api_resp, ('meta', 'errorCode', {str.upper}))
|
||||||
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 = traverse_obj(self._ERROR_MAP, (
|
err_msg = traverse_obj(self._ERROR_MAP, (err_code, (reason_code, 'DEFAULT'), {str}, any))
|
||||||
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)
|
||||||
@ -363,22 +362,22 @@ def _real_extract(self, url):
|
|||||||
'viewer', 'allowSensitiveContents', {bool},
|
'viewer', 'allowSensitiveContents', {bool},
|
||||||
)) is False:
|
)) is False:
|
||||||
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 scheduled_time:
|
||||||
err_msg = f'Scheduled release, please wait. Release time: {release_timestamp}'
|
err_msg = f'This content is scheduled to be released at {scheduled_time}'
|
||||||
elif reason_code in ('CHANNEL_MEMBER_ONLY', 'HARMFUL_VIDEO', 'HIDDEN_VIDEO', 'PPV_VIDEO', 'PREMIUM_ONLY'):
|
elif reason_code in ('CHANNEL_MEMBER_ONLY', 'HARMFUL_VIDEO', 'HIDDEN_VIDEO', 'PPV_VIDEO', 'PREMIUM_ONLY'):
|
||||||
self.raise_login_required(err_msg)
|
self.raise_login_required(err_msg)
|
||||||
|
|
||||||
raise ExtractorError(
|
if err_msg:
|
||||||
err_msg or 'Server busy, service temporarily unavailable', expected=True)
|
raise ExtractorError(err_msg, expected=True)
|
||||||
|
if status and status >= 500:
|
||||||
|
raise ExtractorError('Service temporarily unavailable', expected=True)
|
||||||
|
raise ExtractorError(f'API returned error status {status}')
|
||||||
|
|
||||||
availability = self._availability(**{
|
availability = self._availability(**traverse_obj(api_data, ('payment', 'video', {
|
||||||
**dict.fromkeys(('is_private', 'is_unlisted'), False),
|
'needs_auth': (('isContinuationBenefit', 'isPpv'), {bool}, any),
|
||||||
**traverse_obj(api_data, ('payment', 'video', {
|
'needs_subscription': ('isAdmission', {bool}),
|
||||||
'needs_auth': (('isContinuationBenefit', 'isPpv'), {bool}, any),
|
'needs_premium': ('isPremium', {bool}),
|
||||||
'needs_premium': ('isPremium', {bool}),
|
}))) or 'public'
|
||||||
'needs_subscription': ('isAdmission', {bool}),
|
|
||||||
})),
|
|
||||||
})
|
|
||||||
|
|
||||||
formats = self._extract_formats(api_data, video_id)
|
formats = self._extract_formats(api_data, video_id)
|
||||||
err_msg = self._STATUS_MAP.get(availability)
|
err_msg = self._STATUS_MAP.get(availability)
|
||||||
@ -392,7 +391,7 @@ def _real_extract(self, url):
|
|||||||
'display_id': video_id,
|
'display_id': video_id,
|
||||||
'formats': formats,
|
'formats': formats,
|
||||||
'genres': traverse_obj(api_data, ('genre', 'label', {str}, filter, all, filter)),
|
'genres': traverse_obj(api_data, ('genre', 'label', {str}, filter, all, filter)),
|
||||||
'release_timestamp': release_timestamp,
|
'release_timestamp': parse_iso8601(scheduled_time),
|
||||||
'subtitles': self.extract_subtitles(video_id, api_data),
|
'subtitles': self.extract_subtitles(video_id, api_data),
|
||||||
'tags': traverse_obj(api_data, ('tag', 'items', ..., 'name', {str}, filter, all, filter)),
|
'tags': traverse_obj(api_data, ('tag', 'items', ..., 'name', {str}, filter, all, filter)),
|
||||||
'thumbnails': [{
|
'thumbnails': [{
|
||||||
|
Loading…
Reference in New Issue
Block a user