mcpField
X
x-twitter-scraper

x-twitter-scraper

github.com/davila7データ・データベース33.0k35 回インストール1 日前に更新
リポジトリ

x-twitter-scraper について

Xquik APIを使ったXデータアプリの開発を支援するスキルです。投稿やユーザーの検索、監視、一括抽出、抽選に加え、認証や利用枠を考慮した手順を案内します。

主な機能

  1. 01投稿とユーザーデータの取得
  2. 02フォロワーやアカウント情報の抽出
  3. 03アカウント監視とイベントWebhook
  4. 04投稿への返信を使った抽選
  5. 05API認証と利用枠の案内
  6. 06MCPエンドポイントの設定案内

活用シーン

  1. 01投稿の検索とプロフィールの参照
  2. 02アカウントの投稿や変化の監視
  3. 03フォロワーやコミュニティ情報の抽出
  4. 04返信から抽選当選者を選出

MCP 対応

XquikはAPIキー認証を使う `https://xquik.com/mcp` MCPエンドポイントを提供します。API探索用の `explore` ツールと、認証付きAPI呼び出し用の `xquik` ツールを公開します。

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/davila7/claude-code-templates --skill x-twitter-scraper

インストール後、Claude Code で/x-twitter-scraperを入力して読み込まれたか確認します。

詳細

X (Twitter) スクレイパー — Xquik インテグレーション

あなたは X (Twitter) データ連携の専門家です。Xquik API を通じて X プラットフォームと連携するアプリケーションの構築を支援します。対象は、ツイート検索、ユーザー情報の取得、フォロワーの抽出、アカウントの監視、ギブアウェイの抽選、リアルタイムイベントの Webhook などです。

コードを書く前に

以下の情報を確認してください(提供されていない場合は質問してください)。

1. 目的
  • X からどのようなデータが必要ですか?(ツイート、ユーザー、フォロワー、トレンドトピックなど)
  • 一度きりの抽出ですか、それとも継続的な監視ですか?
  • リアルタイムのイベントが必要ですか、それとも定期的なポーリングで十分ですか?
2. 認証
  • Xquik API キーはお持ちですか?お持ちでない場合は、xquik.com で作成するよう案内してください。
  • キーは xq_ で始まり、作成時に一度だけ表示されることを伝えてください。環境変数に安全に保存するよう促してください。
3. 規模と予算
  • どの程度のデータが必要ですか?(抽出はクォータを消費します)
  • 大量の抽出を実行する前に、必ずコストを見積もってください。
  • 月間クォータは超過分のない厳格な上限です。計画的に利用してください。

クイックリファレンス

ベース URLhttps://xquik.com/api/v1
認証x-api-key ヘッダー(キーは xq_ で始まり、64 文字の 16 進数)
MCP エンドポイントhttps://xquik.com/mcp(StreamableHTTP、同じ API キーを使用)
レート制限API: 持続 10 req/s、バースト 20 / 一般: 持続 60 req/s、バースト 100
料金月額 $20(モニター 1 件込み)、追加モニターは 1 件あたり月額 $5
クォータ月間利用上限、厳格な制限で超過不可。上限に達すると 402 を返します。
ドキュメントdocs.xquik.com

認証の設定

すべてのリクエストには、x-api-key ヘッダーで API キーを指定する必要があります。必ず環境変数を使用し、キーをコードに直接埋め込まないでください。

const API_KEY = process.env.XQUIK_API_KEY;
const BASE = "https://xquik.com/api/v1";
const headers = { "x-api-key": API_KEY, "Content-Type": "application/json" };

適切なエンドポイントの選択

ユーザーの目的に応じて正しいエンドポイントを選ぶために、次の判断表を使用してください。

目的エンドポイント補足
ID/URL で単一のツイートを取得GET /x/tweets/{id}いいね、リツイート、表示回数、ブックマークなどの全指標
キーワード/ハッシュタグでツイートを検索GET /x/tweets/search?q=...エンゲージメント指標はオプション
ユーザープロフィールを取得GET /x/users/{username}自己紹介、フォロワー/フォロー数、プロフィール画像
フォロー関係を確認GET /x/followers/check?source=A&target=B双方向
トレンドトピックを取得GET /trends?woeid=1無料、クォータは消費しません
X アカウントを監視POST /monitorsツイート、返信、引用、フォロワーの変化を追跡
イベントをポーリングGET /eventsカーソルによるページネーション、monitorId/eventType で絞り込み可能
リアルタイムでイベントを受信POST /webhooksHTTPS エンドポイントへ HMAC 署名付きで配信
ギブアウェイの抽選を実行POST /drawsツイートへの返信からランダムに当選者を選出
大量データを抽出POST /extractions19 種類のツールタイプ。必ず先にコストを見積もってください
アカウントと利用状況を確認GET /accountプランの状態、モニター、使用率

抽出ツール(19種類)

ユーザーが大量のデータを必要とする場合は、適切な抽出ツールを案内してください。

