UNPKG

summarizely-cli

Version:

YouTube summarizer that respects your existing subscriptions. No API keys required.

69 lines 2.17 kB
#!/usr/bin/env node "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const parser_1 = require("./parser"); const formatter_1 = require("./formatter"); const executor_1 = require("./executor"); const batch_1 = require("../batch"); const utils_1 = require("../utils"); async function main() { const argv = process.argv.slice(2); let args; try { args = (0, parser_1.parseArgs)(argv); } catch (e) { (0, formatter_1.printHelp)(); process.stderr.write(`\nError: ${e?.message || 'invalid arguments'}\n`); process.exitCode = 2; return; } if (args.help) { (0, formatter_1.printHelp)(); return; } if (args.version) { process.stdout.write((0, formatter_1.getVersion)() + "\n"); return; } try { (0, parser_1.validateArgs)(args); } catch (e) { (0, formatter_1.printHelp)(); process.stderr.write(`\nError: ${e.message}\n`); process.exitCode = 2; return; } const urls = args.urls; const isBatch = args.batch || urls.length > 1 || args.playlist || args.channel; if (args.playlist && urls.length === 1 && (0, batch_1.isPlaylistUrl)(urls[0])) { await (0, executor_1.executePlaylist)(urls[0], args); return; } if (args.channel && urls.length === 1 && (0, batch_1.isChannelUrl)(urls[0])) { await (0, executor_1.executeChannel)(urls[0], args); return; } if (isBatch) { const videos = urls.map(url => ({ url, videoId: (0, utils_1.youtubeIdFromUrl)(url) || undefined })); await (0, executor_1.executeBatch)(videos, args); return; } const url = urls[0]; if (!(0, parser_1.isYouTubeUrl)(url)) { (0, formatter_1.printHelp)(); process.stderr.write("\nError: please provide a valid YouTube URL.\n"); process.exitCode = 2; return; } await (0, executor_1.executeSingleVideo)(url, args); } main().catch((e) => { process.stderr.write(`Unhandled error: ${e?.message || e}\n`); process.exitCode = 1; }); //# sourceMappingURL=index.js.map