Tony Wang6 分で読めます2026年版 Discogsのスクレイピング方法(API・Python)
2026年に Discogsをスクレイピングする方法——リリース、マスター、アーティスト、レーベル。DIY、ノーコード、構造化APIに加え、Discogs公式の無料APIも解説。
2026年に Discogs をスクレイピングする最も手早い方法は、Discogs のページを解析したり公式 API の認証フローを自分で管理したりする代わりに、正規化された JSON——リリース、マスター、アーティスト、レーベルの詳細——を返す構造化 API を呼び出すことです。このシリーズの他の多くのプラットフォームとは異なり、Discogs は実際に無料でドキュメントの整った公開 API を提供しています。正直なところ問題は「API があるかどうか」ではなく、そのレート制限、OAuth 要件、再利用規約があなたのワークフローに合うかどうか、それとも Discogs を他のカタログと並べて1つのスキーマの下にまとめる構造化 API のほうが適しているかどうかです。このガイドでは3つのアプローチすべてを取り上げ、それぞれが何を返し、どこで破綻するか、そして最初に法律面の実態を解説します。
なぜ Discogs をスクレイピングするのか?
Discogs は音楽のリリース、プレス、レーベルに関する世界最大のコミュニティ構築型データベースであり、次のような用途を支えています。
- レコードコレクションと査定ツール — リリースのマーケットプレイス価格、プレスのバリエーション、コミュニティの「have/want」カウントの推移を追跡できます。
- プレスとフォーマットのリサーチ — 同じリリースについて、ヴァイナル対 CD 対デジタル版、カタログ番号、国別のプレスを比較できます。
- レーベルのディスコグラフィー追跡 — サブレーベルや親レーベルとの関係を含め、あるレーベルがリリースしたすべてを追跡できます。
- マーケットプレイス価格のリサーチ — マスターレベルで
lowest_priceとnum_for_saleを取得し、あるタイトルが実際にどのくらいの価格で取引されているかを把握できます。
Discogs をスクレイピングするのは合法か?
選択肢1: Discogs 自身の無料 API(そしてその実際の制限)
Discogs の公式 APIは本物で、無料で、それなりにドキュメント化されています——「API が全くない」というケースではありません。リクエストは送信元 IP ごとにスロットリングされ、未認証で1分あたり約25回、認証済みで1分あたり60回まで(60秒間のウィンドウでの移動平均)に制限され、X-Discogs-Ratelimit レスポンスヘッダーで現在の状況が正確にわかります。上位のティアを得るには、個人アクセストークンか完全な OAuth 1.0a ハンドシェイクのいずれかに加えて、自分のアプリを識別する固有のユーザーエージェント文字列が必要です。単一カタログのサイドプロジェクトにとっては妥当な取引ですが、次のことを意味します。
- 認証のライフサイクルは自分の責任です。 トークンや OAuth の設定、ローテーション、IP ごとのレート制限の予算管理は、API 側ではなくあなたの責任です。
- 60/分では大量収集にスケールしません。 数千件のリリースからなるカタログを構築するには、制限に対して何時間も実行し続けるか、Discogs から上位ティアの承認を得る必要があります。
- Discogs 専用です。 プロジェクトが Goodreads のエディションや Spotify のトラックデータ、IMDb 風のカタログにも触れる場合、それぞれのソースが独自の認証モデル、レート制限、レスポンス形式を持ち込むため、それらをすり合わせる必要があります。
これがここでの構造化スクレイピング API にとっての正直な差別化ポイントです。「Discogs には API がない」からではなく、「Discogs のデータを他のカタログと並べて1つのスキーマと1つのキーで扱いたいチームは、わずかな読み取り専用のルックアップのために複数のネイティブな認証フローをすり合わせる手間を省ける」からです。
選択肢2: ノーコードツール
一部のノーコードのスクレイパーマーケットプレイスやブラウザ拡張機能は、単発のエクスポート用に Discogs のテンプレートを提供しています——コードを書かずに、単一アーティストのディスコグラフィーやレーベルのカタログを取得できます。小規模で単発の取得には向いていますが、Discogs 自身のレート制限ヘッダーや認証モデルをきれいに公開していないため、スケジュール実行や大量のジョブでは結局、公式 API を直接呼び出すのと同じ摩擦に直面します。
選択肢3: 構造化された Discogs API(Crawlora経由)
Discogs 自身のトークンや OAuth フローを管理せずに繰り返し実行できるワークフローには、Discogs スクレイピング API が正規化された JSON を返し、維持すべきページ解析や認証ハンドシェイクはありません。リリースを検索してその id を取得します。
curl "https://api.crawlora.net/api/v1/discogs/search?q=Daft+Punk+Discovery&type=release" \
-H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"query": "Daft Punk Discovery",
"type": "release",
"page": 1,
"pages": 4,
"per_page": 50,
"items": 171,
"results": [
{
"id": 2879,
"type": "release",
"title": "Daft Punk - Discovery",
"year": "2001",
"country": "Europe",
"genres": ["Electronic"],
"styles": ["Disco", "House"],
"formats": ["Vinyl", "LP", "Album", "Stereo"],
"labels": ["Virgin"],
"catno": "V2940",
"barcodes": ["724384960612"],
"master_id": 26647,
"uri": "https://www.discogs.com/release/2879-Daft-Punk-Discovery"
}
]
}
}
続いて id を解決し、リリース、マスター、アーティストの詳細を Python で取得します。
import requests
h = {"x-api-key": "YOUR_API_KEY"}
base = "https://api.crawlora.net/api/v1/discogs"
hits = requests.get(f"{base}/search", headers=h, params={"q": "Daft Punk Discovery", "type": "release"}).json()["data"]["results"]
release_id, master_id = hits[0]["id"], hits[0]["master_id"]
release = requests.get(f"{base}/release/{release_id}", headers=h).json()["data"]
master = requests.get(f"{base}/master/{master_id}", headers=h).json()["data"]
リリース詳細は正規化された JSON です(実際のフィールド——ドキュメントを確認してください)。
{
"code": 200,
"msg": "OK",
"data": {
"id": 249504,
"title": "Never Gonna Give You Up",
"status": "Accepted",
"year": 1987,
"released": "1987-07-00",
"country": "UK",
"genres": ["Electronic", "Pop"],
"styles": ["Euro-Disco"],
"artists": [{ "id": 72872, "name": "Rick Astley" }],
"labels": [{ "id": 895, "name": "RCA", "catno": "PB 41447" }],
"formats": [{ "name": "Vinyl", "qty": "1", "descriptions": ["7\"", "45 RPM", "Single", "Stereo"] }],
"tracklist": [
{ "position": "A", "type": "track", "title": "Never Gonna Give You Up", "duration": "3:32" }
],
"community": { "have": 4062, "want": 580, "rating": { "count": 233, "average": 3.84 } },
"master_id": 96559
}
}
/discogs/artist/{id} は経歴、本名、別名義、所属グループを返します。/discogs/artist/{id}/releases と /discogs/label/{id}/releases は完全なディスコグラフィーをページングして返し(リリースごとに in_wantlist/in_collection のカウントを含む)、/discogs/label/{id} はプロフィールに加えて親レーベル・サブレーベルの関係を返します。リリースごと(またはアーティスト/レーベルのエントリーごと)に1行を保存し、スケジュールを組んで再実行しましょう。
収集できるもの
公開されているカタログのメタデータです。検索結果(id、種別、タイトル、年、国、ジャンル、スタイル、フォーマット、レーベル、カタログ番号、バーコード)、リリース詳細(ステータス、発売日、国、ジャンル、スタイル、アーティスト、レーベル、フォーマット、完全なトラックリスト、コミュニティの have/want と評価)、マスター詳細(タイトル、年、ジャンル、スタイル、アーティスト、main_release_id、num_for_sale、lowest_price)、アーティストプロフィール(本名、別名義、所属グループ、表記のバリエーション)、アーティストおよびレーベルのディスコグラフィー(ページング対応、エントリーごとの役割とフォーマット付き)、そしてレーベルプロフィール(親レーベル、サブレーベル、連絡先情報)です。あくまで公開データベースのデータのみです。
制約とよくある課題
- どちらの方法でもレート制限は適用されます。 Discogs 自身の API は1分あたり25〜60リクエストに制限されています。構造化 API は認証ハンドシェイクを抽象化しますが、それでも一度の巨大な取得ではなく、ページネーションを前提に設計すべきです。
- データ品質はエントリーごとに異なります。 Discogs はコミュニティ編集型なので、
data_quality(「要投票」対「正確」)のようなフィールドが、あるリリースやアーティストのレコードがどの程度信頼できるかを示しています——フィールドを権威あるものとして扱う前に確認する価値があります。 - CC0 と制限付きデータの違いは再利用にとって重要です。 すべてのフィールドが同じライセンスを持つわけではありません——内部利用を超えて何かを再公開する前に、Discogs の規約を確認してください。
- ディスコグラフィーはページングされます。 多作なアーティストや大手レーベルは数百ページに及ぶリリースを持つことがあります——1回の呼び出しではなく、ページネーションを見込んでおきましょう。
- 公開データのみです。 これは Discogs がすでに公開しているものを収集するものであり、非公開のユーザーコレクション、ウォントリスト、マーケットプレイスの出品者アカウントをスクレイピングする手段では決してありません。
どこで使われるか
- コレクターと査定ツール — 特定のリリースについて、プレスのバリエーション、マーケットプレイス価格、have/want のシグナルを追跡できます。
- レーベルとディスコグラフィーのリサーチ — あるレーベルやアーティストがフォーマットと年代を横断してリリースしたものの全体像を構築できます。
- 音楽カタログのエンリッチメント — Spotify のストリーミングデータと組み合わせることも多く、ジャンル、フォーマット、プレスの詳細を音楽アプリや社内データセットに付加できます。
- フォーマットとプレス履歴のリサーチ — 同じリリースの地域別・フォーマット別のバリエーションを時系列で比較できます。
出典
収集を始める
まずは無料でお試しください: 任意の公開 URL を無料ウェブスクレイパーに通すか、アンチボットチェッカーでサイトがボットをブロックするかどうかを確認できます。サインアップ不要です。
検索、リリース、アーティストのエンドポイントをプレイグラウンドで試し、API ドキュメントでスキーマを確認し、料金をご覧ください。Discogs は音楽における「コミュニティカタログ+公開レビュー」というパターンであり、Goodreads が書籍について扱っているのと同じ形です。プレスとフォーマットの詳細に加えてストリーミングの視聴可否も必要な場合は、Spotify と組み合わせてください。あわせてウェブスクレイピング API の選び方とウェブスクレイピングは合法かもご覧ください。
よくある質問
Discogsをスクレイピングするにはどうすればいいですか?
検索クエリまたは Discogs の id を構造化 Discogs API に送信すると、リリース、マスター、アーティスト、レーベルを正規化された JSON として取得できます——検索、詳細、ディスコグラフィーのすべてを、Discogs自身のトークンや OAuth フローを管理せずに扱えます。
Discogsに公式APIはありますか?
はい——Discogsは無料でドキュメント化された公開APIを提供していますが、レート制限があり(未認証で約25リクエスト/分、認証済みで60リクエスト/分)、上位ティアに到達するには個人アクセストークンかOAuth 1.0aが必要です。
Discogsのスクレイピングは合法ですか?
DiscogsのAPI利用規約は、データをCC0(自由に再利用可能)と制限付きデータ(再販やクロスリスティングでの再利用を含め商用利用不可)に分けています。ページを直接スクレイピングする場合は、Discogsの一般的な利用規約にもさらに拘束されます。これは公開カタログデータであり、これらの規約を尊重し、範囲を超える用途については書面での許可を得てください。
アーティストやレーベルの完全なディスコグラフィーを取得できますか?
はい——/discogs/artist/{id}/releases と /discogs/label/{id}/releases はページングされたディスコグラフィーを返し、/discogs/master と /discogs/release はフォーマット、ジャンル、スタイル、カタログ番号を含むタイトルごとの詳細を返します。
DiscogsはSpotifyのカタログデータと何が違いますか?
Discogsはコミュニティ編集型で、リリースやプレスに関する音楽版Wikipediaのような存在です——Spotifyのような商用ストリーミングAPIがカバーしていない、フォーマット、カタログ番号、プレス国の詳細を追跡しています。
Discogsのデータを商用利用できますか?
CC0ライセンスのフィールド(リリースタイトル、フォーマット、トラックリスト、識別子)は広く再利用できますが、DiscogsのAPI利用規約のもとでは制限付きデータを商用目的に使用することはできません——再公開する前に、そのフィールドがどちらのカテゴリーに属するか確認してください。
なぜDiscogsの無料APIを直接使わないのですか?
直接使うこともできます——正当な無料の選択肢です。構造化APIが特に役立つのは、プロジェクトが他のカタログ(Goodreads、Spotify、IMDb風のデータ)も必要とし、複数のネイティブな認証モデルやレート制限をすり合わせる代わりに、1つのスキーマと1つのキーで扱いたい場合です。