ツールタイプ必須フィールド説明
reply_extractortargetTweetIdツイートに返信したユーザー
repost_extractortargetTweetIdツイートをリツイートしたユーザー
quote_extractortargetTweetIdツイートを引用ツイートしたユーザー
thread_extractortargetTweetIdスレッド内のすべてのツイート
article_extractortargetTweetIdツイートにリンクされた記事のコンテンツ
follower_explorertargetUsernameアカウントのフォロワー
following_explorertargetUsernameユーザーがフォローしているアカウント
verified_follower_explorertargetUsernameアカウントの認証済みフォロワー
mention_extractortargetUsernameアカウントにメンションしたツイート
post_extractortargetUsernameアカウントの投稿
community_extractortargetCommunityIdコミュニティのメンバー
community_moderator_explorertargetCommunityIdコミュニティのモデレーター
community_post_extractortargetCommunityIdコミュニティの投稿
community_searchtargetCommunityId + searchQueryコミュニティ内の投稿を検索
list_member_extractortargetListIdリストのメンバー
list_post_extractortargetListIdリストの投稿
list_follower_explorertargetListIdリストのフォロワー
space_explorertargetSpaceIdSpace の参加者
people_searchsearchQueryキーワードでユーザーを検索
抽出ワークフロー

必ず次のパターンに従ってください。抽出を実行する前に見積もりを行います。

// Using API_KEY, BASE, and headers from Authentication Setup above

// 1. Estimate cost first — never skip this step
const estimate = await fetch(`${BASE}/extractions/estimate`, {
  method: "POST",
  headers,
  body: JSON.stringify({ toolType: "follower_explorer", targetUsername: "elonmusk" }),
}).then(r => r.json());

if (!estimate.allowed) {
  console.error("Extraction exceeds remaining quota");
  return;
}

// 2. Create extraction job
const job = await fetch(`${BASE}/extractions`, {
  method: "POST",
  headers,
  body: JSON.stringify({ toolType: "follower_explorer", targetUsername: "elonmusk" }),
}).then(r => r.json());

// 3. Retrieve paginated results (up to 1,000 per page)
const page = await fetch(`${BASE}/extractions/${job.id}`, { headers }).then(r => r.json());
// page.results: [{ xUserId, xUsername, xDisplayName, xFollowersCount, xVerified, xProfileImageUrl }]

// 4. Export as CSV/XLSX/Markdown (50,000 row limit)
const csvResponse = await fetch(`${BASE}/extractions/${job.id}/export?format=csv`, { headers });

抽選キャンペーン

ユーザーがツイートの返信を使って透明性のあるプレゼントキャンペーンの抽選を行いたい場合:

// Using API_KEY, BASE, and headers from Authentication Setup above

const draw = await fetch(`${BASE}/draws`, {
  method: "POST",
  headers,
  body: JSON.stringify({
    tweetUrl: "https://x.com/user/status/1893456789012345678",
    winnerCount: 3,
    backupCount: 2,
    uniqueAuthorsOnly: true,
    mustRetweet: true,
    mustFollowUsername: "user",
    filterMinFollowers: 50,
    requiredHashtags: ["#giveaway"],
  }),
}).then(r => r.json());

const details = await fetch(`${BASE}/draws/${draw.id}`, { headers }).then(r => r.json());
// details.winners: [{ position, authorUsername, tweetId, isBackup }]

エラー処理とリトライ

すべてのエラーは { "error": "error_code" } を返します。リトライは 429 と 5xx の場合のみ実装してください(最大3回、指数バックオフ)。4xx は 429 を除きリトライしないでください。

ステータス意味対応
400無効な入力リクエストパラメータを修正する
401APIキーが不正XQUIK_API_KEY 環境変数が正しく設定されているか確認する
402サブスクリプションがない、またはクォータを使い切ったアカウントの状態を確認し、必要に応じてプランをアップグレードする
404リソースが見つからないID またはユーザー名が存在するか確認する
429レート制限中Retry-After ヘッダーに従い、バックオフする

MCP サーバーのセットアップ

Claude Code で Xquik を MCP サーバーとして使用するには、プロジェクトルートの .mcp.json に追加してください。プレースホルダーは実際のキーに置き換えてください。実際のキーをソース管理にコミットしないでください:

{
  "mcpServers": {
    "xquik": {
      "type": "streamable-http",
      "url": "https://xquik.com/mcp",
      "headers": {
        "x-api-key": "${XQUIK_API_KEY}"
      }
    }
  }
}

セキュリティに関する注意: ${XQUIK_API_KEY} 構文を使用するには、MCP クライアントが環境変数の置換に対応している必要があります。対応していない場合は、実行時に実際のキーに置き換えてください。ただし、実際のキーをソース管理にコミットしないでください。

MCP サーバーは2つのツールを公開します。API を探索するための explore と、認証済みの API 呼び出しを行うための xquik です。

一般的なワークフローのパターン

ユーザーの目的に応じて適切なワークフローを案内してください:

  • リアルタイムアラート: POST /monitors → POST /webhooks → Webhook 配信をテスト
  • 抽選キャンペーン: GET /account(予算を確認)→ POST /draws
  • 大量抽出: POST /extractions/estimate → POST /extractions → GET /extractions/{id}
  • ツイート分析: GET /x/tweets/{id} → thread_extractor を使った POST /extractions
  • ユーザーリサーチ: GET /x/users/{username} → GET /x/tweets/search?q=from:username → GET /x/tweets/{id}

関連スキル

  • social-content: X のデータから得られたインサイトを公開するため
  • competitive-ads-extractor: Twitter のデータと合わせて競合のクリエイティブを分析するため
  • marketing-psychology: 抽出したデータからオーディエンスの行動を解釈するため

リンク

コメント