Live Translation Language Expansion
Summary
Expanded live translation subtitle languages from 6 to 10 languages for all live streaming channels.
Date
January 13, 2026
Changes Made
1. Backend Updates
Language Configuration
- File:
backend/app/services/live_translation_service.py- Added 4 new languages to
LANGUAGE_CODESmapping - Added 4 new languages to translation
language_namesmapping - All languages verified to work with OpenAI Whisper STT
- Added 4 new languages to
Subtitle Models
- File:
backend/app/models/subtitles.py- Expanded
SUBTITLE_LANGUAGESfrom 6 to 10 entries - Added native names and RTL flags for new languages
- Expanded
Database Models
- File:
backend/app/models/content.py- Updated
LiveChannel.available_translation_languagesdefault from 3 to 10 languages - New default includes all 10 supported languages
- Updated
API Schemas
- File:
backend/app/api/routes/admin_content_schemas.py- Updated
LiveChannelCreateRequest.available_translation_languagesdefault to 10 languages - Ensures new channels are created with full language support
- Updated
2. Frontend Updates
Video Player
- File:
web/src/components/player/VideoPlayer.tsx- Added 4 new languages to the
langMapwith flags and labels - Updated language selector UI to display new options
- Added 4 new languages to the
Live Subtitle Controls
- File:
web/src/components/player/LiveSubtitleControls.styles.ts- Expanded
AVAILABLE_LANGUAGESconstant from 6 to 10 entries - Added flags and labels for new languages
- Expanded
TypeScript Types
- File:
web/src/types/subtitle.ts- Updated
SUBTITLE_LANGUAGESarray to include 10 languages - Added proper RTL flags and native names
- Updated
3. Database Migration
Migration Script
- File:
backend/app/scripts/migrate_channel_languages.py- Created comprehensive migration script
- Updates all existing channels to support 10 languages
- Includes verification and detailed logging
Migration Results
📊 Total channels: 6
✅ Updated: 6
⏭️ Skipped: 0
All 6 live channels successfully migrated:
- כאן חינוכית
- קשת 12
- רשת 13
- i24NEWS Hebrew
- כאן 11
- ערוץ 14Supported Languages
Original 6 Languages
- Hebrew (he) - עברית 🇮🇱 [RTL]
- English (en) - English 🇺🇸
- Arabic (ar) - العربية 🇸🇦 [RTL]
- Spanish (es) - Español 🇪🇸
- Russian (ru) - Русский 🇷🇺
- French (fr) - Français 🇫🇷
New 4 Languages
- German (de) - Deutsch 🇩🇪
- Italian (it) - Italiano 🇮🇹
- Portuguese (pt) - Português 🇵🇹
- Yiddish (yi) - ייִדיש 🕍 [RTL]
Technical Details
OpenAI Whisper Support
All 10 languages are fully supported by OpenAI Whisper for speech-to-text transcription:
- ✅ Hebrew (he)
- ✅ English (en)
- ✅ Arabic (ar)
- ✅ Spanish (es)
- ✅ Russian (ru)
- ✅ French (fr)
- ✅ German (de)
- ✅ Italian (it)
- ✅ Portuguese (pt)
- ✅ Yiddish (yi)
Google Cloud Speech-to-Text Support
All languages also have proper locale mappings for Google Cloud STT (fallback provider):
he-IL,en-US,ar-IL,es-ES,ru-RU,fr-FR,de-DE,it-IT,pt-PT,yi
Translation Support
Both OpenAI GPT-4o-mini and Google Cloud Translate support all 10 languages for real-time translation.
Impact
User Experience
- Users can now watch live streams with subtitles in 10 different languages
- Expanded accessibility for German, Italian, Portuguese, and Yiddish-speaking audiences
- Particularly beneficial for Jewish communities worldwide (Yiddish support)
System Performance
- No performance impact - language selection is client-side
- Translation happens on-demand based on user selection
- Backend scales to handle any of the 10 languages equally
Admin Experience
- New channels automatically get all 10 languages by default
- Existing channels updated via migration script
- Admin panel shows all 10 language options
Testing Recommendations
Live Stream Testing
- Test each language with a live Hebrew stream
- Verify translation quality for all 10 languages
- Check RTL rendering for Hebrew, Arabic, and Yiddish
UI Testing
- Verify language selector displays all 10 options
- Check flag emojis render correctly
- Test language switching during live playback
Admin Testing
- Create new channel and verify default languages
- Edit existing channel and verify language options
- Test enabling/disabling specific languages
Files Modified
Backend (5 files)
backend/app/services/live_translation_service.pybackend/app/models/subtitles.pybackend/app/models/content.pybackend/app/api/routes/admin_content_schemas.pybackend/app/scripts/migrate_channel_languages.py(new)
Frontend (3 files)
web/src/components/player/VideoPlayer.tsxweb/src/components/player/LiveSubtitleControls.styles.tsweb/src/types/subtitle.ts
Deployment Notes
Pre-Deployment
- ✅ All changes committed
- ✅ No linter errors
- ✅ Migration script tested successfully
Deployment Steps
- Deploy backend code changes
- Run migration script:
poetry run python app/scripts/migrate_channel_languages.py - Verify all channels updated
- Deploy frontend code changes
- Test live translation with new languages
Rollback Plan
If issues arise, the migration script can be modified to revert channels to previous language sets. However, no breaking changes were introduced - the expansion is purely additive.
Future Considerations
Additional Languages
OpenAI Whisper supports 99+ languages. If demand exists, we can easily add:
- Chinese (Mandarin/Cantonese)
- Japanese
- Korean
- Turkish
- Polish
- Ukrainian
- And many more...
Performance Optimization
- Consider caching translation results for common phrases
- Implement language-specific quality metrics
- Add user feedback mechanism for translation quality
Conclusion
✅ Successfully expanded live translation from 6 to 10 languages ✅ All existing channels migrated automatically ✅ Full OpenAI Whisper STT support verified ✅ No breaking changes or performance impact ✅ Ready for production deployment