x-account-manager-ai
WIP(現在進行中)
Work In Progress
このプロジェクトで現在進行中の作業と、過去のスナップショットを記録する。
現在の状況
YouTube新着動画の取得・表示基盤が完成。サーバーデプロイ済み。
fetch_videos.pyによる複数チャンネルのRSS取得・レポート生成が動作中- 毎朝8:00 JSTに自動実行(cronジョブ設定済み)
https://aix.ikapps.comでFlask管理画面が稼働中(SSL対応)- 管理画面からチャンネルの追加・削除が可能(YouTube URLや動画URLを入力するだけで自動解決)
次にやること:
- レポートの動画をClaude APIで要約してX投稿用文章を生成する機能
- X(旧Twitter)APIと連携して実際に投稿する機能
過去のWIPアーカイブ
(初回のため、アーカイブなし)
ROADMAP(計画)
ロードマップ
今週
- Claude APIで動画要約 → X投稿用ツイート文生成
- 管理画面から要約・投稿文の確認・編集ができるUI
今月
- X(旧Twitter)API連携・実際の投稿機能
- 投稿スケジュール管理(下書き保存・予約投稿)
- クロール対象チャンネルの追加(AI系を中心に拡充)
今四半期
- 投稿パフォーマンス分析(いいね・リポスト数の追跡)
- 投稿トーン・スタイルの調整機能
いつか
- 動画のトランスクリプト取得による精度高い要約
- 複数アカウント対応
DECISIONS(意思決定)
意思決定記録
このプロジェクトで下した重要な意思決定を記録する。 最新が上に来る。
2026-04-24: FlaskフラッシュメッセージをURLパラメータ方式からセッション方式に変更
背景: 初期実装でメッセージをURLクエリパラメータ(?msg=...)で渡していたため、URLがエンコード文字列で汚くなった。
決定: Flaskの flash() / get_flashed_messages() を使うセッション方式に変更。SECRET_KEY を config.json に追加して管理。
理由: URLにメッセージを乗せるのは非標準。Flaskのセッションベース方式が主流かつURLがクリーンに保たれる。
2026-04-24: Web管理UIのフレームワークをFlask + gunicornに決定
背景: チャンネルの追加・削除をWeb上で行えるようにしたかった。既存の静的HTML配信では対応不可。
決定: Flask(+ gunicorn)でWeb UIを実装し、systemdサービスとしてデプロイ。NginxはリバースプロキシとしてFlaskに転送。
理由: Pythonで統一できる、軽量、既存スタックと親和性が高い。FastAPIも候補だったが、このシンプルさならFlaskで十分。
2026-04-24: YouTubeデータ取得をRSSフィードで行う方針
背景: 複数チャンネルの新着動画を定期取得したい。YouTube Data APIを使う方法もある。
決定: YouTube RSSフィード(https://www.youtube.com/feeds/videos.xml?channel_id=...)を使う。APIキー不要。
理由: APIキーの管理・クォータ制限が不要でシンプル。RSSで取れる情報(タイトル・URL・投稿日時・概要冒頭)で要件を満たせる。
2026-04-24: サーバーは既存Lightsailの多目的サーバーを流用
背景: 新規インスタンスを立てるか、既存の多目的サーバーに相乗りするか。
決定: 13.230.63.19(multipurpose-server1)に相乗りし、aix.ikapps.com サブドメインを割り当て。
理由: このプロジェクト単体でサーバーを立てるほどのリソースは不要。既存の$5/月インスタンスを活用。
DEVLOG(作業ログ)
開発日誌
このプロジェクトでの作業を時系列で記録する。 最新のエントリが上に来る。
2026-04-24
22:00 - 初期構築・サーバーデプロイ・Web管理画面
やったこと:
channels.jsonにAI系YouTubeチャンネルリストを作成(Lex Fridman, Two Minute Papers, Yannic Kilcher, Fireship, AI仙人)fetch_videos.py: YouTubeのRSSフィードを取得して新着動画レポートを生成するスクリプト作成manage_channels.py: CLIでチャンネルの追加・削除・一覧を行うスクリプト作成(~/AIX用アカウントの既存コードをベースに移植)render_html.py: レポートMarkdownからHTMLページを生成するスクリプト作成- Lightsailサーバー(13.230.63.19)への
/home/ubuntu/apps/x-account-manager-ai/へのデプロイ - cronジョブ設定: 毎日23:00 UTC(= 翌8:00 JST)に
fetch_videos.py && render_html.pyを自動実行 - Route 53 に
aix.ikapps.comのAレコード追加(手動) - Nginx設定 + Let's Encrypt SSL証明書取得(
certbot --nginx) app.py: Flask製チャンネル管理Web UIを作成- Basic認証付き(
config.jsonでパスワード管理) - チャンネル追加(YouTube URL / @handle / 動画URL / チャンネルID に対応)
- チャンネル削除
- レポート一覧・閲覧
- Basic認証付き(
- gunicorn + systemd(
aix-manager.service)でFlaskアプリをサービス化 - Nginxをリバースプロキシ構成に変更(port 5001)
- チャンネル名自動取得の修正:
/channel/UC...形式・チャンネルID直接入力でも名前を取得するよう改善 - 動画URL(
watch?v=...)からチャンネル情報を解決する機能を追加 - フラッシュメッセージをURLクエリパラメータ方式からFlaskセッション方式に変更
決めたこと:
- YouTubeデータ取得はRSSフィード(APIキー不要)
- サーバーはLightsailの多目的サーバー(既存)を流用
- Web管理UIはFlask + gunicorn構成
- 認証はBasic認証(config.json管理)
- フラッシュメッセージはFlaskセッション方式
次回やること:
- YouTube動画の要約生成(Claude API使用)
- X(旧Twitter)への投稿機能
最近のコミット
README
x-account-manager-ai(X アカウント管理 AI)
概要
(記入予定)
セットアップ
(記入予定)
使い方
(記入予定)