Skip to content

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_CODES mapping
    • Added 4 new languages to translation language_names mapping
    • All languages verified to work with OpenAI Whisper STT

Subtitle Models

  • File: backend/app/models/subtitles.py
    • Expanded SUBTITLE_LANGUAGES from 6 to 10 entries
    • Added native names and RTL flags for new languages

Database Models

  • File: backend/app/models/content.py
    • Updated LiveChannel.available_translation_languages default from 3 to 10 languages
    • New default includes all 10 supported languages

API Schemas

  • File: backend/app/api/routes/admin_content_schemas.py
    • Updated LiveChannelCreateRequest.available_translation_languages default to 10 languages
    • Ensures new channels are created with full language support

2. Frontend Updates

Video Player

  • File: web/src/components/player/VideoPlayer.tsx
    • Added 4 new languages to the langMap with flags and labels
    • Updated language selector UI to display new options

Live Subtitle Controls

  • File: web/src/components/player/LiveSubtitleControls.styles.ts
    • Expanded AVAILABLE_LANGUAGES constant from 6 to 10 entries
    • Added flags and labels for new languages

TypeScript Types

  • File: web/src/types/subtitle.ts
    • Updated SUBTITLE_LANGUAGES array to include 10 languages
    • Added proper RTL flags and native names

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
- ערוץ 14

Supported Languages

Original 6 Languages

  1. Hebrew (he) - עברית 🇮🇱 [RTL]
  2. English (en) - English 🇺🇸
  3. Arabic (ar) - العربية 🇸🇦 [RTL]
  4. Spanish (es) - Español 🇪🇸
  5. Russian (ru) - Русский 🇷🇺
  6. French (fr) - Français 🇫🇷

New 4 Languages

  1. German (de) - Deutsch 🇩🇪
  2. Italian (it) - Italiano 🇮🇹
  3. Portuguese (pt) - Português 🇵🇹
  4. 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

  1. 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
  2. UI Testing

    • Verify language selector displays all 10 options
    • Check flag emojis render correctly
    • Test language switching during live playback
  3. 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)

  1. backend/app/services/live_translation_service.py
  2. backend/app/models/subtitles.py
  3. backend/app/models/content.py
  4. backend/app/api/routes/admin_content_schemas.py
  5. backend/app/scripts/migrate_channel_languages.py (new)

Frontend (3 files)

  1. web/src/components/player/VideoPlayer.tsx
  2. web/src/components/player/LiveSubtitleControls.styles.ts
  3. web/src/types/subtitle.ts

Deployment Notes

Pre-Deployment

  • ✅ All changes committed
  • ✅ No linter errors
  • ✅ Migration script tested successfully

Deployment Steps

  1. Deploy backend code changes
  2. Run migration script: poetry run python app/scripts/migrate_channel_languages.py
  3. Verify all channels updated
  4. Deploy frontend code changes
  5. 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

Released under the MIT License.