Transform any YouTube video into multiple languages with AI-powered dubbing technology. DubFlow automatically extracts transcripts, translates content, generates natural-sounding speech, and creates professionally dubbed videos.
- 🎬 YouTube Video Processing: Seamlessly download and process YouTube videos
- 📝 Smart Transcript Extraction: Advanced transcript fetching with multiple fallback strategies
- 🌍 Multi-Language Translation: Support for 16+ languages using RapidAPI Google Translator
- 🔊 Natural Speech Generation: High-quality text-to-speech using Google TTS
- ⏰ Precise Audio Alignment: Maintains original timing and synchronization
- 🎭 Professional Video Merging: Combines dubbed audio with original video
- 📊 Real-time Progress Tracking: Live updates during processing
- 🚀 Modern UI/UX: Beautiful gradient interface with animations
- Spanish (Español)
- French (Français)
- German (Deutsch)
- Italian (Italiano)
- Portuguese (Português)
- Russian (Русский)
- Japanese (日本語)
- Korean (한국어)
- Chinese (中文)
- Hindi (हिंदी)
- Arabic (العربية)
- Dutch (Nederlands)
- Polish (Polski)
- Turkish (Türkçe)
- Thai (ไทย)
- Vietnamese (Tiếng Việt)
- Transcript Extraction: Enhanced retry logic with multiple fallback methods
- Translation Service: RapidAPI Google Translator integration
- Audio Processing: FFmpeg for audio manipulation and merging
- Video Processing: yt-dlp/youtube-dl for reliable video downloads
- Text-to-Speech: Google TTS (gTTS) for natural voice generation
- Modern UI: Tailwind CSS with gradient animations
- Real-time Updates: Live progress tracking and status updates
- Responsive Design: Mobile-first approach with beautiful animations
- Error Handling: Comprehensive error messages and user guidance
- Node.js v18 or higher
- npm or yarn
- FFmpeg installed on your system
- yt-dlp or youtube-dl installed
- RapidAPI account with Google Translator access
-
Clone the repository
git clone https://github.com/yourusername/dubflow.git cd dubflow
-
Install backend dependencies
cd backend npm install
-
Install frontend dependencies
cd ../frontend npm install
-
Set up environment variables
Create a
.env
file in the backend directory:PORT=3001 RAPIDAPI_KEY=your_rapidapi_key_here
-
Install system dependencies
On macOS:
brew install ffmpeg yt-dlp
On Ubuntu/Debian:
sudo apt update sudo apt install ffmpeg yt-dlp
On Windows:
- Download FFmpeg from https://ffmpeg.org/download.html
- Download yt-dlp from https://github.com/yt-dlp/yt-dlp
-
Start the backend server
cd backend npm start
The backend will run on http://localhost:3001
-
Start the frontend development server
cd frontend npm run dev
The frontend will run on http://localhost:3000
-
Open your browser and navigate to http://localhost:3000
Processes a YouTube video for dubbing.
Request Body:
{
"videoUrl": "https://www.youtube.com/watch?v=VIDEO_ID",
"targetLanguage": "spanish"
}
Response:
{
"success": true,
"jobId": "uuid-here",
"downloadUrl": "/downloads/uuid/dubbed_video.mp4",
"message": "Video dubbed successfully!",
"transcriptSegments": 150,
"translationErrors": 0
}
Validates transcript availability before processing.
Request Body:
{
"videoUrl": "https://www.youtube.com/watch?v=VIDEO_ID"
}
Checks the status of a dubbing job.
Response:
{
"status": "completed",
"downloadUrl": "/downloads/jobId/dubbed_video.mp4"
}
Health check endpoint.
Variable | Description | Required | Default |
---|---|---|---|
PORT |
Backend server port | No | 3001 |
RAPIDAPI_KEY |
RapidAPI key for Google Translator | Yes | - |
- Batch Size: Adjust translation batch size in the backend code
- Retry Logic: Configure retry attempts and delays for transcript fetching
- Audio Quality: Modify FFmpeg settings for different audio quality
- Language Support: Add new languages by updating the language maps
The frontend uses Tailwind CSS for styling. Key customization options:
- Color Scheme: Modify gradient colors in the component
- Animations: Adjust animation delays and durations
- Layout: Customize the responsive grid system
- Progress Indicators: Modify loading states and progress displays
-
"No transcript found" error
- Ensure the video has captions enabled
- Try videos with manual subtitles instead of auto-generated ones
- Check if the video is publicly accessible
-
Translation failures
- Verify your RapidAPI key is correct and active
- Check your RapidAPI subscription limits
- Monitor API rate limiting
-
Video download issues
- Ensure yt-dlp is installed and updated
- Check if the video is available in your region
- Try different video formats or quality settings
-
FFmpeg errors
- Verify FFmpeg is properly installed
- Check system PATH configuration
- Ensure sufficient disk space for processing
Enable debug logging by setting:
DEBUG=true
We welcome contributions! Please follow these steps:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
- Follow ESLint configuration
- Write descriptive commit messages
- Add tests for new features
- Update documentation as needed
This project is licensed under the MIT License - see the LICENSE file for details.
- youtube-transcript for transcript extraction
- RapidAPI for translation services
- FFmpeg for video/audio processing
- yt-dlp for reliable YouTube downloads
- Google TTS for speech synthesis
Made with ❤️ for content creators worldwide