assemblyai-transcribe

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

AssemblyAI transcription + exports

AssemblyAI转录与导出

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:
  1. (Local files) Upload via
    POST /v2/upload
    .
  2. Create a transcript job via
    POST /v2/transcript
    .
  3. Poll
    GET /v2/transcript/:id
    until the transcript
    status
    is
    completed
    (or
    error
    ).
当你需要使用AssemblyAI转录音频/视频,或导出可读格式(字幕、段落、句子)时,可以使用此技能。
本技能中的辅助脚本实现了基础的REST流程:
  1. (本地文件)通过
    POST /v2/upload
    上传文件。
  2. 通过
    POST /v2/transcript
    创建转录任务。
  3. 轮询
    GET /v2/transcript/:id
    ,直到转录任务
    status
    变为
    completed
    (或
    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
):
js
{
  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: "https://api.eu.assemblyai.com"
        }
      }
    }
  }
}
此技能需要:
  • 环境变量PATH中配置
    node
    (推荐Node.js 18+版本;脚本使用内置的fetch)
  • 环境中设置
    ASSEMBLYAI_API_KEY
推荐的Clawdbot配置(
~/.clawdbot/clawdbot.json
):
js
{
  skills: {
    entries: {
      // 本技能声明metadata.clawdbot.skillKey = "assemblyai"
      assemblyai: {
        enabled: true,
        // 由于本技能声明primaryEnv = ASSEMBLYAI_API_KEY,你可以便捷使用apiKey字段:
        apiKey: "YOUR_ASSEMBLYAI_KEY",
        env: {
          ASSEMBLYAI_API_KEY: "YOUR_ASSEMBLYAI_KEY",

          // 可选:使用欧盟异步端点
          // ASSEMBLYAI_BASE_URL: "https://api.eu.assemblyai.com"
        }
      }
    }
  }
}

Usage

使用方法

Run these commands via the Exec tool.
通过Exec工具运行以下命令。

Transcribe (local file or public URL)

转录(本地文件或公开URL)

Print transcript text to stdout:
bash
node {baseDir}/assemblyai.mjs transcribe "./path/to/audio.mp3"
node {baseDir}/assemblyai.mjs transcribe "https://example.com/audio.mp3"
Write transcript to a file (recommended for long audio):
bash
node {baseDir}/assemblyai.mjs transcribe "./path/to/audio.mp3" --out ./transcript.txt
将转录文本输出到标准输出:
bash
node {baseDir}/assemblyai.mjs transcribe "./path/to/audio.mp3"
node {baseDir}/assemblyai.mjs transcribe "https://example.com/audio.mp3"
将转录内容写入文件(长音频推荐使用此方式):
bash
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
:
bash
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
POST /v2/transcript
支持的所有字段都可通过
--config
传递:
bash
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)

导出字幕(SRT/VTT)

Transcribe and immediately export subtitles:
bash
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:
bash
node {baseDir}/assemblyai.mjs subtitles <transcript_id> srt --out ./subtitles.srt
转录后立即导出字幕:
bash
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
或从已有的转录ID导出字幕:
bash
node {baseDir}/assemblyai.mjs subtitles <transcript_id> srt --out ./subtitles.srt

Export paragraphs / sentences

导出段落/句子

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

Fetch an existing transcript

获取已有的转录内容

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

Guidance

注意事项

  • Prefer
    --out <file>
    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').
  • 当输出内容可能较大时,推荐使用
    --out <file>
    参数。
  • 避免在日志和聊天中暴露API密钥;依赖环境变量注入。
  • 如果用户要求欧盟地区处理/数据驻留,将
    ASSEMBLYAI_BASE_URL
    设置为欧盟节点地址。
  • AssemblyAI要求文件上传和后续转录请求使用同一AssemblyAI项目的API密钥(否则会返回403错误:'无法访问上传的文件')。