untube 2.2.0 → 2.4.0

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.
@@ -4,7 +4,7 @@ export interface YTMusicSearchResult {
4
4
  artist: string;
5
5
  videoId?: string;
6
6
  type: string;
7
- duration?: string;
7
+ duration?: number;
8
8
  album?: string;
9
9
  thumbnail?: string;
10
10
  }
@@ -12,5 +12,5 @@ export interface SearchYTMusicOptions {
12
12
  cookie?: string | RawCookie;
13
13
  proxy?: string;
14
14
  }
15
- export declare function ymusic(query: string, options?: SearchYTMusicOptions): Promise<YTMusicSearchResult[]>;
16
- //# sourceMappingURL=ymusic.d.ts.map
15
+ export declare function ytmusic(query: string, options?: SearchYTMusicOptions): Promise<YTMusicSearchResult[]>;
16
+ //# sourceMappingURL=ytmusic.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ytmusic.d.ts","sourceRoot":"","sources":["../src/ytmusic.ts"],"names":[],"mappings":"AACA,OAAsB,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAE/D,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAYD,wBAAsB,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,GAAE,oBAAyB,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAuK/G"}
@@ -1,6 +1,16 @@
1
1
  import { fetch, ProxyAgent } from 'undici';
2
2
  import CookieManager from './cookie-manager.js';
3
- export async function ymusic(query, options = {}) {
3
+ function timeToSeconds(timeStr) {
4
+ const parts = timeStr.split(':').map(Number);
5
+ if (parts.length === 3) {
6
+ return (parts[0] || 0) * 3600 + (parts[1] || 0) * 60 + (parts[2] || 0);
7
+ }
8
+ else if (parts.length === 2) {
9
+ return (parts[0] || 0) * 60 + (parts[1] || 0);
10
+ }
11
+ return 0;
12
+ }
13
+ export async function ytmusic(query, options = {}) {
4
14
  const cookieSource = options.cookie || './cookies.txt';
5
15
  const cm = new CookieManager(cookieSource);
6
16
  await cm.load();
@@ -15,7 +25,8 @@ export async function ymusic(query, options = {}) {
15
25
  gl: "ID"
16
26
  }
17
27
  },
18
- query: query
28
+ query: query,
29
+ params: 'EgWKAQIIAWoKEAMQBBAJEA4QBQ%3D%3D'
19
30
  };
