ytdwn 1.0.0 → 1.0.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.
- package/dist/index.js +34 -2
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1,4 +1,22 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
+
import { createRequire } from "node:module";
|
|
3
|
+
var __create = Object.create;
|
|
4
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
5
|
+
var __defProp = Object.defineProperty;
|
|
6
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __toESM = (mod, isNodeMode, target) => {
|
|
9
|
+
target = mod != null ? __create(__getProtoOf(mod)) : {};
|
|
10
|
+
const to = isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target;
|
|
11
|
+
for (let key of __getOwnPropNames(mod))
|
|
12
|
+
if (!__hasOwnProp.call(to, key))
|
|
13
|
+
__defProp(to, key, {
|
|
14
|
+
get: () => mod[key],
|
|
15
|
+
enumerable: true
|
|
16
|
+
});
|
|
17
|
+
return to;
|
|
18
|
+
};
|
|
19
|
+
var __require = /* @__PURE__ */ createRequire(import.meta.url);
|
|
2
20
|
|
|
3
21
|
// index.ts
|
|
4
22
|
import { program } from "commander";
|
|
@@ -19,7 +37,6 @@ import { constants as fsConstants } from "fs";
|
|
|
19
37
|
import { access, chmod, mkdir, writeFile as writeFile2 } from "fs/promises";
|
|
20
38
|
import { platform } from "os";
|
|
21
39
|
import { join as join3, dirname } from "path";
|
|
22
|
-
import YTDlpWrap from "yt-dlp-wrap";
|
|
23
40
|
|
|
24
41
|
// src/settings.ts
|
|
25
42
|
import { readFile, writeFile } from "fs/promises";
|
|
@@ -134,7 +151,22 @@ async function requireBinary() {
|
|
|
134
151
|
throw new Error("yt-dlp binary not found. Run 'ytdwn prepare' first.");
|
|
135
152
|
}
|
|
136
153
|
async function downloadLatestBinary() {
|
|
137
|
-
|
|
154
|
+
let release = null;
|
|
155
|
+
try {
|
|
156
|
+
const ytDlpWrapModule = await import("yt-dlp-wrap");
|
|
157
|
+
const YTDlpWrap = ytDlpWrapModule.default;
|
|
158
|
+
if (typeof YTDlpWrap?.getGithubReleases === "function") {
|
|
159
|
+
const releases = await YTDlpWrap.getGithubReleases(1, 1);
|
|
160
|
+
release = Array.isArray(releases) ? releases[0] : releases;
|
|
161
|
+
}
|
|
162
|
+
} catch (err) {}
|
|
163
|
+
if (!release) {
|
|
164
|
+
const response = await fetch("https://api.github.com/repos/yt-dlp/yt-dlp/releases/latest");
|
|
165
|
+
if (!response.ok) {
|
|
166
|
+
throw new Error(`Failed to fetch yt-dlp release: ${response.status} ${response.statusText}`);
|
|
167
|
+
}
|
|
168
|
+
release = await response.json();
|
|
169
|
+
}
|
|
138
170
|
if (!release) {
|
|
139
171
|
throw new Error("Failed to fetch yt-dlp release from GitHub.");
|
|
140
172
|
}
|