Configure
Transcription and costs
Choose on-device whisper (free), your own OpenAI key, or any OpenAI-compatible endpoint such as your own GPU box. Audio goes directly from your machine to the service you pick.
#Who pays, and where traffic goes
Cost and network model
- The developer (Japan Marketing LLC) does not pay for, proxy, or bill any transcription or AI usage.
- Requests go directly from your computer to OpenAI or your endpoint, never through a developer server.
- OpenAI usage is billed to your own OpenAI account.
- Organize uses the Claude Code / Codex CLI you are already signed in to, unless you explicitly pick an API runner (
organizer.runner: "api:<provider>", see Configure with settings.json). It never switches to an API key on its own.
#Methods
Choose in Settings → Transcription → Engine. The footer's Microphone & Transcription popover shows the current choice.
| Engine | Audio goes to | Cost |
|---|---|---|
| On device (free) (default) | Nowhere | Free |
| OpenAI (your key) | OpenAI | Your OpenAI bill: gpt-transcribe at $0.0045/min (about $0.27/hour) |
| OpenAI-compatible (self-hosted GPU, Groq, etc.) | Your Endpoint Base URL | Depends on the endpoint |
Settings → Transcription → Language: Auto, Japanese, or English. This is the spoken language, separate from the interface language.
#On-device whisper (free)
On-device transcription uses whisper.cpp (opens in a new tab): the whisper-cli binary plus a GGML model.
1. Install whisper-cli. MOVIE-ADE looks for a bundled copy (resources/whisper/<platform>-<arch>/), then PATH, then common locations such as Homebrew.
# macOS
brew install whisper-cpp
# Linux: build from source, then add build/bin to PATH
git clone https://github.com/ggml-org/whisper.cpp && cd whisper.cpp
cmake -B build && cmake --build build -j --config Release
# Windows: download the zip from github.com/ggml-org/whisper.cpp/releases
# and add the folder containing whisper-cli.exe to PATH
2. Get a model. With On device (free) selected, pick a Model and click Download model. Files come straight from Hugging Face (ggerganov/whisper.cpp), are checked against a sha256 pinned in the app (a mismatch deletes the file), and are saved to <userData>/models/. The downloaded model is selected automatically. Cancel keeps the partial file, and Resume download continues from there.
| Model | Size | Notes |
|---|---|---|
large-v3-turbo | 1.6 GB | Recommended default. Fast on Metal / GPU |
large-v3-turbo-q5_0 | 574 MB | Quantized. Saves disk and memory |
small | 488 MB | For CPU-only machines |
base | 148 MB | Light. Many errors in Japanese |
tiny | 78 MB | Fastest. Not accurate enough for Japanese |
Already have a model? Use Choose a file… to point at any ggml-*.bin. Without a model, Settings shows No model set (pen and text still work): you can still record, audio is saved, and only pen and text findings are produced.
whisper-cli is not bundled with the app. Install it yourself as shown above. When it can't be found, Settings shows whisper.cpp (whisper-cli) was not found. Install it, then reopen the settings.
with the same instructions.
#Your own OpenAI key
- Set Engine to OpenAI (your key).
- Paste a key starting with
sk-into OpenAI API key and click Save. - Click Test connection. It sends 1 second of silence (about $0.0001).
The model is fixed to gpt-transcribe. In development (pnpm dev) only, OPENAI_API_KEY from an ignored .env file is also read. Packaged builds never read .env.
#OpenAI-compatible endpoints
MOVIE-ADE sends POST <base>/v1/audio/transcriptions (multipart: file, model, response_format=json, language, prompt), so it is designed for servers that implement the OpenAI transcription route.
- Set Engine to OpenAI-compatible (self-hosted GPU, Groq, etc.).
- Fill in Endpoint Base URL and Model (the endpoint's model name).
- If the server needs one, enter Endpoint API key (optional) and click Save.
- Click Test connection. Errors name the cause, e.g. a wrong Base URL (no
/v1/audio/transcriptions), a rejected key, or an unknown model name.
| Server | Base URL | Model (example) |
|---|---|---|
| speaches (opens in a new tab) (formerly faster-whisper-server) | http://localhost:8000/v1 | Systran/faster-whisper-small |
vLLM (opens in a new tab) (vllm serve openai/whisper-large-v3) | http://localhost:8000/v1 | openai/whisper-large-v3 |
| Groq (opens in a new tab) | https://api.groq.com/openai/v1 | whisper-large-v3-turbo |
MOVIE-ADE is designed for OpenAI-compatible servers like these, but they have not been tested against MOVIE-ADE yet. The URLs and model names are the servers' own documented defaults.
- A trailing
/v1or a pasted/v1/audio/transcriptionsis stripped when saved, so either form works. - URLs containing a username or password are rejected, so keys never end up in
settings.json. - For a GPU box on your LAN or tailnet, use its address, e.g.
http://100.x.y.z:8000/v1.
#Cost cap
For OpenAI and compatible endpoints, set Cost cap: None, or Up to $0.10 per review through $0.50, $1 (default), $5, and $20. For your own GPU, None makes sense. The setting is stored as capture.costLimitUsd (max 1000, null means no cap). Compatible endpoints are estimated at $0.006/min.
When the next chunk would exceed the cap, MOVIE-ADE stops sending and keeps the audio. Failed API calls are not retried automatically.
#Where keys are stored
Keys entered in Settings are encrypted with Electron safeStorage and written to <userData>/stt-keys.bin. The app never writes them to settings.json. To point to a key from settings.json instead (an environment variable or .env entry), see API keys.
- macOS: Keychain
- Windows: DPAPI
- Linux: libsecret or KWallet. If only the
basic_textbackend is available, the key is kept in memory for the current session only (the button reads Set for this session).
Delete key removes it. For <userData> paths, see Files and environment.