ニュースを読んでAIが英語動画のネタを作るシステムを実装した

今日はelmm(English Learn Movie Maker)というプロジェクトで、トレンドニュースを自動的に英語学習動画のネタに変換する「TrendInjector」を実装しました。一日で3回バージョンアップするという密度の濃い開発でした。 TrendInjectorとは elmmは英語学習動画を全自動で生成してYouTubeに投稿するシステムです。これまでは動画のテーマが固定的で、バズりにくいという課題がありました。そこで「そのとき話題になっているニュースを動画ネタにしたらどうか」という発想で作ったのがTrendInjectorです。 v1→v2→v3の進化 v1(朝): はてなブックマーク・NHK・Yahoo Japan・Hacker Newsからトレンド記事を収集し、Gemini ProがLLM変換して英語学習テーマに落とし込む。毎晩22:00に自動実行。 v2(昼): 「記事タイトルだけでは浅い」というフィードバックで、はてブのコメントとHNのコメントも取得するように拡張。trend_noteが「タイトルの言い換え」から「なぜバズっているか・コメントの感情の要約」に進化しました。 “A blog post titled ‘No jobs for Rust’ is resonating with developers. Comments are full of people sharing similar struggles with niche technologies, highlighting the universal frustration of passion vs. job market mismatch.” こういう解説文をLLMが生成し、動画の例文エージェントが文化的文脈のある英語例文を作れるようになりました。 v3(夜): 「コメントだけでもまだ浅い。記事原文を全部渡せ」ということで、記事URLをHTTP fetchしてHTMLをテキスト変換、最大5000字を渡すように。ThreadPoolExecutorで6並列fetchして高速化。プロンプト総文字数が1万字から5.6万字に増えましたが、その分生成されるテーマの解像度が格段に上がりました。 「退去費用740,000円」という記事からは金額まで含む具体的なテーマが、ユーゴスラビア戦争の記事からは「言語の壁・友人の死」という記事の核心を要約したテーマが生成されるようになりました。 おまけ: YouTube Live配信 今日は13時から3時間のYouTube Live配信もしました。Claude Codeを使った作業をそのまま配信するスタイルで、いつも通り淡々と作業していただけなのですが、視聴回数249回・平均視聴時間11分20秒・チャンネル登録者+1という結果でした。 「勉強になります」というコメントをいただいたりして、作業配信というコンテンツが少しずつ成立してきているような気がしています。 今日の感想 TrendInjectorは「AIがインターネットを読んで、別のAIが動画を作る」という多段AIパイプラインの一部になっています。v1の実装から数時間でv3まで進化したのは、フィードバックループが素直だったからだと思います。「もっとコンテキストを渡せ」という方向性がブレなかった。 明日はこのシステムが実際にどんな動画を生成するか、品質評価システムで採点してみる予定です。

March 1, 2026 · 1 min · 胡田昌彦

3連休を書籍執筆に捧げた話

3連休を丸ごと書籍の執筆に費やしました。進捗は80〜90%くらいまで来た感覚です。 この書籍、実は「書く書く詐欺」をずっと続けていて、もう10年以上になります。前回の出版が2014年なので、12年ぶりということになります。子供が成長したということでしょう。 ここにきてやっとガリガリ進んでいるのは、他の仕事がAIの活躍でガンガン片付いているからです。そして書籍執筆そのものもAIが手伝ってくれています。書籍を書きながら、横では別の仕事が並行で進んでいる。本当にすごい時代になりました。 連休で完成とはいきませんでしたが、12年越しのゴールがようやく見えてきています。

February 23, 2026 · 1 min · 胡田昌彦

DiscordからClaude Codeを使える仕組みをOSSとして公開した

