mcpField
T
transcribe-video

transcribe-video

github.com/rameerezクリエイティブ・メディア31130 回インストール36 週間前に更新
リポジトリ

transcribe-video について

AWS Transcribe で音声または動画を文字起こしするスキルです。元ファイルの隣に SRT、VTT、テキストを出力し、一時的な AWS リソースを削除します。

主な機能

  1. 01ffmpeg による音声抽出
  2. 02AWS Transcribe による文字起こし
  3. 03SRT と 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を入力して読み込まれたか確認します。

詳細

動画文字起こしスキル

$ARGUMENTS(動画または音声ファイルのパス、任意で en-US や es-ES などの言語コードを続けて指定)から、AWS Transcribe を使用して字幕と文字起こしを生成します。

ソースファイルと同じ場所に .srt、.vtt、.txt ファイルを出力します。

処理の流れ

  1. 前提条件を確認 - ffmpeg と aws CLI がインストールされ、設定されていることを確認します
  2. 音声を抽出 - ffmpeg を使用して動画から MP3 として音声を抽出します
  3. 一時的な S3 バケットを作成し、音声をアップロードします
  4. AWS Transcribe ジョブを SRT および VTT 字幕出力付きで実行します
  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"

実際の結果(参考)

実際の文字起こし実行から:

動画長さ音声サイズ文字起こし時間字幕セグメント数
X/Twitter クリップ2:402.5 MB約20秒83
画面録画18:4511.4 MB約60秒500+
主な知見
  1. AWS Transcribe は高速 - 19分の動画でも約1分で完了します
  2. ショートフォームコンテンツ(ツイート、リール)はほぼ瞬時に文字起こしされます
  3. コストはごくわずか - AWS Transcribe の料金は約 $0.024/分なので、19分の動画で約 $0.46 です
  4. クリーンアップは重要 - ストレージ料金を避けるため、必ず S3 バケットを削除してください
  5. 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)

文字起こし後

  1. すべての出力ファイルが存在することを確認:ls -lh /path/to/original-video.{srt,vtt,txt}
  2. 字幕セグメント数と合計時間を報告する
  3. すべての AWS リソースがクリーンアップされたことを確認する(S3 バケットも Transcribe ジョブも残っていないこと)

コメント