video-processor について
動画や音声を処理するコマンドラインスキルです。ダウンロード、形式変換、音声抽出、文字起こしなどに使えます。1つのスクリプトから yt-dlp、FFmpeg、OpenAI Whisper を利用します。
主な機能
- 01yt-dlp による動画・音声のダウンロード
- 02複数形式での音声抽出
- 03動画の MP4 または WebM 変換
- 04Whisper による文字起こし
- 05txt、srt、vtt、json での出力
活用シーン
- 01動画や音声のダウンロード
- 02音声の抽出と単独利用
- 03ウェブ再生向けの動画変換
- 04文字起こしや字幕の作成
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ iamzhihuix/ happy-claude-skills --skill video-processorインストール後、Claude Code で/video-processorを入力して読み込まれたか確認します。
同梱ファイルscripts/video_processor.py
詳細
動画プロセッサー
使用方法
このスキルでは、yt-dlp、FFmpeg、OpenAI の Whisper モデルを使用した、YouTube 動画のダウンロード、音声の抽出、形式の変換、音声の文字起こしなど、包括的な動画処理ユーティリティを提供します。
前提条件
必須ツール(環境にインストールされている必要があります):
-
yt-dlp:YouTube やその他数千のサイトに対応した動画ダウンローダー
# Install via pip pip install -U yt-dlp # Verify installation yt-dlp --version -
FFmpeg:動画・音声処理用のマルチメディアフレームワーク
# macOS brew install ffmpeg # Ubuntu/Debian apt-get install ffmpeg # Verify installation ffmpeg -version -
OpenAI Whisper:音声テキスト変換用の文字起こしモデル
# Install via pip pip install -U openai-whisper # Verify installation whisper --help
Python パッケージ(PEP 723 によりスクリプトに含まれています):
- click(CLI フレームワーク)
- ffmpeg-python(FFmpeg 用 Python ラッパー)
- yt-dlp(動画ダウンローダー)
ワークフロー
すべての動画処理タスクに scripts/video_processor.py スクリプトを使用します。このスクリプトでは、次のコマンドを備えたシンプルな CLI を利用できます。
0. YouTube またはその他のプラットフォームから動画をダウンロード(新機能!)
YouTube や、その他数千の対応ウェブサイトから動画をダウンロードします。
# Download video
uv run .claude/skills/video-processor/scripts/video_processor.py download "https://youtube.com/watch?v=..." output.mp4
# Download audio only (as MP3)
uv run .claude/skills/video-processor/scripts/video_processor.py download "https://youtube.com/watch?v=..." --audio-only
# Show video info without downloading
uv run .claude/skills/video-processor/scripts/video_processor.py download "https://youtube.com/watch?v=..." --info
# Download with subtitles
uv run .claude/skills/video-processor/scripts/video_processor.py download "https://youtube.com/watch?v=..." output.mp4 --subtitle
オプション:
--audio-only:音声のみをダウンロードします(MP3 に抽出)--subtitle:字幕をダウンロードして埋め込みます(en、zh-Hans、zh-Hant に対応)--info:ダウンロードせずに動画情報を表示します--format:動画形式の優先設定を指定します(デフォルト:最高品質)
1. 動画から音声を抽出
動画ファイルから音声トラックを抽出します。
uv run .claude/skills/video-processor/scripts/video_processor.py extract-audio input.mp4 output.wav
オプション:
--format:出力音声形式(デフォルト:wav)。対応形式:wav、mp3、aac、flac- 出力は文字起こしまたは単独の音声利用に適しています
2. 動画を MP4 に変換
任意の動画ファイルを MP4 形式に変換します。
uv run .claude/skills/video-processor/scripts/video_processor.py to-mp4 input.avi output.mp4
オプション:
--codec:動画コーデック(デフォルト:libx264)。一般的なオプション:libx264、libx265、h264--preset:エンコード速度・品質のプリセット(デフォルト:medium)。オプション:ultrafast、fast、medium、slow、veryslow
3. 動画を WebM に変換
任意の動画ファイルを WebM 形式(ウェブ向けに最適化)に変換します。
uv run .claude/skills/video-processor/scripts/video_processor.py to-webm input.mp4 output.webm
オプション:
--codec:動画コーデック(デフォルト:libvpx-vp9)。オプション:libvpx、libvpx-vp9- WebM はウェブ再生とストリーミング向けに最適化されています
4. Whisper で音声を文字起こし
OpenAI の Whisper モデルを使用して、音声ファイルまたは動画ファイルをテキストに文字起こしします。
# Transcribe video file (audio will be extracted automatically)
uv run .claude/skills/video-processor/scripts/video_processor.py transcribe input.mp4 transcript.txt
# Transcribe audio file directly
uv run .claude/skills/video-processor/scripts/video_processor.py transcribe audio.wav transcript.txt
オプション:
--model:Whisper モデルのサイズ(デフォルト:base)。オプション:tiny:最速、精度は最低(約 1GB RAM)base:高速で精度も良好(約 1GB RAM)[デフォルト]small:バランス型(約 2GB RAM)medium:高精度(約 5GB RAM)large:最高精度、最も低速(約 10GB RAM)
--language:言語コード(デフォルト:自動検出)。例:en、es、fr、de、zh--format:出力形式(デフォルト:txt)。オプション:txt、srt、vtt、json
文字起こしのワークフロー:
- 入力が動画の場合、FFmpeg が音声を一時 WAV ファイルに抽出します
- Whisper が音声ファイルを処理します
- 文字起こし結果が指定された形式で保存されます
- 一時ファイルは自動的に削除されます
5. ワークフローの組み合わせ例
動画を一連の処理で処理します。
# 1. Extract audio for analysis
uv run .claude/skills/video-processor/scripts/video_processor.py extract-audio lecture.mp4 lecture.wav
# 2. Transcribe to SRT subtitles
uv run .claude/skills/video-processor/scripts/video_processor.py transcribe lecture.mp4 lecture.srt --format srt --model small
# 3. Convert to web format
uv run .claude/skills/video-processor/scripts/video_processor.py to-webm lecture.mp4 lecture.webm
主な技術的詳細
FFmpeg と Whisper の連携:
- FFmpeg 自体は音声を文字起こししません。外部の文字起こし処理に向けて音声を準備します
- ワークフローは次のとおりです:音声を抽出(FFmpeg)→ 文字起こし(Whisper)→ 必要に応じて動画に再統合
- FFmpeg はリアルタイム処理向けに、音声を Whisper に直接パイプすることもできます(高度な使用例)
文字起こし用の音声形式:
- Whisper は WAV または MP3 形式で最もよく動作します
- サンプルレート:16kHz が最適です(スクリプトが自動的に変換します)
- スクリプトは Whisper に最適な設定で音声を抽出します
出力形式:
- txt:プレーンテキストの文字起こし
- srt:SubRip 字幕形式(タイムスタンプを含む)
- vtt:WebVTT 字幕形式(ウェブ標準)
- json:単語単位のタイムスタンプを含む詳細な JSON
エラー処理
このスクリプトには包括的なエラー処理が含まれています。
- 入力ファイルの存在を検証します
- FFmpeg と Whisper がインストールされているか確認します
- 必須の依存関係が不足している場合、明確なエラーメッセージを表示します
- エラー発生時に一時ファイルを処理します
パフォーマンスのヒント
- 素早く下書きを作成するには、
tinyまたはbaseモデルを使用します - 本番環境での文字起こしには、
smallまたはmediumを使用します - 最大限の精度が必要な場合にのみ、
largeを使用します - 長い動画の場合は、まず音声を抽出してから、区切って文字起こしすることを検討してください
- VP9 を使用した WebM への変換は時間がかかりますが、ファイルサイズを小さくできます
例
例 1:動画をすばやく MP4 に変換する
ユーザーのリクエスト:
I have an AVI file from my old camera. Can you convert it to MP4?
次のように実行します:
- デフォルト設定で to-mp4 コマンドを使用します:
uv run .claude/skills/video-processor/scripts/video_processor.py to-mp4 old_video.avi output.mp4 - 変換が正常に完了したことを確認します
- 出力ファイルの場所をユーザーに伝えます
例 2:音声を抽出して文字起こしする
ユーザーのリクエスト:
I recorded a lecture video and need a transcript. Can you extract the audio and transcribe it?
次のように実行します:
- まず音声を抽出します:
uv run .claude/skills/video-processor/scripts/video_processor.py extract-audio lecture.mp4 lecture.wav - 次に、base モデルを使用して文字起こしします(速度と精度のバランスに優れています):
uv run .claude/skills/video-processor/scripts/video_processor.py transcribe lecture.mp4 transcript.txt --model base - transcript.txt ファイルをユーザーに共有します
例 3:字幕付きの Web 最適化動画を作成する
ユーザーのリクエスト:
I need to put this video on my website with subtitles. Can you help?
次のように実行します:
- Web 向けに最適化するため、WebM に変換します:
uv run .claude/skills/video-processor/scripts/video_processor.py to-webm presentation.mp4 presentation.webm - SRT 字幕ファイルを生成します:
uv run .claude/skills/video-processor/scripts/video_processor.py transcribe presentation.mp4 subtitles.srt --format srt --model small - 次のファイルが作成されたことをユーザーに伝えます:
- presentation.webm(Web 向けに最適化された動画)
- subtitles.srt(埋め込み用の字幕ファイル)
例 4:言語を指定して高品質な文字起こしを行う
ユーザーのリクエスト:
I have a Spanish interview video that needs an accurate transcript for publication.
次のように実行します:
- 最良の精度を得るため、言語を指定して大きなモデルを使用します:
uv run .claude/skills/video-processor/scripts/video_processor.py transcribe interview.mp4 transcript.txt --model medium --language es - 必要に応じて、確認用の SRT を作成します:
uv run .claude/skills/video-processor/scripts/video_processor.py transcribe interview.mp4 transcript.srt --format srt --model medium --language es - ユーザーと文字起こしの内容を確認し、必要な修正を行います
例 5:複数の動画を一括処理する
ユーザーのリクエスト:
I have a folder of training videos that all need to be converted to WebM and transcribed.
次のように実行します:
- ディレクトリ内のすべての動画ファイルを一覧表示します:
ls training_videos/*.mp4 - 各動画ファイルに対して、変換と文字起こしを実行します:
# For each video: video1.mp4, video2.mp4, etc. uv run .claude/skills/video-processor/scripts/video_processor.py to-webm training_videos/video1.mp4 output/video1.webm uv run .claude/skills/video-processor/scripts/video_processor.py transcribe training_videos/video1.mp4 output/video1.txt --model base # Repeat for each file - すべての変換と文字起こしが完了したことを確認します
- 出力ファイルの概要を提示します
まとめ
video-processor スキルは、一般的な動画処理タスクのための統一インターフェースを提供します:
- 音声抽出:さまざまな形式で音声トラックを抽出します
- 形式変換:MP4(汎用)または WebM(Web 向けに最適化)に変換します
- 文字起こし:複数の出力形式に対応した音声からテキストへの変換です
- 柔軟性:モデルの選択、言語、出力形式を指定する CLI 引数を利用できます
すべての操作は、適切なデフォルト設定と包括的なエラー処理を備えた、単一の十分に文書化されたスクリプトを通じて実行されます。