transcribe_chapterize_media
ActiveTool of @gapup/mcp-knowledge
Transcription and chapterization of long-form media (YouTube, podcasts, direct audio/video) for content marketing teams, podcast publishers, edu tech, journalists and accessibility/compliance. Pipeline: • YouTube → timedtext captions (keyless) + oEmbed metadata + native timecode chapters from description • Podcast RSS → episode description + duration + timecodes if embedded in show notes • Direct media → partial (requires Whisper API via OPENAI_API_KEY + force_whisper:true) • Chapters: native YouTube timecodes preferred; heuristic TF-IDF segmentation as fallback • Summary: extractive TF-IDF top-sentences (no LLM required) • Language detection: character-set heuristic (CJK→zh, kana→ja, hangul→ko, accents→fr/de/es) Output formats: json (full structured object) | text (plain transcript) | srt | vtt SLA: ≤15s budget total. Cache: 24h TTL.
Parameters schema
{
"type": "object",
"required": [
"url"
],
"properties": {
"url": {
"type": "string",
"description": "YouTube URL, podcast RSS feed URL, or direct MP3/MP4 URL. Example: \"https://www.youtube.com/watch?v=jNQXAC9IVRw\""
},
"lang": {
"type": "string",
"maxLength": 10,
"description": "ISO 639-1 language hint (e.g. \"en\", \"fr\", \"de\"). Default \"auto\"."
},
"async": {
"type": "boolean",
"description": "If true, returns a job_id immediately (<200ms) instead of waiting for the result. Poll the result with job_result(job_id). Use for slow tools to avoid client timeouts."
},
"chapters_max": {
"type": "number",
"maximum": 30,
"minimum": 1,
"description": "Maximum number of chapters. Default 8."
},
"output_format": {
"enum": [
"text",
"srt",
"vtt",
"json"
],
"type": "string",
"description": "Transcript format. Default \"json\"."
},
"include_summary": {
"type": "boolean",
"description": "Include extractive summary. Default true."
}
}
}No endpoints wrapped at confidence ≥ 0.70.
Parent server
@gapup/mcp-knowledge
https://github.com/getgapup/gapup-mcp
2/7 registries