VoxFrame Manual
Contents

Coming soon / private beta

Extensive user manual

Current guide for VoxFrame Subtitle Player: local video, Smart Subtitle Assistant, OpenSubtitles-first, translation, live IPTV captions, LAN Watch/QR web-player, Chromecast/Cast, family filter, account, cloud and settings.

Private betaUpdated July 19, 2026Based on the current player

Contents

All menus, choices and settings

1. What this manual is for

This manual explains VoxFrame Subtitle Player from start to finish. It follows the current application surface: the main screen, player controls, every menu, settings, and the most important workflows for local video, IPTV, subtitles, transcription, translation, quality checks and account/cloud use.

The interface uses the word subtitle for normal subtitle files and tracks. This manual also uses caption for text displayed on screen during playback, especially in live IPTV workflows.

2. Starting the app

Start VoxFrame Subtitle Player through the supplied shortcut or launch command. After startup you see the empty player screen with the title VoxFrame Subtitle Player and the Open video button.

When no video is loaded yet, you can begin in three ways:

  1. Click Open video in the empty screen.
  2. Click Open video in the player menu.
  3. Drag a video file into the window.

The app currently accepts local video files with these extensions: .mp4, .mkv, .avi, .mov, .webm, .m4v and .ts.

For subtitles the app accepts .srt, .vtt, .webvtt, .ass and .ssa.

3. The main screen

The main screen is video-first. The video is central and the controls appear as an overlay. While watching, the controls hide automatically after a few seconds. Move the mouse, click or tap the window to show them again.

The top bar shows the video name or stream name. The bottom bar contains the timeline, time display, playback buttons, subtitle status and menus.

The main controls at the bottom are:

  • Progress slider: drag on the timeline to seek in a local video.
  • Play/Pause: starts or pauses playback.
  • Stop: stops playback and closes the current video in the player.
  • Back 10 seconds: jumps 10 seconds back.
  • Forward 10 seconds: jumps 10 seconds forward.
  • Time: shows current position and total duration.
  • Subtitle status: shows the active subtitle or No subtitles.
  • Stop current task: appears while AI/STT/translation tasks are running.
  • Volume: opens the volume menu.
  • CC: opens the subtitle-track menu.
  • Captions toggle: turns captions on or off.
  • Speed: opens playback speed choices.
  • Player menu: opens the main actions.
  • Fullscreen: toggles fullscreen.

4. Keyboard shortcuts

The app supports these shortcuts when a video is loaded:

  • Space: play/pause.
  • Media Play/Pause: play/pause on keyboards with media keys.
  • Left: 10 seconds back.
  • Right: 10 seconds forward.
  • Up: volume up by 5 percent.
  • Down: volume down by 5 percent.
  • F: toggle fullscreen.
  • M: mute or unmute.
  • C: toggle captions.
  • Esc: closes open menus or settings first; in fullscreen it returns to the normal window.
  • Ctrl+O: open video.

When no video is loaded yet, Ctrl+O still works. Other playback shortcuts wait until media is open.

5. Opening a local video

Use Open video to select a local video. You can also drag a video into the window. When the video opens:

  1. The app briefly shows a loading status.
  2. The video engine opens the file.
  3. The app checks whether previous settings for this video were saved.
  4. If there is no video memory and the source is local, the app searches for a sidecar subtitle next to the video file.

Sidecar subtitles are detected automatically when:

  • the subtitle has the same base name as the video, for example Movie.mkv and Movie.srt; or
  • there is exactly one usable subtitle file in the same folder.

If multiple loose subtitles are present and the app cannot safely pick one, it does not choose automatically. Load the correct file manually with Open subtitle.

6. Per-file video memory

VoxFrame remembers several choices per video. When you open the same video again, the app restores where possible:

  • loaded subtitle path;
  • subtitle delay;
  • whether captions were on or off;
  • selected subtitle language;
  • selected translation target language;
  • subtitle style preset;
  • glossary/name-lock text;
  • minimum match setting;
  • last translation context, so quality check and bilingual review can still link source and translation.

Live transcript subtitles are not saved as normal restorable subtitles. If a live transcript path comes from the temporary live folder, it is skipped when the video is reopened.

7. Opening subtitles manually

Choose Open subtitle in the player menu to load a subtitle file. The app reads the file through the subtitle loader and loads it into the video engine.

After loading:

  • the subtitle becomes visible if captions are enabled;
  • the app tries to infer language from file name or track information;
  • subtitle delay is reset to zero;
  • sync analysis is recalculated;
  • the choice is saved in video memory.

If the subtitle cannot be parsed, the app reports that the file could not be loaded.

8. The CC/subtitle menu

Click CC to open the subtitle menu. In the current build this menu is also the compact Subtitle Assistant hub. It no longer shows only tracks; it also shows status, source explanation and quick subtitle actions.

At the top VoxFrame shows:

  • subtitle status, such as the active track or that no subtitle is active;
  • source/confidence explanation, such as OpenSubtitles match, hash/release name, translated, AI generated, synced or quality-fixed;
  • the promise OpenSubtitles first - translate/generate only if needed;
  • the selected target language through the language chip.

The quick buttons in this menu are:

  • Smart Subtitle Assistant: searches human subtitles first, translates or generates only if needed.
  • Translate: opens translation actions for a loaded subtitle.
  • Sync: starts fast STT sync when a local video and subtitle are available.
  • Live: opens live transcript/translate for IPTV/live stream context.
  • Language: opens target language selection.

