Skip to content

uuutee/x-digest

Repository files navigation

x-digest

指定した X ユーザーのポストを毎日取得・保存し、AI で要約して Discord に通知するツール。

概要

GitHub Actions (毎日 JST 08:00)
  ↓
1. X API で対象ユーザーの過去 24 時間のポストを取得
2. Turso (libSQL) に保存
3. Claude で要約生成
4. Discord Webhook で通知

セットアップ

1. 監視対象ユーザーを追加

src/config.tsTARGET_USERS にユーザーを追加する。

export const TARGET_USERS: TargetUser[] = [
  { userId: "12345678", username: "example_user" },
];

Note: userId は X API の数値 ID。プロフィール URL からは取得できない。

userId の調べ方

方法 1: ブラウザの DevTools で調べる(最も確実)

  1. X (twitter.com) でプロフィールページを開く
  2. DevTools を開き Network タブ を選択
  3. ページをリロードして UserByScreenName を含むリクエストを探す
  4. レスポンスの data.user.result.rest_id が userId
data.user.result.rest_id        ← ✅ これが userId
data.user.result.professional.rest_id  ← ❌ プロフィールカテゴリの ID(不要)

方法 2: X API を直接叩く(Bearer Token のクレジットがある場合)

curl -s "https://api.twitter.com/2/users/by/username/example_user" \
  -H "Authorization: Bearer <X_BEARER_TOKEN>" \
  | jq '.data.id'

クレジット不足 (CreditsDepleted) でエラーになる場合は方法 1 を使う。

2. GitHub Secrets を設定

リポジトリの Settings > Secrets and variables > Actions に以下を追加:

Secret 名 取得元
X_BEARER_TOKEN X Developer Portal
TURSO_DATABASE_URL Turso ダッシュボード
TURSO_AUTH_TOKEN Turso ダッシュボード
DISCORD_WEBHOOK_URL Discord サーバー設定 > 連携サービス > ウェブフック
ANTHROPIC_API_KEY Anthropic Console

3. GitHub Actions を有効化

private リポジトリの場合、Actions タブから Workflow を有効にする。 毎日 JST 08:00 に自動実行される。手動実行は Actions タブの workflow_dispatch から可能。

ローカル実行

# 依存パッケージのインストール
npm install

# 環境変数の設定
cp .env.example .env
# .env を編集して各値を設定

# 実行
npm start

ファイル構成

src/
  config.ts        監視対象ユーザーの管理
  db.ts            Turso 接続・スキーマ・CRUD
  fetch-posts.ts   X API タイムライン取得
  summarize.ts     Claude で要約生成
  notify.ts        Discord Webhook 送信
  main.ts          エントリポイント
.github/
  workflows/
    digest.yml     GitHub Actions ワークフロー

技術スタック

  • 言語: TypeScript (ESM)
  • 定期実行: GitHub Actions
  • ポスト取得: X API v2
  • データ保存: Turso (libSQL)
  • 要約生成: Claude (claude-sonnet-4-6)
  • 通知: Discord Webhook

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors