diff --git a/src/modules/audio.ts b/src/modules/audio.ts index 49c114b..6cf540f 100644 --- a/src/modules/audio.ts +++ b/src/modules/audio.ts @@ -31,9 +31,11 @@ import { _spawnPromise, validateUrl, getFormattedTimestamp, isYouTubeUrl } from export async function downloadAudio(url: string, config: Config): Promise { const timestamp = getFormattedTimestamp(); - try { - validateUrl(url); + if (!validateUrl(url)) { + throw new Error("Invalid or unsupported URL format"); + } + try { const outputTemplate = path.join( config.file.downloadsDir, sanitizeFilename(`%(title)s [%(id)s] ${timestamp}`, config.file) + '.%(ext)s' diff --git a/src/modules/metadata.ts b/src/modules/metadata.ts index aadc2a7..cd53cf0 100644 --- a/src/modules/metadata.ts +++ b/src/modules/metadata.ts @@ -151,7 +151,9 @@ export async function getVideoMetadata( _config?: Config ): Promise { // Validate the URL - validateUrl(url); + if (!validateUrl(url)) { + throw new Error("Invalid or unsupported URL format"); + } const args = [ "--dump-json", diff --git a/src/modules/video.ts b/src/modules/video.ts index 44b5a7b..6fbf343 100644 --- a/src/modules/video.ts +++ b/src/modules/video.ts @@ -54,8 +54,11 @@ export async function downloadVideo( ): Promise { const userDownloadsDir = config.file.downloadsDir; + if (!validateUrl(url)) { + throw new Error("Invalid or unsupported URL format"); + } + try { - validateUrl(url); const timestamp = getFormattedTimestamp(); let format: string;