Below the hub are the available tracks. There you can:

  • choose an embedded subtitle track;
  • choose an external subtitle track;
  • turn captions off through No subtitles or CC off;
  • adjust subtitle delay;
  • adjust vertical subtitle position.

Subtitle delay

The delay controls are -0.5s and +0.5s. The current delay is shown in the menu.

  • Use -0.5s when text appears too late.
  • Use +0.5s when text appears too early.

For live captions the same controls adjust the live display offset. In buffered IPTV mode the app keeps the overlay tied to the buffered playback timeline.

Subtitle position

Subtitle position moves normal subtitles higher or lower on screen. This helps when text overlaps player controls, broadcast graphics or hardcoded captions.

9. Turning captions on and off

Use the captions toggle button or press C. Turning captions off does not unload the subtitle:

  • playback continues;
  • loaded subtitles remain available;
  • only display is hidden;
  • the choice is remembered per video.

When captions are turned on again, the app shows the last selected subtitle track or loaded subtitle.

10. Volume

Click the volume button to open the volume menu. You can drag the slider or use keyboard shortcuts.

M toggles mute. Up and Down adjust volume in steps of 5 percent.

11. Playback speed

Click Speed to choose playback speed. Current choices are:

  • 0.75X
  • 1X
  • 1.25X
  • 1.5X
  • 2X

The app shows the current value on the speed button. Speed changes apply to the current player session.

12. Fullscreen

Use the fullscreen button or press F. In fullscreen, the player hides normal window chrome and keeps the video central.

Press Esc or F again to return to the normal window.

13. The player menu

The player menu is the main place for major workflows. Open it through the gear/menu icon at the bottom right. The current layout is grouped around clear modes so you do not have to remember many separate technical actions.

Local Mode

Local Mode contains file and playlist basics:

  • Open video
  • Open IPTV playlist
  • Open subtitle
  • Export subtitle

Subtitle Assistant

Subtitle Assistant is the place for the smart subtitle flow:

  • Choose language
  • Smart Subtitle Assistant
  • Search human subtitles or OpenSubtitles via VoxFrame Cloud
  • Translate or Translate via VoxFrame Cloud
  • Subtitle quality check

Live Mode

Live Mode appears in IPTV/live stream context and contains live subtitle tools:

  • Sync with fast STT
  • Live transcript / translate
  • Transcribe via VoxFrame Cloud when the cloud route is available
  • Benchmark fast STT

Every screen

Every screen contains viewing on other screens and the light family filter:

  • LAN Watch / QR web-player
  • Family filter: off/on
  • Settings

There is also a separate Cast button at the bottom right. It opens the Cast menu for Chromecast, Google TV and DLNA devices on the same network. LAN Watch and Chromecast use the same local HLS base, but LAN Watch is a QR/browser player; Chromecast sends playback to a cast device.

Some labels change when VoxFrame Cloud is enabled and your account allows cloud routes. Local-video tools remain local-video tools; IPTV live transcript and live translate are separate live-stream workflows.

14. Smart Subtitle Assistant

Smart Subtitle Assistant is the recommended route for normal movies and episodes. The button combines Find best subtitle, Generate if missing, Translate and Fix sync into one flow.

The order is deliberately human-first:

  1. VoxFrame first checks embedded tracks and local sidecar subtitles.
  2. Then VoxFrame searches OpenSubtitles for human subtitles in the selected target language.
  3. If the selected language is missing, VoxFrame first tries to find an English human subtitle and translate it to the selected language.
  4. Only when no usable human source exists and generation is allowed does VoxFrame create a subtitle from the audio.
  5. Where possible, sync or quality steps follow so the subtitle fits the video better.

In the subtitle area you see source and confidence explanation. Examples are OpenSubtitles match, hash/release name, low match score, translated, AI generated, synced or quality-fixed. That makes clear why VoxFrame selected a subtitle and whether AI was needed.

Important: for local movies, changing language does not immediately start transcription. If there is no embedded or local SRT in the selected language, VoxFrame asks whether it may search. Then it uses OpenSubtitles and, if needed, translation from an English human subtitle. AI transcription is the last step, not the first.

15. Choosing target language

Use Choose language or the language chip in the subtitle area to select the subtitle target language. Quick chips usually show the current language plus NL, EN, DE and FR. The full list contains more languages.

Current subtitle target languages are:

  • NL Dutch
  • EN English
  • DE German
  • FR French
  • ES Spanish
  • IT Italian
  • PT Portuguese
  • PL Polish
  • TR Turkish
  • AR Arabic
  • SV Swedish
  • NO Norwegian
  • DA Danish
  • FI Finnish
  • RO Romanian
  • CS Czech
  • HU Hungarian
  • EL Greek
  • RU Russian
  • UK Ukrainian
  • JA Japanese
  • KO Korean
  • ZH Chinese
  • HI Hindi
  • ID Indonesian

The chosen language affects:

  • OpenSubtitles search language;
  • translation of loaded subtitles;
  • live translate target language;
  • preferred output for batch translate;
  • video memory for this video.

If you change language during a local movie, VoxFrame first tries to use an embedded track in that language. Then it checks local sidecar subtitles such as Movie.en.srt. If those are missing, VoxFrame asks whether it may search: OpenSubtitles in the target language first, then an English human subtitle as translation source.

If you change language during IPTV/live translate, VoxFrame changes the target language for new live chunks. The stream keeps running; captions already shown are not retranslated retroactively.

16. Using OpenSubtitles