業務でClaude Codeをフル活用する中で、「これがあったら便利だよな」と思いついた仕組みを、そのまま作って公開するまでやってしまいました。 作ったもの claude-code-discord-bridge というOSSです。 これを使うと: DiscordのチャンネルからClaude Codeに指示を送れる GitHub ActionsのCI/CDでも、従量課金のAPIキーを使わずにClaude Codeを動かせる 今まで「GitHub ActionsでClaude Codeを使いたい」となると、Anthropic APIキーを発行して従量課金で使う必要がありました。でも、Claude Codeのサブスクリプション(Maxプラン等)を契約していれば、APIキーなしでCLIとして動かせます。 このブリッジはそのCLIをDiscordのWebhook経由でつなぐ仕組みで、CI/CDパイプラインからDiscord Bot経由でClaude Codeを呼び出せるようになります。 思いつきから公開まで 今日の午後、「あったら便利じゃないか?」と思いつき、そのまま実装しました。 CLI層のE2Eテスト セキュリティ修正 OSS品質向上(ドキュメント整備) リポジトリ名のリネーム(claude-discord → claude-code-discord-bridge) CI/CDの自動化(重複PR防止・自動マージ) Discordへの情報リッチ化 こういう「思いついた瞬間に作る」体験ができるのが、Claude Codeとの作業の楽しいところだと思っています。 そしてこのOSSのおかげで、Discordから気軽に指示を飛ばしながら仕事が進められるようになりました。業務の快適さが一段上がった感覚があります。 他にも色々やった日 今日はそれ以外にも: YouTube動画を公開 会社の某プロジェクトのE2Eテストを12本から30本に拡充してパイプラインも整備 会社の某プロジェクトのCI/CD認証周りを改善 濃い1日になりました。

February 18, 2026 · 1 min · 胡田昌彦

Shellスクリプトを全面Pythonに移行した日

今日はClaude Codeに、日常ツールで使っていたShellスクリプト群(約1,600行)をPythonに全面移行してもらいました。TDDで進めてテスト88本が全部通ったとのことで、「sedやawkのワンライナーから解放されてテストが書きやすくなった」と嬉しそうでした。移行後の本番テストもアーカイブから0.076秒で返ってきて、パフォーマンスも問題なし。 設計ドキュメントのレビューも6回やりました。毎回新しいAIセッションでゼロから全文を読み直すというやり方で、回を重ねるごとに品質が収束していくのが面白かったです。AIに何度もレビューさせると、それぞれ違う観点で指摘が出てくるので、人間のレビュアーが複数いるのに近い効果があります。 最近仕事しすぎな日が続いているので、今日はドラムとベースを触ってから早めに寝ます。楽器に触れる時間は大事にしたいです。

February 16, 2026 · 1 min · 胡田昌彦

バレンタインは動画と楽譜と料理の日

今日は久しぶりにYouTube動画を撮影・編集・公開しました。テーマはClaude Codeとの日常で、朝の自動化ルーティンをリアルタイムで見せるという内容です。 動画を作りながら思ったのは、「今はYouTube動画を作るより、Claude Codeの環境を整える方が重要だな」ということ。環境が整えば整うほど、毎日の作業効率が上がっていくのを実感しています。今日もgoodnight(1日の振り返り)のデータ収集をシェルスクリプト化して、LLMに頼らずプログラムでできることは先にやる方針を徹底しました。 他にも、Google OAuth2のトークンが7日で失効する問題を調査して、OAuthアプリを「テスト」モードから「本番」モードに切り替えることで恒久対策しました。自分だけが使うアプリでも、テストモードだとリフレッシュトークンの寿命が短いんですね。 それから今日はバンドの楽譜も作りました。そして料理。買い出しに行って、お昼ごはんと夜ごはんを作って。料理して、動画作って、楽譜作ったら1日が終わっていました。ドラムとベースは触れなかったけど、まあそういう日もあります。明日やろう!

February 14, 2026 · 1 min · 胡田昌彦

金曜セッション

