Skip to main content
Glama

translate_srt

Prepares SRT subtitle content for AI translation by parsing text, preserving timing and formatting, and returning structured data ready for translation.

Instructions

šŸŒ SRT TRANSLATION HELPER TOOL šŸŒ

🚨 CRITICAL: THIS IS A HELPER TOOL ONLY - AI DOES THE TRANSLATION! 🚨

šŸŽÆ PURPOSE: This tool helps prepare SRT content for AI translation but DOES NOT translate text itself. The AI assistant must perform the actual translation work.

šŸ“ WHAT IT DOES:

  • Parses SRT content and extracts subtitle text for AI translation

  • Preserves timing and formatting structure

  • Returns structured data for AI to translate

  • Provides context and metadata for better translation

āŒ WHAT IT DOES NOT DO:

  • āŒ Does NOT translate text automatically

  • āŒ Does NOT return translated content

  • āŒ Does NOT perform any AI translation

āœ… WHAT IT RETURNS:

  • Structured SRT data with original text

  • Timing and formatting information

  • Translation context and metadata

  • Ready-to-translate format for AI

šŸ”„ RECOMMENDED WORKFLOW:

  1. Use detect_conversations to analyze file structure

  2. Use get_next_chunk to get individual chunks

  3. Use translate_srt to prepare chunk for AI translation

  4. AI assistant translates the text content

  5. AI assistant combines results into final SRT file

šŸ’” USAGE PATTERNS:

Prepare Full File for Translation: {"content": "full SRT content", "targetLanguage": "es", "sourceLanguage": "en"}

Prepare Individual Chunk for Translation: {"content": "chunk SRT content", "targetLanguage": "es", "sourceLanguage": "en"}

āš ļø CRITICAL INSTRUCTIONS:

  • This tool ONLY prepares content for AI translation

  • AI assistant must do the actual text translation

  • Use this to get structured data, then translate with AI

  • Return format is ready for AI processing

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
contentYesSRT file content to translate
targetLanguageYesTarget language code (e.g., es, fr, de)
sourceLanguageNoSource language code (optional, auto-detect if not provided)

Implementation Reference

  • The main execution handler for the 'translate_srt' tool. Parses SRT content using parseSRTFile and structures it into a format with subtitles, timings, and instructions for an AI to perform the actual translation. Does not translate text itself; it's a helper tool.
    private async handleTranslateSRT(args: any) { const { content, targetLanguage, sourceLanguage } = args; const parseResult = parseSRTFile(content); if (!parseResult.success || !parseResult.file) { const errorDetails = parseResult.errors?.map(e => `${e.type}: ${e.message}`).join(', ') || 'Unknown parsing error'; throw new Error(`Failed to parse SRT file: ${errorDetails}`); } // Return structured data for AI translation - DO NOT TRANSLATE HERE const translationData = { originalSRT: content, parsedData: parseResult.file, translationInstructions: { targetLanguage: targetLanguage, sourceLanguage: sourceLanguage || 'auto', preserveTiming: true, preserveFormatting: true, context: 'subtitle_translation' }, subtitles: parseResult.file.subtitles.map((subtitle, index) => ({ index: index, id: `subtitle-${subtitle.index}`, startTime: subtitle.startTime, endTime: subtitle.endTime, originalText: subtitle.text, translationInstructions: { preserveTags: true, maintainTone: 'conversational', context: `Subtitle ${index + 1} of ${parseResult.file!.subtitles.length}` } })), aiTranslationTask: { description: `Translate ${parseResult.file!.subtitles.length} subtitles from ${sourceLanguage || 'auto'} to ${targetLanguage}`, instructions: [ 'Translate each subtitle text while preserving timing and formatting', 'Maintain conversational tone and context', 'Preserve any HTML tags or formatting', 'Return complete translated SRT file' ], expectedOutput: 'Complete translated SRT file with all timing preserved' } }; return { content: [ { type: 'text', text: JSON.stringify(translationData, null, 2), }, ], }; }
  • Tool registration in the MCP server's listTools handler, including the tool name, detailed description emphasizing it's a helper, and input schema defining parameters: content (required), targetLanguage (required), sourceLanguage (optional).
    { name: 'translate_srt', description: `šŸŒ SRT TRANSLATION HELPER TOOL šŸŒ 🚨 CRITICAL: THIS IS A HELPER TOOL ONLY - AI DOES THE TRANSLATION! 🚨 šŸŽÆ PURPOSE: This tool helps prepare SRT content for AI translation but DOES NOT translate text itself. The AI assistant must perform the actual translation work. šŸ“ WHAT IT DOES: - Parses SRT content and extracts subtitle text for AI translation - Preserves timing and formatting structure - Returns structured data for AI to translate - Provides context and metadata for better translation āŒ WHAT IT DOES NOT DO: - āŒ Does NOT translate text automatically - āŒ Does NOT return translated content - āŒ Does NOT perform any AI translation āœ… WHAT IT RETURNS: - Structured SRT data with original text - Timing and formatting information - Translation context and metadata - Ready-to-translate format for AI šŸ”„ RECOMMENDED WORKFLOW: 1. Use detect_conversations to analyze file structure 2. Use get_next_chunk to get individual chunks 3. Use translate_srt to prepare chunk for AI translation 4. AI assistant translates the text content 5. AI assistant combines results into final SRT file šŸ’” USAGE PATTERNS: Prepare Full File for Translation: {"content": "full SRT content", "targetLanguage": "es", "sourceLanguage": "en"} Prepare Individual Chunk for Translation: {"content": "chunk SRT content", "targetLanguage": "es", "sourceLanguage": "en"} āš ļø CRITICAL INSTRUCTIONS: - This tool ONLY prepares content for AI translation - AI assistant must do the actual text translation - Use this to get structured data, then translate with AI - Return format is ready for AI processing`, inputSchema: { type: 'object', properties: { content: { type: 'string', description: 'SRT file content to translate', }, targetLanguage: { type: 'string', description: 'Target language code (e.g., es, fr, de)', }, sourceLanguage: { type: 'string', description: 'Source language code (optional, auto-detect if not provided)', }, }, required: ['content', 'targetLanguage'], }, },
  • Input schema for the translate_srt tool, specifying the expected arguments structure and types.
    inputSchema: { type: 'object', properties: { content: { type: 'string', description: 'SRT file content to translate', }, targetLanguage: { type: 'string', description: 'Target language code (e.g., es, fr, de)', }, sourceLanguage: { type: 'string', description: 'Source language code (optional, auto-detect if not provided)', }, }, required: ['content', 'targetLanguage'], },

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/omd0/srt-mcp'

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