Choose Search human subtitles or OpenSubtitles via VoxFrame Cloud when you want the app to search a human subtitle for the current local video. This is the preferred route: VoxFrame searches human subtitles first and uses AI only when needed.

The normal workflow:

  1. The app creates a video identity with hash, file size, title and year when possible.
  2. The app searches OpenSubtitles in the selected target language.
  3. Candidates are scored on match quality.
  4. If the best match is above the minimum score, that subtitle is downloaded.
  5. The subtitle is loaded and source/confidence is included in status and logs.

If the selected target language has no good match, VoxFrame does not immediately transcribe. The app first checks whether an English human subtitle is available. If it is, VoxFrame can translate that subtitle to the selected language. This is especially useful for languages with fewer OpenSubtitles results.

If OpenSubtitles has nothing usable, the app can try depending on settings:

  • find an English human subtitle and translate it to the target language;
  • only after that, generate a subtitle from the audio.

When OpenSubtitles is temporarily limiting or blocking requests, you may see messages such as HTTP 429, API rate limit exceeded or VoxFrame Cloud HTTP 502 with OpenSubtitles details. This usually means OpenSubtitles is seeing too many requests temporarily. Wait a moment and try again later. If VoxFrame finds an English subtitle in that situation, you can choose to translate it to your selected language.

OpenSubtitles settings are in Settings > Player > Providers.

17. Generating AI subtitles

Choose Generate AI subtitles or Transcribe via VoxFrame Cloud when the local video has no usable human subtitle. Inside Smart Subtitle Assistant, this happens only after embedded tracks, sidecar subtitles, OpenSubtitles and the English translation fallback did not provide a usable solution.

The app can use these routes depending on installation and account:

  1. fast local STT through Purfview Faster-Whisper;
  2. local Whisper.cpp fallback;
  3. cloud transcription when available and configured.

For local STT the app temporarily pauses the video, creates or reuses a video identity and writes a generated subtitle to cache. The generated subtitle is then loaded automatically. For longer tasks the UI shows status and, where possible, progress or a time estimate.

Use AI generation mainly when there is truly no good human source. A good OpenSubtitles match is usually faster, lighter and better synchronized than transcribing again.

Local STT settings are in Settings > Speech to Text.

18. Translating subtitles

Choose Translate in the player menu or subtitle area. A submenu opens with translation actions.

For translation the app needs a translatable subtitle. That can be:

  • a loaded external subtitle;
  • an external subtitle track the app can read;
  • an embedded subtitle track the app can export to SRT;
  • in a live context: an existing live transcript in the overlay.

If source and target are the same concrete language, the app skips translation and reports that the subtitle is already in that language.

If no subtitle is loaded for an IPTV/live stream, VoxFrame does not use the normal translate button. Use Live transcript / translate. For local movies, VoxFrame first asks whether it may search for subtitles so an English human subtitle can be used as translation source.

Translate only

Translate only translates the current subtitle to the selected target language. The translation is saved as a new subtitle file and then loaded.

The app remembers the relation between source and translation. That allows Translation quality check and Export bilingual review to work afterwards. New translated files include the target language in the filename so you can see the language later. VoxFrame also adds a short opening and closing credit: Subs by VoxFramePlayer.

Translate + sync

Translate + sync first does the same as Translate only, then attempts ASR-assisted sync. It uses fast local STT as reference. If local STT is not available, the translated subtitle remains available and the app reports that sync was skipped or failed.

Batch translate all

Batch translate all translates to all supported target languages: NL, EN, ES, FR, DE and IT.

Batch translate is intentionally limited to the compact batch set NL, EN, DE, FR, ES and IT. The full language list is available for normal single-language translation and live translate. If Auto-load preferred batch result is enabled in Settings > Subtitle Tools, the app automatically loads the output for the selected target language. Other outputs remain available as files in the cache/output location.

Translation quality check

Translation quality check compares source and translation using the last remembered translation context. The app creates a quality report with a summary and possible attention points.

This button works only after source and translated subtitles are known, for example after Translate only, Translate + sync, batch translation or an OpenSubtitles translation fallback.

Build smart glossary

Build smart glossary analyzes the source subtitle and suggests terms that should stay stable during translation, such as names, places, organizations and recurring terms.

The suggestion window works like this:

  • each suggestion appears as a checked checkbox;
  • the tooltip shows an example;
  • Add selected adds the chosen terms to the glossary;
  • Cancel leaves the glossary unchanged.

Apply style preset

Apply style preset applies the selected subtitle style preset to the loaded subtitle. The preset is selected in Settings > Player.

Export bilingual review

Export bilingual review creates a review file with source and translation side by side. Use it when you want to review translation quality outside the player.

Auto split/merge

Auto split/merge improves line balance and cue readability. It can split long lines, rebalance line breaks and clean simple formatting.

19. Subtitle quality check and repair

Subtitle quality check checks the loaded subtitle for common problems. The exact behavior depends on Settings > Subtitle Tools.

Typical flow:

  1. The app checks that a subtitle is loaded.
  2. Depending on settings, it creates a local STT reference.
  3. The repair service analyzes errors, warnings and repairable items.
  4. The app always writes a report.
  5. If a repaired subtitle is written, it is named .quality-fixed.srt.
  6. The preview shows a summary and examples before you choose what to do.

The preview can show:

  • error/warning count before repair;
  • error/warning count after repair;
  • number of changes, such as text fixes, timing fixes, removed cues and inserted missing speech;
  • output file;
  • compact before/after examples.

Preview actions:

  • Open report: opens the report file.
  • Only save: saves the repaired subtitle without loading it.
  • Load repaired subtitle: loads the repaired subtitle into the player when available.
  • Close: closes the preview.

