Speech & TranscriptionDocumentedScanned

assemblyai-transcribe

Transcribe audio/video with AssemblyAI (local upload.

Share:

Installation

npx clawhub@latest install assemblyai-transcribe

View the full skill documentation and source below.

Documentation

AssemblyAI transcription + exports

Use this skill when you need to transcribe audio/video or export readable formats (subtitles, paragraphs, sentences) using AssemblyAI.

The helper script in this skill implements the basic REST flow:

  • (Local files) Upload via POST /v2/upload.

  • Create a transcript job via POST /v2/transcript.

  • Poll GET /v2/transcript/:id until the transcript status is completed (or error).
  • Setup

    This skill requires:

    • node on PATH (Node.js 18+ recommended; script uses built-in fetch)
    • ASSEMBLYAI_API_KEY in the environment
    Recommended Clawdbot config (~/.clawdbot/clawdbot.json):
    {
      skills: {
        entries: {
          // This skill declares metadata.clawdbot.skillKey = "assemblyai"
          assemblyai: {
            enabled: true,
            // Because this skill declares primaryEnv = ASSEMBLYAI_API_KEY,
            // you can use apiKey as a convenience:
            apiKey: "YOUR_ASSEMBLYAI_KEY",
            env: {
              ASSEMBLYAI_API_KEY: "YOUR_ASSEMBLYAI_KEY",
    
              // Optional: use EU async endpoint
              // ASSEMBLYAI_BASE_URL: ""
            }
          }
        }
      }
    }

    Usage

    Run these commands via the Exec tool.

    Transcribe (local file or public URL)

    Print transcript text to stdout:

    node {baseDir}/assemblyai.mjs transcribe "./path/to/audio.mp3"
    node {baseDir}/assemblyai.mjs transcribe ""

    Write transcript to a file (recommended for long audio):

    node {baseDir}/assemblyai.mjs transcribe "./path/to/audio.mp3" --out ./transcript.txt

    Pass advanced transcription options

    Any fields supported by POST /v2/transcript can be passed via --config:

    node {baseDir}/assemblyai.mjs transcribe "./path/to/audio.mp3" \
      --config '{"speaker_labels":true,"summarization":true,"summary_model":"informative","summary_type":"bullets"}' \
      --export json \
      --out ./transcript.json

    Export subtitles (SRT/VTT)

    Transcribe and immediately export subtitles:

    node {baseDir}/assemblyai.mjs transcribe "./path/to/video.mp4" --export srt --out ./subtitles.srt
    node {baseDir}/assemblyai.mjs transcribe "./path/to/video.mp4" --export vtt --out ./subtitles.vtt

    Or export subtitles from an existing transcript ID:

    node {baseDir}/assemblyai.mjs subtitles <transcript_id> srt --out ./subtitles.srt

    Export paragraphs / sentences

    node {baseDir}/assemblyai.mjs paragraphs <transcript_id> --out ./paragraphs.txt
    node {baseDir}/assemblyai.mjs sentences <transcript_id> --out ./sentences.txt

    Fetch an existing transcript

    node {baseDir}/assemblyai.mjs get <transcript_id> --format json
    node {baseDir}/assemblyai.mjs get <transcript_id> --wait --format text

    Guidance

    • Prefer --out when output might be large.
    • Keep API keys out of logs and chat; rely on env injection.
    • If a user asks for EU processing/data residency, set ASSEMBLYAI_BASE_URL to the EU host.
    • AssemblyAI requires that uploads and the subsequent transcript request use an API key from the same AssemblyAI project (otherwise you can get a 403 / 'Cannot access uploaded file').