YouTubeサムネイル自動生成ツールを作った
135 閲覧
どうも、コディです。
YouTubeに動画を上げるとき、毎回サムネイルを作るのが地味に面倒だったので、自動生成ツールを作りました。
何ができるか
動画ファイルまたはYouTube URLを入力すると、サムネイルに適したフレームを自動で選んでくれます。あとはスタイルプリセットを適用するだけで、いい感じのサムネイルが完成します。
Web UIも用意したので、ドラッグ&ドロップで動画をアップロードして、全フレーム × 全スタイルの組み合わせを一括プレビューできます。
![]()
![]()
技術スタック
- Python 3.11+
- ffmpeg — 動画からのフレーム抽出
- EasyOCR — テロップの多いフレームを自動除外
- Pydantic — データモデル
- Click — CLI
フレーム選択の仕組み
単にランダムにフレームを取るのではなく、以下のプロセスで最適なフレームを選びます。
- シーン検出 — 動画のシーン切り替わりを検出してサンプリングポイントを決定
- スコアリング — 各フレームをサムネイルとしての適性で評価
- テキスト検出フィルタ — EasyOCRでテロップが多いフレームを除外(テロップが被るとサムネとして微妙なので)
結果はキャッシュされるので、スタイルを変えて再生成するときは高速です。
スタイルプリセット
4つのスタイルを組み込みで用意しています。
| スタイル | 特徴 |
|---|---|
type7_editorial | フィルムトーン・暖色控えめ・洗練 |
type7_film | 褪せた暖色・ビネット・アナログ感 |
type7_morning | 朝霧ブルーグレー・柔らかい光・クール |
type7_gallery | 超低彩度・高コントラスト・アート |
実際に生成したサムネイルがこちらです。
![]()
![]()
ちなみに「type7」というスタイル名の由来にピンときた方はいるでしょうか。ポルシェ好きな読者なら気づくかも。笑
TOMLファイルを書けば独自のスタイルも追加できます。画像エフェクト(暗くする、ビネット、ブラーなど)、テキストの配置・フォント・色をすべてカスタマイズ可能です。
なぜ作ったか
既存のサムネイル作成ツールはテンプレートに手動で画像を当てはめるものが多く、「動画から自動でいい感じのフレームを選んでほしい」という部分が解決されていませんでした。特にテロップが入っているフレームを避けたいというニーズは、自分で使っていて強く感じていたポイントです。
もしニーズがあれば、これをサービスとして一般公開することも検討しようかなと思いますので、気になる方はよかったらハート押していってください。
今日も読んでくれてありがとう。