20. Sync with fast STT

Sync with fast STT tries to align the loaded subtitle with a fast local STT reference.

Requirements:

  • a local video is loaded;
  • a subtitle is loaded;
  • the fast local STT engine and selected model are available.

This action is not translation. It analyzes speech timing and writes a synced subtitle when the match is reliable enough.

21. Benchmark fast STT

Benchmark fast STT tests the speed of the fast local STT route on a short audio fragment from the current video. The app uses ffmpeg to create a benchmark audio fragment and runs the selected Purfview/Faster-Whisper settings.

The result is saved as the last fast STT status and is visible in Settings > Speech to Text.

22. Exporting subtitles

Export subtitle saves the currently loaded subtitle to a file you choose. For a normal external subtitle, the app copies the existing subtitle file.

For an MKV or another local video with embedded subtitle tracks, you can export a track to SRT:

  1. Open the video.
  2. Open the CC menu.
  3. Choose the embedded subtitle track you want to keep, for example Dutch (subrip) (embedded).
  4. Open the player menu.
  5. Choose Export subtitle.
  6. Choose the save location. The app exports the selected embedded track as .srt.

The app uses the source extension as suggested extension. If there is no normal loaded subtitle or selected embedded track, or if the source file no longer exists, the app shows a message.

Export only normal loaded subtitles; live IPTV captions are temporary. Live captions from IPTV/live transcript are not saved with this normal export button.

23. Opening an IPTV playlist

Choose Open IPTV playlist in the player menu.

The app opens the Open IPTV playlist window. There you can:

  • paste an M3U/M3U8 URL and choose Load URL;
  • choose a local .m3u or .m3u8 file with Open file;
  • close with Cancel.

After loading, the app opens the channel picker.

24. Choosing IPTV channels

The channel picker first shows groups when groups are available. You can:

  • search by group;
  • open a group with Open group;
  • double-click or use Enter;
  • choose Other playlist to load another playlist;
  • choose Cancel to return.

Inside a group or when there are no groups, the app shows channels. You can:

  • search by channel name, group, tvg-id or URL;
  • return to the group overview with Back to groups;
  • open the selected stream with Open stream;
  • double-click or use Enter.

25. IPTV live transcript / translate

Live transcript / translate is only for IPTV live streams. It is not for local video files. For local videos use Generate AI subtitles, Sync with fast STT or normal subtitle translation.

The live options window contains:

  • Translate live captions: turns live translation on.
  • Subtitle setup: chooses the transcription profile.
  • Spoken language: chooses the language being spoken; use Auto detect when you do not know it.
  • Buffer mode: shows the synchronized live mode used for a remote stream.
  • Live subtitle delay: adds extra delay to live captions.
  • Target language: chooses the live translate target language.
  • Start: starts the session.
  • Cancel: closes without starting.

The profiles currently shown are:

  • LocalBest: recommended local quality. Audio stays on this PC and the profile uses the best tested local live setup.
  • LocalLight: a lighter local setup for a weaker PC/GPU. It uses the current local speech settings; choose a smaller model under Settings > Speech to Text if necessary.
  • DirectOpenAi: uses your own saved OpenAI API key for direct live transcription with word timing. OpenAI bills this usage to you; VoxFrame Cloud credit is not used.
  • CloudStable: recommended cloud quality. It transcribes 10-second audio chunks through the VoxFrame Cloud proxy.
  • CloudFilmSpeakers: uses 12-second chunks for more dialogue context. Despite the profile name, it does **not** identify, name or label speakers.

DirectOpenAi is shown only when VoxFrame Cloud is off and an own OpenAI API key is saved. Cloud profiles are only shown when the account is allowed to use VoxFrame Cloud. For these profiles, each audio chunk is sent over HTTPS to VoxFrame and processed by OpenAI behind the VoxFrame proxy. The app does not use a direct provider-credential route for this workflow: processing stays behind the VoxFrame proxy. Audio usage is charged only after a successful transcription; live translation is charged separately.

For a remote live stream, synchronized playback is normally about 30 seconds behind live with a local or DirectOpenAi profile and at least 60 seconds behind live with a cloud profile, plus transcription and optional translation time. These are quality-oriented buffered profiles, not zero-delay captions.

Choose the spoken source language explicitly when you know it; this usually gives more predictable recognition. Auto detect is available when the source language is unknown. The spoken source language and translation target language are separate choices.

The main player remains intended as a live player for IPTV. VoxFrame can buffer internally for stable live captions, but the local player is not meant as a timeshift player where you rewind minutes while watching normally. Timeshift belongs in the LAN Watch web-player, where a browser can seek back within the available HLS buffer.

Live subtitle delay choices:

  • 0 seconds
  • +1 second
  • +2 seconds
  • +3 seconds
  • +5 seconds

During live transcription, captions are shown as an overlay. Temporary SRT output is used internally for the session, but live captions are intended as screen overlay. If the IPTV line temporarily stalls or a segment has no audio, VoxFrame tries to keep buffering and waits for the next usable audio instead of ending the whole session immediately. Catch-up is bounded: if processing falls too far behind the playback window, VoxFrame can deliberately skip an audio chunk that is already too late instead of allowing delay and memory use to grow without limit. This can cause a short caption gap on an overloaded PC or an unstable connection.

