1
0
mirror of https://github.com/yt-dlp/yt-dlp.git synced 2025-10-12 13:28:30 +00:00

[ie/youtube:tab] Fix approximate timestamp extraction for feeds (#14539)

Authored by: coletdjnz
This commit is contained in:
coletdjnz 2025-10-12 08:29:06 +13:00 committed by GitHub
parent 5513036104
commit ccc25d6710
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 7 additions and 3 deletions

View File

@ -1196,7 +1196,7 @@ def extract_relative_time(relative_time_text):
except ValueError:
return None
def _parse_time_text(self, text):
def _parse_time_text(self, text, report_failure=True):
if not text:
return
dt_ = self.extract_relative_time(text)
@ -1211,7 +1211,7 @@ def _parse_time_text(self, text):
(r'([a-z]+\s*\d{1,2},?\s*20\d{2})', r'(?:.+|^)(?:live|premieres|ed|ing)(?:\s*(?:on|for))?\s*(.+\d)'),
text.lower(), 'time text', default=None)))
if text and timestamp is None and self._preferred_lang in (None, 'en'):
if report_failure and text and timestamp is None and self._preferred_lang in (None, 'en'):
self.report_warning(
f'Cannot parse localized time text "{text}"', only_once=True)
return timestamp

View File

@ -341,7 +341,11 @@ def _extract_lockup_view_model(self, view_model):
'contentImage', *thumb_keys, 'thumbnailViewModel', 'image'), final_key='sources'),
duration=traverse_obj(view_model, (
'contentImage', 'thumbnailViewModel', 'overlays', ..., 'thumbnailOverlayBadgeViewModel',
'thumbnailBadges', ..., 'thumbnailBadgeViewModel', 'text', {parse_duration}, any)))
'thumbnailBadges', ..., 'thumbnailBadgeViewModel', 'text', {parse_duration}, any)),
timestamp=(traverse_obj(view_model, (
'metadata', 'lockupMetadataViewModel', 'metadata', 'contentMetadataViewModel', 'metadataRows',
..., 'metadataParts', ..., 'text', 'content', {lambda t: self._parse_time_text(t, report_failure=False)}, any))
if self._configuration_arg('approximate_date', ie_key=YoutubeTabIE) else None))
def _rich_entries(self, rich_grid_renderer):
if lockup_view_model := traverse_obj(rich_grid_renderer, ('content', 'lockupViewModel', {dict})):