Skip to main content
Glama
jedarden

YouTube Transcript DL MCP Server

by jedarden
server.ts2.32 kB
#!/usr/bin/env node import { Command } from 'commander'; import { YouTubeTranscriptMCPServer } from '../server/mcp-server.js'; import { Logger } from '../utils/logger.js'; import { defaultServerConfig } from '../utils/config.js'; const program = new Command(); program .name('yt-transcript-dl-mcp') .description('YouTube Transcript Download MCP Server') .version('1.0.0'); program .command('start') .description('Start the MCP server') .option('-t, --transport <type>', 'Transport type (stdio, sse, http)', 'stdio') .option('-p, --port <port>', 'Port for HTTP/SSE transport', '3000') .option('-v, --verbose', 'Enable verbose logging') .action(async (options) => { try { // Configure logging const logLevel = options.verbose ? 'debug' : 'info'; Logger.getInstance({ ...defaultServerConfig.logging, level: logLevel }); // Set transport environment variable process.env.MCP_TRANSPORT = options.transport; process.env.PORT = options.port; // Create and start server const server = new YouTubeTranscriptMCPServer(); Logger.info(`Starting server with ${options.transport} transport on port ${options.port}...`); await server.start(); } catch (error) { Logger.error('Failed to start server:', error); process.exit(1); } }); program .command('test') .description('Test the server with a sample video') .argument('<video-id>', 'YouTube video ID to test') .option('-l, --language <lang>', 'Language code', 'en') .option('-f, --format <format>', 'Output format (text, json, srt)', 'json') .action(async (videoId, options) => { try { const { YouTubeTranscriptService } = await import('../services/youtube-transcript.service.js'); const service = new YouTubeTranscriptService(); Logger.info(`Testing transcript extraction for video: ${videoId}`); const result = await service.getTranscript(videoId, options.language, options.format); if (result.metadata?.error) { Logger.error('Error:', result.metadata.error); process.exit(1); } else { console.log(JSON.stringify(result, null, 2)); } } catch (error) { Logger.error('Test failed:', error); process.exit(1); } }); program.parse();

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/jedarden/yt-transcript-dl-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server