【要約】毎朝6時、AIが勝手にニュース番組を作ってYouTubeに上げてくれる仕組みを作った [Zenn_Python] | Summary by TechDistill
> Source: Zenn_Python
Execute Primary Source
// Problem
開発者が、AIによるニュース番組の自動生成・投稿システムを構築する際、無人運用における信頼性とハードウェア制約の課題に直面した。主な問題点は以下の通りである。
- ・WSL2環境におけるIPv6優先設定による接続タイムアウト。
- ・OAuth認証時の非対話環境(cron実行時)におけるinput()によるハングアップ。
- ・高負荷な音声合成(TTS)によるCPUの熱停止。
- ・TTSによる未知の英単語の誤読問題。
// Approach
開発者は、各工程を独立させつつ状態を保持する「manifest方式」を採用し、堅牢なパイプラインを構築した。具体的な手法は以下の通りである。
- ・manifest.jsonを用いて各ステージの実行状態と生成物パスを記録し、失敗箇所からのレジュームを可能にした。
- ・Claudeを用いて未知語のカタカナ読みを抽出し、english_kana.jsonとして永続キャッシュする仕組みを構築した。
- ・FFmpegのfilter_complexを活用し、スライドやアバターの合成を1回のレンダリングで完結させ高速化した。
- ・LibreHardwareMonitorと連携し、CPU温度に基づいたスレッド制限や一時停止を行う熱対策を実装した。
// Result
開発者は、月額約1,500円という低コストで、毎朝6時15分に10分のニュース動画を自動生成する仕組みを実現した。成果は以下の通りである。
- ・HeyGen等の高価なサービスを使わず、ローカル環境と生成AIの組み合わせで運用コストを大幅に削減した。
- ・TTSの実測タイミングに同期した、字幕・スライド・アバターの精密な制御を実現した。
- ・Claude Codeとの対話により、数千行規模のシステムを迅速に開発・デバッグした。
Senior Engineer Insight
> 本プロジェクトの真価は、生成AIの活用だけでなく、実運用における「不確実性」への対処にある。特に、manifest方式による状態管理は、長時間実行ジョブにおいて極めて重要だ。また、ハードウェアの熱停止をソフトウェアで制御するアプローチは、実戦的である。単なるプロトタイプではなく、運用フェーズを見据えた設計思想が貫かれている。