【2026年版】X (Twitter) の自動リプライ&投稿AI BotをVPSで運用してフォロワーを増やす方法
筆者の結論(先に読んでください)
VPSは月880円〜の2GBプランで十分です。GPUは不要。
API経由でOpenAIを叩くだけなら、VPSに必要なのはCPUとメモリのみ。Ollama(ローカルLLM)を使いたいなら8GBに上げればいい。それだけの話です。
「X自動化にGPU付きVPSが必要」と書いてある記事を見たことがあるかもしれないけど、はっきり言うとあれはアフィリエイト報酬が高いプランを売りたいだけの可能性が高い。このボットの処理はAPI呼び出しとcron実行だけで、GPU演算は一切発生しません。
あと、「ローカルPCで動かせばいいのでは」という意見もあると思うけど、自分はVPS派です。PCを立ち上げっぱなしにするのが精神的に気になるし、何かあったときにリモートデスクトップで入らないといけないから、全然手放しにならない。月880円で24時間VPSに任せた方がメンタルコストが圧倒的に低い。
VPS選びの結論だけ先に書くと:
- OpenAI API使用 → ConoHa VPS 2GBプラン(月880円)で十分
- Ollama(ローカルLLM)使用 → 8GBプランが必要(月2,000円台)
- 「とにかく試してから決めたい」 → KAGOYA CLOUD VPSの14日無料トライアルがおすすめ(週末2回入るので確認には十分)
では本編に入ります。
X (Twitter) 自動化で差をつける時代
フォロワーを増やすにはコンスタントな投稿と反応速度が重要ですが、毎日手動でツイートし続けるのは現実的ではありません。2026年現在、X API v2 + AI(LLM)を組み合わせた自動投稿・自動リプライシステムを持つアカウントが急増しています。
この記事では、VPS上にPythonボットを構築し、AIが文脈を読んだ自然なリプライを自動生成・投稿する仕組みを解説します。スパム的な運用ではなく、フォロワーにとって価値ある応答を自動化することが目的です。
自分が実際に試行錯誤した経験をもとに、「これはいる・これはいらない」を正直に書いていきます。
システム構成
[X APIからメンション/キーワードを取得]
↓
[tweepy: 投稿・リプライの送受信]
↓
[Ollama(Llama 3 / Mistral)で文章生成]
↓
[レートリミット管理(X API制限を守る)]
↓
[VPS上のcronで定期実行]
↓
[Slack通知(投稿ログ確認用)]
シンプルです。重い処理は何もない。だからVPSは安いプランで十分と言っています。
X API v2 のレートリミット(2026年時点)
| プラン | 月額 | 投稿上限/月 | 読み取り |
|---|---|---|---|
| Free | $0 | 500ツイート | 制限あり |
| Basic | $100 | 3,000ツイート | 10,000/月 |
| Pro | $5,000 | 300,000ツイート | 1,000,000/月 |
自動化はBasicプラン以上が推奨です。Freeプランは投稿数が少なく本格運用には向きません。
ぶっちゃけ、X APIの月$100(約15,000円)が最大のコストです。VPS代なんて誤差レベル。「VPS代をケチる」より「X APIプランをどう使い倒すか」の方がはるかに重要な判断になります。
Basicプランで月3,000ツイート = 1日あたり約100ツイート。毎日3回投稿 + 30分ごとにリプライチェックで運用するなら、月の投稿数は90〜200件程度に収まるはず。Basicで十分です。
VPS の要件
X APIボットはAPIコールとLLM推論のみを行うため、スペックは低くて済みます。
| 項目 | 推奨 |
|---|---|
| CPU | 2コア |
| メモリ | 4GB(OpenAI API使用)/ 8GB(Ollama使用) |
| ストレージ | 30GB |
| OS | Ubuntu 22.04 LTS |
繰り返しになりますが、GPU不要です。 このボットはOpenAIのAPIを叩くか、OllamaをCPUで動かすかの2択。どちらもGPUは関係ない。もし他の記事でGPU付きVPSを勧めていたら、そのVPSのアフィリエイト単価が高いからだと思った方がいい。
環境構築:ステップバイステップ
Step 1: X Developer Portal でAPIキーを取得
- developer.x.com にアクセス
- 「Projects & Apps」→「Add App」でアプリを作成
- 「Keys and Tokens」から以下を取得・保存:
- API Key(Consumer Key)
- API Key Secret
- Access Token
- Access Token Secret
- Bearer Token
ここが一番面倒なステップです。Xのデベロッパーポータルは UIが変わりやすいので、詰まったら「X API v2 キー取得 2026」で検索するのが早い。
Step 2: Python 環境とtweepyのインストール
sudo apt update && sudo apt install -y python3.11 python3.11-venv
mkdir ~/x-ai-bot && cd ~/x-ai-bot
python3.11 -m venv venv
source venv/bin/activate
pip install tweepy openai python-dotenv schedule requests
Step 3: 環境変数を設定する
nano .env
X_API_KEY=your-api-key
X_API_SECRET=your-api-secret
X_ACCESS_TOKEN=your-access-token
X_ACCESS_SECRET=your-access-token-secret
X_BEARER_TOKEN=your-bearer-token
OPENAI_API_KEY=sk-xxxxxxxxxxxxxxxx
SLACK_WEBHOOK_URL=https://hooks.slack.com/services/xxx
.env ファイルは絶対にGitHubにpushしないこと。.gitignore に追加するのを忘れずに。やらかすと即APIキーを無効化する羽目になります。
Step 4: 自動投稿スクリプトを作成する
# poster.py — コンテンツの定期投稿
import tweepy
import os
from openai import OpenAI
from dotenv import load_dotenv
import random
load_dotenv()
# X API クライアント
client_x = tweepy.Client(
consumer_key=os.getenv("X_API_KEY"),
consumer_secret=os.getenv("X_API_SECRET"),
access_token=os.getenv("X_ACCESS_TOKEN"),
access_token_secret=os.getenv("X_ACCESS_SECRET"),
)
# OpenAI クライアント
client_ai = OpenAI(api_key=os.getenv("OPENAI_API_KEY"))
# 投稿テーマのリスト(アカウントのジャンルに合わせて変更)
TOPICS = [
"AIツールの使い方",
"生産性向上のヒント",
"Python プログラミング",
"VPS活用術",
"クラウド自動化",
]
def generate_tweet(topic: str) -> str:
"""AIがツイート文を生成する"""
prompt = f"""
以下のテーマについて、Xで反応を得やすい日本語ツイートを1つ書いてください。
テーマ: {topic}
条件:
- 140文字以内
- 具体的なTipsや気づきを含む
- ハッシュタグを1〜2個付ける
- 絵文字を適度に使う
- 宣伝・スパム感NG
"""
response = client_ai.chat.completions.create(
model="gpt-4o-mini",
messages=[{"role": "user", "content": prompt}],
max_tokens=200,
)
return response.choices[0].message.content.strip()
def post_tweet():
"""ツイートを投稿する"""
topic = random.choice(TOPICS)
tweet_text = generate_tweet(topic)
# 140文字制限チェック
if len(tweet_text) > 140:
tweet_text = tweet_text[:137] + "..."
try:
response = client_x.create_tweet(text=tweet_text)
tweet_id = response.data["id"]
print(f"投稿成功: ID={tweet_id}\n{tweet_text}")
return True
except tweepy.TweepyException as e:
print(f"投稿失敗: {e}")
return False
if __name__ == "__main__":
post_tweet()
TOPICS のリストはアカウントのジャンルに合わせて書き換えてください。ここが雑だと生成される投稿も雑になる。AIへの指示は具体的にした方が絶対にいい。
Step 5: 自動リプライスクリプトを作成する
# replier.py — メンションへの自動リプライ
import tweepy
import os
import json
from openai import OpenAI
from dotenv import load_dotenv
load_dotenv()
client_x = tweepy.Client(
bearer_token=os.getenv("X_BEARER_TOKEN"),
consumer_key=os.getenv("X_API_KEY"),
consumer_secret=os.getenv("X_API_SECRET"),
access_token=os.getenv("X_ACCESS_TOKEN"),
access_token_secret=os.getenv("X_ACCESS_SECRET"),
)
client_ai = OpenAI(api_key=os.getenv("OPENAI_API_KEY"))
# 最後に処理したツイートIDを保存(重複防止)
STATE_FILE = "last_seen_id.json"
def load_last_seen_id() -> str | None:
if os.path.exists(STATE_FILE):
with open(STATE_FILE) as f:
return json.load(f).get("id")
return None
def save_last_seen_id(tweet_id: str):
with open(STATE_FILE, "w") as f:
json.dump({"id": tweet_id}, f)
def generate_reply(mention_text: str) -> str:
"""メンション内容に対するリプライを生成"""
prompt = f"""
以下のツイートへの自然な日本語リプライを書いてください。
丁寧で役に立つ内容にしてください。140文字以内で。
ツイート: {mention_text}
"""
response = client_ai.chat.completions.create(
model="gpt-4o-mini",
messages=[{"role": "user", "content": prompt}],
max_tokens=150,
)
return response.choices[0].message.content.strip()
def process_mentions():
"""未返信のメンションを取得してリプライする"""
last_id = load_last_seen_id()
# 自分のユーザーIDを取得
me = client_x.get_me()
my_id = me.data.id
# メンションを取得
kwargs = {"since_id": last_id} if last_id else {}
mentions = client_x.get_users_mentions(
id=my_id,
max_results=10,
tweet_fields=["text", "author_id"],
**kwargs,
)
if not mentions.data:
print("新しいメンションなし")
return
for mention in reversed(mentions.data):
text = mention.text.strip()
# 自分自身へのリプライは除外
if str(mention.author_id) == str(my_id):
continue
reply_text = generate_reply(text)
try:
client_x.create_tweet(
text=reply_text,
in_reply_to_tweet_id=mention.id,
)
print(f"リプライ送信: {mention.id}\n→ {reply_text}")
except tweepy.TweepyException as e:
print(f"リプライ失敗: {e}")
# 最新のIDを保存
save_last_seen_id(str(mentions.data[0].id))
if __name__ == "__main__":
process_mentions()
last_seen_id.json の管理は地味に重要です。これがないと同じメンションに何度もリプライを飛ばしてスパム扱いされます。最初に手動で1回実行して動作確認してから、cronに登録するのをおすすめします。
Step 6: cron でスケジューリング
crontab -e
# 毎日3回投稿(8時・12時・20時)
0 8,12,20 * * * /home/ubuntu/x-ai-bot/venv/bin/python /home/ubuntu/x-ai-bot/poster.py >> /home/ubuntu/x-ai-bot/post.log 2>&1
# 30分ごとにメンションをチェック(レートリミットに注意)
*/30 * * * * /home/ubuntu/x-ai-bot/venv/bin/python /home/ubuntu/x-ai-bot/replier.py >> /home/ubuntu/x-ai-bot/reply.log 2>&1
これがVPSで動かす理由のすべてです。一度cronに登録したら、VPSが勝手に動き続ける。ローカルPCだと寝てる間にPCが落ちてたとか、スリープしてたとか、そういうことが必ず起きる。VPSに任せると本当に気にしなくていい。
レートリミット管理の重要ポイント
X APIは厳しいレートリミットを持っています。違反するとアカウント停止リスクがあるため、以下を必ず守ってください。
| 注意事項 | 推奨対応 |
|---|---|
| 投稿頻度 | 1日あたり50件以下(Basicプラン) |
| リプライ間隔 | 最低5分以上あける |
| 同一内容の禁止 | 生成ごとに内容を変える |
| スパム判定回避 | 自然な文体・多様なテーマ |
はっきり書いておきます。レートリミット違反でBANされるケースの大半は「急ぎすぎ」です。 最初は投稿頻度を控えめに設定して、1〜2週間問題なく動いてから少しずつ増やす。焦って最初から全力で回すと、Xのシステムに不審なアカウントとして認識されやすい。
倫理的な運用ガイドライン
自動化は使い方次第でフォロワーの信頼を失うリスクがあります。以下の原則を守ることを強く推奨します。
- 価値ある情報のみを投稿する — フォロワーにとって役立つTipsや情報に限定する
- スパム的なリプライをしない — 無差別リプライや同じ文言の繰り返しはNG
- 人間のレビューを挟む — 重要な投稿は必ず確認してから公開する(draft保存機能の活用)
- Xの利用規約を遵守する — 自動化に関するXのポリシーを定期的に確認する
- AIで生成した旨を開示する — 必要に応じてプロフィールに明示する
自分の考えを体感として、「自動化=悪」ではないけど「自動化=楽して増やせる」でもない。AIが生成した内容が本当に価値あるものかどうかは、定期的にログを見て確認する必要があります。完全放置は最初からやめとけと思います。週1回ログを見て、変なツイートが出てないか確認するくらいの管理は必要。
よくある質問
まとめ:あなたの使い方で選ぶ
X API v2 + tweepy + AI(OpenAI/Ollama)を組み合わせることで、自然な文章を自動生成して投稿・リプライするボットをVPS上に構築できます。ここまで読んだ人向けに、判断テーブルにまとめます。
| あなたの状況 | 推奨VPS | 月額コスト感 | 一言 |
|---|---|---|---|
| とにかく安く始めたい・OpenAI API使用 | ConoHa VPS 2GBプラン | 880円/月 | 1日あたり約29円。試すならここから |
| 費用を抑えてOllamaも使いたい | KAGOYA CLOUD VPS 4〜8GB | 時間課金で使った分だけ | 常時稼働なら固定料金のConoHaと比較して計算を |
| まず試してから決めたい | KAGOYA CLOUD VPS(14日無料) | 0円〜 | 週末2回入るので動作確認には十分。迷ったらここで試す |
| Ollamaをフル活用・API費用ゼロにしたい | 8GBプラン(ConoHa/KAGOYA) | 2,000円台/月 | API費用と天秤にかけて判断 |
| GPU付きVPSを勧められた | — | — | このボットにGPUは不要です。やめとけ |
コスト感の整理(OpenAI API使用の場合):
- VPS: 880円/月(ConoHa 2GB)
- X API Basicプラン: 約15,000円/月($100)
- OpenAI API(gpt-4o-mini、1日3投稿+リプライ50件想定): 数百円/月
実質的なランニングコストはX APIの月$100が支配的です。VPSをケチっても誤差。むしろVPSの安定性を優先した方が長期的には正解。
まずはKAGOYAの14日無料で動かしてみて、「ちゃんと動く・自分の運用に合う」を確認してからVPS選びを決めればいい。最終回答じゃないんだから、試してみてください。