mcpField
T
transcribe-video

transcribe-video

github.com/rameerez创意与媒体31130 次安装36 周前更新
代码仓库

关于 transcribe-video

使用 AWS Transcribe 转录音频或视频文件的技能,会在源文件旁生成 SRT、VTT 和纯文本结果,并清理临时 AWS 资源。

主要功能

  1. 01使用 ffmpeg 提取音频
  2. 02通过 AWS Transcribe 转录
  3. 03生成 SRT 和 VTT 字幕
  4. 04生成纯文本转录稿
  5. 05清理临时 AWS 资源

适用场景

  1. 01为视频文件制作字幕
  2. 02生成音频转录稿
  3. 03制作适用于网页的 VTT 字幕

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/rameerez/claude-code-startup-skills --skill transcribe-video

安装后在 Claude Code 中输入/transcribe-video确认已加载。

详细介绍

视频转录技能

使用 AWS Transcribe 从 $ARGUMENTS(视频或音频文件路径,可选地在后面附加语言代码,如 en-US 或 es-ES)生成字幕和转录文本。

在源文件旁生成 .srt、.vtt 和 .txt 文件。

流程

  1. 验证先决条件 - 检查是否已安装并配置 ffmpeg 和 aws CLI
  2. 提取音频,使用 ffmpeg 将视频转换为 MP3
  3. 创建临时 S3 存储桶,并上传音频
  4. 使用 SRT 和 VTT 字幕输出运行 AWS Transcribe 任务
  5. 下载结果并生成纯文本转录
  6. 清理所有 AWS 资源 - 删除 S3 存储桶、Transcribe 任务和临时文件。不会产生持续费用。

先决条件

  • 已安装 ffmpeg(brew install ffmpeg)
  • 已安装并配置 aws CLI,且凭证有效(brew install awscli && aws configure)
  • AWS 凭证需要具备以下权限:s3:*(创建/删除存储桶)、transcribe:*(启动/删除任务)

分步操作

第 1 步:提取音频
ffmpeg -i "input.mp4" -vn -acodec mp3 -q:a 2 "/tmp/transcribe-audio.mp3" -y
第 2 步:创建临时 S3 存储桶并上传
BUCKET="tmp-transcribe-$(date +%s)"
aws s3 mb "s3://$BUCKET" --region us-east-1
aws s3 cp "/tmp/transcribe-audio.mp3" "s3://$BUCKET/audio.mp3"
第 3 步:启动转录任务
JOB_NAME="tmp-job-$(date +%s)"
aws transcribe start-transcription-job \
  --transcription-job-name "$JOB_NAME" \
  --language-code en-US \
  --media-format mp3 \
  --media "MediaFileUri=s3://$BUCKET/audio.mp3" \
  --subtitles "Formats=srt,vtt" \
  --output-bucket-name "$BUCKET" \
  --region us-east-1

语言代码: en-US、es-ES、fr-FR、de-DE、pt-BR、ja-JP、zh-CN、it-IT、ko-KR 等。如果未指定,默认使用 en-US。

第 4 步:轮询直到任务完成
while true; do
  STATUS=$(aws transcribe get-transcription-job \
    --transcription-job-name "$JOB_NAME" \
    --region us-east-1 \
    --query 'TranscriptionJob.TranscriptionJobStatus' \
    --output text)
  if [ "$STATUS" = "COMPLETED" ] || [ "$STATUS" = "FAILED" ]; then break; fi
  sleep 5
done
第 5 步:下载字幕文件

将 .srt 和 .vtt 文件保存在原始文件旁:

aws s3 cp "s3://$BUCKET/$JOB_NAME.srt" "/path/to/input.srt"
aws s3 cp "s3://$BUCKET/$JOB_NAME.vtt" "/path/to/input.vtt"
第 6 步:生成纯文本转录

下载 JSON 结果并提取完整的转录文本:

aws s3 cp "s3://$BUCKET/$JOB_NAME.json" "/tmp/transcribe-result.json"

然后使用工具从 JSON 中提取 .results.transcripts[0].transcript 字段,并将其保存为原始文件旁的 .txt 文件。

第 7 步:清理所有资源

重要: 务必进行清理,以避免产生持续的 S3 存储费用。

# Delete S3 bucket and all contents
aws s3 rb "s3://$BUCKET" --force --region us-east-1

# Delete the transcription job
aws transcribe delete-transcription-job --transcription-job-name "$JOB_NAME" --region us-east-1

# Delete temp audio file
rm -f "/tmp/transcribe-audio.mp3" "/tmp/transcribe-result.json"

实际结果(参考)

以下为实际转录任务的结果:

视频时长音频大小Transcribe 耗时字幕片段数
X/Twitter 短片2:402.5 MB~20 秒83
屏幕录制18:4511.4 MB~60 秒500+
关键见解
  1. AWS Transcribe 速度很快 - 即使是 19 分钟的视频,也能在大约一分钟内完成
  2. 短内容(推文、短视频)几乎可以瞬间转录完成
  3. 成本可以忽略不计 - AWS Transcribe 的费用约为 ~$0.024/分钟,因此一段 19 分钟的视频约需 ~$0.46
  4. 清理至关重要 - 务必删除 S3 存储桶,以避免存储费用
  5. SRT 兼容性最高 - 适用于大多数视频播放器和编辑器;VTT 更适用于网页

输出文件

original-video.mp4
original-video.srt          # Subtitles with timestamps (most compatible)
original-video.vtt          # Web-optimized subtitles (for HTML5 <track>)
original-video.txt          # Plain text transcript (no timestamps)

转录后

  1. 确认所有输出文件均已生成:ls -lh /path/to/original-video.{srt,vtt,txt}
  2. 报告字幕片段数和总时长
  3. 确认所有 AWS 资源均已清理(不存在 S3 存储桶,也没有剩余的 Transcribe 任务)

评论

支持 Markdown