summarizely-cli
Version:
YouTube summarizer that respects your existing subscriptions. No API keys required.
69 lines • 2.17 kB
JavaScript
;
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