/install oatda-translate-audio
OATDA Audio Translation
Translate foreign-language audio into English text through OATDA's unified audio API.
API Key Resolution
All commands need the OATDA API key. Resolve it inline for each exec call:
export OATDA_API_KEY="${OATDA_API_KEY:-$(cat ~/.oatda/credentials.json 2>/dev/null | jq -r '.profiles[.defaultProfile].apiKey' 2>/dev/null)}"
If the key is empty or null, tell the user to get one at https://oatda.com and configure it.
Security: Never print the full API key. Only verify existence or show first 8 chars.
Model Mapping
| User says | Provider | Model |
|---|---|---|
| whisper, whisper-1, openai whisper (default) | openai | whisper-1 |
| translate audio, audio translation | openai | whisper-1 |
Default: openai / whisper-1 if no model specified.
If the user provides provider/model format directly (for example openai/whisper-1), split on /.
⚠️ Models change over time. If a model ID fails, query
oatda-list-modelswith?type=audiofirst.
Input Preparation
The translation endpoint supports:
multipart/form-datawith a local file upload- JSON with a base64 data URL in
file
Maximum audio file size is 25MB.
For local files, prefer multipart upload because it is simpler and avoids large JSON bodies.
Discovering Audio Model Parameters
export OATDA_API_KEY="${OATDA_API_KEY:-$(cat ~/.oatda/credentials.json 2>/dev/null | jq -r '.profiles[.defaultProfile].apiKey' 2>/dev/null)}" && \
curl -s -X GET "https://oatda.com/api/v1/llm/models?type=audio" \
-H "Authorization: Bearer $OATDA_API_KEY" | jq '.audio_models[] | {id, supported_params}'
Look for:
audio_modescontainingtranslation- supported
response_formatvalues - optional prompt or filename support
API Call (multipart)
export OATDA_API_KEY="${OATDA_API_KEY:-$(cat ~/.oatda/credentials.json 2>/dev/null | jq -r '.profiles[.defaultProfile].apiKey' 2>/dev/null)}" && \
curl -s -X POST "https://oatda.com/api/v1/llm/translations" \
-H "Authorization: Bearer $OATDA_API_KEY" \
-F "provider=\x3CPROVIDER>" \
-F "model=\x3CMODEL>" \
-F "file=@\x3CAUDIO_FILE>" \
-F "response_format=json"
Alternative API Call (base64 JSON)
AUDIO_DATA_URL="data:audio/mpeg;base64,$(base64 -w 0 audio.mp3)"
export OATDA_API_KEY="${OATDA_API_KEY:-$(cat ~/.oatda/credentials.json 2>/dev/null | jq -r '.profiles[.defaultProfile].apiKey' 2>/dev/null)}" && \
curl -s -X POST "https://oatda.com/api/v1/llm/translations" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OATDA_API_KEY" \
-d "$(jq -n \
--arg provider \"\x3CPROVIDER>\" \
--arg model \"\x3CMODEL>\" \
--arg file \"$AUDIO_DATA_URL\" \
'{provider: $provider, model: $model, file: $file, response_format: \"json\"}')"
Common Parameters
prompt: Optional hint for terminology, names, or translation styleresponse_format:json,text,srt,verbose_json, orvtttemperature: 0 to 1filename: Optional filename for JSON uploads
Response Format
The API returns JSON like:
{
"text": "The English translation...",
"language": "fr",
"duration": 42.5,
"costs": {
"inputCost": 0,
"outputCost": 0.0001,
"totalCost": 0.0001,
"currency": "USD"
}
}
Present the text field to the user and mention that the output is English.
Error Handling
| HTTP Status | Meaning | Action |
|---|---|---|
| 401 | Invalid API key | Tell user to check their key |
| 402 | Insufficient credits | Tell user to check balance |
| 400 | Bad request / model not supported | Check model or file format and query oatda-list-models with type=audio |
| 413 | File too large | Keep audio under 25MB or split it |
| 429 | Rate limited or monthly cap | Wait briefly and retry once |
Example
export OATDA_API_KEY="${OATDA_API_KEY:-$(cat ~/.oatda/credentials.json 2>/dev/null | jq -r '.profiles[.defaultProfile].apiKey' 2>/dev/null)}" && \
curl -s -X POST "https://oatda.com/api/v1/llm/translations" \
-H "Authorization: Bearer $OATDA_API_KEY" \
-F "provider=openai" \
-F "model=whisper-1" \
-F "[email protected]" \
-F "response_format=json"
Notes
- Endpoint:
/api/v1/llm/translations - Translation output is English text
- Prefer multipart upload for local files
- Use
promptfor names, acronyms, or domain-specific terminology - Equivalent capability name:
translate_audio - Related skills:
oatda-transcribe-audio,oatda-generate-speech,oatda-list-models
- Make sure OpenClaw is installed (local or Docker)
- Run the install command in chat:
/install oatda-translate-audio - After installation, invoke the skill by name or use
/oatda-translate-audio - Provide required inputs per the skill's parameter spec and get structured output
What is Oatda Translate Audio?
Translate foreign-language audio into English text using OATDA's unified audio API. Triggers when the user wants audio translation, spoken-language translati... It is an AI Agent Skill for Claude Code / OpenClaw, with 35 downloads so far.
How do I install Oatda Translate Audio?
Run "/install oatda-translate-audio" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.
Is Oatda Translate Audio free?
Yes, Oatda Translate Audio is completely free, licensed under MIT-0. You can download, install and use it at no cost.
Which platforms does Oatda Translate Audio support?
Oatda Translate Audio is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).
Who created Oatda Translate Audio?
It is built and maintained by devcsde (@devcsde); the current version is v1.0.1.