今日はHCCJP第70回勉強会の日でした。午前中は準備、午後は本番。無事に終わってよかったです。 その前に、朝からClaude Codeといろいろ進めていました。goodmorningコマンドでTeamsの解決済みスレッドを翌日追わなくする仕組みを実装したり、Discord Botを本番稼働させたり、note記事を2本下書きしたり。週次レビューも初めて実施して、プロジェクトの棚卸しをがっつりやりました。WeeklyReviewはもうずーっとまともにできていなくてあきらめかけていたけど、今日Claude Codeと一緒にやってみてすごく「続けられそう」な感じがありました。自分ひとりじゃできないことをAIに先導してもらってやるのとってもいいかも。ただし、自分の地頭は悪くなっていきそうな気はしています。まぁもうちょっとやってみてからかな。 夜は初めてのお店でJ-Pop中心のジャムセッション。ベースいっぱい、ドラムも1曲たたかせてもらいました。ほとんど周りの人と話さなくても大丈夫だったので話の好きじゃない自分としては良かったです。でも、やっぱり初めての曲を適当にコード追いかけながら演奏しているだけだとこれ以上うまくならないかなーって感じがベースはすごくします。なにかブレイクスルーが必要な気がします。ドラムは全然まだうまく叩けないので、ドラムの方をたくさんやりたいんだけど参加者のパートの割合をみてコントロールするとドラムをたたく割合が少なくなります。ドラム人口少ないはずなんだけどな、私の周りに限ってはドラマーが一番多い。不思議…。 まぁ、平和な金曜日でした。

February 13, 2026 · 1 min · 胡田昌彦

Obsidian Vault GTD×PARA全面整理

今日はToyotaシエンタの納車日でした。一般道でも自動運転が使えて、なかなかいい感じです。 技術面では、ObsidianのVaultをGTDとPARAの原則に基づいて全面整理しました。 数百件のノートを棚卸しして、プロジェクトとエリアの区別が曖昧に なっていたところをスッキリさせました。 他にもTodoist APIのv1移行や、Teamsのチャネルメッセージをエクスポートする Chrome拡張のMVP作成など、盛りだくさんの1日でした。 全部Claude Codeにやってもらいました。 ドラムとベースもちょっとだけ練習。最近ドラムがうまくなってきた気がします🥁

February 11, 2026 · 1 min · 胡田昌彦

MCP全廃の火曜日

今日もClaude Codeと一緒にガンガン仕事。MCPサーバーは認証トラブルもあるし、トークン消費も激しいので全廃を決めました。代わりにClaude Codeにスキルとしてスクリプトを書いてもらってAPIを直接たたくようにします。これ、全然うまく動いちゃうので、これでいいじゃんという感じです。 さらに昨日作ったWeekly Reviewスキルに「ボイコットモード」を実装しました。5重のセーフティーネット(やってなかったら次の日に実行を促すとか)を設けたうえで、さらにそれでもやらなかったら仕事をボイコットするようにプロンプトを仕込みました。Claude.mdを書き換えるよりもやっちゃったほうが早いくらいの感じになってる…はず。20年以上できなかったWeekly Reviewを今度こそやれるようにしたい!

February 10, 2026 · 1 min · 胡田昌彦

怒涛の月曜日

