UNPKG

youtube-likes-downloader

Version:
58 lines 2.27 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.download = download; const fs_1 = __importDefault(require("fs")); const path_1 = __importDefault(require("path")); require("@anmiles/prototypes"); const execa_1 = __importDefault(require("execa")); const formatTitle_1 = require("./utils/formatTitle"); const paths_1 = require("./utils/paths"); const executable = 'yt-dlp'; const flags = [ '--output', (0, formatTitle_1.formatTitle)({ id: '%(id)s', title: '%(title)s', channel: '%(channel)s' }), '--format-sort', 'vcodec:h264,acodec:mp3', '--merge-output-format', 'mp4', '--sponsorblock-remove', 'sponsor', '--user-agent', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.84 Safari/537.36', '--geo-bypass', '--no-playlist', '--no-overwrites', '--no-part', '--continue', '--abort-on-error', '--write-thumbnail', '--write-description', '--write-info-json', '--js-runtimes', 'node', // '--extractor-args', 'youtube:player-client=default,mweb', ]; async function download(profile) { const outputDir = (0, paths_1.getOutputDir)(profile); const likesFile = (0, paths_1.getLikesFile)(profile); const downloadArchive = (0, paths_1.getDownloadArchive)(profile); fs_1.default.ensureDir(outputDir, { create: true }); fs_1.default.ensureFile(likesFile, { create: true }); fs_1.default.ensureFile(downloadArchive, { create: true }); const args = [ '--batch-file', path_1.default.resolve(likesFile), '--download-archive', path_1.default.resolve(downloadArchive), ...flags, ]; const proc = (0, execa_1.default)(executable, args, { cwd: outputDir }); proc.stdout?.pipe(process.stdout); const errors = []; proc.stderr?.on('data', (data) => { const text = data.toString('utf8'); errors.push(text); process.stderr.write(data); }); const result = await proc; if (errors.length > 0) { throw new Error(errors.join('\n')); } return result; } //# sourceMappingURL=download.js.map