しんたろーのITアカデミー
開発日記

「共感して」の一言でワイプ動画が爆誕するClaude Codeの衝撃。

「共感して」の一言でワイプ動画が爆誕するClaude Codeの衝撃。
しんたろーしんたろー
13分で読めます
この記事の内容(目次)
※この記事は、Claude Codeで1人開発しているSNS運用SaaS「ThreadPost」の開発日記です。

開発ログの動画がなんか他人事みたいでつまらなかった。

だから僕はAIに「視聴者が当事者になる動画にして」と一言だけ投げた。

数分後、上がってきた動画には画面の隅に僕の顔のアバターがついていた。

口パクで喋るワイプ演出が勝手に実装されていた。

ワイプをつけろなんて僕は一言も言っていない。

曖昧な指示が、システム全体のアーキテクチャを書き換えた。

SNS運用を自動化しませんか?

ThreadPostなら、投稿作成・画像生成・スケジュール管理までAIがサポート。

無料で始める

18件のコミットと破壊的リファクタリング

今週の総コミットは18件

新機能が8件、バグ修正が6件だ。

曖昧なプロンプトがシステムを書き換えた瞬間
曖昧なプロンプトがシステムを書き換えた瞬間

動画生成パイプラインを丸ごと捨てて作り直した。

5つのSNSのマルチアカウント対応という泥臭い基盤改修もやった。

AIの解釈力に震えた日もあれば、ポンコツぶりにキレた日もある。

技術的な正しさよりも、人間に刺さるかどうかの判断に時間を溶かした。

曖昧な感情がコードを書き換えるVibe Codingの極致

最初に作った開発ログ動画は、情報としては正確だった。

でも見ていて「で?」となる感じが拭えなかった。

今週の開発スタッツ
今週の開発スタッツ

僕はClaude Codeに最初から「当事者視点+ワイプ付きに改善」という具体的な指示を出したわけじゃない。

ただ「共感できる動画にして」と投げただけだ。

LLMのプロンプトエンジニアリングでは、要件を細かく定義するのが正解とされている。

今回は違った。

抽象的な感情を投げたら、モデルが学習データの中から「成功する動画のパターン」を勝手に推論した。

そしてプロンプトを全面的に書き換えてきた。

当事者視点の語り口、画面の隅に顔が映るワイプ、テンポの設計まで。

正直ちょっと気持ち悪かった。

僕は「feat: devlog動画を公開ビルディング特化プロンプトv4に全面改訂」をコミットした。

AIに細かいUIやUXの構成要素まで逆算させる。

これが界隈で言われるVibe Codingの極致というやつだ。

動画の生成は数分で終わる。

プロの動画編集者に頼めば1本あたり3〜5時間はかかる作業だ。

それをAIが勝手に演出まで考えて出力する。

ただ、生成された台本のテロップで「ワ」が「は」になる誤変換が多発した。

カタカナ語の「ワ」まで「は」に変換されてしまう。

スマート置換のロジックを組んで修正した。

VOICEVOXが「TikTok」を誤読する問題もあった。

全3プロンプトで「ティックトック」と読ませるように修正した。

「feat: 開発ログ動画を当事者視点+ワイプ付きに改善」でワイプのサイズも調整した。

180pxから270pxへと1.5倍に拡大した。

スマホ視聴時の視認性を高めるためだ。

配置も右下に固定し、字幕の下かつUIボタンの左というセーフゾーンを計算させた。

「feat: ポッドキャスト動画パイプライン v2 追加」もやった。

22ファイル3,514行の追加だ。

V1のパイプラインは僕が手作業で継ぎ足して作ったものだった。

それを丸ごと捨てた。

NotebookLMの音声とブログ記事から、YouTube動画を自動生成する12ステップのパイプラインだ。

Whisperで文字起こしをして、F0で話者を分離する。

Geminiで文脈を修正して高精度な話者判定を行う。

2分ごとのチャンクに分けて並列処理させた。

PexelsからB-roll動画を自動取得し、字幕とワイプとBGMを自動合成する。

