mirror of
https://github.com/LuanRT/YouTube.js.git
synced 2026-07-02 21:52:48 +00:00
fix(Player): Fix extracting the n-token decipher algorithm (#682)
* fix(Player): Fix extracting the n-token decipher algorithm * fix: bump Jinter to v2 --------- Co-authored-by: Luan <luan.lrt4@gmail.com>
This commit is contained in:
@@ -220,12 +220,20 @@ export default class Player {
|
||||
}
|
||||
|
||||
static extractNSigSourceCode(data: string): string {
|
||||
const sc = `function descramble_nsig(a) { let b=a.split("")${getStringBetweenStrings(data, 'b=a.split("")', '}return b.join("")}')}} return b.join(""); } descramble_nsig(nsig)`;
|
||||
let sc = getStringBetweenStrings(data, 'b=a.split("")', '}return b.join("")}');
|
||||
|
||||
if (!sc)
|
||||
Log.warn(TAG, 'Failed to extract n-token decipher algorithm');
|
||||
if (sc)
|
||||
return `function descramble_nsig(a) { let b=a.split("")${sc}} return b.join(""); } descramble_nsig(nsig)`;
|
||||
|
||||
return sc;
|
||||
sc = getStringBetweenStrings(data, 'b=String.prototype.split.call(a,"")', '}return Array.prototype.join.call(b,"")}');
|
||||
|
||||
if (sc)
|
||||
return `function descramble_nsig(a) { let b=String.prototype.split.call(a, "")${sc}} return Array.prototype.join.call(b, ""); } descramble_nsig(nsig)`;
|
||||
|
||||
// We really should throw an error here to avoid errors later, returning a pass-through function for backwards-compatibility
|
||||
Log.warn(TAG, 'Failed to extract n-token decipher algorithm');
|
||||
|
||||
return 'function descramble_nsig(a) { return a; } descramble_nsig(nsig)';
|
||||
}
|
||||
|
||||
get url(): string {
|
||||
|
||||
@@ -7,13 +7,13 @@ const TAG = 'JsRuntime';
|
||||
export default function evaluate(code: string, env: Record<string, VMPrimative>) {
|
||||
Log.debug(TAG, 'Evaluating JavaScript:\n', code);
|
||||
|
||||
const runtime = new Jinter(code);
|
||||
const runtime = new Jinter();
|
||||
|
||||
for (const [ key, value ] of Object.entries(env)) {
|
||||
runtime.scope.set(key, value);
|
||||
}
|
||||
|
||||
const result = runtime.interpret();
|
||||
const result = runtime.evaluate(code);
|
||||
|
||||
Log.debug(TAG, 'Done. Result:', result);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user