ytgrab 0.2.0 → 0.2.1

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.
@@ -1,11 +1,13 @@
1
1
  /**
2
2
  * HLS (M3U8) Downloader - ported from yt_dlp/downloader/hls.py
3
3
  * Downloads HTTP Live Streaming content by fetching fragments.
4
+ * Uses mux.js for pure-JS TS→MP4 transmuxing (no FFmpeg required).
4
5
  */
5
6
  import { FileDownloader } from './common.js';
6
7
  import type { InfoDict } from '../types.js';
7
8
  export declare class HlsFD extends FileDownloader {
8
9
  realDownload(filename: string, infoDict: InfoDict): Promise<boolean>;
10
+ private _transmuxToMp4;
9
11
  private _parseMediaPlaylist;
10
12
  }
11
13
  //# sourceMappingURL=hls.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"hls.d.ts","sourceRoot":"","sources":["../../src/downloader/hls.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAG5C,qBAAa,KAAM,SAAQ,cAAc;IACjC,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC;IAmF1E,OAAO,CAAC,mBAAmB;CAoB5B"}
1
+ {"version":3,"file":"hls.d.ts","sourceRoot":"","sources":["../../src/downloader/hls.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAG5C,qBAAa,KAAM,SAAQ,cAAc;IACjC,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC;YAiF5D,cAAc;IAgD5B,OAAO,CAAC,mBAAmB;CAoB5B"}
@@ -2,6 +2,7 @@
2
2
  /**
3
3
  * HLS (M3U8) Downloader - ported from yt_dlp/downloader/hls.py
4
4
  * Downloads HTTP Live Streaming content by fetching fragments.
5
+ * Uses mux.js for pure-JS TS→MP4 transmuxing (no FFmpeg required).
5
6
  */
6
7
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
7
8
  if (k2 === undefined) k2 = k;
@@ -60,10 +61,9 @@ class HlsFD extends common_js_1.FileDownloader {
60
61
  throw new Error('No fragments found in HLS manifest');
61
62
  }
62
63
  this._log(`Downloading ${fragments.length} fragments`);
63
- const tmpFilename = this.tempName(filename);
64
- const stream = fs.createWriteStream(tmpFilename);
65
64
  const startTime = Date.now();
66
65
  let downloadedBytes = 0;
66
+ const tsChunks = [];
67
67
  for (let i = 0; i < fragments.length; i++) {
68
68
  const frag = fragments[i];
69
69
  try {
@@ -77,7 +77,7 @@ class HlsFD extends common_js_1.FileDownloader {
77
77
  if (resp.status >= 400) {
78
78
  throw new Error(`HTTP ${resp.status} for fragment ${i + 1}`);
79
79
  }
80
- stream.write(resp.body);
80
+ tsChunks.push(resp.body);
81
81
  downloadedBytes += resp.body.length;
82
82
  this._hookProgress({
83
83
  status: 'downloading',
@@ -96,28 +96,66 @@ class HlsFD extends common_js_1.FileDownloader {
96
96
  // For other errors (network), continue
97
97
  }
98
98
  }
99
- await new Promise((resolve, reject) => {
100
- stream.end(() => {
101
- try {
102
- if (fs.existsSync(filename))
103
- fs.unlinkSync(filename);
104
- fs.renameSync(tmpFilename, filename);
105
- resolve();
99
+ // Transmux TS→MP4 using mux.js (pure JS, no FFmpeg)
100
+ const tsData = Buffer.concat(tsChunks);
101
+ if (filename.endsWith('.mp4')) {
102
+ try {
103
+ const mp4Data = await this._transmuxToMp4(tsData);
104
+ fs.writeFileSync(filename, mp4Data);
105
+ downloadedBytes = mp4Data.length;
106
+ this._log('Transmuxed to MP4');
107
+ }
108
+ catch (err) {
109
+ this._log(`Transmux failed: ${err.message} - saving raw TS`);
110
+ fs.writeFileSync(filename, tsData);
111
+ }
112
+ }
113
+ else {
114
+ fs.writeFileSync(filename, tsData);
115
+ }
116
+ this.reportFinished(filename, downloadedBytes);
117
+ return true;
118
+ }
119
+ async _transmuxToMp4(tsData) {
120
+ // Dynamic import to avoid issues with ESM/CJS
121
+ // eslint-disable-next-line @typescript-eslint/no-require-imports
122
+ const muxjs = require('mux.js');
123
+ const Transmuxer = muxjs.mp4?.Transmuxer || muxjs.default?.mp4?.Transmuxer;
124
+ if (!Transmuxer) {
125
+ throw new Error('mux.js Transmuxer not found');
126
+ }
127
+ return new Promise((resolve, reject) => {
128
+ const transmuxer = new Transmuxer();
129
+ const outputChunks = [];
130
+ let initSegment = null;
131
+ transmuxer.on('data', (segment) => {
132
+ if (!initSegment) {
133
+ initSegment = segment.initSegment;
134
+ outputChunks.push(segment.initSegment);
135
+ }
136
+ outputChunks.push(segment.data);
137
+ });
138
+ transmuxer.on('done', () => {
139
+ if (outputChunks.length === 0) {
140
+ reject(new Error('No output from transmuxer'));
141
+ return;
106
142
  }
107
- catch {
108
- try {
109
- fs.copyFileSync(tmpFilename, filename);
110
- fs.unlinkSync(tmpFilename);
111
- resolve();
112
- }
113
- catch (err) {
114
- reject(err);
115
- }
143
+ const totalLen = outputChunks.reduce((sum, c) => sum + c.length, 0);
144
+ const result = Buffer.alloc(totalLen);
145
+ let offset = 0;
146
+ for (const chunk of outputChunks) {
147
+ result.set(chunk, offset);
148
+ offset += chunk.length;
116
149
  }
150
+ resolve(result);
117
151
  });
152
+ transmuxer.on('error', (err) => {
153
+ reject(err);
154
+ });
155
+ // Feed all TS data and flush
156
+ transmuxer.push(new Uint8Array(tsData));
157
+ transmuxer.flush();
118
158
  });
119
- this.reportFinished(filename, downloadedBytes);
120
- return true;
121
159
  }
122
160
  _parseMediaPlaylist(manifest, baseUrl) {
123
161
  const fragments = [];
@@ -1 +1 @@
1
- {"version":3,"file":"hls.js","sourceRoot":"","sources":["../../src/downloader/hls.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hls.js","sourceRoot":"","sources":["../../src/downloader/hls.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ytgrab",
3
- "version": "0.2.0",
3
+ "version": "0.2.1",
4
4
  "description": "A Node.js YouTube video downloader ported from yt-dlp",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -36,7 +36,8 @@
36
36
  "dependencies": {
37
37
  "astring": "^1.9.0",
38
38
  "got-scraping": "^4.2.1",
39
- "meriyah": "^6.1.4"
39
+ "meriyah": "^6.1.4",
40
+ "mux.js": "^6.3.0"
40
41
  },
41
42
  "devDependencies": {
42
43
  "@types/node": "^20.0.0",