1
0
mirror of https://github.com/yt-dlp/yt-dlp.git synced 2025-10-31 22:55:18 +00:00

[extractor] Support multiple archive ids for one video (#4307)

Closes #4352
This commit is contained in:
pukkandan
2022-07-13 15:03:05 +05:30
parent f14a2d8382
commit 1e8fe57e5c
6 changed files with 13 additions and 7 deletions

View File

@@ -334,6 +334,7 @@ class InfoExtractor:
'private', 'premium_only', 'subscriber_only', 'needs_auth',
'unlisted' or 'public'. Use 'InfoExtractor._availability'
to set it
_old_archive_ids: A list of old archive ids needed for backward compatibility
__post_extractor: A function to be called just before the metadata is
written to either disk, logger or console. The function
must return a dict which will be added to the info_dict.

View File

@@ -249,7 +249,8 @@ class FunimationIE(FunimationBaseIE):
self._sort_formats(formats, ('lang', 'source'))
return {
'id': initial_experience_id if only_initial_experience else episode_id,
'id': episode_id,
'_old_archive_ids': [initial_experience_id],
'display_id': display_id,
'duration': duration,
'title': episode['episodeTitle'],

View File

@@ -22,6 +22,9 @@ class HTML5MediaEmbedIE(InfoExtractor):
entry.update({
'id': f'{video_id}-{num}',
'title': f'{title} ({num})',
'_old_archive_ids': [
f'Generic {f"{video_id}-{num}" if len(entries) > 1 else video_id}',
],
})
self._sort_formats(entry['formats'])
yield entry

View File

@@ -1162,8 +1162,11 @@ class TwitchClipsIE(TwitchBaseIE):
})
thumbnails.append(thumb)
old_id = self._search_regex(r'%7C(\d+)(?:-\d+)?.mp4', formats[-1]['url'], 'old id', default=None)
return {
'id': clip.get('id') or video_id,
'_old_archive_ids': [f'{self.ie_key()} {old_id}'] if old_id else None,
'display_id': video_id,
'title': clip.get('title') or video_id,
'formats': formats,