What it does
VideoLingo combines speech recognition, subtitle translation, segmentation and dubbing in one Streamlit interface. It can download a YouTube video with yt-dlp, recognize speech word by word with Qwen3-ASR and a forced aligner, split subtitles within configurable length limits, translate them with custom and AI-generated terminology, and produce subtitle files and optionally subtitled or dubbed videos. Dubbing runs through text-to-speech back ends including GPT-SoVITS, OpenAI, Fish Audio, Edge TTS and F5-TTS, with a custom adapter option. Translation uses an LLM through an OpenAI-compatible API that you set up with a URL, key and model in the sidebar. Speech recognition runs locally by default, or you can choose a hosted provider, in which case audio is sent to that provider and may incur charges. It runs on Windows, macOS and Linux. Windows has a double-click starter, other systems run from source with uv, and an optional Docker setup targets Linux with an NVIDIA GPU. A local HTTP API lets scripts and agents drive the same pipeline. The README lists limits: background noise and mixed-language speech can hurt recognition and timing, and dubbing does not assign a separate voice to each speaker.
Capabilities
- Word-level speech recognition and alignment
- Subtitle segmentation and translation with custom terminology
- Dubbing through several text-to-speech back ends
- Pause, resume or stop at any step, with progress logging
- Local HTTP API for scripts and agents
- Windows, macOS and Linux, with an optional Docker setup
When to use it
- You need subtitles for a video in another language
- You want to dub a video with a text-to-speech voice
- You prefer to run the pipeline yourself with your own model keys