19
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

個人開発の進捗報告が面倒なので、GitHub ActionsとAIで「勝手にデモ動画を作る」仕組みを構築した

Posted at

35.png

はじめに

「今週の進捗どうなってる?」

個人開発や少人数のチーム開発をしていると、この質問に答えるための資料作りで週末が潰れること、ありませんか?
コードは書けても、変更内容を非エンジニア(PMやクライアント)にわかるように説明するのは、正直かなりカロリーを使います。

「Gitのコミットログを見るだけで、勝手に誰かが解説動画を作ってくれればいいのに……」

そんな怠惰な願望を叶えるために、年末年始を使って**「PRをマージしたら、AIが勝手に解説動画を生成してSlackに投げる」**ワークフローを組んでみました。これが意外と実用的だったので共有します。

全体アーキテクチャ

やっていることはシンプルです。

  1. Trigger: main ブランチへのマージを検知
  2. Analyze: OpenAI API (GPT-4o) が git diff を読んで「変更点の要約」を台本化
  3. Generate: AI Video Generator のAPIを叩いて、台本から動画を生成 (※ここが鬼門)
  4. Notify: 完成した動画URLをSlackに通知

実装のポイントと「壁」

1. Diffを人間に読める文章にする

まず、git diff の内容をそのまま貼り付けても非エンジニアには伝わりません。
GPT-4oに「広報担当」のロールを与えて、**「技術的な詳細よりも、ユーザーにとって何が嬉しくなったか」**にフォーカスして台本を書かせます。

# prompt_generator.py (イメージ)
def generate_script(diff_text):
    prompt = f"""
    以下のコード変更点(git diff)を元に、非エンジニアに向けた30秒の解説動画の台本を作成してください。
    トーン:明るく、ニュースキャスター風に。
    
    Code Diff:
    {diff_text}
    """
    # OpenAI API call...
    return script

2. 「テキストから動画」をどう自動化するか

今回一番苦労したのがここです。
当初は Python + FFmpeg で画像をスライドショー的に繋げようとしたのですが、実装コストが高すぎる上に、出来上がりが地味でした。音声合成(TTS)とのタイミング合わせも至難の業です。

「もっと楽に、見栄えの良い動画をAPI一発で作れないか?」と探して辿り着いたのが、Textideo.com のような AI Video Generator の活用です。

これらのようなツールのAPIを利用するメリットは、**「テキスト(台本)さえ投げれば、適したストック映像や字幕の割り当てを全自動でやってくれる」**点に尽きます。

  • Before: FFmpegのパラメータと格闘し、背景画像素材を自分でスクレイピングしてくる(数日かかる)
  • After: APIにテキストをPOSTするだけ(5分で終わる)

今回は、生成された台本テキストを Textideo 等のAPI経由でビデオ化する処理を挟むことで、リッチな解説動画の自動生成を実現しました。

3. GitHub Actions で回す

あとはこれをGitHub Actionsに載せるだけです。
動画生成は数分かかることがあるので、非同期で処理して完了後にWebhookでSlackに通知する構成にするとActionsの課金時間を節約できます。

name: Auto Demo Video Generator
on:
  push:
    branches:
      - main

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      
      - name: Generate Script from Diff
        run: python src/generate_script.py
        env:
          OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}

      - name: Generate Video via AI Video Generator
        run: python src/video_gen.py --engine textideo_style_api
        # ここで生成されたMP4を取得
        
      - name: Notify Slack
        uses: slackapi/slack-github-action@v1.24.0
        with:
          payload: |
            {
              "text": "🚀 新機能がリリースされました!AIによる解説動画はこちら: ${{ env.VIDEO_URL }}"
            }

実際の効果

実際にこのBotを運用してみた結果、以下の変化がありました。

  • Slackが賑やかになる: 文字だけの通知だとスルーされがちですが、サムネイル付きの動画が流れるとチームメンバーがリアクションしてくれるようになりました。
  • 「振り返り」が楽: 週末に「今週何やったっけ?」となった時、生成されたショート動画を眺めるだけで記憶が蘇ります。
  • ドキュメント作成の種になる: 生成された動画のナレーションテキストが、そのままリリースノートの原案として使えます。

まとめ

「動画を作る」という行為は、エンジニアにとってハードルが高い領域でした。
しかし、Textideo.com をはじめとする AI Video Generator の進化により、今や動画も「APIで叩いてJSONで返ってくるリソース」の一つになりつつあります。

ドキュメント作成や報告業務に疲れている方は、ぜひ「広報担当AI」をチームに一人(一台?)導入してみてください。地味にQOL上がります。


[Appendix]
使用したスクリプト類は整理して後日リポジトリを公開する予定です。「LGTM」やストックを頂けると執筆の励みになります!

19
13
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
19
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?