transcribe-video について
AWS Transcribe で音声または動画を文字起こしするスキルです。元ファイルの隣に SRT、VTT、テキストを出力し、一時的な AWS リソースを削除します。
主な機能
- 01ffmpeg による音声抽出
- 02AWS Transcribe による文字起こし
- 03SRT と VTT の字幕出力
- 04テキスト形式の文字起こし生成
- 05一時 AWS リソースの削除
活用シーン
- 01動画ファイルの字幕作成
- 02音声の文字起こし生成
- 03ウェブ向け VTT 字幕の作成
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ rameerez/ claude-code-startup-skills --skill transcribe-videoインストール後、Claude Code で/transcribe-videoを入力して読み込まれたか確認します。
詳細
動画文字起こしスキル
$ARGUMENTS(動画または音声ファイルのパス、任意で en-US や es-ES などの言語コードを続けて指定)から、AWS Transcribe を使用して字幕と文字起こしを生成します。
ソースファイルと同じ場所に .srt、.vtt、.txt ファイルを出力します。
処理の流れ
- 前提条件を確認 -
ffmpegとawsCLI がインストールされ、設定されていることを確認します - 音声を抽出 - ffmpeg を使用して動画から MP3 として音声を抽出します
- 一時的な S3 バケットを作成し、音声をアップロードします
- AWS Transcribe ジョブを SRT および VTT 字幕出力付きで実行します
- 結果をダウンロードし、プレーンテキストの文字起こしを生成します
- すべての AWS リソースをクリーンアップ - S3 バケット、Transcribe ジョブ、一時ファイルを削除します。継続的なコストは発生しません。
前提条件
ffmpegがインストールされていること(brew install ffmpeg)awsCLI がインストールされ、有効な認証情報で設定されていること(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"
実際の結果(参考)
実際の文字起こし実行から:
| 動画 | 長さ | 音声サイズ | 文字起こし時間 | 字幕セグメント数 |
|---|---|---|---|---|
| X/Twitter クリップ | 2:40 | 2.5 MB | 約20秒 | 83 |
| 画面録画 | 18:45 | 11.4 MB | 約60秒 | 500+ |
主な知見
- AWS Transcribe は高速 - 19分の動画でも約1分で完了します
- ショートフォームコンテンツ(ツイート、リール)はほぼ瞬時に文字起こしされます
- コストはごくわずか - AWS Transcribe の料金は約 $0.024/分なので、19分の動画で約 $0.46 です
- クリーンアップは重要 - ストレージ料金を避けるため、必ず S3 バケットを削除してください
- SRT が最も互換性が高い - ほとんどの動画プレーヤーやエディタで動作します。VTT は Web に適しています
出力ファイル
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)
文字起こし後
- すべての出力ファイルが存在することを確認:
ls -lh /path/to/original-video.{srt,vtt,txt} - 字幕セグメント数と合計時間を報告する
- すべての AWS リソースがクリーンアップされたことを確認する(S3 バケットも Transcribe ジョブも残っていないこと)
コメント
Markdown 対応