Communitygithub.com

video-dev

プログラミングとテクノロジーをテーマにした縦型ショート動画(9:16、Shorts/Reels/TikTok)を、アニメーション図解、日本語ナレーション、BGM付きで、Pythonだけで生成します。動画制作の出発点として、質問、環境準備、フォルダ構成、他のスキル呼び出しを担当します。

video-dev とは?

このスキル(video-dev)は、プログラミングやテクノロジーに関する概念やチュートリアルを、プロフェッショナルな縦型動画(1080x1920、30fps)に変換するための自動化パイプラインの中心的なハブです。ユーザーが「動画を作って」「解説動画を」「ショート動画を」などのリクエストをした際、まず最初に呼び出されるスキルです。その役割は、動画の種類(コンセプト解説、ターミナルチュートリアル、混合)やテーマ、尺、BGMスタイルなどの初期質問をユーザーに行い、ローカルマシンに必要なPythonライブラリ(edge-tts、Pillow、imageio-ffmpeg、numpy)がインストールされているか確認し、動画プロジェクト用のフォルダ構造を作成した上で、実際のアニメーション制作(video-conceito/video-tutorial-terminal)、ナレーション生成(narracao-voz)、BGMミックス(trilha-video)といった専門スキルを順次呼び出します。すべての動画要素は無料のツールで生成され、編集ソフトは一切不要で、描画にはPython(Pillow)、音声にはMicrosoft Edgeのニューラル音声(edge-tts)、音楽にはNumPyで生成したシンセウェーブを使用します。これにより、開発者がアイデアを短時間で高品質な動画コンテンツに変換できます。

対応✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/LucasLBrito/midia-skills/tree/main/skills/video-dev

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

動画制作 dev(ハブ)

パス: ${CLAUDE_PLUGIN_ROOT} がこのプラグインのルートです。この変数が設定されていない場合、ルートはこのスキルの「ベースディレクトリ」から2つ上のフォルダになります(<root>/skills/<skill>)。スキルが ~/.claude/skills に直接コピーされている場合は、${CLAUDE_PLUGIN_ROOT}/skills の代わりに ~/.claude/skills を使用してください。

このスキルは、「SSHとは」と「GitとGitHubのベストプラクティス」の動画制作で学んだことをまとめたものです。 出力は、1080x1920、30fpsの縦型MP4動画で、Python(Pillow)で1フレームずつ描画されたアニメーション、無料のニューラル音声(edge-tts)、コード(NumPy)で生成された音楽で構成されています。After EffectsやCapCutなどの有償ソフトは一切使用しません。

応答は、ブラジルポルトガル語(シンプル、結果を先に)で行ってください。

スキルマップ

スキル使用時
video-dev(これ)常に最初:質問、準備、フォルダ作成、最終レンダリング、納品
video-conceito仕組みを説明する場合(SSH、DNS、HTTPS、Docker、JWT...):図解、パケットの移動
video-tutorial-terminal一緒に打つコマンドを教える場合(Git、Docker CLI、npm、Linux...):ターミナルとタイピング表示
narracao-voz台本の作成/調整、音声、英語用語の発音、単語のタイミング
trilha-video背景音楽と音声とのミキシング(ダッキング)

動画の種類が決まったら、該当するスキルを読んでください。ナレーションとBGMは、その段階になったら読んでください。

パス

SK = ${CLAUDE_PLUGIN_ROOT}/skills   (プラグインのルート。「パス」を参照)
SK/video-dev/scripts/            motor.py, render.py, novo.py, checar.py
SK/video-dev/exemplos/ssh/       SSH動画の完全なプロジェクト(コンセプト)
SK/video-dev/exemplos/git/       Git動画の完全なプロジェクト(チュートリアル)
SK/narracao-voz/scripts/         narracao.py, pronuncia_base.json
SK/trilha-video/scripts/         trilhas.py, mixar.py
SK/video-dev/references/         elementos.md(APIとレイアウト), licoes.md(既知のエラー)

ステップ1 — 質問(ファイル作成前)

AskUserQuestionツールを使って、一度に最大4つの質問を1ラウンドで行います。最初に推奨オプションを表示します。ユーザーがすでにリクエストで回答した質問はスキップします。ユーザーが「あなたが決めて」と言った場合は、デフォルト(太字)を使用します。

ラウンド1(常に実施):

  1. 動画の種類: コンセプト(仕組みを図解で説明)・ ターミナルチュートリアル(コマンドをステップバイステップ)・ 混合(コンセプトの後でコマンド:コンセプトスキルを使用し、チュートリアルから Term を借用)。
  2. ビジュアル: Dracula(暗め、ネオンカラー、完成動画と同じ)・ クリーム(紙背景、白いボックス、ペーパースタイル)。
  3. 尺: ショート、最大60秒(5~6シーン、Shorts向き)・ ミディアム、1:30~2分(8~10シーン)・ フル、約3分(12~14シーン、SSHやGitのように)。
  4. BGM: シンセ(ミニマルでテクノ調、動画で使用したもの)・ ローファイ・ アンビエント・ ピアノ・ BGMなし。

ラウンド2(まだ不明な場合のみ):

  • 対象者: 初心者(すべての用語を説明)またはプログラマー(簡潔に)。
  • 音声: pt-BR-AntonioNeural(男性、使用済み)または pt-BR-FranciscaNeural(女性)。 narracao.py --vozes を実行して他の音声を確認できます。
  • 必須ポイント: 絶対に外せない要素は?特定の例、コマンド、ストーリーは?
  • 締めくくり: まとめ/チェックリスト(デフォルト)、「この動画を保存」という呼びかけ、またはコメントを促す質問。

