[extractor/youtube] Fix :ytnotifications extractor (#3775)

Still some issues, see https://github.com/yt-dlp/yt-dlp/pull/3775

Authored by: coletdjnz
This commit is contained in:
coletdev 2022-06-03 19:04:39 +12:00 committed by GitHub
parent e50c3500b4
commit c7a7baaa13
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -5673,11 +5673,13 @@ def _extract_notification_renderer(self, notification):
channel = traverse_obj( channel = traverse_obj(
notification, ('contextualMenu', 'menuRenderer', 'items', 1, 'menuServiceItemRenderer', 'text', 'runs', 1, 'text'), notification, ('contextualMenu', 'menuRenderer', 'items', 1, 'menuServiceItemRenderer', 'text', 'runs', 1, 'text'),
expected_type=str) expected_type=str)
notification_title = self._get_text(notification, 'shortMessage')
if notification_title:
notification_title = notification_title.replace('\xad', '') # remove soft hyphens
# TODO: handle recommended videos
title = self._search_regex( title = self._search_regex(
rf'{re.escape(channel)} [^:]+: (.+)', self._get_text(notification, 'shortMessage'), rf'{re.escape(channel or "")}[^:]+: (.+)', notification_title,
'video title', default=None) 'video title', default=None)
if title:
title = title.replace('\xad', '') # remove soft hyphens
upload_date = (strftime_or_none(self._extract_time_text(notification, 'sentTimeText')[0], '%Y%m%d') upload_date = (strftime_or_none(self._extract_time_text(notification, 'sentTimeText')[0], '%Y%m%d')
if self._configuration_arg('approximate_date', ie_key=YoutubeTabIE.ie_key()) if self._configuration_arg('approximate_date', ie_key=YoutubeTabIE.ie_key())
else None) else None)