From cd4e87f52e87ab6d8b318fd3a817adda6fafa8dc Mon Sep 17 00:00:00 2001 From: bashonly <88596187+bashonly@users.noreply.github.com> Date: Fri, 13 Mar 2026 02:23:10 -0500 Subject: [PATCH] Fix sig value encoding (#54) Co-authored-by: Simon Sawicki --- src/yt/solver/nsig.ts | 2 +- src/yt/solver/solvers.ts | 4 +++- src/yt/solver/test/tests.ts | 7 +++++++ 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/yt/solver/nsig.ts b/src/yt/solver/nsig.ts index 649b8dc..b2434d0 100644 --- a/src/yt/solver/nsig.ts +++ b/src/yt/solver/nsig.ts @@ -123,7 +123,7 @@ function createSolver( ): ESTree.ArrowFunctionExpression { return generateArrowFunction(` ({sig, n}) => { - const url = (${generate(expression)})("https://youtube.com/watch?v=yt-dlp-wins", "s", sig); + const url = (${generate(expression)})("https://youtube.com/watch?v=yt-dlp-wins", "s", sig ? encodeURIComponent(sig) : undefined); url.set("n", n); const proto = Object.getPrototypeOf(url); const keys = Object.keys(proto).concat(Object.getOwnPropertyNames(proto)); diff --git a/src/yt/solver/solvers.ts b/src/yt/solver/solvers.ts index 2b7caf6..cd16053 100755 --- a/src/yt/solver/solvers.ts +++ b/src/yt/solver/solvers.ts @@ -166,6 +166,7 @@ function multiTry( return generateArrowFunction(` (_input) => { const _results = new Set(); + const errors = []; for (const _generator of ${generate({ type: "ArrayExpression", elements: generators, @@ -173,10 +174,11 @@ function multiTry( try { _results.add(_generator(_input)); } catch (e) { + errors.push(e); } } if (!_results.size) { - throw "no solutions"; + throw \`no solutions: \${errors.join(", ")}\`; } if (_results.size !== 1) { throw \`invalid solutions: \${[..._results].map(x => JSON.stringify(x)).join(", ")}\`; diff --git a/src/yt/solver/test/tests.ts b/src/yt/solver/test/tests.ts index 1dbb083..e2b6d09 100644 --- a/src/yt/solver/test/tests.ts +++ b/src/yt/solver/test/tests.ts @@ -41,6 +41,7 @@ export const tests: { n: [ { input: "IlLiA21ny7gqA2m4p37", expected: "9nRTxrbM1f0yHg" }, { input: "eabGFpsUKuWHXGh6FR4", expected: "izmYqDEY6kl7Sg" }, + { input: "eabGF/ps%UK=uWHXGh6FR4", expected: "LACmqlhaBpiPlgE-a" }, ], sig: [ { @@ -49,6 +50,12 @@ export const tests: { expected: "NJAJEij0EwRgIhAI0KExTgjfPk-MPM9MAdzyyPRt=BM8-XO5tm5hzMCSVpAiEAv7eP3CURqZNSPow8BXXAoazVoXgeMP7gH9BdylHCwgw=gwzl", }, + { + input: + "\x00\x01\x02%\x03\x04\x05\x06\x07\x08\x09\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x20\x21\x22\x23\x24\x25\x26\x27\x28\x29\x30\x31\x32\x33\x34\x35\x36\x37\x38\x39\x40\x41\x42\x43\x44\x45\x46\x47\x48\x49", + expected: + "\x00\x01\x02%\x03\x04\x05\x06\x07\x08\x09\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x20\x21\x22\x23\x24\x25\x26\x27\x28\x29\x30\x31\x32\x33\x34\x35\x36\x37\x38\x39\x40\x41\x42\x49\x44\x45\x46\x47\x48\x43", + }, ], }, {