An App Pro feature
AI subtitle translation
Generate translated subtitles for a video and have them play in sync with the picture. When the video has a subtitle track, that track is translated; when it has none, the audio is transcribed first and then translated. The subtitles are saved in the video's own folder, so any other device that opens the same video loads them directly.
Where it works
Which apps have it
The CloudDrive2 apps for iPhone, iPad, Mac, Apple TV, Apple Vision Pro, Windows, Android phones and TVs, and Meta Quest. AI subtitle translation is part of App Pro: buy it once, and every device signed in to the same CloudDrive account has it.
AI translation may not be fully accurate; quality depends on the model you use.
Transcription and translation are done in one of two ways: by the models built into your device, or by external APIs you configure yourself. CloudDrive2 runs no transcription or translation servers and does not call such services on your behalf. To use an external API, you get the API key from the provider yourself, and that provider is responsible for the charges and for how it handles the data.
Translate from
A subtitle track, or the audio
Choose under Translate From. Translating a subtitle track is faster and more accurate than transcribing audio.
Auto (prefer subtitle)
The default. If the video has a subtitle track, that is translated; if not, the audio is transcribed.
Subtitle track
Translates a subtitle the video already has, such as a foreign-language track. Blu-ray PGS subtitles are pictures, so they are read with text recognition (OCR) first and then translated.
Audio track
Transcribes the dialogue, then translates the text into the target language. On 5.1 and 7.1 tracks you can transcribe the dialogue channel only, so music and effects get in the way less.
The Spoken Language is the language spoken in the video; the Target Language is the subtitle language to generate. Both have defaults in Settings and can be changed for each video. Picking the actual spoken language gives more accurate transcription.
Models
Transcription and translation on each platform
Transcription and translation are separate steps, and each can run on the device or through a remote API. On-device models are free, and the audio and subtitle text stay on the device.
| Platform | Transcription | Translation |
|---|---|---|
| iPhone and iPad | On-device (Apple, iOS / iPadOS 26), or a remote API | On-device (Apple, iOS 18), or a remote API |
| Mac | On-device (Apple, macOS 26), or a remote API | On-device (Apple, macOS 15), or a remote API |
| Apple Vision Pro | On-device (Apple, visionOS 26), or a remote API | On-device (Apple Intelligence, visionOS 26), or a remote API |
| Apple TV | On-device (Apple, tvOS 26), or a remote API | Remote API only |
| Windows | On-device (Whisper, model downloaded to the PC), or a remote API | A remote API. Translation into English can be done on the PC by Whisper itself |
| Android phones, tablets and TVs | On-device (Whisper, with GPU acceleration), or a remote API | On-device (ML Kit), or a remote API |
| Meta Quest | On-device (Whisper), or a remote API | A remote API is recommended |
Whisper models
On-device transcription on Windows, Android and Quest uses Whisper, in Tiny, Base, Small, Medium and Turbo sizes. A larger model runs slower and takes more storage; see the comparison below for how accurate each one is. Download one in Settings before first use.
With GPU acceleration set to Auto on Android, the app measures the GPU and the CPU on your device and uses whichever is faster.
Apple on-device models
iPhone, iPad, Mac and Vision Pro use the speech recognition and translation models built into the system. The first time you use a language, its language model is downloaded; progress shows in the setup wizard.
Apple TV has no on-device translation model. Set up a remote API on the Apple TV, or generate the subtitles on an iPhone, iPad or Mac first — see saving and reuse.
Transcription accuracy compared
The table below is from one measured test: a 10-minute clip of a Japanese film (Yasujirō Ozu's Tokyo Story, with both dialogue and music), with each result compared character by character against a hand-checked Japanese transcript. A lower error rate is more accurate; lines recognised is the share of the checked lines that were picked up; timing offset is the median gap between when a subtitle appears and when the line is actually spoken.
| Transcription | Runs on | Error rate | Lines recognised | Timing offset | Cost |
|---|---|---|---|---|---|
| Qwen qwen-audio-3.0-asr-flash | Remote API | 12.2% | 100% | 0.22 s | ¥0.00022/s, about ¥0.79/h (Beijing); ¥0.00026/s, about ¥0.94/h (Singapore) |
| Qwen qwen-audio-3.1-asr-flash | Remote API | 12.3% | 94% | 0.20 s | Billed by token: input ¥0.8, output ¥2.7 per million tokens (Beijing); input ¥1.094, output ¥3.427 per million tokens (Singapore) |
| Apple on-device | iPhone, iPad, Mac and others | 13.9% | 92% | 1.20 s | Free |
| Qwen fun-asr-flash | Remote API | 18.4% | — | — | ¥0.00022/s, about ¥0.79/h (Beijing); ¥0.00026/s, about ¥0.94/h (Singapore) |
| Qwen qwen3-asr-flash | Remote API | 24.6%, with repeated output during music | — | — | ¥0.00022/s, about ¥0.79/h (Beijing); ¥0.00026/s, about ¥0.94/h (Singapore) |
| Whisper Turbo | On-device | 24.5% | — | — | Free |
| Whisper Small | On-device | 32.8% | — | — | Free |
| Whisper Medium | On-device | 35.0%, with repeated output | — | — | Free |
| Whisper Base | On-device | 43.4% | — | — | Free |
| Whisper Tiny | On-device | 71.7%, with repeated output | — | — | Free |
These are results for one film in one language; other films and languages will differ. A dash means the value was not measured.
Costs are Alibaba Cloud Model Studio list prices as of 24 September 2026, in RMB, billed on the length of audio sent to the service (music with no dialogue included); hourly figures are converted from the per-second price. The Beijing region includes 10 free hours within 90 days of activation (1 million tokens for qwen-audio-3.1-asr-flash). Prices can change; see Model Studio pricing. Translation is billed separately: in this test, translating with qwen3.8-flash cost about ¥0.05 per hour of film. On-device models run on your own device and have no service charge.
Only a few Qwen models were tested as remote APIs. Other remote services were not tested, and they may do better or worse. The table only compares on-device models with remote APIs; it does not mean we recommend Qwen as a remote API.
qwen-audio-3.0-asr-flash, qwen-audio-3.1-asr-flash and fun-asr-flash will be available in a future release; the current version cannot use them yet.
On Windows, Android and Quest, the smaller models that can keep up (Tiny, Base, Small) often mishear dialogue, especially under background music and in languages other than English, and may repeat a phrase or invent lines during music. Turbo is more accurate, but too slow on most phones and TV boxes to keep up with playback, and on a computer it needs a capable graphics card to keep up. Medium is just as slow, and in the test above it was no more accurate than Small.
For accurate subtitles, use a remote speech recognition API, or generate the subtitles with Apple on-device recognition on an iPhone, iPad or Mac, save them next to the video, and watch on the other device.
Remote APIs
Using a remote API
In the Live Translation settings, transcription and translation each get their own provider, endpoint, model and API key, and the two can use different providers. The app has presets for the services below: pick one and the endpoint and default model are filled in, so only the API key is left. You can also type an endpoint and a model directly instead of picking from the list.
Built-in translate providers
Translation uses an OpenAI-compatible chat completions endpoint. The first model listed for each provider is the default.
| Translate provider | Preset models |
|---|---|
| OpenAI | gpt-5.6-luna, gpt-5.6-terra, gpt-5.6-sol, gpt-4o-mini |
| DeepSeek | deepseek-v4-flash, deepseek-v4-pro |
| Google Gemini | gemini-3.7-flash, gemini-3.5-flash-lite, gemini-3.6-flash, gemini-2.5-flash |
| xAI (Grok) | grok-4.6, grok-4.5 |
| Groq | openai/gpt-oss-20b, openai/gpt-oss-120b, qwen/qwen3.6-27b |
| OpenRouter | google/gemini-3.7-flash, deepseek/deepseek-v4-flash, z-ai/glm-5.3-flash, qwen/qwen3.8-flash |
| Mistral | mistral-small-latest, mistral-medium-latest, mistral-large-latest |
| SiliconFlow | deepseek-ai/DeepSeek-V4-Flash, Qwen/Qwen3.5-35B-A3B, deepseek-ai/DeepSeek-V4-Pro |
| Anthropic (Claude) | claude-haiku-4-5, claude-sonnet-5, claude-opus-5 |
| Qwen (Intl / China) | qwen3.8-flash, qwen-flash, qwen-plus, qwen3.8-max |
| Zhipu (BigModel) | glm-4.7-flash, glm-5.3-flash, glm-4.7-flashx, glm-5.3 |
| Ollama (local) | qwen3.8, gemma3, glm-5.3-flash, llama3.2 |
| LM Studio (local) | local-model |
| MTranServer (self-hosted) | Your own translation server; no model to choose — enter the server URL and token (the token is optional) |
Built-in transcribe providers
Transcription uses an OpenAI-compatible audio transcriptions endpoint.
| Transcribe provider | Preset models |
|---|---|
| OpenAI Whisper | whisper-1, gpt-transcribe, gpt-4o-transcribe, gpt-4o-mini-transcribe |
| Groq | whisper-large-v3-turbo, whisper-large-v3 |
| Speaches (self-hosted) | Systran/faster-whisper-base, deepdml/faster-whisper-large-v3-turbo-ct2, Systran/faster-whisper-large-v3, Systran/faster-whisper-small, Systran/faster-whisper-tiny |
| Qwen3-ASR (Intl / China) | qwen3-asr-flash |
| Zhipu (BigModel) | glm-asr-2512 |
Whisper models (for example whisper-1 and whisper-large-v3-turbo) return a time for each sentence, so subtitles line up with the speech more closely. Other transcription models return a whole passage at once, so each subtitle's timing is less precise.
Using your own endpoint
- Translation: any OpenAI-compatible chat service works. Enter the full address under Translate endpoint, for example
https://api.example.com/v1/chat/completions, and the model name from the provider's documentation under Translate model. - Transcription: set Transcribe provider to Custom and enter the full address of an OpenAI-compatible audio transcriptions endpoint, for example
https://api.example.com/v1/audio/transcriptions, and the model name. - MTranServer: set Translate provider to MTranServer and fill in MTranServer URL and MTranServer token.
- Qwen: the international and China endpoints are different; pick the one for the region your API key belongs to.
- Ollama and LM Studio: the preset address is
localhost, which only works on the computer running them. On a phone, TV or any other device, replacelocalhostwith that computer's LAN IP address. - Speaches: the preset has no address; enter your own server's. On a local network the API key can be left empty.
Once it is filled in, use Test transcription and Test translation to check the endpoint works. Subtitle lines are short and requests are frequent, so the lighter models near the top of each list are faster and cheaper, and usually a better fit than large reasoning models.
API keys are stored on the device only. Charges for a remote service are billed by that provider, not by CloudDrive2. The preset providers and models change with app updates; the app shows the current list.
Getting started
Start translating in the player
Turn on Live AI Subtitles under Live Translation in Settings, then play a video.
-
Open the subtitle menu
In the player's subtitle menu, find the AI Translated section and choose Enable.
-
Follow the wizard
Three steps: choose the spoken and target languages (downloading a language model if needed), choose what to translate from, and choose the output format. Then choose Start.
-
Subtitles generate as you watch
Subtitles are generated from the current position, with progress shown as Translating and a percentage; once the whole video is done it shows Ready. After a seek, the new position is generated first.
Starting automatically
- Auto-enable for videos without subtitles: a video with no subtitle track starts AI translation on its own, using the defaults in Settings.
- Continue across playlist: in a playlist, each next video is translated with the same settings until you turn it off.
Output
SRT or ASS
Choose for the current video in the wizard's third step, Output format, or set the default under Output Format in the Live Translation settings.
SRT
Plain-text subtitles with the translation only. Almost every player and TV can read them, so choose SRT if you also want to use the file in other players.
ASS (styled)
Subtitles with a set font, size and colour. Only ASS can turn on Dual language (show original), which shows the translation and the original together.
Dual language (show original)
With ASS chosen, tick Dual language (show original) in the wizard, or turn it on in Settings. Each subtitle then has two lines: the translation on top, white, larger and bold; the original underneath, yellow and smaller. The original comes from what you translate from: the source subtitle's text when translating a subtitle track, or the transcription when translating the audio. Useful for learning a language, or for checking the translation.
Other display settings
| Setting | What it does |
|---|---|
| Wrap long lines / Max characters per line | Splits an over-long subtitle line into several |
| Subtitle delay | Shows AI subtitles later, or earlier with a negative value. Increase it if subtitles appear a little before the voice. On-device and remote transcription each have their own value |
A subtitle saved next to the video is named video name.target-language code.ai.srt or .ai.ass, for example Movie.zh-Hans.ai.ass.
Saving
Saving and reuse
With Save subtitles next to video on, the subtitle file is written to the video's cloud folder, with the same name as the video.
Loading on other devices
Once the subtitle sits next to the video, CloudDrive2 on any device loads it as an external subtitle when it opens that video — nothing is generated again. Other players can read the file too.
For example: generate the subtitles on a Mac with the on-device models, then watch the same video on Apple TV.
Resuming after an interruption
If you leave playback part-way, what has been translated is kept in this device's subtitle cache and the next run continues from there. When the translation service stops responding, what was translated is kept as well, and you can try again.
Regenerate in the subtitle menu discards this video's cache and translates again from the start; Remove translation stops and deletes it. Subtitle cache in Settings clears every cache on this device; subtitles already saved next to your videos are not affected.
Emby / Jellyfin
In the media client
AI subtitle translation also works when you play a server's videos through the app's built-in Emby / Jellyfin client, in the same way as for cloud files: enable AI Translated in the player's subtitle menu. Where the finished subtitles are saved depends on the kind of server.
| Server | Where the generated subtitles are saved |
|---|---|
| Jellyfin | Uploaded to the Jellyfin server as an external subtitle for that video. From then on, any Jellyfin client playing the video can pick it |
| Emby | Emby has no API for uploading subtitles. If the server has Direct streaming turned on and Path mappings configured, the subtitle is written to the video's cloud folder. If the CloudDrive2 companion plugin is installed on the Emby server, the app tells Emby to refresh that video as soon as the translation finishes, and the new subtitle can be picked straight away; without the plugin, Emby shows it after its next library scan |
| No path mapping | The subtitle is kept only in this device's subtitle cache and used when you play the video again here |
Uploading to a Jellyfin server is currently offered on iPhone, iPad, Mac, Apple TV, Vision Pro and Android. On Windows, subtitles for a direct-streamed video are written to the video's cloud folder; otherwise they are kept on the device only.
Whole folders
Generating subtitles for a whole folder
Choose Generate AI Subtitles from a folder's or a video's menu. Subtitles are generated one by one in the background, without playing the videos, and saved next to each one.
- Include subfolders: also processes videos inside subfolders.
- Skip videos that already have subtitles: skips a video with an embedded text subtitle, or with a matching .srt / .ass next to it.
- Include disc images (Blu-ray/DVD ISO): also processes .iso files in the folder.
- Low priority (background): generates more slowly, using less CPU and network.
The jobs are listed under AI Subtitles on the Transfers page, where you can pause, resume, retry or cancel them all.
The last two options are currently offered on iPhone, iPad and Mac.
Privacy
Where the data goes
When transcription and translation both run on the device, the audio and subtitle text never leave it.
With a remote API, audio segments or subtitle text are sent to the service you configured and handled under that service's own privacy policy. We neither receive nor proxy this data. See the privacy policy.
FAQ
Frequently asked questions
What do I need to buy?
AI subtitle translation is part of App Pro. App Pro is tied to your CloudDrive account: buy it once and it works on every platform where you sign in with that account. Prices are on the pricing page. A remote API's own charges are billed separately by that provider.
Subtitles appear before or after the voice
Adjust Subtitle delay under Live Translation in Settings. If subtitles come before the voice, increase it; if they come after, lower it or set a negative value. On-device and remote transcription each have their own value.
The subtitles stay in the original language
If the device has no on-device translation model and no valid remote endpoint and key are set, subtitles are shown in the original spoken language. Apple TV and Windows need a remote translation API; on iPhone, iPad or Mac, check that the system meets the version in the table above and that the language model has been downloaded.
The Whisper model downloads slowly or stops
The app tries several download sources in turn, including a mirror for mainland China. Downloading again after an interruption continues from where it stopped, and the finished file is verified; a file that fails verification is downloaded again.
Translation cannot keep up with playback
Transcribing audio is much slower than translating a subtitle track. If the video has subtitles, set Translate From to Auto (prefer subtitle) or Subtitle track. When transcribing, try a smaller Whisper model, turn on GPU acceleration on Android, or use a remote transcription service. You can also generate the subtitles in the background first and watch afterwards.
How do I use on-device models for Apple TV?
Apple TV has no on-device translation model. Generate the subtitles for that video on an iPhone, iPad or Mac with Save subtitles next to video on; Apple TV loads them when it opens the same video.
Report a problem
File problems as GitHub issues, where they are recorded and tracked; you can also report them in the Telegram group or by email.