Documents
Introduction

VideoLingo: Connecting the World, Frame by Frame

๐ŸŒŸ Overview (Try VideoLingo Now! (opens in a new tab))

VideoLingo is an all-in-one video translation, localization, and dubbing tool aimed at generating Netflix-quality subtitles. It eliminates stiff machine translations and multi-line subtitles while adding high-quality dubbing, enabling global knowledge sharing across language barriers.

Key features:

  • ๐ŸŽฅ YouTube video download via yt-dlp

  • ๐ŸŽ™๏ธ Word-level subtitle recognition with Qwen3-ASR + ForcedAligner

  • ๐Ÿ“ NLP and GPT-based subtitle segmentation

  • ๐Ÿ“š GPT-generated terminology for coherent translation

  • ๐Ÿ”„ 3-step direct translation, reflection, and adaptation for professional-level quality

  • โœ… Netflix-standard single-line subtitles only

  • ๐Ÿ—ฃ๏ธ Dubbing alignment with GPT-SoVITS and other methods

  • ๐Ÿš€ One-click startup and output in Streamlit

  • ๐Ÿ“ Detailed logging with progress resumption

Difference from similar projects: Single-line subtitles only, superior translation quality, seamless dubbing experience

๐ŸŽฅ Demo

Russian Translation


https://github.com/user-attachments/assets/25264b5b-6931-4d39-948c-5a1e4ce42fa7 (opens in a new tab)

GPT-SoVITS Dubbing


https://github.com/user-attachments/assets/47d965b2-b4ab-4a0b-9d08-b49a7bf3508c (opens in a new tab)

Language Support

Input Language Support(more to come):

๐Ÿ‡บ๐Ÿ‡ธ English ๐Ÿคฉ | ๐Ÿ‡ท๐Ÿ‡บ Russian ๐Ÿ˜Š | ๐Ÿ‡ซ๐Ÿ‡ท French ๐Ÿคฉ | ๐Ÿ‡ฉ๐Ÿ‡ช German ๐Ÿคฉ | ๐Ÿ‡ฎ๐Ÿ‡น Italian ๐Ÿคฉ | ๐Ÿ‡ช๐Ÿ‡ธ Spanish ๐Ÿคฉ | ๐Ÿ‡ฏ๐Ÿ‡ต Japanese ๐Ÿ˜ | ๐Ÿ‡จ๐Ÿ‡ณ Chinese* ๐Ÿ˜Š

*Local recognition uses Qwen3-ASR (1.7B by default, 0.6B selectable).

Translation supports all languages, while dubbing language depends on the chosen TTS method.

Installation

VideoLingo supports Windows, macOS (Apple Silicon / Intel), and Linux.

Ask your local AI agent ๐Ÿค–

If your AI agent can operate your computer, tell it:

Install and launch GitHub's Huanshere/VideoLingo on my computer.

Windows: double-click to install ๐ŸŽ‰

  1. Download Source code (zip) from the latest Release (opens in a new tab), extract it to your Desktop or another folder, and open the folder.
  2. Double-click OneKeyStart.bat and keep the window open. On the first run, it automatically installs uv, Python 3.12, app dependencies, and FFmpeg. An internet connection is required.
  3. After installation, VideoLingo opens automatically in your browser. Enter your API URL, key, and model in the sidebar to start using it.

Install from source (Windows, macOS, Linux)

git clone https://github.com/Huanshere/VideoLingo.git && cd VideoLingo
uv run start.py

To start it later, run uv run start.py again from the VideoLingo folder.

Docker

For Linux NVIDIA containers, use Docker with a compatible driver and NVIDIA Container Toolkit. The image uses the same Python 3.12 setup; see Docker docs:

docker build -t videolingo .
docker run -d -p 8501:8501 --gpus all videolingo

API

The project supports OpenAI-Like API format and various dubbing interfaces:

  • Choose an OpenAI-compatible Chat Completions provider and a model capable of returning structured JSON. Set the API URL, key and model in the sidebar.
  • edge-tts, openai-tts, siliconflow-fishtts, fish-tts, GPT-SoVITS

For detailed installation, LLM configuration, and usage instructions, please refer to the documentation: English | ไธญๆ–‡

Current Limitations

  1. Transcription and word timestamps may be affected by background noise. For videos with loud background music, enable Voice Separation Enhancement: Qwen3-ASR still transcribes the original audio, while the ForcedAligner aligns against the separated vocals. Punctuation is re-attached to aligned words heuristically; in rare cases a word may lose its punctuation.

  2. Using weaker models can lead to errors during intermediate processes due to strict JSON format requirements for responses. If this error occurs, please delete the output folder and retry with a different LLM, otherwise repeated execution will read the previous erroneous response causing the same error.

  3. The dubbing feature may not be 100% perfect due to differences in speech rates and intonation between languages, as well as the impact of the translation step. However, this project has implemented extensive engineering processing for speech rates to ensure the best possible dubbing results.

  4. Multilingual video transcription recognition is only reliable for the main language. Alignment runs with one language per audio window, so text and timing in other languages are not guaranteed.

  5. Cannot dub multiple characters separately; recognition does not distinguish speakers.

๐Ÿ“„ License

This project is licensed under the Apache 2.0 License. Special thanks to the following open source projects for their contributions:

Qwen3-ASR (opens in a new tab), MLX Audio (opens in a new tab), whisperX (opens in a new tab), yt-dlp (opens in a new tab), json_repair (opens in a new tab), BELLE (opens in a new tab)

๐Ÿ“ฌ Contact Us

โญ Star History

Star History Chart (opens in a new tab)


If you find VideoLingo helpful, please give us a โญ๏ธ!