1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

字幕付き音声を含む動画の生成機能をMCP経由で呼び出せるようにしてみた

1
Posted at

背景

先日、静止画像 + 音声データ + テキストデータをもとに、音声に対応する字幕を自動で焼き付けるスクリプトを開発した。

字幕の焼き付けを自動化したことで作業効率は大幅に向上したが、まだ次のような手作業が残っていた。

  • ChatGPTが出力したプロットを手動でVOICEVOXに貼り付け
  • VOICEVOXがテキストを読み間違えないように、必要に応じて漢字をひらがなに修正
  • VOICEVOXから字幕用のテキストデータを出力し、ひらがなにした部分を漢字に戻す
  • 用意した背景画像の幅に応じて、字幕データに改行コードを追加

これらの作業も自動化する処理を実装した上で、手元のAIエージェントからMCP経由で呼び出せるようにすれば全自動化できるのではと思い、GW中に時間があったので実装してみた。

成果物

takano-hi/video-creator

使い方

  • docker composeで環境を立ち上げる
  • 手元のClaudeからMCP経由で呼び出せるようにする
  • Canvaなどで背景画像を作り、tmp/cover.pngに置く
  • Claudeからmilkboy-video.mdというスキルを呼び出し、本の名前と方向性などを指示として与える

こうすることで、あとはClaudeがいい感じにプロットをMCPに渡してvideo.mp4の生成まで自動で処理してくれる。

プロンプト:
『成瀬は天下を取りに行く』の感想をミルクボーイ風に紹介する動画を作ってください。

スクリーンショット 2026-05-09 1.12.30.png

仕組み

VOICEVOX API

テキストデータから音声ファイルを出力してくれるVOICEVOXは、API経由でも処理を呼び出すことができる。
VOICEVOXのGUIツールをインストールして起動すると http://localhost:50021 でアクセスできるようにサーバーが起動する。
http://localhost:50021/docs でSwaggerのドキュメントまで用意してくれている。

スクリーンショット 2026-05-09 1.16.45.png

GUIツールをインストール・起動する以外にも、公式がDockerイメージを用意してくれており、これをもとにコンテナを立てるだけでも上記のAPIを利用できる状態になる。
今回はこのDockerイメージをもとにdocker composeでコンテナを立ち上げ、Rails製のMCPからアクセスできるようにした。

ffmpeg

docker compose経由でMCPサーバーを立て、そのコンテナ内にffmpegをインストールしてRailsから利用できるようにしてある。
このMCPサーバーをAIエージェントから呼び出すことで各種の動画生成機能を利用することができる。

今後の展望

今回はミルクボーイ風の掛け合いを作ることに特化したスキルを作ったが、実装した処理をもっと抽象的に捉えると「画像 + テキストデータから動画を生成する機能」ということになるので、ミルクボーイ風に限定する必要は特にない。
例えばGoogle Slidesと連携して、スライドを作る→スピーカーズノートにテキストを入力する→それらのデータをもとに、スライド再生 + 自動音声による解説を含む動画ファイルを自動で生成するような機能も作れるはずだ。
僕のように「発信してみたいアイデアはあるけど、動画編集スキルを持たない」みたいな人は世の中にたくさんいるはずなので、そういう人がクリエイターとして気軽に動画を作って配信することができるようなツールになれたら最高だと思う。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?