AI・機械学習

速報!PythonとClaudeでXのタイムラインノイズを自動ミュートする方法【2026年版】

「Xのタイムライン、情報が多すぎて疲れる…」そう感じている方、けっこう多いんじゃないでしょうか。

実は最近、PythonとAnthropicのClaudeを組み合わせて、タイムラインの「ノイズ」を自動で検出・ミュートする手法が話題になっています。海外のエンジニアが実践したところ、1日あたりのX閲覧時間を90分→12分に圧縮できたというから驚きですよね 😲

今回はその仕組みをかみ砕いて解説しつつ、すぐに使えるPythonサンプルも紹介します。

🔍 何をやっているのか?ざっくり解説

イメージとしてはこんな感じです。

  1. Xのタイムラインからツイートテキストを取得する
  2. ClaudeにそのテキストをわたしてAIが「ノイズかどうか」を判定する
  3. ノイズと判断されたアカウントをミュートリストに追加する

つまり、「AIが情報の質を自動でスクリーニングしてくれる」仕組みです。手作業でミュートしなくていいのが最大のポイントですね。

🛠️ 必要なものを確認しておきましょう

  • Python 3.10以上
  • Anthropic APIキー(Claude使用)
  • X(Twitter)API v2のアクセストークン
  • anthropictweepyライブラリ

ライブラリのインストールはこちら:

pip install anthropic tweepy

💻 Pythonサンプルコード

ポイントをまとめるとこんな感じです。

  • Claude に「このツイートはプロモノイズか?」をYes/Noで聞く
  • Yesなら該当ユーザーをミュートリストへ追加
  • 1回の実行で複数ツイートをまとめて処理できる
import anthropic
import tweepy

# --- APIクライアントの初期化 ---
claude = anthropic.Anthropic(api_key="YOUR_ANTHROPIC_API_KEY")

client = tweepy.Client(
    bearer_token="YOUR_BEARER_TOKEN",
    access_token="YOUR_ACCESS_TOKEN",
    access_token_secret="YOUR_ACCESS_SECRET",
    consumer_key="YOUR_CONSUMER_KEY",
    consumer_secret="YOUR_CONSUMER_SECRET"
)

def is_noise(tweet_text: str) -> bool:
    """Claudeにツイートがノイズかどうかを判定させる"""
    response = claude.messages.create(
        model="claude-opus-4-5",
        max_tokens=10,
        messages=[
            {
                "role": "user",
                "content": (
                    "以下のツイートは副業・アフィリエイト・自己啓発系の"
                    "プロモーションノイズですか? Yes か No のみで答えてください。\n\n"
                    f"{tweet_text}"
                )
            }
        ]
    )
    answer = response.content[0].text.strip().lower()
    return answer.startswith("yes")

def auto_mute_noisy_accounts(user_id: str):
    """タイムラインを取得してノイズアカウントをミュート"""
    # タイムラインの最新100件を取得
    tweets = client.get_home_timeline(
        max_results=100,
        tweet_fields=["author_id", "text"]
    )

    muted_count = 0
    for tweet in tweets.data or []:
        if is_noise(tweet.text):
            # ノイズと判定されたらミュート
            client.mute(target_user_id=tweet.author_id)
            print(f"ミュートしました: author_id={tweet.author_id}")
            muted_count += 1

    print(f"\n完了! {muted_count} アカウントをミュートしました 🎉")

# 実行
auto_mute_noisy_accounts(user_id="YOUR_USER_ID")

⚡ ここが重要です


  • Claudeへのプロンプト設計が肝。「Yes か No のみで答えてください」と制約をつけることで、余計なテキストなしにシンプルな判定結果だけを受け取れます。
  • X API v2は無料プランだと月間のリクエスト数に上限があるので注意しましょう。
  • 誤ってフォロワーをミュートしないよう、最初はミュートせずにログ出力だけする「ドライラン」で動作確認するのがおすすめです。

📝 まとめ

今回はPythonとClaudeを組み合わせてXのノイズを自動ミュートする仕組みを紹介しました。

「むずかしそう」に見えて、実はコードの構造はシンプルですよね。AIに判定を任せるだけで、毎日の情報収集がぐっとラクになります。ぜひ自分のタイムラインで試してみてください 🚀

📚 関連商品・おすすめ書籍

スッキリわかるPython入門 第2版 (スッキリわかる入門シリーズ)

もしも

スッキリわかるPython入門 第2版 (スッキリわかる入門シリーズ)

初心者に定番のPython入門書

Amazonで見る

実践Claude Code入門―現場で活用するためのAIコーディングの思考法

もしも

実践Claude Code入門―現場で活用するためのAIコーディングの思考法

AIコーディングの現場活用法を学ぶ一冊

Amazonで見る

Python Web開発実践入門 ―― FastAPIによるWebAPI開発と非同期処理

もしも

Python Web開発実践入門 ―― FastAPIによるWebAPI開発と非同期処理

FastAPIでWebAPI開発を実践的に学ぶ

Amazonで見る

※本記事にはアフィリエイトリンクが含まれます。

ABOUT ME
やまちゃん
これまで学生と社会人を合わせて5000人以上にプログラミング学習を指導。 ゼロからイチをわかりやすく解説する専門家として活動しており、本業ではArduinoを用いたIoT開発とロボットプログラミングが専門。 Pythonを用いたアプリ開発、ウェブアプリケーションの開発で業務の効率化をサポートしています。

COMMENT

メールアドレスが公開されることはありません。 が付いている欄は必須項目です