Translating Subtitles

Found the perfect tutorial, but it's subtitled in a language you don't read? Fetchii translates subtitles into your language — by default entirely on your Mac, offline and free. Timing is preserved: every translated line stays exactly on its original cue.

Picking Your Language

In Settings → Intelligence → Translation, choose the target language under "Into". Fifteen languages are available: English, Simplified and Traditional Chinese, Japanese, Korean, Spanish, French, German, Italian, Portuguese (Brazil), Russian, Dutch, Polish, Turkish, and Ukrainian.

Then translate a video from its Intelligence popover — click the row's AI chip — with the Translate Subtitles to [language] button. Or flip on Translate subtitles automatically to have every newly generated subtitle translated for you. Translation works on subtitles Fetchii generated (see Generating Subtitles).

When it's done, the popover shows Translated · [language] and a Show Translated File button.

The Three Engines

Fetchii gives you a choice of translation engine under "Translate with":

Engine Where it runs Notes
Apple On your Mac The default. Fast and free; requires macOS 15 and uses the macOS translation languages you've installed.
On-device On your Mac Uses Fetchii's local Language model. Offline and free. Longer videos take a few minutes; progress shows in the popover and can be cancelled.
Online Your own provider Optional. Bring your own DeepL, OpenAI, or Anthropic API key for provider-grade quality.

Which one should you use? Stay on Apple for everyday use. Switch to On-device if you translate a lot of East Asian content, want to work fully offline, or are on macOS 14 (where the Apple engine isn't available). Reach for Online only if you have an API key and want that specific provider's output.

On-Device Translation, in Detail

The on-device engine uses the Standard or High quality Language model size — the Compact size isn't offered for translation because its quality drops on harder language pairs. If Compact is selected, On-device disappears from the Translate with choices, Fetchii keeps Apple as the engine, and the section says why.

Translation runs sentence by sentence in small batches, with live progress in the popover. If a batch can't be translated cleanly, Fetchii quietly falls back (to the Apple engine where available, or to the original text) rather than corrupting your subtitle timing — you never end up with misaligned cues.

About the Online Engine

A few plain facts, because this is the one Intelligence feature that can touch the network:

  • It's off by default and only works after you choose Online, pick a Provider, and paste in your own API key (Save Key). A Get an API key link takes you to the provider.
  • Subtitle text goes directly from your Mac to the provider you chose (DeepL, OpenAI, or Anthropic). Fetchii has no server in the middle and never sees your text.
  • Your key is stored in the macOS Keychain, not in the app's settings files.
  • Provider usage is billed by the provider, on your account, at their rates.

If that trade-off isn't for you, simply don't set it up — the two on-device engines cover everything else.

Troubleshooting

  • "On-device translation requires macOS 15 or later" under the Apple engine — the system translation framework is only available from macOS 15 on. Use the On-device engine on macOS 14.
  • "On-device translation needs the Standard model" — switch the Language model size from Compact to Standard under On-Device Models in the same settings page.
  • A translation failed mid-way — the popover shows "Translation failed"; click Translate Subtitles to [language] again. Transient failures usually clear on a second run.
  • The language you want isn't offered by Apple's engine — install it in System Settings (Manage in System Settings… takes you there), or use the On-device engine.

Try it with your next video

Free for 14 days · macOS 14.6 or later

Almost ready to fetch.

Fetchii is in the final stretch before launch. Drop your spot in line and we'll bark the moment it's downloadable.