イベント参加の告知を見逃さないための自動監視・通知システム。
Twitter/Xアカウントのツイートを定期的に取得し、イベント関連のポストをAIで検出してDiscordに通知します。
# 単発実行(1回だけ実行)
python main.py
# 常時稼働(推奨) - デフォルトで1時間おきに自動実行
python main.py --daemongit clone https://github.com/ttttdiva/XCrawler.git
cd XCrawler
bash setup.sh# Twitter認証(必須)
TWITTER_ACCOUNT_1_TOKEN=your_auth_token
TWITTER_ACCOUNT_1_CT0=your_ct0_token
# イベント検出を使うなら(オプション)
GOOGLE_API_KEY=your_google_api_key
# Discord通知を使うなら(オプション)
DISCORD_WEBHOOK_URL=your_webhook_urlusername,display_name,event_detection_enabled,account_type
example_user,ユーザー名,1,# 常時稼働(推奨)
python main.py --daemon- Twitter/Xをブラウザで開く
- F12で開発者ツール → Application → Cookies → x.com
auth_tokenとct0の値をコピー
- 自動ツイート収集: 指定アカウントのツイートを定期的に取得
- AI判定: イベント関連ツイートを自動検出(Gemini/GPT-4)
- Discord通知: 検出したイベント情報を即座に通知
- データベース管理: SQLiteで収集データを管理
- メディア保存: 画像・動画を自動ダウンロード
# 複数アカウントでレート制限を回避
TWITTER_ACCOUNT_1_TOKEN=xxx
TWITTER_ACCOUNT_1_CT0=xxx
TWITTER_ACCOUNT_2_TOKEN=yyy
TWITTER_ACCOUNT_2_CT0=yyy
TWITTER_ACCOUNT_3_TOKEN=zzz
TWITTER_ACCOUNT_3_CT0=zzz# デーモンモードの実行間隔
daemon:
interval_minutes: 60 # デフォルト1時間おき
# ツイート取得設定
tweet_settings:
days_lookback: 36500 # 過去何日分を取得
# gallery-dl統合(メディア付きツイート全件取得)
gallery_dl:
enabled: true # twscrapeの制限(700-1000件)を超えて全メディア取得
# イベント検出
event_detection:
enabled: true # false でクローラーモードに- ブラウザでTwitter/Xにログイン
- F12キーで開発者ツールを開く
- 上部タブから「Application」または「アプリケーション」を選択
- 左側メニューから「Cookies」→「https://x.com」を展開
- 以下の値をコピー:
auth_tokenの値ct0の値
TWITTER_ACCOUNT_1_TOKEN=取得したauth_tokenの値
TWITTER_ACCOUNT_1_CT0=取得したct0の値GET Cookie.txt LOCALLY拡張機能を使用して、
x.comのCookieをNetscape形式でcookies/x.com_cookies.txtにエクスポートしてください。
参考: 正しいファイル形式(Netscape Cookie形式)
# Netscape HTTP Cookie File
.x.com TRUE / TRUE 1786716311 auth_token 実際の値
.x.com TRUE / TRUE 1786716311 ct0 実際の値
複数アカウントを使用する場合:
.envにTWITTER_ACCOUNT_2_TOKEN,TWITTER_ACCOUNT_2_CT0等を追加cookies/x.com_cookies_2.txt,cookies/x.com_cookies_3.txt等のファイルを作成
鍵アカウントのツイートを取得する場合、そのアカウントをフォローしているCookie/アカウントを指定:
# config.yaml
tweet_settings:
private_account_cookies:
gallery_dl_cookie: "cookies/x.com_cookies_13.txt" # 鍵アカウントアクセス用Cookie
twscrape_account: 14 # .envのTWITTER_ACCOUNT_14- 認証エラー: Cookie(auth_token, ct0)の有効期限を確認
- レート制限: 複数アカウントを追加(推奨3アカウント以上)
- Hugging Faceバックアップ: rclone.confのパスワードをデフォルトから変更してください(セキュリティ上の理由)
MIT License