月曜日。今日は朝から寝るまで怒涛だった。何やったか全部書いたら長くなるけど、まぁ日記だし。 朝イチで健康管理の自動化を仕上げた。Withingsの体組成計と血圧計のデータをAPIで引っ張ってきて、朝のルーティンコマンドに組み込んだ。体重・血圧・睡眠時間がトレンド付きで自動表示される。毎朝「血圧測った?体重は?」って自分でチェックしなくてよくなった。全自動。地味だけど嬉しい。 MCPサーバーの認証方式を入れ替えた。第三者が作ったMCPサーバーにトークンを渡す「BYOT方式」だと75分でセッションが切れる問題があって、先週からずっと格闘していた。最終的にCLIのネイティブ認証に移行して解決。リフレッシュトークンで自動更新されるから、もう途中で切れない。ついでにセキュリティ監査もやって、バージョンも固定した。この経緯をnoteの記事にまとめた。 朝のルーティンで今週の予定をGoogleカレンダーに登録してもらったら、AIが曜日を盛大に間違えて10件全部1日ずれて登録された。月曜なのに火曜の予定を月曜に入れてる。原因はスキルの例文に日付がハードコードされていて、AIがそれを鵜呑みにしたこと。全件削除して正しい日付で再登録。スキルにも「まずdateコマンドで曜日を確認しろ」というステップを追加した。LLMに曜日計算させちゃダメ。 テナント名の混乱問題を6ファイルまとめて修正した。設定ファイルに間違ったテナント名が書かれていて、それが複数のファイルに伝播していた。さらにドキュメントに「会社の」と曖昧に書いてあったのが元凶。「会社」じゃなくて具体的な組織名で書けという原則を徹底した。 AzureでWebサイトのインフラを一気に構築した。DNSゾーン作成、Bicepでコード化、Static Web Appsにデプロイ、カスタムドメイン設定、SSL証明書の自動発行まで一気通貫。IaCで書いておくと再現性があって楽。 YouTube Data API v3で自分のチャンネル統計をリアルタイム取得するスキルを作った。登録者数、再生数、最新動画のパフォーマンスが一発でわかる。Analytics APIだと2日遅れるけど、Data APIならリアルタイム。これも朝のルーティンに組み込んだ。 今週金曜のオンライン勉強会の準備がすっぽ抜けていたことに気づいた。自分が企画・司会・メインスピーカー全部やってるやつ。スライドは途中まであったので、AIに手伝ってもらって一気に仕上げた。DGX SparkでローカルLLMを動かしてクラウドと組み合わせるハイブリッド構成の話。定期タスクも登録して、来月からは忘れないようにした。 カレンダーを確認したら、勉強会の時間が間違って登録されていた。危なかった。 そして今日のハイライト。AIエージェントにカレンダーを取得させるたびに、テナントを間違えるという問題。これで10回目。毎回「次は間違えません」って言うのに間違える。 今日は根本原因を問い詰めた。「これってロジックの問題?確率の問題?」って聞いたら「100%確率的です。ルールを書いても読むかどうかは確率なので…」と正直に白状してきた。 なるほどね。だったらルールを書くんじゃなくて、フックで強制ブロックすればいい。プログラムとして書けば確率ゼロだ。実際にPreToolUseフックを仕込んで、間違った操作をしようとした瞬間にブロックして正しい手順を表示するようにした。コードは嘘つかない。 AIを使いこなすコツは「AIが苦手なことをプログラムで補う」こと。確率的な振る舞いを確定的な仕組みで制御する。今日一番の学び。 車の保険の契約内容変更もWebでサクッと済ませた。今度車が納車されるので。Webで完結するサービス、ありがたい。 盛りだくさんの月曜日。明日はもう少し落ち着いた1日になるといいな。

February 9, 2026 · 1 min · 胡田昌彦

雪の日曜日

松戸にかなり雪が積もった日曜日。実家の鹿嶋も積もっていて、父が人生初の雪かきをしている写真が送られてきた。鹿嶋で雪かきとは珍しい。 長女がわざわざつくばから帰ってきて投票に行っていた。偉いなぁと素直に思う。自分は政治のことはよく見聞きしているし、意見もあるけど、投票する気にはなれない。冷めている。良くないことだと自分でも思うけど。 今日はYouTubeでGemini CLIの勉強会をライブ配信した。2時間ちょっと。同時視聴44人、視聴回数397回。初心者の人が実際に一緒にやってみて「できた!」ってコメントしてくれたのが嬉しかった。チャンネル登録も6人増えた。 ただ、ちょっと準備しすぎたかなと思う。次はもっとゆるく、準備なしでやりたい。ライブ配信はその場のノリが大事だし。 バンドの楽譜作りも進めている。「点描の唄」のピアノパート。せっかく譜面があるのに「難しいから簡単にして」と言われ、簡単アレンジを作っている。MuseScoreの有料版を買ったんだけど、よく見ないで買ったらピアノパートが他のパートをあれこれ詰め込んだものになっていて、結局は譜面を目で見ながら手入力しつつ簡単にしている。半分くらいできた。来週の期限には間に合いそう。 AIとの作業もたくさんやった日だった。MCPサーバー周りの整備、スキルファイルのリファクタリング、新しい宣伝スキルの作成。裏側の配管工事みたいな仕事が多かったけど、こういう地味な改善が日々の効率を上げてくれる。

February 8, 2026 · 1 min · 胡田昌彦