Myna Player generates context-aware subtitles ahead of playback
I’m building Myna Player, an open-source local-first video player around a subtitle timing problem:
• translate too early and the model has too little context
• wait for more context and the subtitle arrives after the dialogue
Myna handles this with a look-ahead pipeline that processes media ahead of the current playback position.
The pipeline transcribes locally with word timestamps, builds canonical timed cues, and then gives the translation layer surrounding context. Translation can improve wording, but it is not allowed to change cue identity or timing. The native player clock remains the source of truth for display.
Seeking starts a new processing generation so stale work can be cancelled instead of racing with the new playback position. Completed windows are checkpointed in SQLite/WAL so processing can resume without starting over.
The project uses Rust, Tauri, Leptos, libVLC, FFmpeg, and Whisper. It is still a public alpha; packaging and cross-platform native-runtime verification are ongoing.
Open source: https://github.com/ademisler/Myn...
For people who watch translated video: would you value local processing and better context enough to accept a short look-ahead buffer before subtitles are ready?
Replies