Claude Codeに「V2として設計ごと作り直して」と投げたら、全部フラットに組み直してきた。

しんたろーしんたろー:
V1のパイプライン構築に費やした3週間が完全に無駄になった。Claude Codeは僕の過去の苦労なんて知ったこっちゃない。ここ壊れやすいから触るなよって思ってた箇所も平気で消してくる。腹立つけど、V2の方が明らかに綺麗に動いてる。

AIが書いた記事の信頼性も問題だった。

読んでいて「これ本当か?」と思う瞬間があった。

「fix: AI Tips記事(個別・まとめ)にソース元照合ファクトチェックを追加」を実装した。

ソーステキストの参照量を3,000字から10,000字に増量した。

元記事にない情報の追加や、ツール名、数字の不一致を検出する項目を追加した。

AIは平気で存在しない情報を捏造する。

だからソースとの差分抽出に特化させた。

AIが自分の生成物をチェックして「問題ないです」と言ってくる。

本当に問題ないのか、見落としているのか僕にはわからない。

結局、最後は僕が目視で確認している。

自動化の意味がない。

5つのSNSを貫くマルチアカウント対応の地獄

X、YouTube、Instagram、Threads、TikTok。

全部マルチアカウント対応にした。

しんどかった。

もともと1アカウント前提で書いたコードがシステムの根幹に染み込んでいた。

「feat: YouTube/Instagram/Threadsをマルチアカウント対応にリファクタリング」を実行した。

シングルテナントからマルチテナントへの移行は、隠れた依存関係が一番の敵になる。

特にブラウザプロファイルやクッキーの共有は危険だ。

セッション汚染が起きれば、一発でアカウントBANを食らう。

CHANNELS配列でアカウント設定を一元管理する設計にした。

カテゴリに応じて投稿先を自動ルーティングする。

1回の実行で全アカウントに1本ずつ投稿する仕組みだ。

Claude Codeに「このファイルをマルチアカウント対応にしろ」と渡す。

だいたい直してくる。

でも「あ、ここ直し忘れてる」というやつが各SNSで発生した。

「feat: X記事下書き・引用ツイートをマルチアカウント対応」では、プロファイル別のクッキーキャッシュ対応に追われた。

SNS用の記事はProfile 24に、その他はDefaultプロファイルに振り分ける。

TikTokはさらに面倒だった。

「feat: TikTokをマルチアカウント対応 & save-cookiesにTikTokプロファイル追加」で、プロファイル設定まで手を入れた。

修正するたびに別のSNSの投稿が止まる。

完全なモグラ叩き状態だった。

結局、コード行数はプラス932、マイナス410という大規模なリファクタリングになった。

当初の工数見積もりを3倍超過した。

企業チームなら2〜3週間はかかる規模だ。

Claude Codeに1ファイルずつ渡しながら進めれば怖くはない。遅いだけで。

しんたろーしんたろー:
CTAの文言を3回変えた。「fix: TikTokのCTA文言を更新」だ。Claudeに「柔らかくしろ」って言ったら、余計に胡散臭い営業マンみたいな文言を出してきた。結局「📝 続きはプロフから」という一番無難なやつに落ち着いた。こいつに人間の機微はわからない。

Threadsのテキスト投稿も廃止した。

「fix: Threadsテキスト投稿を廃止し動画投稿に一本化 & ブラウザを動画生成前に閉じる」をコミットした。

数字を見ていたら、テキスト投稿は誰も見ていなかった。

同じ記事がテキストと動画で二重投稿されていたのも問題だった。

動画生成をブラウザクローズ後に移動させ、不要なブラウザ占有を解消した。

基盤は変わった。でもまだ全部動作確認しきれていない。

「refactor: X記事下書きから動画生成を分離 & 引用ツイートをアカウント並列化」も実行した。

1回の実行で全アカウント分を処理する。

API制限を回避するために、アカウントごとに並列で動かせるように構造ごと変えた。

YouTubeのコメント欄も修正した。

「fix: YouTubeコメント欄のアカウント名をチャンネルごとに切り替え」だ。

