fix(linux): use single-file yt-dlp binary to avoid linuxdeploy crashes

This commit is contained in:
NimBold
2026-06-30 05:33:13 +03:30
parent d1863a76d8
commit f2f9da1489
2 changed files with 12 additions and 7 deletions
+2 -2
View File
@@ -26,8 +26,8 @@
"x86_64-unknown-linux-gnu": {
"yt-dlp": {
"version": "2026.06.09",
"url": "https://github.com/yt-dlp/yt-dlp/releases/download/2026.06.09/yt-dlp_linux.zip",
"sha256": "217bbc9c3ed19ea75a7f151a3e48dbfeac7f459a7dce2deeeecc2d6e2871bd5b"
"url": "https://github.com/yt-dlp/yt-dlp/releases/download/2026.06.09/yt-dlp_linux",
"sha256": "bf8aac79b72287a6d2043074415132558b43743a8f9461a22b0141e90f16ce66"
},
"deno": {
"version": "2.9.0",
+10 -5
View File
@@ -38,10 +38,11 @@ const executableSuffix = isWindows ? '.exe' : '';
async function download(name, source) {
const sourcePath = new URL(source.url).pathname;
const archive = path.join(
temporary,
`${name}${sourcePath.endsWith('.tar.xz') ? '.tar.xz' : '.zip'}`
);
let ext = '';
if (sourcePath.endsWith('.tar.xz')) ext = '.tar.xz';
else if (sourcePath.endsWith('.zip')) ext = '.zip';
const archive = path.join(temporary, `${name}${ext}`);
const response = await fetch(source.url, { redirect: 'follow' });
if (!response.ok || !response.body) {
throw new Error(`Failed to download ${name}: HTTP ${response.status}`);
@@ -65,8 +66,12 @@ async function download(name, source) {
fs.mkdirSync(extracted);
if (archive.endsWith('.zip') && process.platform !== 'win32') {
execFileSync('unzip', ['-q', archive, '-d', extracted], { stdio: 'inherit' });
} else {
} else if (archive.endsWith('.zip') || archive.endsWith('.tar.xz')) {
execFileSync('tar', ['-xf', archive, '-C', extracted], { stdio: 'inherit' });
} else {
const finalPath = path.join(extracted, `${name}${executableSuffix}`);
fs.copyFileSync(archive, finalPath);
fs.chmodSync(finalPath, 0o755);
}
return extracted;
}