{"id":"e5fd5d81-5f7a-4389-a52e-d640e622803f","entityType":"agent","slug":"clawhub-devcsde-oatda-transcribe-audio","name":"OATDA Transcribe Audio","canonicalUrl":"https://www.xpersona.co/agent/clawhub-devcsde-oatda-transcribe-audio","canonicalPath":"/agent/clawhub-devcsde-oatda-transcribe-audio","generatedAt":"2026-10-11T14:13:07.706Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"editorial-content","verified":true,"confidence":"high","updatedAt":"2026-10-11T09:36:52.166Z","emptyReason":null},"description":"Transcribe audio to text using OATDA's unified audio API. Triggers when the user wants speech-to-text, transcription of meetings, podcasts, voice notes, subt... Skill: OATDA Transcribe Audio Owner: devcsde Summary: Transcribe audio to text using OATDA's unified audio API. Triggers when the user wants speech-to-text, transcription of meetings, podcasts, voice notes, subt... Tags: latest:1.1.0 Version history: v1.1.0 | 2026-07-17T23:21:08.622Z | user Sync with latest API model IDs. Verify models via oatda-list-models. v1.0.3 | 2026-07-17T23:15:15.937Z | user - Removed sample f","descriptionLabel":"Technical summary","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 1.1K downloads reported by the source. Last updated 10/11/2026.","installCommand":"clawhub skill install s1715k9c0vyqryjet8h0ek3xc58447z6:oatda-transcribe-audio","sourceUrl":"https://clawhub.ai/devcsde/oatda-transcribe-audio","homepage":"https://clawhub.ai/devcsde/skills/oatda-transcribe-audio","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/devcsde/oatda-transcribe-audio","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/devcsde/skills/oatda-transcribe-audio","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":61,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"Transcribe audio to text using OATDA's unified audio API. Triggers when the user wants speech-to-text, transcription of meetings, podcasts, voice notes, subt..."},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-11T09:36:52.166Z","emptyReason":null},"protocols":[{"protocol":"OPENCLEW","label":"OpenClaw","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[],"verifiedCount":0,"selfDeclaredCount":1,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"}],"flattenedTokens":"protocol:OPENCLEW|unknown|profile"}},"adoption":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-11T09:36:52.166Z","emptyReason":null},"stars":null,"forks":null,"downloads":1098,"packageName":null,"latestVersion":"1.1.0","tractionLabel":"1.1K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-11T09:36:52.093Z","emptyReason":null},"lastUpdatedAt":"2026-10-11T09:36:52.166Z","lastCrawledAt":"2026-10-11T09:36:52.093Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-12T09:36:52.093Z","lastVerifiedAt":null,"highlights":[{"version":"1.1.0","createdAt":"2026-07-17T23:21:08.622Z","changelog":"Sync with latest API model IDs. Verify models via oatda-list-models.","fileCount":3,"zipByteSize":3824},{"version":"1.0.3","createdAt":"2026-07-17T23:15:15.937Z","changelog":"- Removed sample file: skill-card.md - No user-facing functionality changes; documentation and implementation remain the same.","fileCount":3,"zipByteSize":3817},{"version":"1.0.1","createdAt":"2026-04-26T18:30:45.048Z","changelog":"Fix: replaced with correct OpenClaw skill format","fileCount":3,"zipByteSize":3872},{"version":"1.0.0","createdAt":"2026-04-26T18:26:20.680Z","changelog":"Initial release: Speech-to-text transcription via OATDA unified audio API","fileCount":2,"zipByteSize":3023}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s1715k9c0vyqryjet8h0ek3xc58447z6:oatda-transcribe-audio","setupComplexity":"low","setupSteps":["Setup complexity is LOW. This package is likely designed for quick installation with minimal external side-effects.","Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-devcsde-oatda-transcribe-audio/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-devcsde-oatda-transcribe-audio/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-devcsde-oatda-transcribe-audio/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-devcsde-oatda-transcribe-audio/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-devcsde-oatda-transcribe-audio/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-devcsde-oatda-transcribe-audio/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"CLAWHUB","generatedAt":"2026-10-11T14:13:07.706Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-devcsde-oatda-transcribe-audio/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-devcsde-oatda-transcribe-audio/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-devcsde-oatda-transcribe-audio/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-devcsde-oatda-transcribe-audio/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"high","updatedAt":"2026-10-11T09:36:52.166Z","emptyReason":null},"readme":"Skill: OATDA Transcribe Audio\n\nOwner: devcsde\n\nSummary: Transcribe audio to text using OATDA's unified audio API. Triggers when the user wants speech-to-text, transcription of meetings, podcasts, voice notes, subt...\n\nTags: latest:1.1.0\n\nVersion history:\n\nv1.1.0 | 2026-07-17T23:21:08.622Z | user\n\nSync with latest API model IDs. Verify models via oatda-list-models.\n\nv1.0.3 | 2026-07-17T23:15:15.937Z | user\n\n- Removed sample file: skill-card.md\n- No user-facing functionality changes; documentation and implementation remain the same.\n\nv1.0.1 | 2026-04-26T18:30:45.048Z | user\n\nFix: replaced with correct OpenClaw skill format\n\nv1.0.0 | 2026-04-26T18:26:20.680Z | user\n\nInitial release: Speech-to-text transcription via OATDA unified audio API\n\nArchive index:\n\nArchive v1.1.0: 3 files, 3824 bytes\n\nFiles: _meta.json (141b), skill-card.md (2276b), SKILL.md (5472b)\n\nFile v1.1.0:SKILL.md\n\n---\nname: oatda-transcribe-audio\ndescription: Transcribe audio to text using OATDA's unified audio API. Triggers when the user wants speech-to-text, transcription of meetings, podcasts, voice notes, subtitles, timestamps, or Whisper-style transcription through OATDA.\nhomepage: https://oatda.com\nmetadata:\n  {\n    \"openclaw\":\n      {\n        \"emoji\": \"📝\",\n        \"requires\": { \"bins\": [\"curl\", \"jq\"], \"env\": [\"OATDA_API_KEY\"], \"config\": [\"~/.oatda/credentials.json\"] },\n        \"primaryEnv\": \"OATDA_API_KEY\",\n      },\n  }\n---\n\n# OATDA Audio Transcription\n\nTranscribe audio files to text through OATDA's unified audio API.\n\n## API Key Resolution\n\nAll commands need the OATDA API key. Resolve it inline for each `exec` call:\n\n```bash\nexport OATDA_API_KEY=\"${OATDA_API_KEY:-$(cat ~/.oatda/credentials.json 2>/dev/null | jq -r '.profiles[.defaultProfile].apiKey' 2>/dev/null)}\"\n```\n\nIf the key is empty or `null`, tell the user to get one at https://oatda.com and configure it.\n\n**Security**: Never print the full API key. Only verify existence or show first 8 chars.\n\n## Model Mapping\n\n| User says | Provider | Model |\n|-----------|----------|-------|\n| whisper, whisper-1, openai whisper (default) | openai | whisper-1 |\n| transcription, speech to text, stt | openai | whisper-1 |\n\n**Default**: `openai` / `whisper-1` if no model specified.\n\nIf the user provides `provider/model` format directly (for example `openai/whisper-1`), split on `/`.\n\n> ⚠️ Models change over time. If a model ID fails, query `oatda-list-models` with `?type=audio` first.\n\n## Input Preparation\n\nThe transcription endpoint supports:\n- `multipart/form-data` with a local file upload\n- JSON with a base64 data URL in `file`\n- JSON with `file_base64` for providers that support direct base64 payloads\n\nMaximum audio file size is 25MB.\n\nFor local files, prefer multipart upload because it is simpler and avoids large JSON bodies.\n\n## Discovering Audio Model Parameters\n\n```bash\nexport OATDA_API_KEY=\"${OATDA_API_KEY:-$(cat ~/.oatda/credentials.json 2>/dev/null | jq -r '.profiles[.defaultProfile].apiKey' 2>/dev/null)}\" && \\\ncurl -s -X GET \"https://oatda.com/api/v1/llm/models?type=audio\" \\\n  -H \"Authorization: Bearer $OATDA_API_KEY\" | jq '.audio_models[] | {id, supported_params}'\n```\n\nLook for:\n- `audio_modes` containing `transcription`\n- supported `response_format` values\n- optional timestamp, diarization, or streaming support\n\n## API Call (multipart)\n\n```bash\nexport OATDA_API_KEY=\"${OATDA_API_KEY:-$(cat ~/.oatda/credentials.json 2>/dev/null | jq -r '.profiles[.defaultProfile].apiKey' 2>/dev/null)}\" && \\\ncurl -s -X POST \"https://oatda.com/api/v1/llm/transcriptions\" \\\n  -H \"Authorization: Bearer $OATDA_API_KEY\" \\\n  -F \"provider=<PROVIDER>\" \\\n  -F \"model=<MODEL>\" \\\n  -F \"file=@<AUDIO_FILE>\" \\\n  -F \"response_format=json\"\n```\n\n## Alternative API Call (base64 JSON)\n\n```bash\nAUDIO_DATA_URL=\"data:audio/mpeg;base64,$(base64 -w 0 audio.mp3)\"\n\nexport OATDA_API_KEY=\"${OATDA_API_KEY:-$(cat ~/.oatda/credentials.json 2>/dev/null | jq -r '.profiles[.defaultProfile].apiKey' 2>/dev/null)}\" && \\\ncurl -s -X POST \"https://oatda.com/api/v1/llm/transcriptions\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer $OATDA_API_KEY\" \\\n  -d \"$(jq -n \\\n    --arg provider \\\"<PROVIDER>\\\" \\\n    --arg model \\\"<MODEL>\\\" \\\n    --arg file \\\"$AUDIO_DATA_URL\\\" \\\n    '{provider: $provider, model: $model, file: $file, response_format: \\\"json\\\"}')\"\n```\n\n## Common Parameters\n\n- `language`: ISO-639-1 language code like `en`, `de`, `fr`\n- `prompt`: Context for names, acronyms, or domain-specific terms\n- `response_format`: `json`, `text`, `srt`, `verbose_json`, `vtt`, or `diarized_json`\n- `temperature`: 0 to 1\n- `timestamp_granularities`: `word` and/or `segment`\n- `chunking_strategy`: `auto`\n- `hotwords`: Provider-specific keyword hints\n- `stream`: `true` if supported by the selected model\n\n## Response Format\n\nThe API returns JSON like:\n\n```json\n{\n  \"text\": \"The transcribed text...\",\n  \"language\": \"en\",\n  \"duration\": 42.5,\n  \"segments\": [],\n  \"words\": [],\n  \"costs\": {\n    \"inputCost\": 0,\n    \"outputCost\": 0.0001,\n    \"totalCost\": 0.0001,\n    \"currency\": \"USD\"\n  }\n}\n```\n\nPresent the `text` field to the user. Include subtitles, segments, or words if the requested format includes them.\n\n## Error Handling\n\n| HTTP Status | Meaning | Action |\n|-------------|---------|--------|\n| 401 | Invalid API key | Tell user to check their key |\n| 402 | Insufficient credits | Tell user to check balance |\n| 400 | Bad request / model not supported | Check model or file format and query `oatda-list-models` with `type=audio` |\n| 413 | File too large | Keep audio under 25MB or split it |\n| 429 | Rate limited or monthly cap | Wait briefly and retry once |\n\n## Example\n\n```bash\nexport OATDA_API_KEY=\"${OATDA_API_KEY:-$(cat ~/.oatda/credentials.json 2>/dev/null | jq -r '.profiles[.defaultProfile].apiKey' 2>/dev/null)}\" && \\\ncurl -s -X POST \"https://oatda.com/api/v1/llm/transcriptions\" \\\n  -H \"Authorization: Bearer $OATDA_API_KEY\" \\\n  -F \"provider=openai\" \\\n  -F \"model=whisper-1\" \\\n  -F \"file=@meeting.mp3\" \\\n  -F \"response_format=json\"\n```\n\n## Notes\n\n- Endpoint: `/api/v1/llm/transcriptions`\n- Prefer multipart upload for local files\n- Use `response_format=srt` or `vtt` for subtitles\n- Use `language` to improve recognition when source language is known\n- Equivalent capability name: `transcribe_audio`\n- Related skills: `oatda-generate-speech`, `oatda-translate-audio`, `oatda-list-models`\n\nFile v1.1.0:_meta.json\n\n{\n  \"ownerId\": \"kn7anz9axpc20rkkkfarxeh589845ssw\",\n  \"slug\": \"oatda-transcribe-audio\",\n  \"version\": \"1.1.0\",\n  \"publishedAt\": 1784330468622\n}\n\nFile v1.1.0:skill-card.md\n\n## Description:\n\nTranscribes audio to text through OATDA's unified audio API for speech-to-text, meetings, podcasts, voice notes, subtitles, timestamps, and Whisper-style transcription.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[devcsde](https://clawhub.ai/user/devcsde)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nExternal users, developers, and agents use this skill to transcribe user-selected audio files through OATDA and return transcript text, subtitles, timestamps, or segment details when requested.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Selected audio files and their contents are sent to OATDA for transcription.\n\nMitigation: Use only when the user's OATDA account, consent requirements, and data-handling expectations are appropriate; avoid highly sensitive recordings unless those requirements are satisfied.\n\nRisk: The skill uses an OATDA API key for authenticated requests.\n\nMitigation: Keep the key in OATDA_API_KEY or the local credentials file and do not print the full key in responses or logs.\n\nRisk: Large or unsupported audio files can fail transcription requests.\n\nMitigation: Keep files under the documented 25MB limit, prefer multipart upload for local files, and query available audio models when model IDs fail.\n\n## Reference(s):\n\n- [OATDA](https://oatda.com)\n- [OATDA audio models endpoint](https://oatda.com/api/v1/llm/models?type=audio)\n- [OATDA transcription endpoint](https://oatda.com/api/v1/llm/transcriptions)\n- [ClawHub skill page](https://clawhub.ai/devcsde/skills/oatda-transcribe-audio)\n\n## Skill Output:\n\n**Output Type(s):** [Text, Shell commands, Configuration, Guidance]\n\n**Output Format:** [Markdown with inline bash commands and JSON response excerpts]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Requires OATDA_API_KEY; uploads selected audio files to OATDA; maximum audio file size is 25MB.]\n\n## Skill Version(s):\n\n1.1.0 (source: evidence.release.version)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v1.0.3: 3 files, 3817 bytes\n\nFiles: skill-card.md (2250b), SKILL.md (5472b), _meta.json (141b)\n\nFile v1.0.3:SKILL.md\n\n---\nname: oatda-transcribe-audio\ndescription: Transcribe audio to text using OATDA's unified audio API. Triggers when the user wants speech-to-text, transcription of meetings, podcasts, voice notes, subtitles, timestamps, or Whisper-style transcription through OATDA.\nhomepage: https://oatda.com\nmetadata:\n  {\n    \"openclaw\":\n      {\n        \"emoji\": \"📝\",\n        \"requires\": { \"bins\": [\"curl\", \"jq\"], \"env\": [\"OATDA_API_KEY\"], \"config\": [\"~/.oatda/credentials.json\"] },\n        \"primaryEnv\": \"OATDA_API_KEY\",\n      },\n  }\n---\n\n# OATDA Audio Transcription\n\nTranscribe audio files to text through OATDA's unified audio API.\n\n## API Key Resolution\n\nAll commands need the OATDA API key. Resolve it inline for each `exec` call:\n\n```bash\nexport OATDA_API_KEY=\"${OATDA_API_KEY:-$(cat ~/.oatda/credentials.json 2>/dev/null | jq -r '.profiles[.defaultProfile].apiKey' 2>/dev/null)}\"\n```\n\nIf the key is empty or `null`, tell the user to get one at https://oatda.com and configure it.\n\n**Security**: Never print the full API key. Only verify existence or show first 8 chars.\n\n## Model Mapping\n\n| User says | Provider | Model |\n|-----------|----------|-------|\n| whisper, whisper-1, openai whisper (default) | openai | whisper-1 |\n| transcription, speech to text, stt | openai | whisper-1 |\n\n**Default**: `openai` / `whisper-1` if no model specified.\n\nIf the user provides `provider/model` format directly (for example `openai/whisper-1`), split on `/`.\n\n> ⚠️ Models change over time. If a model ID fails, query `oatda-list-models` with `?type=audio` first.\n\n## Input Preparation\n\nThe transcription endpoint supports:\n- `multipart/form-data` with a local file upload\n- JSON with a base64 data URL in `file`\n- JSON with `file_base64` for providers that support direct base64 payloads\n\nMaximum audio file size is 25MB.\n\nFor local files, prefer multipart upload because it is simpler and avoids large JSON bodies.\n\n## Discovering Audio Model Parameters\n\n```bash\nexport OATDA_API_KEY=\"${OATDA_API_KEY:-$(cat ~/.oatda/credentials.json 2>/dev/null | jq -r '.profiles[.defaultProfile].apiKey' 2>/dev/null)}\" && \\\ncurl -s -X GET \"https://oatda.com/api/v1/llm/models?type=audio\" \\\n  -H \"Authorization: Bearer $OATDA_API_KEY\" | jq '.audio_models[] | {id, supported_params}'\n```\n\nLook for:\n- `audio_modes` containing `transcription`\n- supported `response_format` values\n- optional timestamp, diarization, or streaming support\n\n## API Call (multipart)\n\n```bash\nexport OATDA_API_KEY=\"${OATDA_API_KEY:-$(cat ~/.oatda/credentials.json 2>/dev/null | jq -r '.profiles[.defaultProfile].apiKey' 2>/dev/null)}\" && \\\ncurl -s -X POST \"https://oatda.com/api/v1/llm/transcriptions\" \\\n  -H \"Authorization: Bearer $OATDA_API_KEY\" \\\n  -F \"provider=<PROVIDER>\" \\\n  -F \"model=<MODEL>\" \\\n  -F \"file=@<AUDIO_FILE>\" \\\n  -F \"response_format=json\"\n```\n\n## Alternative API Call (base64 JSON)\n\n```bash\nAUDIO_DATA_URL=\"data:audio/mpeg;base64,$(base64 -w 0 audio.mp3)\"\n\nexport OATDA_API_KEY=\"${OATDA_API_KEY:-$(cat ~/.oatda/credentials.json 2>/dev/null | jq -r '.profiles[.defaultProfile].apiKey' 2>/dev/null)}\" && \\\ncurl -s -X POST \"https://oatda.com/api/v1/llm/transcriptions\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer $OATDA_API_KEY\" \\\n  -d \"$(jq -n \\\n    --arg provider \\\"<PROVIDER>\\\" \\\n    --arg model \\\"<MODEL>\\\" \\\n    --arg file \\\"$AUDIO_DATA_URL\\\" \\\n    '{provider: $provider, model: $model, file: $file, response_format: \\\"json\\\"}')\"\n```\n\n## Common Parameters\n\n- `language`: ISO-639-1 language code like `en`, `de`, `fr`\n- `prompt`: Context for names, acronyms, or domain-specific terms\n- `response_format`: `json`, `text`, `srt`, `verbose_json`, `vtt`, or `diarized_json`\n- `temperature`: 0 to 1\n- `timestamp_granularities`: `word` and/or `segment`\n- `chunking_strategy`: `auto`\n- `hotwords`: Provider-specific keyword hints\n- `stream`: `true` if supported by the selected model\n\n## Response Format\n\nThe API returns JSON like:\n\n```json\n{\n  \"text\": \"The transcribed text...\",\n  \"language\": \"en\",\n  \"duration\": 42.5,\n  \"segments\": [],\n  \"words\": [],\n  \"costs\": {\n    \"inputCost\": 0,\n    \"outputCost\": 0.0001,\n    \"totalCost\": 0.0001,\n    \"currency\": \"USD\"\n  }\n}\n```\n\nPresent the `text` field to the user. Include subtitles, segments, or words if the requested format includes them.\n\n## Error Handling\n\n| HTTP Status | Meaning | Action |\n|-------------|---------|--------|\n| 401 | Invalid API key | Tell user to check their key |\n| 402 | Insufficient credits | Tell user to check balance |\n| 400 | Bad request / model not supported | Check model or file format and query `oatda-list-models` with `type=audio` |\n| 413 | File too large | Keep audio under 25MB or split it |\n| 429 | Rate limited or monthly cap | Wait briefly and retry once |\n\n## Example\n\n```bash\nexport OATDA_API_KEY=\"${OATDA_API_KEY:-$(cat ~/.oatda/credentials.json 2>/dev/null | jq -r '.profiles[.defaultProfile].apiKey' 2>/dev/null)}\" && \\\ncurl -s -X POST \"https://oatda.com/api/v1/llm/transcriptions\" \\\n  -H \"Authorization: Bearer $OATDA_API_KEY\" \\\n  -F \"provider=openai\" \\\n  -F \"model=whisper-1\" \\\n  -F \"file=@meeting.mp3\" \\\n  -F \"response_format=json\"\n```\n\n## Notes\n\n- Endpoint: `/api/v1/llm/transcriptions`\n- Prefer multipart upload for local files\n- Use `response_format=srt` or `vtt` for subtitles\n- Use `language` to improve recognition when source language is known\n- Equivalent capability name: `transcribe_audio`\n- Related skills: `oatda-generate-speech`, `oatda-translate-audio`, `oatda-list-models`\n\nFile v1.0.3:_meta.json\n\n{\n  \"ownerId\": \"kn7anz9axpc20rkkkfarxeh589845ssw\",\n  \"slug\": \"oatda-transcribe-audio\",\n  \"version\": \"1.0.3\",\n  \"publishedAt\": 1784330115937\n}\n\nFile v1.0.3:skill-card.md\n\n## Description: <br>\nTranscribe audio to text using OATDA's unified audio API. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[devcsde](https://clawhub.ai/user/devcsde) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nDevelopers and external users use this skill to transcribe meetings, podcasts, voice notes, subtitles, and other audio files through OATDA. It helps an agent resolve credentials, choose the default Whisper-style transcription model, call the OATDA transcription endpoint, and present the returned text or subtitle data. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: Audio contents are uploaded to OATDA and its configured transcription provider for processing. <br>\nMitigation: Use only with audio the user is allowed to send to OATDA; avoid confidential, regulated, or third-party recordings unless approved and provider data-handling terms are understood. <br>\nRisk: The skill requires an OATDA API key for transcription requests. <br>\nMitigation: Do not print the full API key; verify only that a key exists or show a short prefix as described by the artifact. <br>\n\n\n## Reference(s): <br>\n- [OATDA](https://oatda.com) <br>\n- [OATDA audio models endpoint](https://oatda.com/api/v1/llm/models?type=audio) <br>\n- [OATDA transcription endpoint](https://oatda.com/api/v1/llm/transcriptions) <br>\n- [ClawHub skill page](https://clawhub.ai/devcsde/skills/oatda-transcribe-audio) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [Text, Markdown, Shell commands, Configuration, Guidance] <br>\n**Output Format:** [Markdown guidance with bash command examples and JSON response handling] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Requires curl, jq, OATDA_API_KEY, and ~/.oatda/credentials.json when the environment variable is absent.] <br>\n\n## Skill Version(s): <br>\n1.0.3 (source: server release evidence) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nArchive v1.0.1: 3 files, 3872 bytes\n\nFiles: skill-card.md (2474b), SKILL.md (5472b), _meta.json (141b)\n\nFile v1.0.1:SKILL.md\n\n---\nname: oatda-transcribe-audio\ndescription: Transcribe audio to text using OATDA's unified audio API. Triggers when the user wants speech-to-text, transcription of meetings, podcasts, voice notes, subtitles, timestamps, or Whisper-style transcription through OATDA.\nhomepage: https://oatda.com\nmetadata:\n  {\n    \"openclaw\":\n      {\n        \"emoji\": \"📝\",\n        \"requires\": { \"bins\": [\"curl\", \"jq\"], \"env\": [\"OATDA_API_KEY\"], \"config\": [\"~/.oatda/credentials.json\"] },\n        \"primaryEnv\": \"OATDA_API_KEY\",\n      },\n  }\n---\n\n# OATDA Audio Transcription\n\nTranscribe audio files to text through OATDA's unified audio API.\n\n## API Key Resolution\n\nAll commands need the OATDA API key. Resolve it inline for each `exec` call:\n\n```bash\nexport OATDA_API_KEY=\"${OATDA_API_KEY:-$(cat ~/.oatda/credentials.json 2>/dev/null | jq -r '.profiles[.defaultProfile].apiKey' 2>/dev/null)}\"\n```\n\nIf the key is empty or `null`, tell the user to get one at https://oatda.com and configure it.\n\n**Security**: Never print the full API key. Only verify existence or show first 8 chars.\n\n## Model Mapping\n\n| User says | Provider | Model |\n|-----------|----------|-------|\n| whisper, whisper-1, openai whisper (default) | openai | whisper-1 |\n| transcription, speech to text, stt | openai | whisper-1 |\n\n**Default**: `openai` / `whisper-1` if no model specified.\n\nIf the user provides `provider/model` format directly (for example `openai/whisper-1`), split on `/`.\n\n> ⚠️ Models change over time. If a model ID fails, query `oatda-list-models` with `?type=audio` first.\n\n## Input Preparation\n\nThe transcription endpoint supports:\n- `multipart/form-data` with a local file upload\n- JSON with a base64 data URL in `file`\n- JSON with `file_base64` for providers that support direct base64 payloads\n\nMaximum audio file size is 25MB.\n\nFor local files, prefer multipart upload because it is simpler and avoids large JSON bodies.\n\n## Discovering Audio Model Parameters\n\n```bash\nexport OATDA_API_KEY=\"${OATDA_API_KEY:-$(cat ~/.oatda/credentials.json 2>/dev/null | jq -r '.profiles[.defaultProfile].apiKey' 2>/dev/null)}\" && \\\ncurl -s -X GET \"https://oatda.com/api/v1/llm/models?type=audio\" \\\n  -H \"Authorization: Bearer $OATDA_API_KEY\" | jq '.audio_models[] | {id, supported_params}'\n```\n\nLook for:\n- `audio_modes` containing `transcription`\n- supported `response_format` values\n- optional timestamp, diarization, or streaming support\n\n## API Call (multipart)\n\n```bash\nexport OATDA_API_KEY=\"${OATDA_API_KEY:-$(cat ~/.oatda/credentials.json 2>/dev/null | jq -r '.profiles[.defaultProfile].apiKey' 2>/dev/null)}\" && \\\ncurl -s -X POST \"https://oatda.com/api/v1/llm/transcriptions\" \\\n  -H \"Authorization: Bearer $OATDA_API_KEY\" \\\n  -F \"provider=<PROVIDER>\" \\\n  -F \"model=<MODEL>\" \\\n  -F \"file=@<AUDIO_FILE>\" \\\n  -F \"response_format=json\"\n```\n\n## Alternative API Call (base64 JSON)\n\n```bash\nAUDIO_DATA_URL=\"data:audio/mpeg;base64,$(base64 -w 0 audio.mp3)\"\n\nexport OATDA_API_KEY=\"${OATDA_API_KEY:-$(cat ~/.oatda/credentials.json 2>/dev/null | jq -r '.profiles[.defaultProfile].apiKey' 2>/dev/null)}\" && \\\ncurl -s -X POST \"https://oatda.com/api/v1/llm/transcriptions\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer $OATDA_API_KEY\" \\\n  -d \"$(jq -n \\\n    --arg provider \\\"<PROVIDER>\\\" \\\n    --arg model \\\"<MODEL>\\\" \\\n    --arg file \\\"$AUDIO_DATA_URL\\\" \\\n    '{provider: $provider, model: $model, file: $file, response_format: \\\"json\\\"}')\"\n```\n\n## Common Parameters\n\n- `language`: ISO-639-1 language code like `en`, `de`, `fr`\n- `prompt`: Context for names, acronyms, or domain-specific terms\n- `response_format`: `json`, `text`, `srt`, `verbose_json`, `vtt`, or `diarized_json`\n- `temperature`: 0 to 1\n- `timestamp_granularities`: `word` and/or `segment`\n- `chunking_strategy`: `auto`\n- `hotwords`: Provider-specific keyword hints\n- `stream`: `true` if supported by the selected model\n\n## Response Format\n\nThe API returns JSON like:\n\n```json\n{\n  \"text\": \"The transcribed text...\",\n  \"language\": \"en\",\n  \"duration\": 42.5,\n  \"segments\": [],\n  \"words\": [],\n  \"costs\": {\n    \"inputCost\": 0,\n    \"outputCost\": 0.0001,\n    \"totalCost\": 0.0001,\n    \"currency\": \"USD\"\n  }\n}\n```\n\nPresent the `text` field to the user. Include subtitles, segments, or words if the requested format includes them.\n\n## Error Handling\n\n| HTTP Status | Meaning | Action |\n|-------------|---------|--------|\n| 401 | Invalid API key | Tell user to check their key |\n| 402 | Insufficient credits | Tell user to check balance |\n| 400 | Bad request / model not supported | Check model or file format and query `oatda-list-models` with `type=audio` |\n| 413 | File too large | Keep audio under 25MB or split it |\n| 429 | Rate limited or monthly cap | Wait briefly and retry once |\n\n## Example\n\n```bash\nexport OATDA_API_KEY=\"${OATDA_API_KEY:-$(cat ~/.oatda/credentials.json 2>/dev/null | jq -r '.profiles[.defaultProfile].apiKey' 2>/dev/null)}\" && \\\ncurl -s -X POST \"https://oatda.com/api/v1/llm/transcriptions\" \\\n  -H \"Authorization: Bearer $OATDA_API_KEY\" \\\n  -F \"provider=openai\" \\\n  -F \"model=whisper-1\" \\\n  -F \"file=@meeting.mp3\" \\\n  -F \"response_format=json\"\n```\n\n## Notes\n\n- Endpoint: `/api/v1/llm/transcriptions`\n- Prefer multipart upload for local files\n- Use `response_format=srt` or `vtt` for subtitles\n- Use `language` to improve recognition when source language is known\n- Equivalent capability name: `transcribe_audio`\n- Related skills: `oatda-generate-speech`, `oatda-translate-audio`, `oatda-list-models`\n\nFile v1.0.1:_meta.json\n\n{\n  \"ownerId\": \"kn7anz9axpc20rkkkfarxeh589845ssw\",\n  \"slug\": \"oatda-transcribe-audio\",\n  \"version\": \"1.0.1\",\n  \"publishedAt\": 1777228245048\n}\n\nFile v1.0.1:skill-card.md\n\n## Description: <br>\nTranscribe audio to text through OATDA's unified audio API for meetings, podcasts, voice notes, subtitles, timestamps, and Whisper-style transcription. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[devcsde](https://clawhub.ai/user/devcsde) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nDevelopers and users who need agent-assisted audio transcription can use this skill to prepare OATDA API calls for local audio files and return transcribed text, subtitles, segments, or word timing data. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: Audio selected for transcription is sent to OATDA using an API key. <br>\nMitigation: Use the skill only when OATDA's data handling fits the recording, prefer a dedicated OATDA API key, and avoid highly sensitive audio unless the workflow permits it. <br>\nRisk: The skill may read an OATDA API key from the environment or ~/.oatda/credentials.json. <br>\nMitigation: Protect the credentials file, avoid exposing the key in logs or shared terminals, and verify only that a key exists rather than printing it. <br>\nRisk: Audio files larger than the supported limit may fail transcription. <br>\nMitigation: Keep audio files under 25MB or split longer recordings before sending them to the transcription endpoint. <br>\n\n\n## Reference(s): <br>\n- [ClawHub skill page](https://clawhub.ai/devcsde/oatda-transcribe-audio) <br>\n- [OATDA](https://oatda.com) <br>\n- [OATDA audio models endpoint](https://oatda.com/api/v1/llm/models?type=audio) <br>\n- [OATDA transcriptions endpoint](https://oatda.com/api/v1/llm/transcriptions) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [text, markdown, shell commands, configuration, guidance] <br>\n**Output Format:** [Markdown with inline shell commands and JSON response guidance] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [May include transcription text, subtitles, segments, word timing data, cost fields, and error-handling guidance depending on the requested response format.] <br>\n\n## Skill Version(s): <br>\n1.0.1 (source: server release evidence) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nArchive v1.0.0: 2 files, 3023 bytes\n\nFiles: SKILL.md (6002b), _meta.json (141b)\n\nFile v1.0.0:SKILL.md\n\n---\nname: oatda-transcribe-audio\ndescription: 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.\n---\n\n# OATDA Audio Transcription\n\nTranscribe audio files to text through OATDA's unified audio API.\n\n## When to Use\n\nUse this skill when the user wants to:\n- Transcribe meetings, podcasts, interviews, or voice notes\n- Convert speech audio to written text\n- Create subtitles or timestamped transcripts\n- Use Whisper-style speech-to-text models through OATDA\n- Use the OATDA `transcribe_audio` capability\n\n## Prerequisites\n\nThe user needs an OATDA API key. Check in this order:\n1. `$OATDA_API_KEY` environment variable\n2. `~/.oatda/credentials.json` config file\n\nIf neither exists, tell the user:\n> You need an OATDA API key. Get one at https://oatda.com, then set it:\n> `export OATDA_API_KEY=your_key_here`\n\n## Step-by-Step Instructions\n\n### 1. Resolve the API key\n\n```bash\n# Check env var first; if empty, auto-load from credentials file\nif [[ -z \"$OATDA_API_KEY\" ]]; then\n  export OATDA_API_KEY=$(cat ~/.oatda/credentials.json 2>/dev/null | jq -r '.profiles[.defaultProfile].apiKey' 2>/dev/null)\nfi\n\n# Verify key exists (show first 8 chars only)\necho \"${OATDA_API_KEY:0:8}\"\n```\n\nIf the output is empty or `null`, stop and ask the user to configure their API key.\n\n**IMPORTANT**:\n- Never print the full API key. Only show the first 8 characters for verification.\n- The key resolution script and subsequent `curl` commands **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.\n\n### 2. Determine the model\n\nMap common aliases:\n\n| User says | Provider | Model |\n|-----------|----------|-------|\n| whisper, whisper-1, openai whisper (default) | openai | whisper-1 |\n| transcription, speech to text, stt | openai | whisper-1 |\n\n**Default**: `openai` / `whisper-1` if no model is specified.\n\nIf the user provides `provider/model` format directly (e.g., `openai/whisper-1`), split on `/` to get separate `provider` and `model` values.\n\n### 3. Prepare the audio input\n\nThe endpoint supports:\n- `multipart/form-data` with a local file upload\n- JSON with a base64 data URL in `file`\n- JSON with `file_base64` for providers that support direct base64 payloads\n\nMaximum audio file size is 25MB.\n\nFor local files, prefer multipart upload because it avoids manually building large JSON bodies.\n\n### 4. Optional: discover available audio models\n\n```bash\ncurl -s -X GET \"https://oatda.com/api/v1/llm/models?type=audio\" \\\n  -H \"Authorization: Bearer $OATDA_API_KEY\" | jq '.audio_models[] | {id, supported_params}'\n```\n\nUse `supported_params` to confirm whether the model supports transcription and optional fields such as timestamps or diarization.\n\n### 5. Make the API call with multipart/form-data\n\n```bash\ncurl -s -X POST \"https://oatda.com/api/v1/llm/transcriptions\" \\\n  -H \"Authorization: Bearer $OATDA_API_KEY\" \\\n  -F \"provider=<PROVIDER>\" \\\n  -F \"model=<MODEL>\" \\\n  -F \"file=@<AUDIO_FILE>\" \\\n  -F \"response_format=json\"\n```\n\nReplace `<PROVIDER>`, `<MODEL>`, and `<AUDIO_FILE>` with actual values.\n\n### 6. Alternative: JSON request with base64 data URL\n\n```bash\nAUDIO_DATA_URL=\"data:audio/mpeg;base64,$(base64 -w 0 audio.mp3)\"\n\ncurl -s -X POST \"https://oatda.com/api/v1/llm/transcriptions\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer $OATDA_API_KEY\" \\\n  -d \"$(jq -n \\\n    --arg provider \"<PROVIDER>\" \\\n    --arg model \"<MODEL>\" \\\n    --arg file \"$AUDIO_DATA_URL\" \\\n    '{provider: $provider, model: $model, file: $file, response_format: \"json\"}')\"\n```\n\n### 7. Optional parameters\n\n- `language`: ISO-639-1 language code, e.g. `en`, `de`, `fr`\n- `prompt`: Context for names, acronyms, or domain-specific terms\n- `response_format`: `json`, `text`, `srt`, `verbose_json`, `vtt`, or `diarized_json`\n- `temperature`: 0 to 1\n- `timestamp_granularities`: `word` and/or `segment`\n- `chunking_strategy`: `auto`\n- `hotwords`: Provider-specific keyword hints\n- `stream`: `true` for streaming transcription if supported\n\n### 8. Parse the response\n\nThe API returns JSON like:\n\n```json\n{\n  \"text\": \"The transcribed text...\",\n  \"language\": \"en\",\n  \"duration\": 42.5,\n  \"segments\": [],\n  \"words\": [],\n  \"costs\": {\n    \"inputCost\": 0,\n    \"outputCost\": 0.0001,\n    \"totalCost\": 0.0001,\n    \"currency\": \"USD\"\n  },\n  \"metadata\": {\n    \"provider\": \"openai\",\n    \"model\": \"whisper-1\",\n    \"latency\": 1200\n  }\n}\n```\n\nPresent the `text` field to the user. Include `segments`, `words`, or subtitles if the user requested a timestamped format.\n\n### 9. Handle errors\n\n| HTTP Status | Meaning | Action |\n|-------------|---------|--------|\n| 401 | Invalid API key | Tell user to check their key |\n| 402 | Insufficient credits | Tell user to check balance |\n| 400 | Bad request / model not supported | Check model format, file format, and use `/oatda:oatda-list-models` with `type=audio` |\n| 413 | File too large | Keep audio under 25MB or split it |\n| 429 | Rate limited or monthly cap | Wait briefly and retry once |\n\n## Full Example\n\nUser asks: \"Transcribe this recording with Whisper\"\n\n```bash\ncurl -s -X POST \"https://oatda.com/api/v1/llm/transcriptions\" \\\n  -H \"Authorization: Bearer $OATDA_API_KEY\" \\\n  -F \"provider=openai\" \\\n  -F \"model=whisper-1\" \\\n  -F \"file=@meeting.mp3\" \\\n  -F \"response_format=json\"\n```\n\n## Tips\n\n- The endpoint is `/api/v1/llm/transcriptions`.\n- Prefer multipart upload for local files.\n- Keep audio files under 25MB.\n- Use `response_format=srt` or `vtt` when the user wants subtitles.\n- Use `language` to improve recognition for known source-language audio.\n- NEVER expose the full API key in output.\n- Equivalent MCP tool name: `transcribe_audio`.\n- Related skills: `/oatda:oatda-generate-speech`, `/oatda:oatda-translate-audio`, `/oatda:oatda-list-models`.\n\nFile v1.0.0:_meta.json\n\n{\n  \"ownerId\": \"kn7anz9axpc20rkkkfarxeh589845ssw\",\n  \"slug\": \"oatda-transcribe-audio\",\n  \"version\": \"1.0.0\",\n  \"publishedAt\": 1777227980680\n}","readmeExcerpt":"Skill: OATDA Transcribe Audio Owner: devcsde Summary: Transcribe audio to text using OATDA's unified audio API. Triggers when the user wants speech-to-text, transcription of meetings, podcasts, voice notes, subt... Tags: latest:1.1.0 Version history: v1.1.0 | 2026-07-17T23:21:08.622Z | user Sync with latest API model IDs. Verify models via oatda-list-models. v1.0.3 | 2026-07-17T23:15:15.937Z | user - Removed sample f","codeSnippets":[],"executableExamples":[{"language":"bash","snippet":"export OATDA_API_KEY=\"${OATDA_API_KEY:-$(cat ~/.oatda/credentials.json 2>/dev/null | jq -r '.profiles[.defaultProfile].apiKey' 2>/dev/null)}\""},{"language":"bash","snippet":"curl -s -X GET \"https://oatda.com/api/v1/llm/models?type=audio\" \\\n  -H \"Authorization: Bearer $OATDA_API_KEY\" | jq '.audio_models[] | {id, supported_params}'"},{"language":"bash","snippet":"export OATDA_API_KEY=\"${OATDA_API_KEY:-$(cat ~/.oatda/credentials.json 2>/dev/null | jq -r '.profiles[.defaultProfile].apiKey' 2>/dev/null)}\" && \\\ncurl -s -X GET \"https://oatda.com/api/v1/llm/models?type=audio\" \\\n  -H \"Authorization: Bearer $OATDA_API_KEY\" | jq '.audio_models[] | {id, supported_params}'"},{"language":"bash","snippet":"curl -s -X POST \"https://oatda.com/api/v1/llm/transcriptions\" \\\n  -H \"Authorization: Bearer $OATDA_API_KEY\" \\\n  -F \"provider=<PROVIDER>\" \\\n  -F \"model=<MODEL>\" \\\n  -F \"file=@<AUDIO_FILE>\" \\\n  -F \"response_format=json\""},{"language":"bash","snippet":"export OATDA_API_KEY=\"${OATDA_API_KEY:-$(cat ~/.oatda/credentials.json 2>/dev/null | jq -r '.profiles[.defaultProfile].apiKey' 2>/dev/null)}\" && \\\ncurl -s -X POST \"https://oatda.com/api/v1/llm/transcriptions\" \\\n  -H \"Authorization: Bearer $OATDA_API_KEY\" \\\n  -F \"provider=<PROVIDER>\" \\\n  -F \"model=<MODEL>\" \\\n  -F \"file=@<AUDIO_FILE>\" \\\n  -F \"response_format=json\""},{"language":"bash","snippet":"curl -s -X POST \"https://oatda.com/api/v1/llm/transcriptions\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer $OATDA_API_KEY\" \\\n  -d \"$(jq -n \\\n    --arg provider \\\"<PROVIDER>\\\" \\\n    --arg model \\\"<MODEL>\\\" \\\n    --arg file \\\"$AUDIO_DATA_URL\\\" \\"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: oatda-transcribe-audio\ndescription: Transcribe audio to text using OATDA's unified audio API. Triggers when the user wants speech-to-text, transcription of meetings, podcasts, voice notes, subtitles, timestamps, or Whisper-style transcription through OATDA.\nhomepage: https://oatda.com\nmetadata:\n  {\n    \"openclaw\":\n      {\n        \"emoji\": \"📝\",\n        \"requires\": { \"bins\": [\"curl\", \"jq\"], \"env\": [\"OATDA_API_KEY\"], \"config\": [\"~/.oatda/credentials.json\"] },\n        \"primaryEnv\": \"OATDA_API_KEY\",\n      },\n  }\n---\n\n# OATDA Audio Transcription\n\nTranscribe audio files to text through OATDA's unified audio API.\n\n## API Key Resolution\n\nAll commands need the OATDA API key. Resolve it inline for each `exec` call:\n\n```bash\nexport OATDA_API_KEY=\"${OATDA_API_KEY:-$(cat ~/.oatda/credentials.json 2>/dev/null | jq -r '.profiles[.defaultProfile].apiKey' 2>/dev/null)}\"\n```\n\nIf the key is empty or `null`, tell the user to get one at https://oatda.com and configure it.\n\n**Security**: Never print the full API key. Only verify existence or show first 8 chars.\n\n## Model Mapping\n\n| User says | Provider | Model |\n|-----------|----------|-------|\n| whisper, whisper-1, openai whisper (default) | openai | whisper-1 |\n| transcription, speech to text, stt | openai | whisper-1 |\n\n**Default**: `openai` / `whisper-1` if no model specified.\n\nIf the user provides `provider/model` format directly (for example `openai/whisper-1`), split on `/`.\n\n> ⚠️ Models change over time. If a model ID fails, query `oatda-list-models` with `?type=audio` first.\n\n## Input Preparation\n\nThe transcription endpoint supports:\n- `multipart/form-data` with a local file upload\n- JSON with a base64 data URL in `file`\n- JSON with `file_base64` for providers that support direct base64 payloads\n\nMaximum audio file size is 25MB.\n\nFor local files, prefer multipart upload because it is simpler and avoids large JSON bodies.\n\n## Discovering Audio Model Parameters\n\n```bash\nexport OATDA_API_KEY=\"${OATDA_API_KEY:-$(cat ~/.oatda/credentials.json 2>/dev/null | jq -r '.profiles[.defaultProfile].apiKey' 2>/dev/null)}\" && \\\ncurl -s -X GET \"https://oatda.com/api/v1/llm/models?type=audio\" \\\n  -H \"Authorization: Bearer $OATDA_API_KEY\" | jq '.audio_models[] | {id, supported_params}'\n```\n\nLook for:\n- `audio_modes` containing `transcription`\n- supported `response_format` values\n- optional timestamp, diarization, or streaming support\n\n## API Call (multipart)\n\n```bash\nexport OATDA_API_KEY=\"${OATDA_API_KEY:-$(cat ~/.oatda/credentials.json 2>/dev/null | jq -r '.profiles[.defaultProfile].apiKey' 2>/dev/null)}\" && \\\ncurl -s -X POST \"https://oatda.com/api/v1/llm/transcriptions\" \\\n  -H \"Authorization: Bearer $OATDA_API_KEY\" \\\n  -F \"provider=<PROVIDER>\" \\\n  -F \"model=<MODEL>\" \\\n  -F \"file=@<AUDIO_FILE>\" \\\n  -F \"response_format=json\"\n```\n\n## Alternative API Call (base64 JSON)\n\n```bash\nAUDIO_DATA_URL=\"data:audio/mpeg;base64,$(base64 -w 0 audio.mp3)\"\n\nexport OATDA_API_KEY=\"${OATDA_API_KEY:-$(cat ~/.oatda/credentials.json 2>/dev/"},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn7anz9axpc20rkkkfarxeh589845ssw\",\n  \"slug\": \"oatda-transcribe-audio\",\n  \"version\": \"1.1.0\",\n  \"publishedAt\": 1784330468622\n}"},{"path":"skill-card.md","content":"## Description:\n\nTranscribes audio to text through OATDA's unified audio API for speech-to-text, meetings, podcasts, voice notes, subtitles, timestamps, and Whisper-style transcription.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[devcsde](https://clawhub.ai/user/devcsde)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nExternal users, developers, and agents use this skill to transcribe user-selected audio files through OATDA and return transcript text, subtitles, timestamps, or segment details when requested.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Selected audio files and their contents are sent to OATDA for transcription.\n\nMitigation: Use only when the user's OATDA account, consent requirements, and data-handling expectations are appropriate; avoid highly sensitive recordings unless those requirements are satisfied.\n\nRisk: The skill uses an OATDA API key for authenticated requests.\n\nMitigation: Keep the key in OATDA_API_KEY or the local credentials file and do not print the full key in responses or logs.\n\nRisk: Large or unsupported audio files can fail transcription requests.\n\nMitigation: Keep files under the documented 25MB limit, prefer multipart upload for local files, and query available audio models when model IDs fail.\n\n## Reference(s):\n\n- [OATDA](https://oatda.com)\n- [OATDA audio models endpoint](https://oatda.com/api/v1/llm/models?type=audio)\n- [OATDA transcription endpoint](https://oatda.com/api/v1/llm/transcriptions)\n- [ClawHub skill page](https://clawhub.ai/devcsde/skills/oatda-transcribe-audio)\n\n## Skill Output:\n\n**Output Type(s):** [Text, Shell commands, Configuration, Guidance]\n\n**Output Format:** [Markdown with inline bash commands and JSON response excerpts]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Requires OATDA_API_KEY; uploads selected audio files to OATDA; maximum audio file size is 25MB.]\n\n## Skill Version(s):\n\n1.1.0 (source: evidence.release.version)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment."}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":"Transcribe audio to text using OATDA's unified audio API. Triggers when the user wants speech-to-text, transcription of meetings, podcasts, voice notes, subt... Skill: OATDA Transcribe Audio Owner: devcsde Summary: Transcribe audio to text using OATDA's unified audio API. Triggers when the user wants speech-to-text, transcription of meetings, podcasts, voice notes, subt... Tags: latest:1.1.0 Version history: v1.1.0 | 2026-07-17T23:21:08.622Z | user Sync with latest API model IDs. Verify models via oatda-list-models. v1.0.3 | 2026-07-17T23:15:15.937Z | user - Removed sample f","editorialQuality":{"score":100,"threshold":65,"status":"ready","wordCount":1023,"uniquenessScore":49,"reasons":[]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-11T09:36:52.166Z","emptyReason":"No screenshots, media assets, or demo links are available."},"primaryImageUrl":null,"mediaAssetCount":0,"assets":[],"demoUrl":null},"ownerResources":{"evidence":{"source":"unclaimed","verified":false,"confidence":"low","updatedAt":"2026-10-11T09:36:52.166Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-10-11T14:13:07.706Z","emptyReason":null},"items":[{"id":"8ebccd8e-3863-4187-8355-c3f14e1f9edf","entityType":"agent","canonicalPath":"/agent/iofficeai-aionui","slug":"iofficeai-aionui","name":"AionUi","description":"Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!","url":"https://github.com/iOfficeAI/AionUi","homepage":"https://www.aionui.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-10-09T19:11:12.944Z","createdAt":"2026-02-25T03:38:16.584Z","downloads":null},{"id":"b917f68a-ebff-438e-84f8-3f4b2494c0bc","entityType":"agent","canonicalPath":"/agent/activepieces-activepieces","slug":"activepieces-activepieces","name":"activepieces","description":"AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents","url":"https://github.com/activepieces/activepieces","homepage":"https://www.activepieces.com","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-15T02:22:12.426Z","createdAt":"2026-02-25T03:38:12.412Z","downloads":null},{"id":"5cb26759-3a39-483f-94cf-276a98c13bb8","entityType":"agent","canonicalPath":"/agent/cherryhq-cherry-studio","slug":"cherryhq-cherry-studio","name":"cherry-studio","description":"AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs","url":"https://github.com/CherryHQ/cherry-studio","homepage":"https://cherry-ai.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-11T14:38:40.986Z","createdAt":"2026-02-25T03:38:19.379Z","downloads":null},{"id":"6f6582d0-5d76-4f0f-b81d-86520247950b","entityType":"agent","canonicalPath":"/agent/copilotkit-copilotkit","slug":"copilotkit-copilotkit","name":"CopilotKit","description":"The Frontend for Agents & Generative UI. React + Angular","url":"https://github.com/CopilotKit/CopilotKit","homepage":"https://docs.copilotkit.ai","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-03-25T09:50:57.846Z","createdAt":"2026-02-25T03:39:14.617Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/clawhub","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}