ThreadPostチャンネルとメインチャンネルで、メンションするアカウント名を動的に切り替えるようにした。

ここまで読んだあなたに

今なら無料で全機能をお試しいただけます。設定後はAIが投稿案を毎日生成。確認して選ぶだけ。

無料で始める

落とし穴:黙ってデータを捨てるエラーハンドリング

LINEからのクリックを計測する仕組みを作っていた。

想定外のrefコードが来たとき、システムはエラーを吐いて処理をスキップしていた。

僕は「記録できないなら教えてくれる」と思い込んでいた。

実際は黙って何も残さず消えていた。

「fix: 未知のrefコードでもLINEクリックを記録するように修正」をコミットした。

パートナーテーブルに存在しないコードが来ても、全コードで記録してからリダイレクトするようにした。

InstagramやYouTube用のシステムコードも追加した。

どれだけのクリックデータが消えたのか、もう過去には遡れない。

エラーでシステムを止めるのが親切な設計だと思っていた。

データ分析において、一番つらいのは「黙ってデータを捨てる」ことだった。

今日の数字

| 項目 | 今回の数字 | 比較対象 |

|---|---|---|

| 新規パイプライン追加 | 3,514行 | 先週の全追加行数の約2倍 |

| マルチアカウント対応 | 3日 | 企業チームなら2〜3週間 |

| 動画生成の工数 | 0時間 | 手動なら1日約4時間 |

| 記事生成と投稿の差 | 20本生成 / 12本投稿 | これまでは同数で回していた |

「fix: SNS動画投稿を新しい記事順に変更(YouTube/TikTok/Instagram)」をコミットした。

1日20本の記事生成速度に対し、投稿速度が12本しかなかった。

古い順に投稿していると、新しいカテゴリの記事が永久に投稿されないボトルネックが発生していた。

手動で投稿していたら1日約4時間の工数がかかる。

自動化により0時間になった。

でもその分、AIが生成したCTAが本当に機能しているか確認する作業に時間を使っている。

しんたろーしんたろー:
「feat: 自動予約ボタンに次の空き枠時刻を表示 + LINE連携ボーナスの150ptバグ修正」をやった。お金に関わるバグは本当に胃が痛い。すでに10人にポイントが付与されていなかった。自分で見つけて自分で直す。1人開発のしんどさを一番感じる瞬間だ。

よくある質問

Q: 動画生成を自動化して、サーバー代やAPI代は跳ね上がらなかったの?

音声生成とLLMの推論APIをフル稼働させても、1本あたりの原価は数円に収まっている。手動で編集ソフトをサブスク契約し、外注に1本5,000円払うのとは比べ物にならない。ただし、エラーで無限ループしたときのAPI破産リスクは常にある。

Q: わからないデータが来たら弾くのがセキュリティの基本じゃないの?

決済や認証なら弾くべきだが、マーケティングのトラッキングデータは違う。未知のパラメータも「どこから流入したか」という重要な事実だ。一旦すべてを「不明」としてデータレイクに放り込み、後から人間が分類する遅延評価型の設計が正解だった。

Q: 「共感して」みたいな曖昧な指示、毎回うまくいくの?

今回はたまたまうまくいった。同じ指示を別のコンテキストで投げたら、全然違うものが出てくる。再現性はない。だから「曖昧指示→確認→具体化」の往復を3回くらいやるのが実態だ。

魔法とポンコツの境界線

今週の18コミットで、ThreadPostの動画パイプラインとマルチアカウント基盤が別物になった。

次は並列ブラウザ起動時のメモリ消費と、Inngestのタイムアウト制限が待っている。

👉 ThreadPostでSNS運用を自動化する

ThreadPost — SNS投稿をAIが自動化

この記事が参考になったら、ThreadPostを試してみませんか?投稿作成・画像生成・スケジュール管理まで、AIがサポートします。

無料で始める

この記事をシェア

XはてブLINE
しんたろー

ThreadPost開発者・個人開発エンジニア

AI × SaaS個人開発者。Cursor / Claude Code を使った効率的開発、SNS自動化について実体験から発信。

人気の記事