UNPKG

@kevinwatt/yt-dlp-mcp

Version:

An MCP server implementation that integrates with yt-dlp, providing video and audio content download capabilities (e.g. YouTube, Facebook, Tiktok, etc.) for LLMs.

104 lines (103 loc) 2.92 kB
/** * Validates if a given string is a valid URL. * * @param url - The URL string to validate * @returns True if the URL is valid, false otherwise * * @example * ```typescript * if (validateUrl('https://youtube.com/watch?v=...')) { * // URL is valid * } * ``` */ export declare function validateUrl(url: string): boolean; /** * Checks if a URL is from YouTube. * * @param url - The URL to check * @returns True if the URL is from YouTube, false otherwise * * @example * ```typescript * if (isYouTubeUrl('https://youtube.com/watch?v=...')) { * // URL is from YouTube * } * ``` */ export declare function isYouTubeUrl(url: string): boolean; /** * Safely cleans up a directory and its contents. * * @param directory - Path to the directory to clean up * @returns Promise that resolves when cleanup is complete * @throws {Error} When directory cannot be removed * * @example * ```typescript * try { * await safeCleanup('/path/to/temp/dir'); * } catch (error) { * console.error('Cleanup failed:', error); * } * ``` */ export declare function safeCleanup(directory: string): Promise<void>; /** * Spawns a child process and returns its output as a promise. * * @param command - The command to execute * @param args - Array of command arguments * @returns Promise resolving to the command output * @throws {Error} When command execution fails * * @example * ```typescript * try { * const output = await _spawnPromise('yt-dlp', ['--version']); * console.log('yt-dlp version:', output); * } catch (error) { * console.error('Command failed:', error); * } * ``` */ export declare function _spawnPromise(command: string, args: string[]): Promise<string>; /** * Generates a formatted timestamp string for file naming. * * @returns Formatted timestamp string in the format 'YYYY-MM-DD_HH-mm-ss' * * @example * ```typescript * const timestamp = getFormattedTimestamp(); * console.log(timestamp); // '2024-03-20_12-30-00' * ``` */ export declare function getFormattedTimestamp(): string; /** * Generates a random filename with timestamp prefix. * * @param extension - Optional file extension (default: 'mp4') * @returns A random filename with timestamp * * @example * ```typescript * const filename = generateRandomFilename('mp3'); * console.log(filename); // '2024-03-20_12-30-00_a1b2c3d4.mp3' * ``` */ export declare function generateRandomFilename(extension?: string): string; /** * Cleans SRT subtitle content to produce a plain text transcript. * Removes timestamps, sequence numbers, and HTML tags. * * @param srtContent - Raw SRT subtitle content * @returns Cleaned transcript text * * @example * ```typescript * const cleanedText = cleanSubtitleToTranscript(srtContent); * console.log(cleanedText); // 'Hello world this is a transcript...' * ``` */ export declare function cleanSubtitleToTranscript(srtContent: string): string;