mirror of
https://github.com/yt-dlp/yt-dlp.git
synced 2024-11-10 00:25:06 +00:00
parent
2ae778b8fc
commit
6837633a4a
1 changed files with 22 additions and 19 deletions
|
@ -54,20 +54,8 @@ def _real_extract(self, url):
|
||||||
video_id = self._match_id(self._search_regex(
|
video_id = self._match_id(self._search_regex(
|
||||||
(r'canonical"\s*href="(https?://tver\.jp/[^"]+)"', r'&link=(https?://tver\.jp/[^?&]+)[?&]'),
|
(r'canonical"\s*href="(https?://tver\.jp/[^"]+)"', r'&link=(https?://tver\.jp/[^?&]+)[?&]'),
|
||||||
webpage, 'url regex'))
|
webpage, 'url regex'))
|
||||||
video_info = self._download_json(
|
|
||||||
f'https://statics.tver.jp/content/episode/{video_id}.json', video_id,
|
|
||||||
query={'v': '5'}, headers={
|
|
||||||
'Origin': 'https://tver.jp',
|
|
||||||
'Referer': 'https://tver.jp/',
|
|
||||||
})
|
|
||||||
p_id = video_info['video']['accountID']
|
|
||||||
r_id = traverse_obj(video_info, ('video', ('videoRefID', 'videoID')), get_all=False)
|
|
||||||
if not r_id:
|
|
||||||
raise ExtractorError('Failed to extract reference ID for Brightcove')
|
|
||||||
if not r_id.isdigit():
|
|
||||||
r_id = f'ref:{r_id}'
|
|
||||||
|
|
||||||
additional_info = self._download_json(
|
episode_info = self._download_json(
|
||||||
f'https://platform-api.tver.jp/service/api/v1/callEpisode/{video_id}?require_data=mylist,later[epefy106ur],good[epefy106ur],resume[epefy106ur]',
|
f'https://platform-api.tver.jp/service/api/v1/callEpisode/{video_id}?require_data=mylist,later[epefy106ur],good[epefy106ur],resume[epefy106ur]',
|
||||||
video_id, fatal=False,
|
video_id, fatal=False,
|
||||||
query={
|
query={
|
||||||
|
@ -76,16 +64,31 @@ def _real_extract(self, url):
|
||||||
}, headers={
|
}, headers={
|
||||||
'x-tver-platform-type': 'web'
|
'x-tver-platform-type': 'web'
|
||||||
})
|
})
|
||||||
|
episode_content = traverse_obj(
|
||||||
|
episode_info, ('result', 'episode', 'content')) or {}
|
||||||
|
|
||||||
additional_content_info = traverse_obj(
|
video_info = self._download_json(
|
||||||
additional_info, ('result', 'episode', 'content'), get_all=False) or {}
|
f'https://statics.tver.jp/content/episode/{video_id}.json', video_id,
|
||||||
episode = strip_or_none(additional_content_info.get('title'))
|
query={
|
||||||
series = str_or_none(additional_content_info.get('seriesTitle'))
|
'v': str_or_none(episode_content.get('version')) or '5',
|
||||||
|
}, headers={
|
||||||
|
'Origin': 'https://tver.jp',
|
||||||
|
'Referer': 'https://tver.jp/',
|
||||||
|
})
|
||||||
|
p_id = video_info['video']['accountID']
|
||||||
|
r_id = traverse_obj(video_info, ('video', ('videoRefID', 'videoID')))
|
||||||
|
if not r_id:
|
||||||
|
raise ExtractorError('Failed to extract reference ID for Brightcove')
|
||||||
|
if not r_id.isdigit():
|
||||||
|
r_id = f'ref:{r_id}'
|
||||||
|
|
||||||
|
episode = strip_or_none(episode_content.get('title'))
|
||||||
|
series = str_or_none(episode_content.get('seriesTitle'))
|
||||||
title = (
|
title = (
|
||||||
join_nonempty(series, episode, delim=' ')
|
join_nonempty(series, episode, delim=' ')
|
||||||
or str_or_none(video_info.get('title')))
|
or str_or_none(video_info.get('title')))
|
||||||
provider = str_or_none(additional_content_info.get('productionProviderName'))
|
provider = str_or_none(episode_content.get('productionProviderName'))
|
||||||
onair_label = str_or_none(additional_content_info.get('broadcastDateLabel'))
|
onair_label = str_or_none(episode_content.get('broadcastDateLabel'))
|
||||||
|
|
||||||
return {
|
return {
|
||||||
'_type': 'url_transparent',
|
'_type': 'url_transparent',
|
||||||
|
|
Loading…
Reference in a new issue