Oatda transcribe audio
Claude Code plugin: 9 skills for OATDA unified LLM API gateway - text, vision, image, video, audio (TTS/STT/translation). 10+ providers, 1 API key.
npx -y skills add devcsde/oatda-skills --skill oatda-transcribe-audioAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Use when the user wants to transcribe audio to text using OATDA's unified audio API. Supports speech-to-text (STT), meetings, podcasts, voice notes, Whisper-style transcription, and the transcribe_audio MCP capability.
SKILL.md
5.9 KB, as published. Nobody here has run it
OATDA Audio Transcription
Transcribe audio files to text through OATDA's unified audio API.
When to Use
Use this skill when the user wants to:
- Transcribe meetings, podcasts, interviews, or voice notes
- Convert speech audio to written text
- Create subtitles or timestamped transcripts
- Use Whisper-style speech-to-text models through OATDA
- Use the OATDA
transcribe_audiocapability
Prerequisites
The user needs an OATDA API key. Check in this order:
$OATDA_API_KEYenvironment variable~/.oatda/credentials.jsonconfig file
If neither exists, tell the user:
You need an OATDA API key. Get one at https://oatda.com, then set it:
export OATDA_API_KEY=your_key_here
Step-by-Step Instructions
1. Resolve the API key
# Check env var first; if empty, auto-load from credentials file
if [[ -z "$OATDA_API_KEY" ]]; then
export OATDA_API_KEY=$(cat ~/.oatda/credentials.json 2>/dev/null | jq -r '.profiles[.defaultProfile].apiKey' 2>/dev/null)
fi
# Verify key exists (show first 8 chars only)
echo "${OATDA_API_KEY:0:8}"
If the output is empty or null, stop and ask the user to configure their API key.
IMPORTANT:
- Never print the full API key. Only show the first 8 characters for verification.
- The key resolution script and subsequent
curlcommands must run in the same shell session. Each separate bash/terminal invocation starts with an isolated environment where previously exported variables are lost. Either run all commands in one session, or chain them.
2. Determine the model
Map common aliases:
| User says | Provider | Model |
|---|---|---|
| whisper, whisper-1, openai whisper (default) | openai | whisper-1 |
| transcription, speech to text, stt | openai | whisper-1 |
Default: openai / whisper-1 if no model is specified.
If the user provides provider/model format directly (e.g., openai/whisper-1), split on / to get separate provider and model values.
3. Prepare the audio input
The endpoint supports:
multipart/form-datawith a local file upload- JSON with a base64 data URL in
file - JSON with
file_base64for providers that support direct base64 payloads
Maximum audio file size is 25MB.
For local files, prefer multipart upload because it avoids manually building large JSON bodies.
4. Optional: discover available audio models
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}'
Use supported_params to confirm whether the model supports transcription and optional fields such as timestamps or diarization.
5. Make the API call with multipart/form-data
curl -s -X POST "https://oatda.com/api/v1/llm/transcriptions" \
-H "Authorization: Bearer $OATDA_API_KEY" \
-F "provider=<PROVIDER>" \
-F "model=<MODEL>" \
-F "file=@<AUDIO_FILE>" \
-F "response_format=json"
Replace <PROVIDER>, <MODEL>, and <AUDIO_FILE> with actual values.
6. Alternative: JSON request with base64 data URL
AUDIO_DATA_URL="data:audio/mpeg;base64,$(base64 -w 0 audio.mp3)"
curl -s -X POST "https://oatda.com/api/v1/llm/transcriptions" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OATDA_API_KEY" \
-d "$(jq -n \
--arg provider "<PROVIDER>" \
--arg model "<MODEL>" \
--arg file "$AUDIO_DATA_URL" \
'{provider: $provider, model: $model, file: $file, response_format: "json"}')"
7. Optional parameters
language: ISO-639-1 language code, e.g.en,de,frprompt: Context for names, acronyms, or domain-specific termsresponse_format:json,text,srt,verbose_json,vtt, ordiarized_jsontemperature: 0 to 1timestamp_granularities:wordand/orsegmentchunking_strategy:autohotwords: Provider-specific keyword hintsstream:truefor streaming transcription if supported
8. Parse the response
The API returns JSON like:
{
"text": "The transcribed text...",
"language": "en",
"duration": 42.5,
"segments": [],
"words": [],
"costs": {
"inputCost": 0,
"outputCost": 0.0001,
"totalCost": 0.0001,
"currency": "USD"
},
"metadata": {
"provider": "openai",
"model": "whisper-1",
"latency": 1200
}
}
Present the text field to the user. Include segments, words, or subtitles if the user requested a timestamped format.
9. Handle errors
| 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 format, file format, and use /oatda: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 |
Full Example
User asks: "Transcribe this recording with Whisper"
curl -s -X POST "https://oatda.com/api/v1/llm/transcriptions" \
-H "Authorization: Bearer $OATDA_API_KEY" \
-F "provider=openai" \
-F "model=whisper-1" \
-F "[email protected]" \
-F "response_format=json"
Tips
- The endpoint is
/api/v1/llm/transcriptions. - Prefer multipart upload for local files.
- Keep audio files under 25MB.
- Use
response_format=srtorvttwhen the user wants subtitles. - Use
languageto improve recognition for known source-language audio. - NEVER expose the full API key in output.
- Equivalent MCP tool name:
transcribe_audio. - Related skills:
/oatda:oatda-generate-speech,/oatda:oatda-translate-audio,/oatda:oatda-list-models.