次に進む前に、テーマ、種類、ビジュアル、尺、シーン数、BGMを2~3行で確認してください。

ステップ2 — コンピュータの準備(マシンごとに1回)

python SK/video-dev/scripts/checar.py

不足がある場合: python SK/video-dev/scripts/checar.py --instalar(edge-tts、pillow、imageio-ffmpeg、numpy をpipでインストール。ffmpegはimageio-ffmpegに含まれており、システムに何もインストールしません)。BahnschriftとConsolasフォントはWindowsに標準搭載されています。

ユーザーに一度だけ伝えてください:音声はインターネットを使用します。台本のテキストはMicrosoftの音声サービスに送信されます。アニメーションと音楽は100%コンピュータ内で処理されます。

Windowsではパスが長くなりすぎないように注意してください。Pythonは深いフォルダ(Claudeの一時フォルダなど)で「File name too long」エラーを起こします。短いパスで作業してください。

ステップ3 — 動画フォルダの作成

同期フォルダ(OneDrive、Dropbox、iCloud)外のパスを推奨します。レンダリング中に数千のフレームが書き込まれ、同期処理が遅くなるためです。推奨: ~/Projetos/videos/<短い名前>/。ユーザーに別の場所を希望するか尋ねてください。

python SK/video-dev/scripts/novo.py <pasta> --tipo conceito --titulo "Dockerとは" --tema dracula --cenas 12

構造(台本の1セリフ = 1シーン):

<pasta>/
  video.json     タイトル、ファイル名、テーマ、音声、レート、BGM
  roteiro.json   ["シーン1のセリフ", "シーン2のセリフ", ...]
  pronuncia.json オプション: プロジェクト固有の用語 -> 音声のスペル
  cenas.py       def cenas(): return [[シーン1の要素], ...]
  audio/         cena01.mp3 + cena01.json(各単語のタイミング)
  saida/         <nome>.mp4, <nome>_trilha.mp4, poster.jpg, preview/

ステップ4 — 台本 → ユーザーに表示 → 承認

動画の種類(コンセプトまたはチュートリアル)に従って台本を書き、narracao-voz スキルの発声ルールに従ってください。アニメーション化する前に台本を表示してください。テキストの修正はシーンの修正よりもはるかに安価です。承認を得てから進めてください。

ステップ5 — ナレーション

python SK/narracao-voz/scripts/narracao.py <pasta>
python SK/narracao-voz/scripts/narracao.py <pasta> --tempos 3     # シーン3の各単語が発声されるタイミング

ナレーションはシーンの前に生成します。各シーンの長さは、ナレーション時間 + 0.7秒で決まり、要素は対応する単語が発声される秒数に合わせて配置されるためです。

ステップ6 — シーン(アニメーション)

from motor import * を使用して cenas.py を記述します(完全なAPIは references/elementos.md にあります)。各シーンについて: --tempos N を実行し、各キーワードに表示する要素を選択し、その時間(または0.2秒前)を要素の t に使用します。

コードを読むだけでなく、フレームを確認してください:

python SK/video-dev/scripts/render.py <pasta> --preview      # 各シーンの最終フレーム
python SK/video-dev/scripts/render.py <pasta> --cena 4       # シーン4、1秒ごとのフレーム

生成されたPNGをReadツールで開き、確認してください: 端が切れていないか、要素が重なっていないか、スマートフォンで読める大きさのテキストか、下部250px(TikTok/Reelsのキャプションやボタンが表示される領域)に重要な要素がないか。

ステップ7 — 最終レンダリング + BGM

python SK/video-dev/scripts/render.py <pasta>                         # saida/<nome>.mp4 + poster.jpg
python SK/trilha-video/scripts/mixar.py <pasta>/saida/<nome>.mp4 synth  # saida/<nome>_trilha.mp4

3分の動画のレンダリングには数分かかります。バックグラウンドで実行してください。

ステップ8 — 確認と納品

  • ffmpegで長さとオーディオの有無を確認してください(ffmpeg -i arquivo.mp4 でストリームが表示されます)。
  • 最終MP4から異なる時点の3~4フレームを抽出して確認してください。
  • SendUserFile(display: "render")で納品し、フォルダの場所を伝えてください。
  • 視聴・共有用のページ(SSHやGitの動画のように)が必要な場合は、MP4とスクリプトを files に含めてArtifactとして公開してください。ユーザーから依頼があった場合のみ公開してください。
  • ユーザーの許可なしにYouTube/TikTok/GitHubにアップロードしないでください。

完成後のよくある変更

リクエスト対応
フレーズの変更roteiro.json を編集 → narracao.py --so N を実行 → シーンNのタイミングを調整 → レンダリング
発音の誤りプロジェクトの pronuncia.json を編集 → narracao.py --so N を実行(narracao-vozを参照)
別のビジュアルレンダリング時に --tema creme、または video.json の tema を変更
音楽の音量調整mixar.py ... --trilha 0.25 を実行(trilha-videoを参照)
長い動画のショート版キーシーンと簡潔な台本だけをコピーした新しいプロジェクトを作成

始める前に、references/licoes.md を読んでください。最初の2本の動画での成功と失敗が書かれています。

Individual skills in this repo

This repo contains 2 individual skills — each has its own dedicated page.

関連スキル