長時間のゲームプレイ映像からAIが重要シーンを解析・抽出し、字幕やナレーション付きの縦型ショート動画をローカル環境で自動生成できる「AutoShorts」が公開されています。

divyaprakash0426/autoshorts: Automatically generate viral-ready vertical short clips from long-form gameplay footage using AI-powered scene analysis, GPU-accelerated rendering, and optional AI voiceovers.

https://github.com/divyaprakash0426/autoshorts

◆サンプル

作成される動画のサンプルです。



◆AutoShorts主な機能

・AIを活用したシーン解析機能

シーン解析にはOpenAIかGoogle Geminiのいずれかを利用、動画内のシーンを7つのカテゴリーに自動的に判別し抽出します。

カテゴリー内容action戦闘シーン・緊迫した状況・ギリギリの攻防funny失敗シーン・バグ・予想外の面白いシーン・コミカルな状況clutch1対多の状況・逆転劇・土壇場での勝利wtf予期せぬ出来事・驚く瞬間・混乱状態epic_fail敗北につながる重大なミスhype祝福のシーン・最高潮の盛り上がりskillトリックショット・知的なプレイ・高度なテクニック・印象的なシーン

・字幕生成機能

OpenAIのWhisperを使用して音声から文字起こしが可能で、さらに音声が無い場合でもゲームプレイの内容に応じたキャプションをAIが生成。字幕スタイルも以下から選択できます。

スタイル内容gamingゲーム向けdramatic劇的な演出表現funny面白さを強調する表現minimalシンプルな表現genzZ世代モード・スラングを多用story_newsストーリーモード・プロのeスポーツ実況アナウンサーstory_roastストーリーモード・皮肉交じりの辛辣なコメントstory_creepypastaストーリーモード・ホラー系、緊張感のあるナレーションstory_dramaticストーリーモード・壮大な映画風のナレーションauto自動判別によりスタイルを自動調整

PyCapsと連携することで字幕のテンプレートを選択できるほか、AIがカテゴリーに合わせてフォントを自動で変更したり、絵文字を追加したりすることも可能です。

・AIによるナレーション機能

音声生成エンジン:自然言語による説明文から独自の音声を生成する「Qwen3-TTS」を採用。

動的音声生成機能:AIがキャプションのスタイルと内容に基づいて自動的に音声キャラクターを生成。

スタイル適応型音声:各字幕スタイルには独自の音声プリセットを設定。

自然言語による指示:テキストプロンプトによって音声の特徴を定義可能。

超低遅延処理:flash-attentionにより推論処理を最適化し、超低遅延で音声を生成。

多言語対応:英語、中国語、日本語、韓国語など10言語以上に対応。

スマートミキシング:音声解説が再生される際にゲーム音声を自動的に減衰させる機能。

◆AutoShortsをインストール

今回はNVIDIAのGPUを搭載したWindows 11上でUbuntuがセットアップされたwsl2にインストールします。なお、NVIDIA Container Toolkitがインストールされている必要があります。プロジェクトをクローンし、autoshortsフォルダに移動します。


git clone https://github.com/divyaprakash0426/autoshorts.git
cd autoshorts


wsl2の場合「decord」のビルドで失敗するので、Dockerfileの10番目の工程をコメントアウトし「RUN pip install --no-cache-dir decord」を追加します。


# 10. Build Decord with CUDA support
#RUN git clone --recursive https://github.com/dmlc/decord && \
# cd decord && \
# mkdir build && cd build && \
# cmake .. -DUSE_CUDA=ON -DCMAKE_BUILD_TYPE=Release \
# -DCUDA_nvcuvid_LIBRARY=/usr/lib/x86_64-linux-gnu/libnvcuvid.so && \
# make -j$(nproc) && \
# cd ../python && \
# python setup.py install && \
# cd /app && rm -rf decord

RUN pip install --no-cache-dir decord


さらに「Verify installations」のRUNコマンドをコメントアウトします。


# Verify installations
#RUN python -c "import torch; import flash_attn;…"


Dockerコンテナをビルドします。


docker build -t autoshorts .


コンテナを起動します。


docker run -it --gpus all autoshorts bash


コンテナの中に入るので次のコマンドを実行するのですが、コマンドは環境により変わる可能性があります。


ln -sf /usr/lib/x86_64-linux-gnu/libnvcuvid.so.1 \
/usr/lib/x86_64-linux-gnu/libnvcuvid.so

echo "/usr/lib/x86_64-linux-gnu" >> /etc/ld.so.conf.d/nvdec.conf
ldconfig

apt-get update
apt-get install -y --no-install-recommends \
libavcodec-dev libavformat-dev libavutil-dev libavfilter-dev \
libavdevice-dev libswresample-dev libswscale-dev pkg-config

cd /app
git clone --recursive https://github.com/dmlc/decord
cd decord
mkdir build && cd build

cmake .. -DUSE_CUDA=ON -DCMAKE_BUILD_TYPE=Release
make -j"$(nproc)"

cd ../python
python setup.py install

cp -f /app/decord/build/libdecord.so /usr/lib/x86_64-linux-gnu/
ldconfig


別のターミナルを立ち上げ、起動しているコンテナのIDを確認します。


docker ps


コンテナIDを指定して「autoshorts-fa」という名前のイメージを作成します。イメージが保存されたらpipを実行したコンテナからexitで抜けます。


docker commit "コンテナID" autoshorts-fa


「.env.example」を「.env」としてコピー。


cp .env.example .env


「.env」ファイルを編集して設定を行います。今回はGeminiを利用し日本語で字幕を出力させるため以下の箇所を変更しました。GeminiのAPIキーは取得したものに置き換えます。


AI_PROVIDER=gemini
GEMINI_API_KEY=your-gemini-api-key
GEMINI_MODEL=gemini-3-flash-preview
TTS_LANGUAGE=ja


「gameplay」フォルダを作成し、元になる動画を配置します。今回はフォートナイトのプレイ動画を用意しました。


mkdir gameplay


コンテナを起動しautoshortsを実行します。


docker run --rm \
--gpus all \
-v $(pwd)/gameplay:/app/gameplay \
-v $(pwd)/generated:/app/generated \
--env-file .env \
autoshorts-fa \
python run.py


生成されたクリップやログファイルは「generated」フォルダへ以下のように保存されます。


generated/
├── video_name scene-0.mp4 # Rendered short clip
├── video_name scene-0_sub.json # Subtitle data
├── video_name scene-0.ffmpeg.log # Render log
├── video_name scene-1.mp4
└── ...


作成されたショート動画を確認すると、元動画内の戦闘場面が上手く切り取られていました。字幕はエラーで入らなかったのですが、動きのある状況の切り取り動画が自動で作成されるだけでも十分便利です。



なお、海外掲示板のHacker Newsで作者のDivyaprakash氏は開発の動機について「既存のAIツールの多くは利用料が高いうえに動作も遅いことに不満がありました。自分のPCの性能を最大限に活かして、コマンド操作で軽快に動く開発者向けのツールを作りたかった」と述べています。