The status indicates what is happening:

  • Listening: the session is active and waiting for usable speech.
  • No speech yet: chunks were checked but no clear speech was found; this is not automatically an error.
  • Degraded: part of the workflow is temporarily limited; source captions stay active when translation cannot keep up.
  • Reconnecting: VoxFrame is making a bounded reconnect attempt.
  • Failed: the live-caption workflow stopped because of a technical problem.

If you change target language while live translate is running, new live chunks use the new language. The video keeps playing and captions already shown remain as they were.

26. LAN Watch / QR web-player

LAN Watch / QR web-player creates a local browser player for a phone, tablet, laptop or smart-TV browser on the same Wi-Fi/LAN network. The app shows a QR code and also places the link below the QR code in small clickable text; the link is copied to the clipboard as well.

The web-player uses local HLS segments from your own player. It does not create a public cloud stream. Devices must be able to reach the VoxFrame computer over the local network; firewall rules, guest Wi-Fi and separated VLANs can block the link.

Local video

For local movies, LAN Watch starts at the current position. If a normal external subtitle is loaded and captions are enabled, VoxFrame creates a WebVTT track for the web-player. Embedded MKV subtitles are not streamed automatically; export such a track to SRT first and load that as a normal subtitle if you want to see it through LAN Watch.

The local player temporarily hands playback over to LAN Watch. If starting fails, VoxFrame tries to restore local playback.

IPTV/live stream

For IPTV/live streams, LAN Watch creates a separate live HLS buffer with about 15 seconds playback delay, segments of about 5 seconds and a hard cache limit of 10 GB. The web-player can seek back inside the available buffer and continue from that chosen point. Pausing in the web-player does not stop the stream; the buffer keeps filling while the session is active and the limit is not exceeded.

If live captions are active, VoxFrame writes a live .vtt subtitle track for LAN Watch and refreshes it roughly every two seconds. That lets live subtitles appear in the browser player too. The main player can be paused while the stream and subtitle buffer keep running.

When you stop LAN Watch or close the player, VoxFrame removes the temporary LAN Watch folder. With a shared live buffer, the main live session remains as long as it is still active; stopping the player itself also clears those temporary buffers.

27. Chromecast / Cast

Use the Cast button at the bottom right to open the local Cast menu. VoxFrame searches the same network for Chromecast, Google TV and DLNA renderers. Discovery uses mDNS for Google Cast and SSDP for DLNA.

When you select a Chromecast or Google TV, VoxFrame first starts a local HLS stream and then sends a LOAD command to the Chromecast Default Media Receiver. On success, the TV plays the local HLS stream and local playback is handed off to the TV.

Chromecast is different from LAN Watch. LAN Watch is the QR/browser player for any device with a browser; Chromecast is direct cast playback to a cast device. Both stay local on your network and do not touch other virtual servers or cloud streams.

Subtitles for Cast work through a WebVTT track when a normal subtitle is active and captions are enabled. For live IPTV, VoxFrame can use a burn-in/ compatibility route where needed to get buffered live subtitles onto the cast device more reliably. Embedded MKV subtitles are not the same as a normal loaded subtitle; export them to SRT first when you want maximum compatibility.

If no cast devices appear, check that the TV/Chromecast is awake, on the same network, mDNS/SSDP is not blocked by the router and Windows Firewall allows local incoming connections.

28. Family filter

Family filter: off/on is a light family filter. When enabled, VoxFrame softens known profanity in live captions and in a temporary subtitle track. Original subtitle files are not overwritten.

The filter is an optional viewing aid, not perfect parental control. Review important content yourself when full control is needed.

29. Stopping AI/STT/live tasks

When AI, STT, translation or live transcript work is running, the player shows Stop current task. Click it to cancel the running task.

If a live caption overlay is active, stopping clears the overlay and stops the live session state.

30. Opening and closing Settings

Open Settings from the player menu.

The settings window is an overlay inside the app. Close it with the close button or Esc.

Settings are saved in different ways:

  • checkboxes immediately after changing;
  • dropdowns immediately after changing;
  • text fields when the field loses focus;
  • local STT model choices immediately after changing.

The left side contains these sections:

  • Account
  • Player
  • Subtitle Tools
  • Speech to Text
  • About

31. Settings > Account

This tab manages license activation, account status, purchases, downloads and Premium Cloud usage.

License

Fields and buttons:

  • Status: shows Demo, Trial, Licensed, Expired or Pending.
  • Activation key: input field for a VoxFrame activation key.
  • Account e-mail: optional account e-mail address.
  • Server: shows the API base used by the app.
  • Device: shows device status.
  • Activate: activates the entered key on this device.
  • Refresh license: refreshes license status online.
  • Log out: clears local account data and tries to deactivate the device server-side.

The app stores the license token locally through the credential store. Do not share logs or screenshots containing activation keys.

Purchase

The purchase section shows Stripe state and available plans.

Premium options

Plan cards:

  • Player License
  • Cloud Plus
  • Cloud Pro

For Player License, Buy Player opens Stripe checkout directly when the app has either a license token or an account e-mail. If both are missing, the app asks you to enter the account e-mail first.

The Player License costs EUR 24.95 once. After confirmed payment, the same installed Demo upgrades automatically to Player Pro. No separate Pro player is installed. The licence details are also sent to the account e-mail for recovery or a new installation.

For cloud plans, the app first asks for payment form:

  • Monthly
  • One-time
  • Yearly

For Cloud Plus/Pro, Stripe opens only after you choose a payment form. A direct qualifying Cloud purchase also unlocks Player Pro automatically; it does not require you to buy Player first. The Cloud entitlement stays separate from the permanent Player Pro entitlement. One-time is a 30-day Cloud pass. Yearly one-time is 365 days with a monthly hard-capped reset.

