Sorry for the interruption. We have been receiving a large volume of requests from your network.

-

To continue with your YouTube experience, please fill out the form below.

""" in wpage.text: +

To continue with your YouTube experience, please fill out the form below.

""" in wpage.text and not wpage.status_code == 429: break else: print("Captcha detected, waiting 30 seconds") @@ -74,35 +74,37 @@ def getmetadata(mysession, vid): initdata = loads(line.split('window["ytInitialData"] = ', 1)[1].strip()[:-1]) if "contents" in initdata.keys(): #prevent exception 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"]["channelId"]) - except KeyError as e: + if "results" in initdata["contents"]["twoColumnWatchNextResults"]["secondaryResults"]["secondaryResults"].keys(): + 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 - except: + 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 BaseException as e: + print(e) print("Exception in discovery, continuing anyway") creditdata = {} diff --git a/export.py b/export.py index b3760af..126872a 100644 --- a/export.py +++ b/export.py @@ -79,13 +79,25 @@ class MyHTMLParser(HTMLParser): elif self.get_starttag_text() and self.get_starttag_text().startswith('
See latest' in inttext: - jobs.put(("subtitles-forceedit-metadata", vid, langcode)) - retval -= 1 + print("Need forcemetadata") + needforcemetadata[langcode] = True + else: + needforcemetadata[langcode] = False if '