transcribe_chapterize_media
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.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | YouTube URL, podcast RSS feed URL, or direct MP3/MP4 URL. Example: "https://www.youtube.com/watch?v=jNQXAC9IVRw" | |
| lang | No | ISO 639-1 language hint (e.g. "en", "fr", "de"). Default "auto". | |
| async | No | 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 | No | Maximum number of chapters. Default 8. | |
| output_format | No | Transcript format. Default "json". | |
| include_summary | No | Include extractive summary. Default true. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | ||
| status | Yes | ||
| signals | Yes | ||
| sources | Yes | ||
| summary | No | ||
| chapters | Yes | ||
| segments | Yes | ||
| key_topics | Yes | ||
| transcript | Yes | ||
| source_type | Yes | ||
| lang_detected | Yes | ||
| quality_score | Yes | ||
| duration_seconds | Yes |