From 249c431a89095efe00f3fa6d257b2ae2ffb7e98e Mon Sep 17 00:00:00 2001 From: tech234a <46801700+tech234a@users.noreply.github.com> Date: Tue, 22 Sep 2020 21:52:15 -0400 Subject: [PATCH] Continue on discovery exception --- discovery.py | 55 +++++++++++++++++++++++++++------------------------- 1 file changed, 29 insertions(+), 26 deletions(-) diff --git a/discovery.py b/discovery.py index c22eb7c..4cdfadb 100644 --- a/discovery.py +++ b/discovery.py @@ -69,34 +69,37 @@ def getmetadata(vid): elif line.strip().startswith('window["ytInitialData"] = '): initdata = loads(line.split('window["ytInitialData"] = ', 1)[1].strip()[:-1]) if "contents" in initdata.keys(): #prevent exception - for recmd in initdata["contents"]["twoColumnWatchNextResults"]["secondaryResults"]["secondaryResults"]["results"]: - #auto is like the others - if "compactAutoplayRenderer" in recmd.keys(): - recmd = recmd["compactAutoplayRenderer"]["contents"][0] - - if "compactVideoRenderer" in recmd.keys(): - recvids.add(recmd["compactVideoRenderer"]["videoId"]) - try: - recchans.add(recmd["compactVideoRenderer"]["channelId"]) - except KeyError as e: + try: + for recmd in initdata["contents"]["twoColumnWatchNextResults"]["secondaryResults"]["secondaryResults"]["results"]: + #auto is like the others + if "compactAutoplayRenderer" in recmd.keys(): + recmd = recmd["compactAutoplayRenderer"]["contents"][0] + + if "compactVideoRenderer" in recmd.keys(): + recvids.add(recmd["compactVideoRenderer"]["videoId"]) try: - recchans.add(recmd["compactVideoRenderer"]["longBylineText"]["runs"][0]["navigationEndpoint"]["browseEndpoint"]["browseId"]) + recchans.add(recmd["compactVideoRenderer"]["channelId"]) except KeyError as e: - print("Channel extract error") - #raise - #print("Unable to extract channel:") - #print(recmd["compactVideoRenderer"]) - - elif "compactPlaylistRenderer" in recmd.keys(): - recplayl.add(recmd["compactPlaylistRenderer"]["playlistId"]) - if "navigationEndpoint" in recmd["compactPlaylistRenderer"].keys(): - recvids.add(recmd["compactPlaylistRenderer"]["navigationEndpoint"]["watchEndpoint"]["videoId"]) - if "navigationEndpoint" in recmd["compactPlaylistRenderer"]["shortBylineText"].keys(): - recchans.add(recmd["compactPlaylistRenderer"]["shortBylineText"]["navigationEndpoint"]["browseEndpoint"]["browseId"]) - - elif "compactRadioRenderer" in recmd.keys(): #mix playlist - recmixes.add(recmd["compactRadioRenderer"]["playlistId"]) - # todo: find out if channels can be suggested + try: + recchans.add(recmd["compactVideoRenderer"]["longBylineText"]["runs"][0]["navigationEndpoint"]["browseEndpoint"]["browseId"]) + except KeyError as e: + print("Channel extract error") + #raise + #print("Unable to extract channel:") + #print(recmd["compactVideoRenderer"]) + + elif "compactPlaylistRenderer" in recmd.keys(): + recplayl.add(recmd["compactPlaylistRenderer"]["playlistId"]) + if "navigationEndpoint" in recmd["compactPlaylistRenderer"].keys(): + recvids.add(recmd["compactPlaylistRenderer"]["navigationEndpoint"]["watchEndpoint"]["videoId"]) + if "navigationEndpoint" in recmd["compactPlaylistRenderer"]["shortBylineText"].keys(): + recchans.add(recmd["compactPlaylistRenderer"]["shortBylineText"]["navigationEndpoint"]["browseEndpoint"]["browseId"]) + + elif "compactRadioRenderer" in recmd.keys(): #mix playlist + recmixes.add(recmd["compactRadioRenderer"]["playlistId"]) + # todo: find out if channels can be suggested + except: + print("Exception in discovery, continuing anyway") creditdata = {} try: