複数の Twitter アカウントのブックマークを収集・閲覧するアプリケーション。
- crawler: 全アカウントのブックマークを定期取得し SQLite に保存
- viewer: 収集したブックマークを Twitter 風 UI で一覧表示
- analyzer (任意): 形態素解析によるタグ抽出とカテゴリ自動分類
- Docker / Docker Compose
data/config.json(アカウント設定ファイル)
data/config.json を作成してください:
{
"twitter": {
"accounts": [
{
"email": "your-email@example.com",
"username": "your_username",
"password": "your_password",
"otp_secret": null
}
],
"clientLanguage": "ja"
}
}
otp_secretは 2 段階認証 (TOTP) を使用している場合に設定します。
clientLanguageは Twitter API クライアントの言語コード (BCP47) です。x-twitter-client-languageヘッダーとして送信され、Grok 翻訳先言語など API レスポンスの言語に影響します。省略時はja(日本語) になります。
cp .env.example .env
# .env を編集して設定をカスタマイズdocker compose up -danalyzer は形態素解析によるタグ抽出とカテゴリ自動分類を行うオプション機能です。
analyzer プロファイルを指定して起動します (ポート 3002、ホストには公開されません)。
# .env に ANALYZER_URL を設定する
echo "ANALYZER_URL=http://analyzer:3002" >> .env
# analyzer プロファイルを有効にして起動
docker compose --profile analyzer up -d| サービス | URL |
|---|---|
| Web UI | http://localhost:3000 |
| Crawler API | http://localhost:3001 |
| 変数名 | デフォルト | 説明 |
|---|---|---|
CRAWL_SCHEDULE |
0 * * * * |
クロールスケジュール (cron 式、デフォルト: 1 時間毎) |
CRAWL_ON_STARTUP |
true |
起動時に即クロール実行 |
PROXY_SERVER |
- | プロキシサーバー |
PROXY_USERNAME |
- | プロキシ認証ユーザー名 |
PROXY_PASSWORD |
- | プロキシ認証パスワード |
TWITTER_COOKIE_ISSUER_URL |
- | Cookie issuer の URL。パスワード・OTP を送信しセッション Cookie を受け取るため、信頼できる内部/プライベートネットワークのエンドポイントだけを指定し、公開してはならない |
ANALYZER_URL |
- | analyzer サービスの URL(設定時にクロール後に自動分析を実行する) |
| 変数名 | デフォルト | 説明 |
|---|---|---|
CRAWLER_URL |
http://crawler:3001 |
crawler サービスの URL |
ANALYZER_URL |
- | analyzer サービスの URL(設定時に analyzer 機能が有効になる) |
| エンドポイント | メソッド | 説明 |
|---|---|---|
/health |
GET | ヘルスチェック |
/crawl |
POST | クロール手動実行 |
/crawl/status |
GET | 最新クロールジョブの状態 |
/bookmarks |
POST | ブックマーク追加(ボディ: {"account": "<username>", "tweetId": "<id>"} ) |
/bookmarks/:tweetId |
DELETE | ブックマーク削除(クエリ: ?account=<username>)。DB からも即時削除 |
data/ ディレクトリに以下が保存されます:
| ファイル | 説明 |
|---|---|
config.json |
アカウント設定 |
db.sqlite |
ブックマーク DB |
cookies-{username}.json |
Cookie キャッシュ (7 日間有効) |