Shorts Factory — YouTube長尺動画を自動でショート化するローカルパイプライン
概要
Shorts Factoryは、長尺YouTube動画の中から短尺の縦型クリップを自動生成するためのローカルパイプラインです。指定チャンネルの新着を監視してyt-dlpでダウンロードし、音声を文字起こしして興味ある箇所(ハイライト)を判定、字幕や音量正規化を伴う縦長クリップとしてレンダリングします。API資格情報を用意すれば生成したショートをYouTube Shortsへ自動アップロードする機能も備えます。ローカル実行に重点を置いた自動化ツールとして、クリエイターや運用者の作業工数削減に寄与します。
リポジトリの統計情報
- スター数: 1
- フォーク数: 0
- ウォッチャー数: 1
- コミット数: 6
- ファイル数: 10
- メインの言語: Python
主な特徴
- 指定YouTubeチャンネルの新着を監視して自動で処理開始
- yt-dlpでの長尺動画ダウンロードとローカルでの音声文字起こし
- ハイライト抽出(興味深い区間選定)と縦長クリップの自動レンダリング(字幕・音量正規化)
- YouTube Shortsへの自動アップロード(API資格情報が設定されている場合)
技術的なポイント
Shorts Factoryは「ダウンロード → 文字起こし → ハイライト抽出 → クリップ生成 →(任意で)アップロード」という明確なパイプラインで構成されており、各フェーズが独立して処理できる設計になっています。ダウンロード部にはyt-dlpを利用することでYouTubeの多様な形式に対応し、ローカルでの音声文字起こしはREADMEの記述からローカル実行を想定しています(Whisperやその他のオンプレS2Tエンジンを想定可能)。ハイライト選定は、音声の無音区間検出や話者の抑揚、キーワード出現、文字起こしテキストのスコアリングなどのヒューリスティクスで行われる想定で、これにより「見映えのする」短尺区間を自動抽出します。クリップ生成はFFmpeg等のコマンドラインツールで縦長(9:16)へトランスフォームし、字幕を焼き込み・フォント調整・音量正規化を行うことで再生環境の差異に耐える出力を作成します。DockerfileやCI設定(.github)が含まれているため、環境構築の再現性や自動テストの導入がしやすく、設定ファイルで監視チャンネルやレンダリングテンプレート、アップロード設定を切り替えられる柔軟性があります。実運用では文字起こし精度や処理時間(CPU/GPU要件)、ストレージ管理、著作権・利用規約の遵守に注意が必要です。
プロジェクトの構成
主要なファイルとディレクトリ:
- .dockerignore: file
- .github: dir
- .gitignore: file
- Dockerfile: file
- README.md: file
…他 5 ファイル
(上記に加え、実行スクリプトや設定ファイル、依存管理ファイル、レンダリング関連のスクリプトが含まれている想定です。Dockerを使ったコンテナ化により依存解決や環境差異を低減できます。)
まとめ
長尺動画を自動でショート化する実践的なローカルパイプライン。導入・拡張が容易。
リポジトリ情報:
- 名前: shorts-factory
- 説明: 説明なし
- スター数: 1
- 言語: Python
- URL: https://github.com/oyakov/shorts-factory
- オーナー: oyakov
- アバター: https://avatars.githubusercontent.com/u/54921214?v=4
READMEの抜粋:
Shorts Factory
A local pipeline for automatically cutting long YouTube videos into short-form vertical clips (Shorts/Reels/TikTok). The project downloads long-form videos, transcribes speech, selects interesting highlights, and renders vertical clips with subtitles and normalized audio. Optional YouTube Shorts uploading is provided when API credentials are configured.
Features
- Monitor specified YouTube channels for new videos
- Download recent videos with
yt-dlp - Transcribe audio loc…