Lofi 作業用BGMを投稿するチャンネルを運営しています。
lofi BGMの動画を月30本前後、ほぼ自動でYouTubeに投稿している。作業は最初だけで、あとは仕組みが回り続けます。
この記事では、そのパイプラインを全部公開します。
なぜlofi BGMを選んだのか
lofi BGMを選んだ理由は3つあります。
1. 著作権フリーで作れる
AIで生成した楽曲は自分のものとして扱える(利用規約の範囲内で)。既存アーティストの音楽を使わないので著作権トラブルがない。
2. 動画として成立するコンテンツが作りやすい
lofiは「2〜3時間の長尺BGM動画」が主流です。静止画1枚+ループ音楽でも成立する。編集コストが圧倒的に低い。
3. 競合が多いように見えて、ニッチなテーマは空いている
「雨の日カフェ」「夜の書斎」「焚き火の前」など、テーマ別に分けるとまだ空いているニッチがある。
パイプライン全体の流れ
テーマ決定(月1回・5分)
↓
ComfyUIで背景画像生成(半自動)
↓
AI音楽ツールで楽曲生成(半自動)
↓
Pythonで動画ファイル生成(ffmpegで結合)
↓
YouTubeバッチ予約投稿(Python + YouTube API)
月に1回このフローを回すと、30本分の動画が一気にできあがって予約投稿されます。
STEP1: テーマと雰囲気を決める
毎月テーマを5〜6個決めます。
決め方は単純で「Lofi + ○○」で検索したとき、競合が少なくて視聴者が求めていそうなテーマを選ぶ。
実際に使ったテーマ例:
- 「夜の書斎でコードを書くときのBGM」
- 「焚き火の前で本を読む秋の夜」
- 「雨が降る窓際のカフェ」
- 「深夜のコンビニ前で一息つく」
テーマが決まったら、それに対応する背景画像と楽曲の雰囲気を決める。これがパイプライン全体の「軸」になります。
STEP2: ComfyUIで背景画像を生成する
背景画像はComfyUIで生成しています。
Stable Diffusionベースのローカル環境なので、コストはゼロ(電気代のみ)。
プロンプトの基本構造:
[テーマの場所・状況], [時間帯], [照明・雰囲気],
lofi aesthetic, anime style, cozy, warm lighting,
detailed background, 16:9 aspect ratio
例:「雨のカフェ」テーマなら
rainy cafe window, night time, warm yellow lighting inside,
rain drops on glass, people studying in background,
lofi aesthetic, anime style, cozy, warm lighting
1テーマにつき3〜5枚生成して、一番雰囲気が合うものを選ぶ。選ぶ作業込みで1テーマ10分くらいです。
画像生成で気をつけること
最初のうち「濡れた服・濡れた髪」のキャラクターが生成されることがありました。原因はネガティブプロンプトが足りていないこと。
wet hair, wet clothes, rain on character などをネガティブプロンプトに追加することで解決しました。こういう細かい調整もClaudeに相談しながら解決してきました。
STEP3: AI音楽ツールで楽曲を生成する
楽曲はAce Stepという音楽生成AIを使っています(時期によってSunoなど他のツールも試しています)。
プロンプトの基本:
lofi hip hop, [テーマの雰囲気], slow bpm 75-85,
piano and lo-fi beats, vinyl texture, relaxing,
no vocals, [追加の特徴]
1曲あたり3〜4分の楽曲を生成して、気に入らなければ再生成。使えるものが出るまで3〜5回が平均です。
1テーマにつき2〜3パターン楽曲を用意して、後でループ編集します。
楽曲のバリエーションを出すコツ
同じプロンプトで毎回同じような曲になりがちです。バリエーションを出すために:
- BPMを変える(70・80・90で試す)
- 楽器を変える(piano → guitar → rhodes piano)
- 「late night」「early morning」「rainy day」など時間帯・天気をプロンプトに入れる
STEP4: Pythonでffmpegを使って動画を生成する
背景画像と楽曲が揃ったら、Pythonでffmpegを叩いて動画ファイルを生成します。
処理の内容:
- 楽曲をループして指定の長さ(1時間・2時間・3時間)にする
- 背景画像を動画化(静止画なのでスケールとループ設定だけ)
- ffmpegで画像と音声を結合
- サムネイル画像をPillowで生成(タイトルテキストを画像に乗せる)
コード自体はシンプルで、Claude Codeに「ffmpegで静止画と音声を結合して1時間の動画を作るコードを書いて」と頼んだら一発で動きました。
STEP5: YouTube APIでバッチ予約投稿する
動画ファイルが30本できたら、Pythonでまとめて予約投稿します。
YouTube Data API v3 + google-auth-oauthlib を使っています。
投稿スクリプトの処理:
- 動画ファイル一覧をフォルダから読み込む
- タイトル・説明文・タグを自動生成(テーマから)
- 投稿日時を7日後から1本/日の間隔で自動計算
- YouTube APIで予約投稿
30本分を一括投稿すると、1ヶ月分が自動でスケジューリングされます。
投稿タイトルの命名ルール
タイトルには一定のフォーマットがあります:
[テーマ] lofi BGM 🎵 [時間] / [雰囲気の説明]
例:雨の書斎 lofi BGM 🎵 2時間 / 集中・勉強・作業用
日本語・英語の両方でタイトルを試しましたが、日本語タイトルの方が国内視聴者に刺さりやすかったです。
現在の運用状況
2026年4月時点で:
- 公開済み動画:29本(予約投稿設定済み)
- 最終予約日:5月14日
- チャンネル登録者数:公開から間もないため成長中
収益化には1000人登録+4000時間再生が必要で、現在はそこに向けて積み上げ中です。
1本1本の再生数は少なくても、30本あれば総再生時間は積み上がります。「量で攻める」戦略が個人にとっては現実的です。
このパイプラインを作って分かったこと
一番大事なのは「テーマと雰囲気の一致」です。
背景画像が「夜の書斎」なのに楽曲が「海辺のリラックス系」だと、視聴者がすぐ離脱する。テーマ・画像・楽曲・サムネが全部同じ雰囲気を向いていることが重要です。
最初のうちはこの一致を意識していなくて、視聴維持率が低い動画が何本かありました。テーマ設計の段階で「この動画を見る人は何をしているときか」を具体的に想像するようにしてから改善しました。
関連ツールを見る
この記事で紹介したツール・サービスをまとめてチェック。
![]()