From 412b4934ed7c3b68bfecaab1c04dde102e407f9b Mon Sep 17 00:00:00 2001 From: Cadence Ember Date: Sun, 6 Nov 2022 13:55:22 +1300 Subject: [PATCH] Support new channel layout --- extractors/channel.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/extractors/channel.py b/extractors/channel.py index 8c610d8..adbec00 100644 --- a/extractors/channel.py +++ b/extractors/channel.py @@ -72,16 +72,16 @@ def extract_channel(ucid, second__path="user"): latest_videos = [] tabs = yt_initial_data["contents"]["twoColumnBrowseResultsRenderer"]["tabs"] try: - videos_tab = next(tab["tabRenderer"] for tab in tabs if tab["tabRenderer"]["title"] == "Videos") - tab_parts = videos_tab["content"]["sectionListRenderer"]["contents"][0]["itemSectionRenderer"]["contents"][0] + videos_tab = next(tab["tabRenderer"] for tab in tabs if tab.get("tabRenderer", {}).get("title") == "Videos") + tab_parts = videos_tab["content"] except StopIteration: tab_parts = {} # check that the channel actually has videos - this may be replaced # with messageRenderer.text.simpleText == "This channel has no videos." - if "gridRenderer" in tab_parts: + if "richGridRenderer" in tab_parts: videos = ( - v["gridVideoRenderer"] for v in tab_parts["gridRenderer"]["items"] if "gridVideoRenderer" in v + v["richItemRenderer"]["content"]["videoRenderer"] for v in tab_parts["richGridRenderer"]["contents"] if "richItemRenderer" in v ) for v in videos: live = False