{"id":"8755e601-22b7-42fb-9d04-584a8e687c55","entityType":"agent","slug":"clawhub-devcsde-oatda-translate-audio","name":"OATDA Translate Audio","canonicalUrl":"https://www.xpersona.co/agent/clawhub-devcsde-oatda-translate-audio","canonicalPath":"/agent/clawhub-devcsde-oatda-translate-audio","generatedAt":"2026-10-11T20:56:25.490Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"editorial-content","verified":true,"confidence":"high","updatedAt":"2026-10-11T16:50:57.377Z","emptyReason":null},"description":"Translate foreign-language audio into English text using OATDA's unified audio API. Triggers when the user wants audio translation, spoken-language translati... Skill: OATDA Translate Audio Owner: devcsde Summary: Translate foreign-language audio into English text using OATDA's unified audio API. Triggers when the user wants audio translation, spoken-language translati... Tags: latest:1.1.0 Version history: v1.1.0 | 2026-07-17T23:21:07.970Z | user Sync with latest API model IDs. Verify models via oatda-list-models. v1.0.1 | 2026-04-26T18:30:46.832Z | user Fix: replaced with","descriptionLabel":"Technical summary","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 1K downloads reported by the source. Last updated 10/11/2026.","installCommand":"clawhub skill install s1715k9c0vyqryjet8h0ek3xc58447z6:oatda-translate-audio","sourceUrl":"https://clawhub.ai/devcsde/oatda-translate-audio","homepage":"https://clawhub.ai/devcsde/skills/oatda-translate-audio","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/devcsde/oatda-translate-audio","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/devcsde/skills/oatda-translate-audio","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":60,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"Translate foreign-language audio into English text using OATDA's unified audio API. Triggers when the user wants audio translation, spoken-language translati..."},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-11T16:50:57.377Z","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-11T16:50:57.377Z","emptyReason":null},"stars":null,"forks":null,"downloads":1024,"packageName":null,"latestVersion":"1.1.0","tractionLabel":"1K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-11T16:50:57.304Z","emptyReason":null},"lastUpdatedAt":"2026-10-11T16:50:57.377Z","lastCrawledAt":"2026-10-11T16:50:57.304Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-12T16:50:57.304Z","lastVerifiedAt":null,"highlights":[{"version":"1.1.0","createdAt":"2026-07-17T23:21:07.970Z","changelog":"Sync with latest API model IDs. Verify models via oatda-list-models.","fileCount":3,"zipByteSize":3497},{"version":"1.0.1","createdAt":"2026-04-26T18:30:46.832Z","changelog":"Fix: replaced with correct OpenClaw skill format","fileCount":3,"zipByteSize":3692},{"version":"1.0.0","createdAt":"2026-04-26T18:26:26.270Z","changelog":"Initial release: Foreign-language audio to English translation via OATDA unified audio API","fileCount":2,"zipByteSize":2848}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s1715k9c0vyqryjet8h0ek3xc58447z6:oatda-translate-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-translate-audio/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-devcsde-oatda-translate-audio/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-devcsde-oatda-translate-audio/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-devcsde-oatda-translate-audio/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-devcsde-oatda-translate-audio/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-devcsde-oatda-translate-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-11T20:56:25.490Z"}},"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-translate-audio/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-devcsde-oatda-translate-audio/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-devcsde-oatda-translate-audio/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-devcsde-oatda-translate-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-11T16:50:57.377Z","emptyReason":null},"readme":"Skill: OATDA Translate Audio\n\nOwner: devcsde\n\nSummary: Translate foreign-language audio into English text using OATDA's unified audio API. Triggers when the user wants audio translation, spoken-language translati...\n\nTags: latest:1.1.0\n\nVersion history:\n\nv1.1.0 | 2026-07-17T23:21:07.970Z | user\n\nSync with latest API model IDs. Verify models via oatda-list-models.\n\nv1.0.1 | 2026-04-26T18:30:46.832Z | user\n\nFix: replaced with correct OpenClaw skill format\n\nv1.0.0 | 2026-04-26T18:26:26.270Z | user\n\nInitial release: Foreign-language audio to English translation via OATDA unified audio API\n\nArchive index:\n\nArchive v1.1.0: 3 files, 3497 bytes\n\nFiles: _meta.json (140b), skill-card.md (1973b), SKILL.md (5121b)\n\nFile v1.1.0:SKILL.md\n\n---\nname: oatda-translate-audio\ndescription: Translate foreign-language audio into English text using OATDA's unified audio API. Triggers when the user wants audio translation, spoken-language translation, Whisper-style translation, or English output from uploaded recordings 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 Translation\n\nTranslate foreign-language audio into English 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| translate audio, audio translation | 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 translation endpoint supports:\n- `multipart/form-data` with a local file upload\n- JSON with a base64 data URL in `file`\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 `translation`\n- supported `response_format` values\n- optional prompt or filename 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/translations\" \\\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/translations\" \\\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- `prompt`: Optional hint for terminology, names, or translation style\n- `response_format`: `json`, `text`, `srt`, `verbose_json`, or `vtt`\n- `temperature`: 0 to 1\n- `filename`: Optional filename for JSON uploads\n\n## Response Format\n\nThe API returns JSON like:\n\n```json\n{\n  \"text\": \"The English translation...\",\n  \"language\": \"fr\",\n  \"duration\": 42.5,\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 and mention that the output is English.\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/translations\" \\\n  -H \"Authorization: Bearer $OATDA_API_KEY\" \\\n  -F \"provider=openai\" \\\n  -F \"model=whisper-1\" \\\n  -F \"file=@french-audio.mp3\" \\\n  -F \"response_format=json\"\n```\n\n## Notes\n\n- Endpoint: `/api/v1/llm/translations`\n- Translation output is English text\n- Prefer multipart upload for local files\n- Use `prompt` for names, acronyms, or domain-specific terminology\n- Equivalent capability name: `translate_audio`\n- Related skills: `oatda-transcribe-audio`, `oatda-generate-speech`, `oatda-list-models`\n\nFile v1.1.0:_meta.json\n\n{\n  \"ownerId\": \"kn7anz9axpc20rkkkfarxeh589845ssw\",\n  \"slug\": \"oatda-translate-audio\",\n  \"version\": \"1.1.0\",\n  \"publishedAt\": 1784330467970\n}\n\nFile v1.1.0:skill-card.md\n\n## Description:\n\nTranslate foreign-language audio into English text using OATDA's unified audio API.\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\nDevelopers and agents use this skill to translate uploaded or local foreign-language audio recordings into English text through OATDA's audio translation endpoint.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Selected audio recordings are uploaded to OATDA for processing, which may expose sensitive recording content to an external service.\n\nMitigation: Use the skill only for recordings the user intends to send to OATDA, and avoid sensitive audio unless that external upload is acceptable.\n\nRisk: The skill requires an OATDA API key from the environment or credentials file.\n\nMitigation: Store the API key in OATDA_API_KEY or ~/.oatda/credentials.json and avoid printing the full key in outputs or logs.\n\n## Reference(s):\n\n- [ClawHub skill page](https://clawhub.ai/devcsde/skills/oatda-translate-audio)\n- [OATDA](https://oatda.com)\n- [OATDA audio models endpoint](https://oatda.com/api/v1/llm/models?type=audio)\n- [OATDA translations endpoint](https://oatda.com/api/v1/llm/translations)\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 examples]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [English translation text returned from OATDA, with optional JSON, text, SRT, verbose JSON, or VTT response formats.]\n\n## Skill Version(s):\n\n1.1.0 (source: server release evidence)\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.1: 3 files, 3692 bytes\n\nFiles: skill-card.md (2543b), SKILL.md (5121b), _meta.json (140b)\n\nFile v1.0.1:SKILL.md\n\n---\nname: oatda-translate-audio\ndescription: Translate foreign-language audio into English text using OATDA's unified audio API. Triggers when the user wants audio translation, spoken-language translation, Whisper-style translation, or English output from uploaded recordings 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 Translation\n\nTranslate foreign-language audio into English 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| translate audio, audio translation | 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 translation endpoint supports:\n- `multipart/form-data` with a local file upload\n- JSON with a base64 data URL in `file`\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 `translation`\n- supported `response_format` values\n- optional prompt or filename 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/translations\" \\\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/translations\" \\\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- `prompt`: Optional hint for terminology, names, or translation style\n- `response_format`: `json`, `text`, `srt`, `verbose_json`, or `vtt`\n- `temperature`: 0 to 1\n- `filename`: Optional filename for JSON uploads\n\n## Response Format\n\nThe API returns JSON like:\n\n```json\n{\n  \"text\": \"The English translation...\",\n  \"language\": \"fr\",\n  \"duration\": 42.5,\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 and mention that the output is English.\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/translations\" \\\n  -H \"Authorization: Bearer $OATDA_API_KEY\" \\\n  -F \"provider=openai\" \\\n  -F \"model=whisper-1\" \\\n  -F \"file=@french-audio.mp3\" \\\n  -F \"response_format=json\"\n```\n\n## Notes\n\n- Endpoint: `/api/v1/llm/translations`\n- Translation output is English text\n- Prefer multipart upload for local files\n- Use `prompt` for names, acronyms, or domain-specific terminology\n- Equivalent capability name: `translate_audio`\n- Related skills: `oatda-transcribe-audio`, `oatda-generate-speech`, `oatda-list-models`\n\nFile v1.0.1:_meta.json\n\n{\n  \"ownerId\": \"kn7anz9axpc20rkkkfarxeh589845ssw\",\n  \"slug\": \"oatda-translate-audio\",\n  \"version\": \"1.0.1\",\n  \"publishedAt\": 1777228246832\n}\n\nFile v1.0.1:skill-card.md\n\n## Description: <br>\nTranslate foreign-language audio into English 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>\nExternal users and developers use this skill to translate uploaded foreign-language audio recordings into English text through OATDA. It helps an agent prepare authenticated OATDA audio translation requests, choose the default Whisper translation model, and present the returned English text. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: The skill uploads selected audio recordings to OATDA for translation, and recordings may contain sensitive personal, medical, financial, or confidential content. <br>\nMitigation: Only use it when sending the recording to OATDA is intentional; avoid private or regulated conversations unless authorized. <br>\nRisk: The skill requires an OATDA API key for authenticated requests. <br>\nMitigation: Store the key in the documented environment variable or credentials file, and never print the full key in logs or user-facing output. <br>\nRisk: Large base64 JSON uploads can be harder to inspect and may exceed request limits. <br>\nMitigation: Prefer the documented multipart upload path for local audio files and keep audio under the documented 25MB limit. <br>\n\n\n## Reference(s): <br>\n- [ClawHub Skill Page](https://clawhub.ai/devcsde/oatda-translate-audio) <br>\n- [Publisher Profile](https://clawhub.ai/user/devcsde) <br>\n- [OATDA](https://oatda.com) <br>\n- [OATDA Audio Models API](https://oatda.com/api/v1/llm/models?type=audio) <br>\n- [OATDA Translations API](https://oatda.com/api/v1/llm/translations) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [text, shell commands, configuration guidance, API calls] <br>\n**Output Format:** [Markdown with inline bash commands and JSON response examples] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Requires curl, jq, an OATDA API key, and an audio file up to 25MB; presents the returned English translation text.] <br>\n\n## Skill Version(s): <br>\n1.0.1 (source: server release metadata) <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, 2848 bytes\n\nFiles: SKILL.md (5672b), _meta.json (140b)\n\nFile v1.0.0:SKILL.md\n\n---\nname: oatda-translate-audio\ndescription: Use when the user wants to translate foreign-language audio into English text using OATDA's unified audio API. Supports audio translation, Whisper-style translation, and the translate_audio MCP capability.\n---\n\n# OATDA Audio Translation\n\nTranslate audio into English text through OATDA's unified audio API.\n\n## When to Use\n\nUse this skill when the user wants to:\n- Translate foreign-language audio into English text\n- Convert French, German, Spanish, Italian, or other spoken audio to English\n- Translate interviews, voice notes, meetings, podcasts, or recordings\n- Use Whisper-style audio translation through OATDA\n- Use the OATDA `translate_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| translate audio, audio translation | 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\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 translation and optional fields.\n\n### 5. Make the API call with multipart/form-data\n\n```bash\ncurl -s -X POST \"https://oatda.com/api/v1/llm/translations\" \\\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/translations\" \\\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- `prompt`: Optional hint for terminology, names, or translation style\n- `response_format`: `json`, `text`, `srt`, `verbose_json`, or `vtt`\n- `temperature`: 0 to 1\n- `filename`: Optional filename for JSON uploads\n\n### 8. Parse the response\n\nThe API returns JSON like:\n\n```json\n{\n  \"text\": \"The English translation...\",\n  \"language\": \"fr\",\n  \"duration\": 42.5,\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. Mention that the output is English unless the user asked for another downstream translation step.\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: \"Translate this French audio to English with Whisper\"\n\n```bash\ncurl -s -X POST \"https://oatda.com/api/v1/llm/translations\" \\\n  -H \"Authorization: Bearer $OATDA_API_KEY\" \\\n  -F \"provider=openai\" \\\n  -F \"model=whisper-1\" \\\n  -F \"file=@french-audio.mp3\" \\\n  -F \"response_format=json\"\n```\n\n## Tips\n\n- The endpoint is `/api/v1/llm/translations`.\n- Translation output is English text.\n- Prefer multipart upload for local files.\n- Keep audio files under 25MB.\n- Use `prompt` for names, acronyms, or domain-specific terminology.\n- NEVER expose the full API key in output.\n- Equivalent MCP tool name: `translate_audio`.\n- Related skills: `/oatda:oatda-transcribe-audio`, `/oatda:oatda-generate-speech`, `/oatda:oatda-list-models`.\n\nFile v1.0.0:_meta.json\n\n{\n  \"ownerId\": \"kn7anz9axpc20rkkkfarxeh589845ssw\",\n  \"slug\": \"oatda-translate-audio\",\n  \"version\": \"1.0.0\",\n  \"publishedAt\": 1777227986270\n}","readmeExcerpt":"Skill: OATDA Translate Audio Owner: devcsde Summary: Translate foreign-language audio into English text using OATDA's unified audio API. Triggers when the user wants audio translation, spoken-language translati... Tags: latest:1.1.0 Version history: v1.1.0 | 2026-07-17T23:21:07.970Z | user Sync with latest API model IDs. Verify models via oatda-list-models. v1.0.1 | 2026-04-26T18:30:46.832Z | user Fix: replaced with ","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/translations\" \\\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/translations\" \\\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/translations\" \\\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-translate-audio\ndescription: Translate foreign-language audio into English text using OATDA's unified audio API. Triggers when the user wants audio translation, spoken-language translation, Whisper-style translation, or English output from uploaded recordings 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 Translation\n\nTranslate foreign-language audio into English 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| translate audio, audio translation | 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 translation endpoint supports:\n- `multipart/form-data` with a local file upload\n- JSON with a base64 data URL in `file`\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 `translation`\n- supported `response_format` values\n- optional prompt or filename 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/translations\" \\\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/nul"},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn7anz9axpc20rkkkfarxeh589845ssw\",\n  \"slug\": \"oatda-translate-audio\",\n  \"version\": \"1.1.0\",\n  \"publishedAt\": 1784330467970\n}"},{"path":"skill-card.md","content":"## Description:\n\nTranslate foreign-language audio into English text using OATDA's unified audio API.\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\nDevelopers and agents use this skill to translate uploaded or local foreign-language audio recordings into English text through OATDA's audio translation endpoint.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Selected audio recordings are uploaded to OATDA for processing, which may expose sensitive recording content to an external service.\n\nMitigation: Use the skill only for recordings the user intends to send to OATDA, and avoid sensitive audio unless that external upload is acceptable.\n\nRisk: The skill requires an OATDA API key from the environment or credentials file.\n\nMitigation: Store the API key in OATDA_API_KEY or ~/.oatda/credentials.json and avoid printing the full key in outputs or logs.\n\n## Reference(s):\n\n- [ClawHub skill page](https://clawhub.ai/devcsde/skills/oatda-translate-audio)\n- [OATDA](https://oatda.com)\n- [OATDA audio models endpoint](https://oatda.com/api/v1/llm/models?type=audio)\n- [OATDA translations endpoint](https://oatda.com/api/v1/llm/translations)\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 examples]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [English translation text returned from OATDA, with optional JSON, text, SRT, verbose JSON, or VTT response formats.]\n\n## Skill Version(s):\n\n1.1.0 (source: server release evidence)\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":"Translate foreign-language audio into English text using OATDA's unified audio API. Triggers when the user wants audio translation, spoken-language translati... Skill: OATDA Translate Audio Owner: devcsde Summary: Translate foreign-language audio into English text using OATDA's unified audio API. Triggers when the user wants audio translation, spoken-language translati... Tags: latest:1.1.0 Version history: v1.1.0 | 2026-07-17T23:21:07.970Z | user Sync with latest API model IDs. Verify models via oatda-list-models. v1.0.1 | 2026-04-26T18:30:46.832Z | user Fix: replaced with","editorialQuality":{"score":100,"threshold":65,"status":"ready","wordCount":963,"uniquenessScore":50,"reasons":[]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-11T16:50:57.377Z","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-11T16:50:57.377Z","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-11T20:56:25.490Z","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"}]}}}