Retrieve purchase

Retrieve purchase checks whether a completed Stripe payment is ready to be linked to the app.

Use it after returning from the Stripe success page or when the browser has forwarded you back to the app.

Downloads

Buttons:

  • Check release: asks the server whether a release is available for this account.
  • Download release: downloads an entitled release when available and verifies checksum when possible.

These buttons depend on license state and work only when the server offers a release for this account.

Premium Cloud

Options and fields:

  • Use VoxFrame Cloud for premium API usage: enables cloud routes when entitlement allows it.
  • Plan: shows the current plan.
  • Credits/minutes: shows local balance information.
  • Usage: shows usage summary.
  • Refresh usage: loads current usage.
  • Manage account: tries to open the Stripe billing portal when available for this license. If the server cannot create a Stripe portal, the app opens the VoxFrame account page as fallback and shows a status message under the button.

When Cloud is on, supported functions use the VoxFrame cloud route instead of your own provider keys, as long as license and cloud token are valid.

32. Settings > Player

The Player tab contains behavior, preferred languages, subtitle style, glossary, match threshold, provider keys and cache.

Player behavior

Settings:

  • App language: interface language. Choices: English, Nederlands, Deutsch, Français.
  • Automatically search: search subtitles automatically when possible.
  • Auto-pick best subtitle: load the best matching subtitle automatically.
  • Create SRT when no match exists: generate a subtitle when no good match exists.
  • Auto-translate: translate automatically when the workflow supports it.
  • Preferred languages: comma-separated language codes for subtitle search, for example nl,en.
  • Subtitle style: style preset for subtitle formatting.
  • Glossary / name lock: words or translations that must remain stable.
  • Min. match: minimum confidence for automatic subtitle selection.

Subtitle style

Style choices:

  • Balanced
  • Compact
  • Reading
  • Large

Glossary / name lock

Use one rule per line:

  • a name to keep, for example VoxFrame
  • or a fixed translation, for example The Order = De Orde

The glossary can be used during translation and quality review.

33. Settings > Player > Providers

The provider section contains API keys and provider login data.

Fields:

  • OpenAI API key: your own OpenAI key. Leave empty to keep an existing saved key.
  • OpenAI text model: model for text translation/selection.
  • Load models: refreshes model choices.
  • OpenAI transcription: transcription model choice.
  • OpenSubtitles key: API key for OpenSubtitles.
  • OpenSubtitles login: username.
  • Password: OpenSubtitles password. Leave empty to keep the stored password.

Buttons:

  • Save keys: saves entered provider settings.
  • Clear keys: removes saved provider keys.
  • Test OpenSubtitles: validates OpenSubtitles credentials and API key.

When Use VoxFrame Cloud is on and your account allows the cloud route, the app uses VoxFrame Cloud for supported actions. Provider keys are still useful for own-key/local routes.

34. Settings > Player > Cache

The cache section shows the subtitle cache folder. Clear cache removes the cache folder and recreates it.

Use this when:

  • you want to clean old downloads or generated subtitles;
  • you want to test whether a workflow really downloads/generates again;
  • the cache may contain corrupt or outdated files.

35. Settings > Subtitle Tools

This tab controls repair, translation review, live translate quality and batch behavior.

Repair mode

Choices:

  • Safe: minimal repair. No ASR reference, no missing speech insertion and no automatic load choice.
  • Standard: default VoxFrame behavior. Repairs text/timing, uses ASR when available, writes .quality-fixed.srt and asks before loading repaired subtitles.
  • Aggressive: stricter. Uses sharper thresholds, splits earlier and uses ASR assistance when available. Auto-load remains off so you can review the report first.

Repair checkboxes

  • Use local STT reference: creates a local STT reference for repair when possible.
  • Insert missing speech: may insert missing ASR cues when repair supports it.
  • Report only: creates only a report and writes no repaired subtitle.
  • Ask before loading repaired subtitle: asks before loading the repaired subtitle.
  • Never overwrite original: original subtitle is never overwritten.
  • Always save report: a report is always saved.

The last two safety settings are forced on by the app.

Translation review

Settings:

  • Live quality: quality/latency choice for live translate.
  • Use glossary / name lock: uses the glossary during translation.
  • Use scene context: uses surrounding context during normal subtitle translation.
  • Suggest glossary candidates: lets quality reports suggest glossary candidates.
  • Quality report after translation: automatically creates a quality report after translation.
  • Review suspicious cues: marks suspicious cues for review.
  • Auto-load preferred batch result: automatically loads the output for the selected target language after batch translation.
  • Fast fallback model for live translate: uses a faster fallback model when live translate risks falling behind.

Live translate quality

Choices:

  • Fast: fastest live model first. Good when captions mainly need to keep moving.
  • Balanced: default. Uses gpt-5.4-mini first and gpt-5.4-nano as fast fallback when live translate risks falling behind.
  • Better: stays with the better live model and disables fast fallback. Use when quality matters more than latency.

Reset subtitle tools

Reset subtitle tools restores this tab to defaults:

  • repair mode Standard;
  • STT reference on;
  • insert missing speech on;
  • report-only off;
  • ask before loading on;
  • glossary/name lock on;
  • scene context on;
  • glossary suggestions on;
  • automatic quality report off;
  • suspicious cue review off;
  • batch preferred output auto-load on;
  • live quality Balanced;
  • fast fallback for live translate on.

36. Settings > Speech to Text

This tab manages local STT engines and models.

