From 9df8abdafbf2f61b8483c95b629c4184c01654e0 Mon Sep 17 00:00:00 2001 From: girst Date: Wed, 5 Jan 2022 22:09:24 +0100 Subject: [PATCH] fix COURSE/"learning playlist" special-casing this appears to no longer be needed. new test case (since the tomscott playlist can't be searched for any more): - PLRqwX-V7Uu6Zy51Q-x9tMWIv9cueOFTFA "Code! Programming with p5.js" by "The Coding Train" - /search?q=The+Coding+Train&type=playlist - /channel/UCvjgXvBlbQiydffZU7m1_aw/playlists --- app/common/innertube.py | 19 ++++--------------- 1 file changed, 4 insertions(+), 15 deletions(-) diff --git a/app/common/innertube.py b/app/common/innertube.py index 92e29fc..7689fcf 100644 --- a/app/common/innertube.py +++ b/app/common/innertube.py @@ -180,12 +180,9 @@ def parse_result_items(items): }}) elif key in ['playlistRenderer', 'radioRenderer', 'showRenderer']: # radio == "Mix" playlist, show == normal playlist, specially displayed results.append({'type': 'PLAYLIST', 'content': { - 'playlist_id': content['navigationEndpoint']|G('watchEndpoint')|G('playlistId') or \ - content|G('playlistId'), # COURSE/"learning playlist" - 'video_id': content['navigationEndpoint']|G('watchEndpoint')|G('videoId') or \ - videoid_from_thumbnail(content), # learning playlist + 'playlist_id': content['navigationEndpoint']|G('watchEndpoint')|G('playlistId'), + 'video_id': content['navigationEndpoint']|G('watchEndpoint')|G('videoId'), 'title': content['title']|G.text, - # Note: learning playlists have no author/channel_id 'author': content|G('longBylineText','shortBylineText')|G.text, 'channel_id': content|G('longBylineText','shortBylineText')|G('runs')|G(0) \ |G('navigationEndpoint')|G('browseEndpoint')|G('browseId'), @@ -329,12 +326,6 @@ def parse_endcard(card): log_unknown_card(card) return None -def videoid_from_thumbnail(content): - # learning playlist; example: PL96C35uN7xGJu6skU4TBYrIWxggkZBrF5 (/user/enyay/playlists) - return re.match(r"https?://i.ytimg.com/vi/([-_0-9a-zA-Z]{11})|()", - content|G('thumbnails')|G(0)|G('thumbnails')|G(0)|G('url') or '' - ).group(1) - def parse_channel_items(items, channel_id, author): result = [] extra = [] @@ -360,10 +351,8 @@ def parse_channel_items(items, channel_id, author): }}) elif key == "gridPlaylistRenderer" or key == "playlistRenderer": result.append({'type': 'PLAYLIST', 'content': { - 'playlist_id': (content|G('navigationEndpoint')|G('watchEndpoint')|G('playlistId') - or content|G('playlistId')), - 'video_id': (content|G('navigationEndpoint')|G('watchEndpoint')|G('videoId') - or videoid_from_thumbnail(content)), + 'playlist_id': content|G('navigationEndpoint')|G('watchEndpoint')|G('playlistId'), + 'video_id': content|G('navigationEndpoint')|G('watchEndpoint')|G('videoId'), 'title': content|G('title')|G.text, 'author': author, 'channel_id': channel_id, -- 2.39.3