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.

EngineAudio goes toCost
On device (free) (default)NowhereFree
OpenAI (your key)OpenAIYour OpenAI bill: gpt-transcribe at $0.0045/min (about $0.27/hour)
OpenAI-compatible (self-hosted GPU, Groq, etc.)Your Endpoint Base URLDepends 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.

ModelSizeNotes
large-v3-turbo1.6 GBRecommended default. Fast on Metal / GPU
large-v3-turbo-q5_0574 MBQuantized. Saves disk and memory
small488 MBFor CPU-only machines
base148 MBLight. Many errors in Japanese
tiny78 MBFastest. 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

  1. Set Engine to OpenAI (your key).
  2. Paste a key starting with sk- into OpenAI API key and click Save.
  3. 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.

  1. Set Engine to OpenAI-compatible (self-hosted GPU, Groq, etc.).
  2. Fill in Endpoint Base URL and Model (the endpoint's model name).
  3. If the server needs one, enter Endpoint API key (optional) and click Save.
  4. 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.
ServerBase URLModel (example)
speaches (opens in a new tab) (formerly faster-whisper-server)http://localhost:8000/v1Systran/faster-whisper-small
vLLM (opens in a new tab) (vllm serve openai/whisper-large-v3)http://localhost:8000/v1openai/whisper-large-v3
Groq (opens in a new tab)https://api.groq.com/openai/v1whisper-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 /v1 or a pasted /v1/audio/transcriptions is 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_text backend 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.

Edit this page on GitHub (opens in a new tab)