20
31
  const headers = {
21
32
  'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36',
@@ -53,12 +64,15 @@ export async function ymusic(query, options = {}) {
53
64
  const subtitleRuns = section.musicCardShelfRenderer.subtitle?.runs || [];
54
65
  const subtitleText = subtitleRuns.map((r) => r.text).join('');
55
66
  const thumbnails = section.musicCardShelfRenderer.thumbnail?.musicThumbnailRenderer?.thumbnail?.thumbnails || [];
56
- const thumbnail = thumbnails.length > 0 ? thumbnails[thumbnails.length - 1].url : undefined;
67
+ let thumbnail = thumbnails.length > 0 ? thumbnails[thumbnails.length - 1].url : undefined;
68
+ if (thumbnail)
69
+ thumbnail = thumbnail.replace(/=w\d+-h\d+/, '=w512-h512');
57
70
  const parts = subtitleText.split(' • ');
58
71
  const type = parts[0] || 'Unknown';
59
72
  const artist = parts[1] || 'Unknown';
60
- if (title && videoId) {
61
- results.push({ title, artist, videoId, type, thumbnail });
73
+ if (title && videoId && type === 'Song') {
74
+ const resultObj = { title, artist, videoId, type, thumbnail };
75
+ results.push(resultObj);
62
76
  }
63
77
  }
64
78
  if (section.musicShelfRenderer) {
@@ -74,29 +88,49 @@ export async function ymusic(query, options = {}) {
74
88
  if (!titleRuns)
75
89
  continue;
76
90
  const title = titleRuns.map((r) => r.text).join('');
77
- const detailsRuns = flexColumns[1].musicResponsiveListItemFlexColumnRenderer?.text?.runs;
78
- if (!detailsRuns)
79
- continue;
80
- const detailsText = detailsRuns.map((r) => r.text).join('');
81
- const detailsParts = detailsText.split(' • ');
82
- const type = detailsParts[0] || 'Unknown';
83
- const artist = detailsParts[1] || 'Unknown';
91
+ const allRuns = flexColumns.flatMap((col) => col.musicResponsiveListItemFlexColumnRenderer?.text?.runs || []);
92
+ const fixedColumns = renderer.fixedColumns || [];
93
+ const allFixedRuns = fixedColumns.flatMap((col) => col.musicResponsiveListItemFixedColumnRenderer?.text?.runs || []);
94
+ let isSong = false;
95
+ let artist = 'Unknown';
84
96
  let album = undefined;
85
97
  let duration = undefined;
86
- if (detailsParts.length > 2) {
87
- const lastPart = detailsParts[detailsParts.length - 1];
88
- if (lastPart.includes(':')) {
89
- duration = lastPart;
90
- if (detailsParts.length > 3) {
91
- album = detailsParts[2];
92
- }
98
+ const shelfTitle = section.musicShelfRenderer.title?.runs?.[0]?.text;
99
+ for (const run of allRuns) {
100
+ if (!run || !run.text || run.text === ' • ')
101
+ continue;
102
+ const text = run.text.trim();
103
+ const browseId = run.navigationEndpoint?.browseEndpoint?.browseId;
104
+ const pageType = run.navigationEndpoint?.browseEndpoint?.browseEndpointContextSupportedConfigs?.browseEndpointContextMusicConfig?.pageType;
105
+ if (text === 'Song' || shelfTitle === 'Songs') {
106
+ isSong = true;
93
107
  }
94
- else {
95
- album = detailsParts[2];
108
+ if (pageType === 'MUSIC_PAGE_TYPE_ARTIST' || pageType === 'MUSIC_PAGE_TYPE_USER_CHANNEL' || browseId?.startsWith('UC')) {
109
+ artist = text;
96
110
  }
111
+ else if (pageType === 'MUSIC_PAGE_TYPE_ALBUM' || browseId?.startsWith('MPR')) {
112
+ album = text;
113
+ }
114
+ }
115
+ const potentialDurationRuns = [...allRuns, ...allFixedRuns];
116
+ for (const run of potentialDurationRuns) {
117
+ if (!run || !run.text)
118
+ continue;
119
+ const text = run.text.trim();
120
+ if (/^(\d{1,2}:)?\d{1,2}:\d{2}$/.test(text)) {
121
+ duration = timeToSeconds(text);
122
+ break;
123
+ }
124
+ }
125
+ if (artist === 'Unknown' && allRuns.length > 2) {
126
+ const possibleArtist = allRuns.find((r) => r.text !== 'Song' && r.text !== ' • ' && r.text !== titleRuns[0].text)?.text;
127
+ if (possibleArtist)
128
+ artist = possibleArtist;
97
129
  }
98
130
  const thumbnails = renderer.thumbnail?.musicThumbnailRenderer?.thumbnail?.thumbnails || [];
99
- const thumbnail = thumbnails.length > 0 ? thumbnails[thumbnails.length - 1].url : undefined;
131
+ let thumbnail = thumbnails.length > 0 ? thumbnails[thumbnails.length - 1].url : undefined;
132
+ if (thumbnail)
133
+ thumbnail = thumbnail.replace(/=w\d+-h\d+/, '=w512-h512');
100
134
  let videoId = undefined;
101
135
  if (renderer.playlistItemData?.videoId) {
102
136
  videoId = renderer.playlistItemData.videoId;
@@ -107,8 +141,13 @@ export async function ymusic(query, options = {}) {
107
141
  else if (titleRuns[0]?.navigationEndpoint?.watchEndpoint?.videoId) {
108
142
  videoId = titleRuns[0].navigationEndpoint.watchEndpoint.videoId;
109
143
  }
110
- if (title && type === 'Song') {
111
- results.push({ title, artist, type, videoId, duration, album, thumbnail });
144
+ if (title && isSong) {
145
+ const resultObj = { title, artist, type: 'Song', videoId, thumbnail };
146
+ if (duration !== undefined)
147
+ resultObj.duration = duration;
148
+ if (album)
149
+ resultObj.album = album;
150
+ results.push(resultObj);
112
151
  }
113
152
  }
114
153
  }
@@ -127,4 +166,4 @@ export async function ymusic(query, options = {}) {
127
166
  }
128
167
  return uniqueResults;
129
168
  }
130
- //# sourceMappingURL=ymusic.js.map
169
+ //# sourceMappingURL=ytmusic.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ytmusic.js","sourceRoot":"","sources":["../src/ytmusic.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "untube",
3
- "version": "2.2.0",
4
- "description": "Lightweight YouTube video metadata and streaming URL extractor for Node.js. Features automatic signature decryption (n-parameter), proxy support, and cookie management. Ported from yt-dlp.",
3
+ "version": "2.4.0",
4
+ "description": "Lightweight YouTube video metadata & streaming URL extractor for Node.js. High reliability ported from yt-dlp",
5
5
  "keywords": [
6
6
  "youtube",
7
7
  "yt-dlp",
@@ -26,6 +26,9 @@
26
26
  "url": "https://github.com/aaf-30/untube/issues"
27
27
  },
28
28
  "homepage": "https://github.com/aaf-30/untube#readme",
29
+ "engines": {
30
+ "node": ">=18.18.0"
31
+ },
29
32
  "exports": {
30
33
  ".": {
31
34
  "import": "./dist/index.js",
@@ -37,15 +40,18 @@
37
40
  ],
38
41
  "scripts": {
39
42
  "build": "npx tsc",
40
- "update-solver": "node scripts/update-solver.js",
43
+ "update-solver": "tsx scripts/update-solver.ts",
41
44
  "prepare": "npm run build"
42
45
  },
43
46
  "devDependencies": {
44
47
  "@types/node": "^25.5.0",
45
48
  "@types/tough-cookie": "^4.0.5",
49
+ "tsx": "^4.21.0",
46
50
  "typescript": "^5.9.3"
47
51
  },
48
52
  "dependencies": {
53
+ "astring": "^1.9.0",
54
+ "meriyah": "^7.1.0",
49
55
  "p-limit": "^7.3.0",
50
56
  "tough-cookie": "^6.0.1",
51
57
  "undici": "^7.24.3"
@@ -1 +0,0 @@
1
- {"version":3,"file":"ymusic.d.ts","sourceRoot":"","sources":["../src/ymusic.ts"],"names":[],"mappings":"AACA,OAAsB,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAE/D,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAsB,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,GAAE,oBAAyB,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC,CA4I9G"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ymusic.js","sourceRoot":"","sources":["../src/ymusic.ts"],"names":[],"mappings":"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"}