youtube: catch cipher errors
not the first and seemingly not the last time it's gonna happen
This commit is contained in:
parent
f8a28c6c5f
commit
f5facc7d39
2 changed files with 6 additions and 2 deletions
|
@ -160,6 +160,7 @@
|
|||
"ErrorYTAgeRestrict": "this youtube video is age-restricted, so i can't see it. try another one!",
|
||||
"ErrorYTLogin": "couldn't get this youtube video because it requires an account to view.\n\nthis limitation is done by google to seemingly stop scraping, affecting all 3rd party tools and even their own clients.\n\ntry again, but if issue persists, {ContactLink}.",
|
||||
"ErrorYTRateLimit": "i got rate limited by youtube. try again in a few seconds, but if issue persists, {ContactLink}.",
|
||||
"ErrorInvalidAcceptHeader": "invalid accept header"
|
||||
"ErrorInvalidAcceptHeader": "invalid accept header",
|
||||
"ErrorYoutubeDecipher": "youtube updated its decipher algorithm, so i can't get the video info. try again, but if it still doesn't work, please <a class=\"text-backdrop link\" href=\"{repo}\" target=\"_blank\">create an issue on github</a>."
|
||||
}
|
||||
}
|
||||
|
|
|
@ -50,7 +50,9 @@ const transformSessionData = (cookie) => {
|
|||
const cloneInnertube = async (customFetch) => {
|
||||
const innertube = await ytBase;
|
||||
if (innertube instanceof Error) {
|
||||
throw innertube;
|
||||
if (innertube?.message?.endsWith("decipher algorithm")) {
|
||||
return { error: "ErrorYoutubeDecipher" }
|
||||
} else throw innertube;
|
||||
}
|
||||
|
||||
const session = new Session(
|
||||
|
@ -101,6 +103,7 @@ export default async function(o) {
|
|||
dispatcher: o.dispatcher
|
||||
})
|
||||
);
|
||||
if (yt.error) return yt;
|
||||
|
||||
const quality = o.quality === "max" ? "9000" : o.quality;
|
||||
|
||||
|
|
Loading…
Reference in a new issue