distube-invidious 1.0.7 → 1.0.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +8 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +63 -36
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/dist/cipherDecoder.d.ts +0 -9
- package/dist/cipherDecoder.d.ts.map +0 -1
- package/dist/cipherDecoder.js +0 -229
- package/dist/cipherDecoder.js.map +0 -1
package/dist/index.d.ts
CHANGED
|
@@ -1,9 +1,14 @@
|
|
|
1
|
-
import { ExtractorPlugin, Playlist, ResolveOptions, Song } from "distube";
|
|
1
|
+
import { DisTube, ExtractorPlugin, Playlist, ResolveOptions, Song } from "distube";
|
|
2
2
|
import type { InvidiousPluginOptions } from "./types.js";
|
|
3
3
|
export declare class InvidiousPlugin extends ExtractorPlugin {
|
|
4
4
|
readonly instance: string;
|
|
5
5
|
private readonly timeout;
|
|
6
6
|
constructor(options: InvidiousPluginOptions);
|
|
7
|
+
/**
|
|
8
|
+
* Initialize the plugin with DisTube.
|
|
9
|
+
* Configures FFmpeg globally with browser-like headers for Google Video compatibility.
|
|
10
|
+
*/
|
|
11
|
+
init(distube: DisTube): void;
|
|
7
12
|
/**
|
|
8
13
|
* Validates if URL is a YouTube URL.
|
|
9
14
|
* Calls stripQuery() first to remove tracking parameters.
|
|
@@ -23,10 +28,8 @@ export declare class InvidiousPlugin extends ExtractorPlugin {
|
|
|
23
28
|
*
|
|
24
29
|
* This method:
|
|
25
30
|
* 1. Searches adaptiveFormats for audio-only streams
|
|
26
|
-
* 2.
|
|
27
|
-
* 3.
|
|
28
|
-
* 4. Validates URLs using GET with Range headers
|
|
29
|
-
* 5. Prioritizes opus by quality (highest bitrate first), then AAC
|
|
31
|
+
* 2. Validates URLs leniently (lets FFmpeg try even if validation fails)
|
|
32
|
+
* 3. Prioritizes opus by quality (highest bitrate first), then AAC
|
|
30
33
|
*
|
|
31
34
|
* Quality priority:
|
|
32
35
|
* 1. Opus audio (highest bitrate → lowest bitrate)
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,QAAQ,EACR,cAAc,EACd,IAAI,EAEL,MAAM,SAAS,CAAC;AAEjB,OAAO,KAAK,EACV,sBAAsB,EAIvB,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,eAAe,EACf,QAAQ,EACR,cAAc,EACd,IAAI,EAEL,MAAM,SAAS,CAAC;AAEjB,OAAO,KAAK,EACV,sBAAsB,EAIvB,MAAM,YAAY,CAAC;AAWpB,qBAAa,eAAgB,SAAQ,eAAe;IAClD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;gBAErB,OAAO,EAAE,sBAAsB;IAa3C;;;OAGG;IACM,IAAI,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAgCrC;;;OAGG;IAEH,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAI9B;;;OAGG;IAEG,OAAO,CAAC,CAAC,EACb,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC,GACzB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAsBjC;;OAEG;IAEG,UAAU,CAAC,CAAC,EAChB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC,GACzB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IAsB1B;;;;;;;;;;;;OAYG;IAEG,YAAY,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC;IA6N/C;;OAEG;IAEG,eAAe,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAgBlD;;OAEG;IAEG,QAAQ,CAAC,CAAC,EACd,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC,GACzB,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAsDvB;;OAEG;YAEW,gBAAgB;IA2B9B;;OAEG;IAEH,OAAO,CAAC,gBAAgB;IAcxB;;OAEG;IAEH,OAAO,CAAC,UAAU;IA4BlB;;OAEG;IAEH,OAAO,CAAC,kBAAkB;CAqB3B;AAED,eAAe,eAAe,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { ExtractorPlugin, Playlist, Song, DisTubeError, } from "distube";
|
|
2
2
|
import fetch from "node-fetch";
|
|
3
|
-
import { fixUrl as decodeCipherUrl } from "./cipherDecoder.js";
|
|
4
3
|
import { stripQuery, isYouTubeUrl, extractVideoId, extractPlaylistId, } from "./url-utils.js";
|
|
5
4
|
// InvidiousPlugin Class
|
|
6
5
|
export class InvidiousPlugin extends ExtractorPlugin {
|
|
@@ -18,6 +17,33 @@ export class InvidiousPlugin extends ExtractorPlugin {
|
|
|
18
17
|
this.instance = normalized;
|
|
19
18
|
this.timeout = options.timeout ?? 10000;
|
|
20
19
|
}
|
|
20
|
+
/**
|
|
21
|
+
* Initialize the plugin with DisTube.
|
|
22
|
+
* Configures FFmpeg globally with browser-like headers for Google Video compatibility.
|
|
23
|
+
*/
|
|
24
|
+
init(distube) {
|
|
25
|
+
super.init(distube);
|
|
26
|
+
// Automatically configure FFmpeg with proper headers for Google Video URLs
|
|
27
|
+
const originalFFmpegArgs = distube.options.ffmpeg?.args || {};
|
|
28
|
+
distube.options.ffmpeg = distube.options.ffmpeg || {};
|
|
29
|
+
distube.options.ffmpeg.args = {
|
|
30
|
+
global: originalFFmpegArgs.global || {},
|
|
31
|
+
input: {
|
|
32
|
+
...(originalFFmpegArgs.input || {}),
|
|
33
|
+
// Add browser-like headers that Google expects
|
|
34
|
+
headers: "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36\r\n" +
|
|
35
|
+
"Accept: */*\r\n" +
|
|
36
|
+
"Accept-Language: en-US,en;q=0.9\r\n" +
|
|
37
|
+
"Origin: https://www.youtube.com\r\n" +
|
|
38
|
+
"Referer: https://www.youtube.com/",
|
|
39
|
+
reconnect: "1",
|
|
40
|
+
reconnect_streamed: "1",
|
|
41
|
+
reconnect_delay_max: "5",
|
|
42
|
+
},
|
|
43
|
+
output: originalFFmpegArgs.output || [],
|
|
44
|
+
};
|
|
45
|
+
console.log("[InvidiousPlugin] Configured FFmpeg with browser headers for Google Video compatibility");
|
|
46
|
+
}
|
|
21
47
|
// Required ExtractorPlugin Methods
|
|
22
48
|
/**
|
|
23
49
|
* Validates if URL is a YouTube URL.
|
|
@@ -70,10 +96,8 @@ export class InvidiousPlugin extends ExtractorPlugin {
|
|
|
70
96
|
*
|
|
71
97
|
* This method:
|
|
72
98
|
* 1. Searches adaptiveFormats for audio-only streams
|
|
73
|
-
* 2.
|
|
74
|
-
* 3.
|
|
75
|
-
* 4. Validates URLs using GET with Range headers
|
|
76
|
-
* 5. Prioritizes opus by quality (highest bitrate first), then AAC
|
|
99
|
+
* 2. Validates URLs leniently (lets FFmpeg try even if validation fails)
|
|
100
|
+
* 3. Prioritizes opus by quality (highest bitrate first), then AAC
|
|
77
101
|
*
|
|
78
102
|
* Quality priority:
|
|
79
103
|
* 1. Opus audio (highest bitrate → lowest bitrate)
|
|
@@ -112,53 +136,49 @@ export class InvidiousPlugin extends ExtractorPlugin {
|
|
|
112
136
|
}
|
|
113
137
|
return 0;
|
|
114
138
|
};
|
|
115
|
-
// Helper: Validate URL
|
|
139
|
+
// Helper: Validate URL leniently (always returns true, logs errors but continues)
|
|
116
140
|
const validateUrl = async (url) => {
|
|
117
141
|
try {
|
|
118
142
|
const controller = new AbortController();
|
|
119
143
|
const timeoutId = setTimeout(() => controller.abort(), 5000);
|
|
120
144
|
const response = await fetch(url, {
|
|
121
|
-
method: "
|
|
145
|
+
method: "HEAD",
|
|
122
146
|
headers: {
|
|
123
|
-
|
|
147
|
+
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36",
|
|
148
|
+
Accept: "*/*",
|
|
149
|
+
"Accept-Language": "en-US,en;q=0.9",
|
|
150
|
+
"Accept-Encoding": "gzip, deflate, br",
|
|
151
|
+
Origin: "https://www.youtube.com",
|
|
152
|
+
Referer: "https://www.youtube.com/",
|
|
153
|
+
"Sec-Fetch-Dest": "empty",
|
|
154
|
+
"Sec-Fetch-Mode": "cors",
|
|
155
|
+
"Sec-Fetch-Site": "cross-site",
|
|
156
|
+
"Sec-Ch-Ua": '"Google Chrome";v="131", "Chromium";v="131", "Not_A Brand";v="24"',
|
|
157
|
+
"Sec-Ch-Ua-Mobile": "?0",
|
|
158
|
+
"Sec-Ch-Ua-Platform": '"Windows"',
|
|
124
159
|
},
|
|
125
160
|
signal: controller.signal,
|
|
126
161
|
});
|
|
127
162
|
clearTimeout(timeoutId);
|
|
128
|
-
|
|
163
|
+
// Accept 2xx and 3xx status codes
|
|
164
|
+
return response.status >= 200 && response.status < 400;
|
|
129
165
|
}
|
|
130
166
|
catch (error) {
|
|
131
|
-
|
|
132
|
-
|
|
167
|
+
// On error, let FFmpeg try - it might work anyway
|
|
168
|
+
console.log(`[InvidiousPlugin] Validation error, continuing: ${error.message}`);
|
|
169
|
+
return true;
|
|
133
170
|
}
|
|
134
171
|
};
|
|
135
|
-
// Helper:
|
|
136
|
-
const tryUrl = async (url, formatName
|
|
172
|
+
// Helper: Try to validate and return a URL
|
|
173
|
+
const tryUrl = async (url, formatName) => {
|
|
137
174
|
if (!url || isManifestUrl(url)) {
|
|
138
175
|
return null;
|
|
139
176
|
}
|
|
140
|
-
// Decode n= cipher if present and requested
|
|
141
|
-
if (decodeCipher && url.includes("n=")) {
|
|
142
|
-
try {
|
|
143
|
-
console.log(`[InvidiousPlugin] Decoding n= cipher...`);
|
|
144
|
-
url = await decodeCipherUrl(url);
|
|
145
|
-
console.log(`[InvidiousPlugin] ✓ Cipher decoded`);
|
|
146
|
-
}
|
|
147
|
-
catch (error) {
|
|
148
|
-
console.log(`[InvidiousPlugin] ⚠ Cipher decode failed: ${error.message}`);
|
|
149
|
-
// Continue with original URL
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
177
|
console.log(`[InvidiousPlugin] Trying ${formatName}`);
|
|
153
178
|
console.log(`[InvidiousPlugin] URL: ${url.substring(0, 100)}...`);
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
}
|
|
158
|
-
else {
|
|
159
|
-
console.log(`[InvidiousPlugin] ✗ Validation failed`);
|
|
160
|
-
return null;
|
|
161
|
-
}
|
|
179
|
+
await validateUrl(url);
|
|
180
|
+
console.log(`[InvidiousPlugin] ✓ Selected ${formatName}`);
|
|
181
|
+
return url;
|
|
162
182
|
};
|
|
163
183
|
// Extract and sort audio formats by quality
|
|
164
184
|
console.log(`[InvidiousPlugin] Processing ${song.id}...`);
|
|
@@ -204,32 +224,39 @@ export class InvidiousPlugin extends ExtractorPlugin {
|
|
|
204
224
|
aacFormats.sort((a, b) => b.bitrate - a.bitrate);
|
|
205
225
|
otherFormats.sort((a, b) => b.bitrate - a.bitrate);
|
|
206
226
|
console.log(`[InvidiousPlugin] Found ${opusFormats.length} opus, ${aacFormats.length} AAC, ${otherFormats.length} other audio formats`);
|
|
227
|
+
// ============================================================================
|
|
207
228
|
// Priority 1: Try opus formats (highest to lowest bitrate)
|
|
229
|
+
// ============================================================================
|
|
208
230
|
for (const format of opusFormats) {
|
|
209
231
|
const result = await tryUrl(format.url, `opus (bitrate: ${format.bitrate}, itag: ${format.itag})`);
|
|
210
232
|
if (result)
|
|
211
233
|
return result;
|
|
212
234
|
}
|
|
235
|
+
// ============================================================================
|
|
213
236
|
// Priority 2: Try AAC formats (highest to lowest bitrate)
|
|
237
|
+
// ============================================================================
|
|
214
238
|
for (const format of aacFormats) {
|
|
215
239
|
const result = await tryUrl(format.url, `AAC (bitrate: ${format.bitrate}, itag: ${format.itag})`);
|
|
216
240
|
if (result)
|
|
217
241
|
return result;
|
|
218
242
|
}
|
|
243
|
+
// ============================================================================
|
|
219
244
|
// Priority 3: Try other audio formats
|
|
245
|
+
// ============================================================================
|
|
220
246
|
for (const format of otherFormats) {
|
|
221
247
|
const result = await tryUrl(format.url, `${format.type} (bitrate: ${format.bitrate})`);
|
|
222
248
|
if (result)
|
|
223
249
|
return result;
|
|
224
250
|
}
|
|
251
|
+
// ============================================================================
|
|
225
252
|
// No valid stream found - throw error
|
|
253
|
+
// ============================================================================
|
|
226
254
|
console.error(`[InvidiousPlugin] ERROR: No valid audio stream found for ${song.id}`);
|
|
227
255
|
console.error(`[InvidiousPlugin] Opus formats tried: ${opusFormats.length}`);
|
|
228
256
|
console.error(`[InvidiousPlugin] AAC formats tried: ${aacFormats.length}`);
|
|
229
257
|
console.error(`[InvidiousPlugin] Other formats tried: ${otherFormats.length}`);
|
|
230
|
-
console.error(`[InvidiousPlugin]
|
|
231
|
-
|
|
232
|
-
throw new DisTubeError("CANNOT_GET_STREAM_URL", "No playable audio stream found. All URLs failed validation. Try a different Invidious instance or check if the video is available.");
|
|
258
|
+
console.error(`[InvidiousPlugin] Try: different Invidious instance or check if video is available`);
|
|
259
|
+
throw new DisTubeError("CANNOT_GET_STREAM_URL", "No playable audio stream found. Try a different Invidious instance or check if the video is available.");
|
|
233
260
|
}
|
|
234
261
|
/**
|
|
235
262
|
* Gets related songs for a given song.
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/dist/cipherDecoder.d.ts
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Decode a ciphered n= parameter.
|
|
3
|
-
*/
|
|
4
|
-
export declare function decodeN(n: string): Promise<string>;
|
|
5
|
-
/**
|
|
6
|
-
* Fix a YouTube URL by decoding its n= parameter if present and ensuring ratebypass.
|
|
7
|
-
*/
|
|
8
|
-
export declare function fixUrl(url: string): Promise<string>;
|
|
9
|
-
//# sourceMappingURL=cipherDecoder.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cipherDecoder.d.ts","sourceRoot":"","sources":["../src/cipherDecoder.ts"],"names":[],"mappings":"AAiOA;;GAEG;AACH,wBAAsB,OAAO,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAGxD;AAED;;GAEG;AACH,wBAAsB,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAkBzD"}
|
package/dist/cipherDecoder.js
DELETED
|
@@ -1,229 +0,0 @@
|
|
|
1
|
-
// cipherDecoder.ts
|
|
2
|
-
// Strict YouTube cipher decoder (dynamic, yt-dlp-style-ish)
|
|
3
|
-
// Fetches player JS, extracts the n-transform function, and applies it.
|
|
4
|
-
import fetch from "node-fetch";
|
|
5
|
-
let cachedTransform = null;
|
|
6
|
-
let cachedPlayerUrl = null;
|
|
7
|
-
let cachedPlayerCode = null;
|
|
8
|
-
/**
|
|
9
|
-
* Fetch a YouTube watch page and extract the player JS URL.
|
|
10
|
-
*/
|
|
11
|
-
async function getPlayerUrl() {
|
|
12
|
-
if (cachedPlayerUrl)
|
|
13
|
-
return cachedPlayerUrl;
|
|
14
|
-
const res = await fetch("https://www.youtube.com/watch?v=dQw4w9WgXcQ");
|
|
15
|
-
if (!res.ok) {
|
|
16
|
-
throw new Error(`Failed to fetch watch page: ${res.status} ${res.statusText}`);
|
|
17
|
-
}
|
|
18
|
-
const html = await res.text();
|
|
19
|
-
// Try multiple patterns, YouTube changes this often.
|
|
20
|
-
const patterns = [
|
|
21
|
-
/"jsUrl":"([^"]+)"/, // modern
|
|
22
|
-
/"PLAYER_JS_URL":"([^"]+)"/,
|
|
23
|
-
/"js":"([^"]+base\.js)"/,
|
|
24
|
-
/"assets":\{"js":"([^"]+)"\}/,
|
|
25
|
-
];
|
|
26
|
-
for (const re of patterns) {
|
|
27
|
-
const m = html.match(re);
|
|
28
|
-
if (m && m[1]) {
|
|
29
|
-
const url = m[1].startsWith("http")
|
|
30
|
-
? m[1]
|
|
31
|
-
: "https://www.youtube.com" + m[1];
|
|
32
|
-
cachedPlayerUrl = url;
|
|
33
|
-
return url;
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
throw new Error("Could not find player JS URL in watch page");
|
|
37
|
-
}
|
|
38
|
-
/**
|
|
39
|
-
* Fetch the player JS code.
|
|
40
|
-
*/
|
|
41
|
-
async function getPlayerCode() {
|
|
42
|
-
if (cachedPlayerCode)
|
|
43
|
-
return cachedPlayerCode;
|
|
44
|
-
const jsUrl = await getPlayerUrl();
|
|
45
|
-
const res = await fetch(jsUrl);
|
|
46
|
-
if (!res.ok) {
|
|
47
|
-
throw new Error(`Failed to fetch player JS: ${res.status} ${res.statusText}`);
|
|
48
|
-
}
|
|
49
|
-
const code = await res.text();
|
|
50
|
-
cachedPlayerCode = code;
|
|
51
|
-
return code;
|
|
52
|
-
}
|
|
53
|
-
/**
|
|
54
|
-
* Extract the name of the n-transform function from player JS.
|
|
55
|
-
*/
|
|
56
|
-
function extractNFunctionName(jsCode) {
|
|
57
|
-
const candidates = [
|
|
58
|
-
// Older pattern
|
|
59
|
-
/\.get\("n"\)\)&&\(b=([a-zA-Z0-9$]+)\([a-z]\)/,
|
|
60
|
-
// Newer patterns
|
|
61
|
-
/(?:\bncode|\bncode_)\s*=\s*([a-zA-Z0-9$]+)\([a-zA-Z0-9$]+\)/,
|
|
62
|
-
/["']n["']\s*,\s*([a-zA-Z0-9$]+)\(/,
|
|
63
|
-
/(?:\w+)=\w\.get\("n"\)\)&&\(\w=([a-zA-Z0-9$]+)\(\w\)\)/,
|
|
64
|
-
];
|
|
65
|
-
for (const re of candidates) {
|
|
66
|
-
const m = jsCode.match(re);
|
|
67
|
-
if (m && m[1])
|
|
68
|
-
return m[1];
|
|
69
|
-
}
|
|
70
|
-
throw new Error("Could not locate n-transform function name");
|
|
71
|
-
}
|
|
72
|
-
/**
|
|
73
|
-
* Extract the body of a named function from player JS.
|
|
74
|
-
*/
|
|
75
|
-
function extractFunctionBody(jsCode, fnName) {
|
|
76
|
-
// Try function declaration: fnName=function(a){...}
|
|
77
|
-
let re = new RegExp(`${fnName}=function\\(\\w\\){([^}]+)}`, "s");
|
|
78
|
-
let m = jsCode.match(re);
|
|
79
|
-
if (m && m[1])
|
|
80
|
-
return m[1];
|
|
81
|
-
// Try function declaration with more complex body
|
|
82
|
-
re = new RegExp(`${fnName}=function\\(\\w\\){([^}]+?)};`, "s");
|
|
83
|
-
m = jsCode.match(re);
|
|
84
|
-
if (m && m[1])
|
|
85
|
-
return m[1];
|
|
86
|
-
// Try arrow function: fnName=(a)=>{...}
|
|
87
|
-
re = new RegExp(`${fnName}=\\(\\w\\)=>{([^}]+)}`, "s");
|
|
88
|
-
m = jsCode.match(re);
|
|
89
|
-
if (m && m[1])
|
|
90
|
-
return m[1];
|
|
91
|
-
throw new Error("Could not extract n-transform function body");
|
|
92
|
-
}
|
|
93
|
-
/**
|
|
94
|
-
* Extract helper object name used inside the n-transform function.
|
|
95
|
-
*/
|
|
96
|
-
function extractHelperName(fnBody) {
|
|
97
|
-
const m = fnBody.match(/([A-Za-z0-9$]{2})\.[A-Za-z0-9$]{2}\(\w, ?\d+\)/) ||
|
|
98
|
-
fnBody.match(/([A-Za-z0-9$]{2})\.[A-Za-z0-9$]{2}\(\w, ?[A-Za-z0-9$]+\)/);
|
|
99
|
-
if (!m || !m[1]) {
|
|
100
|
-
throw new Error("Could not find helper object name");
|
|
101
|
-
}
|
|
102
|
-
return m[1];
|
|
103
|
-
}
|
|
104
|
-
/**
|
|
105
|
-
* Extract helper object definition from player JS.
|
|
106
|
-
*/
|
|
107
|
-
function extractHelperObject(jsCode, helperName) {
|
|
108
|
-
const patterns = [
|
|
109
|
-
new RegExp(`var ${helperName}={(.*?)};`, "s"),
|
|
110
|
-
new RegExp(`let ${helperName}={(.*?)};`, "s"),
|
|
111
|
-
new RegExp(`const ${helperName}={(.*?)};`, "s"),
|
|
112
|
-
];
|
|
113
|
-
for (const re of patterns) {
|
|
114
|
-
const m = jsCode.match(re);
|
|
115
|
-
if (m && m[1])
|
|
116
|
-
return m[1];
|
|
117
|
-
}
|
|
118
|
-
throw new Error("Could not extract helper object");
|
|
119
|
-
}
|
|
120
|
-
/**
|
|
121
|
-
* Build operations map from helper object body.
|
|
122
|
-
*/
|
|
123
|
-
function buildOperations(helperBody) {
|
|
124
|
-
const operations = {};
|
|
125
|
-
// Split object entries: name:function(a,b){...}
|
|
126
|
-
const entries = helperBody.split("},");
|
|
127
|
-
for (const entry of entries) {
|
|
128
|
-
const [rawName, rawBody] = entry.split(":function");
|
|
129
|
-
if (!rawName || !rawBody)
|
|
130
|
-
continue;
|
|
131
|
-
const name = rawName.trim();
|
|
132
|
-
const body = rawBody;
|
|
133
|
-
if (body.includes("reverse")) {
|
|
134
|
-
operations[name] = (a) => a.reverse();
|
|
135
|
-
}
|
|
136
|
-
else if (body.includes("splice")) {
|
|
137
|
-
operations[name] = (a, b) => {
|
|
138
|
-
a.splice(0, b);
|
|
139
|
-
};
|
|
140
|
-
}
|
|
141
|
-
else if (body.includes("var c=a[0];a[0]=a[b%a.length];a[b]=c")) {
|
|
142
|
-
operations[name] = (a, b) => {
|
|
143
|
-
const idx = b % a.length;
|
|
144
|
-
const c = a[0];
|
|
145
|
-
a[0] = a[idx];
|
|
146
|
-
a[idx] = c;
|
|
147
|
-
};
|
|
148
|
-
}
|
|
149
|
-
else if (body.includes("a.push(a.splice(0,b)[0])")) {
|
|
150
|
-
operations[name] = (a, b) => {
|
|
151
|
-
while (b-- > 0) {
|
|
152
|
-
a.push(a.splice(0, 1)[0]);
|
|
153
|
-
}
|
|
154
|
-
};
|
|
155
|
-
}
|
|
156
|
-
// You can extend this with more patterns if YouTube adds new ops.
|
|
157
|
-
}
|
|
158
|
-
return operations;
|
|
159
|
-
}
|
|
160
|
-
/**
|
|
161
|
-
* Build the transform function from the function body and operations map.
|
|
162
|
-
*/
|
|
163
|
-
function buildTransform(fnBody, operations) {
|
|
164
|
-
// Find all calls like: helper.op(a, 3)
|
|
165
|
-
const calls = fnBody.match(/([A-Za-z0-9$]{2})\.([A-Za-z0-9$]{2})\(\w, ?(\d+)\)/g) || [];
|
|
166
|
-
const steps = [];
|
|
167
|
-
for (const call of calls) {
|
|
168
|
-
const m = call.match(/([A-Za-z0-9$]{2})\.([A-Za-z0-9$]{2})\(\w, ?(\d+)\)/);
|
|
169
|
-
if (!m)
|
|
170
|
-
continue;
|
|
171
|
-
const method = m[2];
|
|
172
|
-
const arg = parseInt(m[3], 10);
|
|
173
|
-
steps.push({ method, arg });
|
|
174
|
-
}
|
|
175
|
-
return (n) => {
|
|
176
|
-
const arr = n.split("");
|
|
177
|
-
for (const step of steps) {
|
|
178
|
-
const op = operations[step.method];
|
|
179
|
-
if (op) {
|
|
180
|
-
op(arr, step.arg);
|
|
181
|
-
}
|
|
182
|
-
}
|
|
183
|
-
return arr.join("");
|
|
184
|
-
};
|
|
185
|
-
}
|
|
186
|
-
/**
|
|
187
|
-
* Get (or build) the n-transform function.
|
|
188
|
-
*/
|
|
189
|
-
async function getTransform() {
|
|
190
|
-
if (cachedTransform)
|
|
191
|
-
return cachedTransform;
|
|
192
|
-
const jsCode = await getPlayerCode();
|
|
193
|
-
const fnName = extractNFunctionName(jsCode);
|
|
194
|
-
const fnBody = extractFunctionBody(jsCode, fnName);
|
|
195
|
-
const helperName = extractHelperName(fnBody);
|
|
196
|
-
const helperBody = extractHelperObject(jsCode, helperName);
|
|
197
|
-
const operations = buildOperations(helperBody);
|
|
198
|
-
const transform = buildTransform(fnBody, operations);
|
|
199
|
-
cachedTransform = transform;
|
|
200
|
-
return transform;
|
|
201
|
-
}
|
|
202
|
-
/**
|
|
203
|
-
* Decode a ciphered n= parameter.
|
|
204
|
-
*/
|
|
205
|
-
export async function decodeN(n) {
|
|
206
|
-
const transform = await getTransform();
|
|
207
|
-
return transform(n);
|
|
208
|
-
}
|
|
209
|
-
/**
|
|
210
|
-
* Fix a YouTube URL by decoding its n= parameter if present and ensuring ratebypass.
|
|
211
|
-
*/
|
|
212
|
-
export async function fixUrl(url) {
|
|
213
|
-
const u = new URL(url);
|
|
214
|
-
const n = u.searchParams.get("n");
|
|
215
|
-
if (n) {
|
|
216
|
-
try {
|
|
217
|
-
const decoded = await decodeN(n);
|
|
218
|
-
u.searchParams.set("n", decoded);
|
|
219
|
-
}
|
|
220
|
-
catch (e) {
|
|
221
|
-
console.warn("[cipherDecoder] Failed to decode n= cipher:", e.message);
|
|
222
|
-
}
|
|
223
|
-
}
|
|
224
|
-
if (!u.searchParams.has("ratebypass")) {
|
|
225
|
-
u.searchParams.set("ratebypass", "yes");
|
|
226
|
-
}
|
|
227
|
-
return u.toString();
|
|
228
|
-
}
|
|
229
|
-
//# sourceMappingURL=cipherDecoder.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cipherDecoder.js","sourceRoot":"","sources":["../src/cipherDecoder.ts"],"names":[],"mappings":"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"}
|