Blog›Guides

AIプロンプト55,000件のダウンロード方法(無料、スクレイピング不要)

以下は、公開データセットエンドポイントを介してWikipromptカタログ全体を取得するためのステップバイステップガイドです。キーセットページネーションのカーソルを、残りがなくなるまで追跡します。スクレイピングは不要です。 1. **エンドポイントを特定する** 公開データセットのAPIエンドポイント(例:`https://api.wikiprompt.org/datasets/catalog`)を確認します。ドキュメントで、ページネーションの仕様(カーソルベースかオフセットベースか)を確認してください。 2. **初期リクエストを送信する** 最初のページを取得するた

AIプロンプト55,000件のダウンロード方法(無料、スクレイピング不要)

55,000件のAIプロンプトをダウンロードする方法(無料、スクレイピング不要)

スクレイピングでプロンプトデータセットを構築しようとしたことがあるなら、それがいかに脆いかご存じでしょう。Twitterのスレッドを取得し、Discordサーバーをスクリーンショットし、ヘッドレスブラウザでウェブサイトのHTMLをページングする。セレクタは変更され、レート制限がかかり、収集した「プロンプト」の半分はプロンプト自体ではなく、プロンプトへの返信であることが判明します。

Wikipromptはその必要性をすべて排除しました。カタログは、Midjourney、GPT Image、Veo、Kling、Nano Banana、Claudeなどのモデルにわたる画像、動画、テキスト生成をカバーする55,000以上の厳選されたAIプロンプトで構成されており、curlでページングできるプレーンなJSONデータセットとして利用可能になりました。APIキーもログインもスクレイピングも不要です。この投稿は「データが欲しい」から55,000件のレコードを含むローカルファイルへの最速の道です。

ステップ1: マニフェストにアクセスする

レコードを取得する前に、マニフェストを確認してスクリプトが扱う内容を把握しましょう:

curl "https://www.wikiprompt.org/dataset"

これにより、データセットを説明する小さなJSONドキュメントが返されます: total_prompts(現在のカウント、55,000以上)、record_fields(以下のスキーマ)、およびpaginationスキーム。このエンドポイントを合計の真実のソースとして扱い、パイプラインに数値をハードコードしないでください。

ステップ2: 最初のページを取得する

実際のレコードは/dataset/promptsにあります。ページングはキーセットベース(ページ番号ではなくカーソル)であり、200ページ目でも高速で安定します。デフォルトのページサイズは200レコードで、最大500件を一度に要求できます:

curl "https://www.wikiprompt.org/dataset/prompts?limit=500"

レスポンスは、レコードのリストとnextフィールドを持つJSONオブジェクトです。nextは完全なURLであり、そのまま取得可能で、受け取った最後のレコードを指すafterカーソルを含みます。ページングするものがなくなると、nextはnullになります。この単一のフィールドがループ全体の条件です。

ステップ3: `next`が`null`になるまで従う

Pythonでのページングループ全体は以下の通りです。すべてのレコードをローカルファイルに書き込み、自動的に停止します:

import json

import time

import urllib.request

url = "https://www.wikiprompt.org/dataset/prompts?limit=500"

out = open("wikiprompt_dataset.jsonl", "w")

count = 0

while url:

with urllib.request.urlopen(url) as resp:

data = json.loads(resp.read())

for record in data["records"]:

out.write(json.dumps(record) + "\n")

count += 1

url = data.get("next")

time.sleep(0.2)

out.close()

print(f"Downloaded {count} prompts")

Node.jsでの同じループ(それがあなたのスタックの場合):

let url = "https://www.wikiprompt.org/dataset/prompts?limit=500";

const fs = require("fs");

const out = fs.createWriteStream("wikiprompt_dataset.jsonl");

let count = 0;

while (url) {

const res = await fetch(url);

const data = await res.json();

for (const record of data.records) {

out.write(JSON.stringify(record) + "\n");

count++;

}

url = data.next;

}

console.log(Downloaded ${count} prompts);

どちらかを実行して待ちます。すべての応答はエッジキャッシュされ、CORS対応(Access-Control-Allow-Origin: *)であるため、サーバー、ブラウザコンソール、ノートブック、サーバーレス関数から特別なヘッダーなしで動作します。通常の接続では、limit=500で55,000以上の全レコードを取得するのに数分もかかりません。

各レコードで実際に得られるもの

データセット内の各JSONオブジェクトは同じ構造を持ち、それが一回限りの閲覧以外にも役立つ理由です:

  • slugとurl: wikiprompt.org上のそのプロンプトの正規ページ
  • titleとdescription
  • content: モデルにコピーする実際のプロンプトテキスト
  • category(クリエイティブ、マーケティング、個人、生産性、コーディング、教育、研究、その他)とtags
  • media: プロンプトが視覚的出力を生成した場合のメディアURL
  • model: プロンプトが書かれた、または生成に使用されたAIモデル
  • metadata: メディアタイプ、アスペクト比、スタイル、品質評価をカバーする構造化ブロック
  • authorとoriginal_source: プロンプトの出典となる元のツイートや投稿へのリンク
  • updated_atとcreated_at
  • このcontentフィールドが重要です。これはすぐに使えるプロンプトテキストであり、スクレイピングしたデータセットが間違えがちな要約ではありません。

    ダウンロードではなくクエリを希望する場合

    バルクデータセットは、すべてを一度にローカルに取得したい場合用です。検索APIはオンデマンドのクエリにJSONで応答し、MCPサーバーは同じカタログをClaudeや他のエージェント向けのツールとして公開し、llms.txtはサイトのマップをクローラーに提供します。データセットのエクスポートとこれらのライブエンドポイントは同じデータを共有しているため、後で切り替えてもコストはかかりません。

    これを再利用する場合の1つのルール

    Wikipromptは元の著者による公開投稿からプロンプトを集約しており、著作権者ではありません。このデータセットに基づいて何かを公開する場合は、使用した特定のレコードについてwikiprompt.orgとoriginal_sourceリンクをクレジットしてください。これが唯一の条件です。

    ダウンロードして、ページングして、何かを構築しましょう。nextカーソルとマニフェストの2つだけが覚えておくべきポイントです。

    Tags
    open-data·dataset·ai-prompts·api·download·pagination