Install
openclaw skills install assemblyai-transcribeTranscribe, diarise, translate, post-process, and structure audio/video with AssemblyAI. Use this skill when the user wants AssemblyAI specifically, needs high-quality speech-to-text from a local file or URL, wants speaker labels or named speakers, language detection, subtitles, paragraph/sentence exports, topic/entity/sentiment extraction, Speech Understanding, or agent-friendly transcript output as Markdown or normalised JSON for downstream AI workflows.
openclaw skills install assemblyai-transcribeUse this skill when the user wants AssemblyAI rather than generic transcription, or when the job benefits from AssemblyAI-specific capabilities such as:
universal-3-pro and universal-2The skill is designed for AI agents like OpenClaw, not just end users. It provides:
scripts/assemblyai.mjs (and a compatibility wrapper at assemblyai.mjs)models and languages commandsIf they just want “a transcript”, a generic solution may be enough. Reach for this skill when the user mentions AssemblyAI, wants a specific AssemblyAI feature, or needs the richer outputs and post-processing this skill provides.
transcribeget or waitformatunderstandllmmodels or languagesFor most unknown-language or mixed-language jobs, prefer:
node {baseDir}/assemblyai.mjs transcribe INPUT --bundle-dir ./assemblyai-out --all-exports
Why:
Use this when the source language is unknown or could be outside the 6-language Universal-3-Pro set:
node {baseDir}/assemblyai.mjs transcribe ./meeting.mp3 --bundle-dir ./out --all-exports
This defaults to model routing plus language detection unless the request already specifies a model or language.
If the language is known and supported by Universal-3-Pro, prefer an explicit request:
node {baseDir}/assemblyai.mjs transcribe ./meeting.mp3 --speech-model universal-3-pro --language-code en_us --bundle-dir ./out
node {baseDir}/assemblyai.mjs transcribe ./meeting.mp3 --speaker-labels --bundle-dir ./out
Manual mapping:
node {baseDir}/assemblyai.mjs transcribe ./meeting.mp3 --speaker-labels --speaker-map @assets/speaker-map.example.json --bundle-dir ./out
AssemblyAI speaker identification:
node {baseDir}/assemblyai.mjs transcribe ./meeting.mp3 --speaker-labels --speaker-type role --known-speakers "host,guest" --bundle-dir ./out
Or post-process an existing transcript:
node {baseDir}/assemblyai.mjs understand TRANSCRIPT_ID --speaker-type name --speaker-profiles @assets/speaker-profiles-name.example.json --bundle-dir ./out
node {baseDir}/assemblyai.mjs transcribe ./meeting.mp3 --translate-to de,fr --match-original-utterance --bundle-dir ./out
node {baseDir}/assemblyai.mjs llm TRANSCRIPT_ID --prompt @assets/example-prompt.txt --schema @assets/llm-json-schema.example.json --out ./summary.json
transcribeUse for local files or remote URLs.
Prefer --bundle-dir for anything longer than a trivial clip.
get / waitUse when you already have the transcript id. wait blocks until completion; get fetches immediately unless you add --wait.
formatUse when you already saved:
This is useful when you want to apply a new speaker map, re-render Markdown, or generate a fresh bundle without retranscribing.
understandUse when you need AssemblyAI Speech Understanding on an existing transcript:
This command fetches the transcript, merges in the returned understanding results, then renders updated Markdown / agent JSON / bundle outputs.
llmUse when the user wants:
Prefer --schema when the next step is automated.
--bundle-dir writes a directory containing:
This is usually better than dumping everything to stdout.
Use --export to choose the main output:
markdown (default)agent-jsonjson / raw-jsontextparagraphssentencessrtvttmanifestYou can request extra files directly with:
--markdown-out--agent-json-out--raw-json-out--paragraphs-out--sentences-out--srt-out--vtt-out--understanding-json-outSpeaker display names are merged in this order:
--speaker-mapSpeaker A or Channel 1This means you can let AssemblyAI identify speakers first, then still override individual display names later.
Example manual map file: assets/speaker-map.example.json
Before choosing parameters, inspect the bundled reference data:
node {baseDir}/assemblyai.mjs models
node {baseDir}/assemblyai.mjs models --format json
node {baseDir}/assemblyai.mjs languages --model universal-3-pro
node {baseDir}/assemblyai.mjs languages --model universal-2 --codes --format json
The bundled data lives in:
assets/model-capabilities.jsonassets/language-codes.json--bundle-dir or --out for long outputs.--config or --request when you need a newly added AssemblyAI parameter that this skill has not exposed yet.Read these when you need more depth:
assemblyai.mjs — root wrapper for compatibility with the original skillscripts/assemblyai.mjs — main CLIassets/speaker-map.example.jsonassets/speaker-profiles-name.example.jsonassets/speaker-profiles-role.example.jsonassets/custom-spelling.example.jsonassets/llm-json-schema.example.jsonassets/transcript-agent-json-schema.jsonapi.assemblyai.com vs api.eu.assemblyai.com)?