Fast local engine

The fast local engine is Purfview Faster-Whisper.

Fields and buttons:

  • Engine: shows the engine and whether it is available.
  • Install fast engine: downloads and installs the engine.
  • Fast model: chooses the model.
  • Install selected fast model: downloads the chosen model.
  • Source language: chooses language or auto-detect.
  • Device: chooses Auto / CUDA if possible, CUDA or CPU.
  • Compute: chooses Auto, float16, int8_float16, int8 or float32.
  • Purfview args: extra arguments for advanced use.

Fast model choices:

  • large-v3-turbo - 1.6 GB
  • small - 472 MB
  • medium - 1.5 GB
  • large-v2 - 2.9 GB
  • large-v3 - 3.1 GB
  • base - 142 MB
  • distil-large-v3 - 1.5 GB English

By default the app tries to choose large-v3-turbo when available.

Source language choices:

  • Auto detect
  • English
  • Dutch
  • German
  • French
  • Spanish
  • Italian

The hardware advice line checks whether CUDA is available. If device and compute are both Auto, the app can apply advice automatically.

Fallback engine

The fallback engine is Whisper.cpp.

Fields and buttons:

  • Engine: shows Whisper.cpp and availability status.
  • Install fallback engine: downloads the fallback engine.
  • .bin model: chooses the fallback model.
  • Install selected .bin: downloads the chosen .bin model.

Fallback model choices:

  • large-v3-turbo-q5_0 - 547 MB
  • small-q5_1 - 190 MB
  • base - 141 MB
  • small - 465 MB
  • large-v3-turbo - 1.5 GB

By default the app tries to choose large-v3-turbo-q5_0 when available.

Status and progress

At the bottom of the Settings overlay the app shows status and download progress. During downloads, buttons are temporarily disabled. After completion, model choices and availability labels are loaded again.

37. Settings > About

The About tab contains version, maker, updates, help and diagnostics.

Items:

  • Version: shows the app version.
  • Maker: shows William Baars / VoxFrame.
  • Updates: update-check status.
  • Check for updates: checks via account/license whether a release is available.
  • Account: opens the online account page.
  • Website: opens the website.
  • Help: opens online help.
  • Credits: shows used technologies.
  • Open logs: opens the log folder for support/diagnostics.
  • Export safe support log: writes a newly sanitized support copy to the Downloads folder.
  • Delete logs: removes the diagnostic log files.

The help button opens online help so guidance can be updated without a new app build.

38. Logs and diagnostics

Use Settings > About > Open logs to inspect the log folder yourself. Prefer Export safe support log when you need to send diagnostics to support; it creates a separate sanitized text file in the Downloads folder. Delete logs removes the current and rotated diagnostic logs.

Logs help with support questions around:

  • OpenSubtitles search/download;
  • STT/transcription;
  • live translate;
  • LAN Watch and local HLS buffer;
  • Chromecast/Google TV/DLNA discovery and cast start;
  • license/cloud status;
  • downloads and checksum verification;
  • subtitle repair and quality reports.

Normal logging does not include caption text, full remote URLs, absolute local paths, provider keys, license/access tokens or payment details. Remote addresses are reduced to safe diagnostic information, and the support export sanitizes the collected files again, including older log lines.

Logging is bounded. runtime.log rotates at about 2 MB, up to three older rotated files are retained, and the oldest file is discarded automatically.

39. Common workflows

Local movie with existing subtitle

  1. Open the video.
  2. Check whether a sidecar/embedded subtitle was selected automatically.
  3. Otherwise choose Open subtitle.
  4. Use CC to set track, delay and position.
  5. Use Subtitle quality check when the subtitle is messy.
  6. Optionally choose Choose language and then Translate.

Local movie without subtitle or wrong language

  1. Open the video.
  2. Choose the wanted language with Choose language.
  3. Choose Smart Subtitle Assistant.
  4. VoxFrame checks embedded and local subtitles.
  5. Then VoxFrame searches OpenSubtitles in the selected language.
  6. If that language is missing, VoxFrame translates an English human subtitle when possible.
  7. Only if no good human source exists is AI generation used.
  8. Then check sync through CC delay, Sync with fast STT or Subtitle quality check.

Translate and review subtitles

  1. Load a source subtitle.
  2. Choose the target language through Choose language.
  3. Fill glossary/name lock in Settings > Player when names matter.
  4. Choose Translate > Translate only.
  5. Choose Translation quality check.
  6. Choose Export bilingual review for source/translation side by side.
  7. Use Apply style preset or Auto split/merge for readability.

Change language while watching

  1. Click the language chip or Choose language.
  2. Choose the new language.
  3. For local video, VoxFrame first selects an embedded track if one exists.
  4. Then VoxFrame searches for a local sidecar subtitle.
  5. If none exists, VoxFrame asks whether it may use OpenSubtitles and possibly English translation.
  6. For live IPTV/live translate, the language changes for new live chunks without stopping the stream.

Watch IPTV with live transcript

  1. Choose Open IPTV playlist.
  2. Paste a playlist URL or open a .m3u/.m3u8 file.
  3. Choose group and channel.
  4. Start the stream.
  5. Choose Live transcript / translate.
  6. Choose LocalBest, LocalLight, CloudStable or CloudFilmSpeakers.
  7. Choose the spoken language, or leave it on Auto detect.
  8. Turn on Translate live captions if you want translation.
  9. Choose the target language and start. Allow roughly 30 seconds of local or at least 60 seconds of cloud buffer delay, plus processing.
  10. Use the CC menu for live delay if captions are consistently early or late.

