✨ A powerful video subtitle generation and translation tool supporting multi-language conversion and customizable subtitle styles
Figure 1: Main Application Interface - Upload Video and Set Translation Options
- Support for multiple video formats (MP4, MKV, MOV, AVI, WebM)
- Multiple output quality options (1080p, 720p, 480p, Source Quality)
- Real-time processing progress display
- Extract dialogue from videos using local Whisper model
- Multiple model size options:
- 🚀 Tiny (Fastest, lower accuracy)
- ⚡ Base (Balanced speed and accuracy)
- 🛡️ Small (Good balance)
- 🎯 Medium (Recommended, best balance)
- 🏆 Large (Most accurate, slower)
- Support for 100+ language translations
- Intelligent language detection
- Batch translation for improved efficiency
- Bilingual subtitle generation
- Customize font, size, and color
- Adjust stroke and shadow effects
- Real-time subtitle preview
- Multiple subtitle positioning options
- Comprehensive error handling and logging
- Cross-platform compatibility
- Asynchronous task processing
- Responsive design for all devices
- Python 3.8+
- FFmpeg
- CUDA-supported GPU (Recommended, optional)
-
Clone the repository
git clone https://github.com/yourusername/video-subtitle-translator.git cd video-subtitle-translator -
Create and activate a virtual environment
python -m venv venv source venv/bin/activate # Linux/Mac # or .\venv\Scripts\activate # Windows
-
Install dependencies
pip install -r requirements.txt
-
Configure environment variables Copy
.env.exampleto.envand fill in your API keys -
Run the application
python app.py
-
Open your browser and visit
http://localhost:5000
- Frontend: HTML5, CSS3, JavaScript (ES6+)
- Backend: Python Flask
- Speech-to-Text: OpenAI Whisper
- Translation: Multiple LLM APIs supported
- Video Processing: FFmpeg
- Async Task Processing: ThreadPoolExecutor
Issues and pull requests are welcome! For major changes, please open an issue first to discuss what you would like to change.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Distributed under the MIT License. See LICENSE for more information.
- OpenAI for the Whisper model
- FFmpeg team for the powerful video processing tools
- All contributors and users for their support
