29 lines
No EOL
798 B
JavaScript
29 lines
No EOL
798 B
JavaScript
const fs = require('node:fs');
|
|
const https = require('node:https');
|
|
|
|
console.log('Downloading latest version of yt-dlp');
|
|
|
|
const downloadUrl = 'https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp';
|
|
download(downloadUrl);
|
|
|
|
function download(url) {
|
|
https.get(url, (res) => {
|
|
if (res.statusCode === 301 || res.statusCode === 302) {
|
|
console.log(`yt-dlp download url: ${res.headers.location}`);
|
|
return download(res.headers.location);
|
|
}
|
|
|
|
const path = './bin/yt-dlp';
|
|
const filePath = fs.createWriteStream(path);
|
|
res.pipe(filePath);
|
|
filePath.on('finish', () => {
|
|
filePath.close();
|
|
fs.chmodSync('./bin/yt-dlp', '755');
|
|
console.log('yt-dlp download finished.');
|
|
});
|
|
filePath.on('error', (err) => {
|
|
filePath.close();
|
|
console.error(err.message);
|
|
});
|
|
});
|
|
} |