Watch IPTV through LAN Watch

  1. Start the IPTV channel in VoxFrame.
  2. Start live transcript/translate if you want live subtitles in the LAN player.
  3. Choose LAN Watch / QR web-player.
  4. Scan the QR code or open the small clickable link under the QR code.
  5. Use the settings button in the web-player for extra player options.
  6. Pausing in the web-player is allowed; the live buffer keeps filling while LAN Watch is active.
  7. Stop LAN Watch when you want to return to the local player.

Use Chromecast

  1. Make sure the Chromecast, Google TV or DLNA TV is on the same network.
  2. Open a video or IPTV stream.
  3. Load an external subtitle if you want to send subtitles along.
  4. Click the Cast button at the bottom right.
  5. Choose the device when it appears in the list.
  6. If cast does not start, use LAN Watch as a browser fallback or check firewall/network.

Prepare local STT

  1. Open Settings > Speech to Text.
  2. Install Fast local engine.
  3. Choose a fast model, for example large-v3-turbo.
  4. Install the selected model.
  5. Leave Source language on Auto detect or choose a language.
  6. Leave Device and Compute on Auto unless you deliberately want CUDA/CPU.
  7. Optionally install the Whisper.cpp fallback engine and a .bin model.
  8. Open a video and choose Benchmark fast STT to test the route.

40. Troubleshooting

The video does not open

Check whether the file type is supported. Supported local video extensions are .mp4, .mkv, .avi, .mov, .webm, .m4v and .ts.

The subtitle does not load

Check whether the file has a supported subtitle format: .srt, .vtt, .webvtt, .ass or .ssa. If the file is corrupt, the loader may reject it.

OpenSubtitles does not work

Check in Settings > Player > Providers:

  • OpenSubtitles key;
  • username/login;
  • password;
  • Test OpenSubtitles.

Also check the minimum match. A Min. match value that is too high can reject good but imperfect candidates. With HTTP 429, API rate limit exceeded or a VoxFrame Cloud HTTP 502 containing OpenSubtitles details, OpenSubtitles is usually rate-limiting temporarily. Wait a moment and try again later. If VoxFrame finds an English subtitle, choose Translate from English to continue.

AI subtitle generation does not work

Check:

  • whether the source is a local video file;
  • whether a local STT engine/model is installed;
  • whether ffmpeg is available;
  • whether OpenAI/VoxFrame Cloud is configured when local STT does not work.

Translation does not work

Check:

  • whether there is a translatable subtitle;
  • whether source and target are not the same;
  • whether OpenAI key or VoxFrame Cloud is available;
  • whether Use VoxFrame Cloud matches your account status.

Translation quality check says context is missing

This function needs both source and translated subtitle. First run a translation through Translate only, Translate + sync, batch translate or an OpenSubtitles translation fallback.

Live transcript does not appear

Check:

  • whether the current source is an IPTV/live stream context;
  • whether ffmpeg is available;
  • whether transcription provider or cloud route works;
  • whether captions are not turned off with C or the captions toggle.

Live captions are early or late

Open the CC menu and adjust live delay with -0.5s or +0.5s. In the start window you can also choose Live subtitle delay in advance.

LAN Watch link or QR does not appear

Check that a video or IPTV stream is loaded, ffmpeg is available and no old cast/LAN session is still stopping. If the QR appears but another device cannot open the link, check same Wi-Fi/LAN, Windows Firewall, guest network and router isolation.

No subtitles in LAN Watch

For local movies, a normal subtitle must be loaded and captions must be on. Embedded MKV subtitles are not streamed automatically; export them to SRT first and load that SRT. For IPTV, live captions must be active before LAN Watch starts so VoxFrame can refresh the live .vtt.

LAN Watch stutters or falls behind

For IPTV, the source line itself can be unstable. VoxFrame tries to keep the buffer running and skip missing audio, but Wi-Fi, stream quality, firewall scans or slow disk access can delay HLS segments. Stop LAN Watch and start it again if the web-player gets outside the buffer.

Chromecast does not appear or start

Check that Chromecast/Google TV is on, on the same network and that mDNS is not blocked. For DLNA, SSDP must be reachable. If direct cast does not work, try LAN Watch / QR web-player in the TV browser as fallback.

Settings do not seem saved

Many settings save automatically. Text fields usually save when the field loses focus or Settings closes. Close and reopen Settings to check whether the value was normalized.

41. Glossary

  • ASR: Automatic Speech Recognition; speech recognition from audio.
  • STT: Speech to Text; the same domain as ASR, focused on transcription.
  • Cue: one subtitle entry with start time, end time and text.
  • Sidecar subtitle: a loose subtitle file next to the video.
  • Embedded track: a subtitle track inside the video file.
  • Target language: language used for translation.
  • Glossary/name lock: terms that are kept stable during translation.
  • Quality report: report with subtitle or translation issues.
  • Buffered sync: live route where video, audio and captions stay on one short-buffer timeline.
  • OpenSubtitles-first: search human subtitles first; AI translates or generates only if needed.
  • LAN Watch: local QR/browser player through HLS on the same Wi-Fi/LAN network.
  • HLS: streaming format with small video segments and a playlist file.
  • WebVTT: subtitle format browsers and cast devices can read well.
  • Chromecast / Google Cast: cast protocol for Chromecast and Google TV devices.
  • DLNA: local network protocol for some smart TVs and media renderers.
  • Family filter: optional light profanity filter for live captions and temporary subtitle tracks.