Tony Wang7 分で読めます2026年 Metacritic スクレイピング完全ガイド(API/Python)
2026年に Metacritic をスクレイピングする方法 — ゲーム・映画・TVのMetascoreとUser Score、レビューをDIY・ノーコード・APIで取得し、法的な注意点も解説します。
2026年に Metacritic をスクレイピングする最も手早い方法は、Metacritic の Nuxt.js でレンダリングされたページを自分でパースするのではなく、正規化された JSON — タイトル詳細、Metascore、User Score、批評家/ユーザーのレビュー本文 — をゲーム・映画・TVすべてで同じリクエスト形式で返す構造化 API を呼び出すことです。Metacritic は3つの異なるメディア種別を横断して「これは面白いのか」を判定する基準となるアグリゲーターですが、セルフサービス型の公開 API はなく、所有者の利用規約は自動収集を明示的に制限しています。このガイドでは3つのアプローチすべてを取り上げ、それぞれが何を返し、どこで破綻し、そして法律上の実情を前もって解説します。
なぜ Metacritic をスクレイピングするのか?
Metacritic の Metascore と User Score は評判リサーチの多くを支えており、次のような用途を可能にします。
- 領域横断のレーティング集計 — ゲーム・映画・TVについて、3つの別々のサイトではなく一つのソースから比較可能な批評家/オーディエンスのスコアを取得できます。
- 批評家 vs. オーディエンスの感情分析 — あるタイトルの Metascore(批評家の総意)と User Score(オーディエンスの総意)を比較し、プレスと視聴者・プレイヤーの反応のギャップを見つけられます。
- リリース&ジャンル別ブラウズのモニタリング — 新作がジャンル・コンテンツタイプ別にリリースされ、スコアが付くタイミングを追跡できます。
- スタジオ&フランチャイズのパフォーマンス追跡 — あるパブリッシャーやスタジオの Metascore の推移を、カタログ全体にわたって時系列で追えます。
- メディアカタログのエンリッチメント — Metascore とユーザースコアのフィールドをゲームライブラリ、ウォッチリスト、社内データセットに付与し、実際にどこでそのタイトルが配信されているかと組み合わせて、「面白いか、そして観られるか」を一気通貫でカバーできます。
Metacritic をスクレイピングするのは合法か?
選択肢1: Python で DIY する(そしてなぜ破綻するか)
Metacritic は、多くのメディアサイトで見られる React/Next.js スタックではなく Nuxt.js(Vue)で動いているため、DIY スクレイパーは window.__NUXT__ ペイロードと、埋め込まれた JSON-LD の schema.org マークアップを回避する必要があります。
import requests
from bs4 import BeautifulSoup
resp = requests.get(
"https://www.metacritic.com/game/elden-ring/",
headers={"User-Agent": "Mozilla/5.0 (compatible; research-bot/1.0)"},
)
soup = BeautifulSoup(resp.text, "html.parser")
# The page also embeds a <script type="application/ld+json"> block with an
# aggregateRating (Metascore only — no User Score, no individual reviews)
デモは動きますが、その後破綻します。
- 利用規約が直接スクレイピングを名指ししており、執行リスクは現実のものです。 Fandom の利用規約は「スパイダリング」「スクレイピング」「データマイニング」を名指しで禁止し、さらに AI/ML 学習に関する別の制限を設けています — これは沈黙から推測される暗黙の制限ではありません。
- JSON-LD ブロックは不完全です。 埋め込まれた
AggregateRatingスキーマは Metascore とレビュー件数を返しますが、User Score、個々の批評家/ユーザーレビュー、プラットフォーム別の内訳、ジャンルタグは含まれません — それ以外を得るには文書化されておらずリリースごとに形が変わる__NUXT__ペイロード全体をパースする必要があります。 - 3つの異なるコンテンツタイプに、3つの異なるページ形式。 ゲームページはプラットフォーム別の内訳を持ち、映画と TV のページは異なるフィールド(シーズン数、放送ネットワーク、IMDb との相互参照)を持ちます — 一つのパーサーで3種類すべてをきれいにカバーできることはほとんどありません。
- レビューは別々にページネーションされます。 批評家レビューとユーザーレビューはそれぞれタイトルごとの別サブページに存在するため、完全なタイトルレコードを得るには一度のページ読み込みではなく複数回の読み込みが必要です。
選択肢2: ノーコードツール
IMDb の非商用データセットファイルに相当するものはここにはありません — Metacritic は一括データダウンロードを公開していません。単発の Metacritic 取得向けのマーケットプレイス製スクレイパーアクターは存在しますが、DIY と同じ利用規約上のリスクを抱えており、パイプライン内でスケジュール実行するには扱いにくいものです。唯一の B2B ライセンス提供であるFabric Origin の Metacritic API は有料サブスクリプションと開発者承認を必要とし、対象は映画と TV 番組のみでゲームは含まれません。
選択肢3: 構造化された Metacritic API
3つの領域すべてをカバーする繰り返し実行可能なワークフローには、Metacritic スクレイピング API が正規化された JSON を返し、メンテナンスすべきページパースはありません。コンテンツタイプとジャンルでブラウズしてタイトルを見つけます。
curl "https://api.crawlora.net/api/v1/metacritic/browse?type=game&genre=Action%20RPG&sort=score" \
-H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"type": "game",
"sort": "score",
"total": 500,
"page": 1,
"per_page": 24,
"items": [
{
"id": 1,
"type": "game",
"title": "The Legend of Zelda: Ocarina of Time (1998)",
"slug": "the-legend-of-zelda-ocarina-of-time-1998",
"url": "https://www.metacritic.com/game/the-legend-of-zelda-ocarina-of-time-1998/",
"premiere_year": 1998,
"rating": "E",
"metascore": { "score": 99, "max": 100, "sentiment": "Universal acclaim" },
"user_score": 9.1,
"genres": [{ "name": "Adventure" }]
}
]
}
}
続いて slug を指定してゲームを Python で取得します。
import requests
h = {"x-api-key": "YOUR_API_KEY"}
base = "https://api.crawlora.net/api/v1/metacritic"
game = requests.get(f"{base}/game/elden-ring", headers=h).json()["data"]
critic_reviews = requests.get(f"{base}/game/elden-ring/critic-reviews", headers=h, params={"per_page": 20}).json()["data"]
user_reviews = requests.get(f"{base}/game/elden-ring/user-reviews", headers=h, params={"per_page": 20}).json()["data"]
ゲーム詳細は Metascore と User Score を別々のオブジェクトとして返し、さらにプラットフォーム別の内訳も含みます。
{
"code": 200,
"msg": "OK",
"data": {
"id": 123,
"type": "game",
"title": "Elden Ring",
"slug": "elden-ring",
"premiere_year": 2022,
"release_date": "2022-02-25",
"rating": "M",
"metascore": {
"score": 96,
"max": 100,
"review_count": 93,
"positive_count": 86,
"sentiment": "Universal acclaim",
"url": "https://www.metacritic.com/game/elden-ring/critic-reviews/"
},
"user_score": { "score": 8.4, "max": 10, "review_count": 23997, "sentiment": "Generally favorable" },
"genres": [{ "name": "Action RPG" }],
"production": { "companies": ["FromSoftware", "Bandai Namco Games"] },
"platforms": [{ "name": "PlayStation 5", "is_lead": true, "metascore": { "score": 96, "max": 100 } }]
}
}
同じ形式が映画(/metacritic/movie/{slug}、tagline と imdb_id フィールドを含む)と TV(/metacritic/tv/{slug}、season_count と networks を含む)でも使えます — コンテンツタイプごとの実際のフィールドはドキュメントで確認してください。
{
"code": 200,
"msg": "OK",
"data": {
"id": 456,
"type": "movie",
"title": "Oppenheimer",
"slug": "oppenheimer",
"tagline": "The World Forever Changes",
"premiere_year": 2023,
"release_date": "2023-07-21",
"rating": "R",
"metascore": { "score": 90, "max": 100, "review_count": 69, "sentiment": "Universal acclaim" },
"user_score": { "score": 8.4, "max": 10, "review_count": 2191, "sentiment": "Universal acclaim" },
"genres": [{ "name": "Biography" }, { "name": "Drama" }],
"production": { "companies": ["Universal Pictures", "Syncopy"] },
"imdb_id": "tt15398776"
}
}
批評家レビューとユーザーレビューは、3つの領域すべてで同じ reviews[] 形式で返ってきます — 批評家レビューには publication、score、quote、date、そして(ゲームの場合)platform が含まれ、ユーザーレビューには author、score、quote、date が含まれます。タイトル1件(またはレビュー1件)につき1行を保存し、ブラウズとタイトル取得をスケジュールを組んで再実行しましょう。
収集できるもの
コンテンツタイプとジャンルによるブラウズ一覧(id、title、slug、url、premiere year、rating、Metascore、user score、genres)。ゲーム/映画/TVの詳細(レビュー件数とセンチメントラベル付きの Metascore と User Score オブジェクト、release date、genres、production companies、そしてタイプごとに — ゲームのプラットフォーム別内訳、映画の tagline/IMDb id、TVの season count/networks)。タイトルごとの批評家・ユーザーレビュー(publication または author、score、quote、date、ゲームの場合は platform)。公開されている集計データとレビューデータのみです。
制約とよくある課題
- このシリーズの中でも特に厳格なプラットフォームの一つ。 Fandom の利用規約はスクレイピングとデータマイニングを明示的に名指しし、さらに AI/ML 学習利用を別途制限しています — プロジェクトの範囲は集計スコアと限定的で帰属明示されたレビューサンプルにとどめ、大規模または商用利用については書面での許可を得てください。
- 公式のセルフサービス API はなく、唯一のライセンスルートも部分的。 Fabric Origin の B2B API には有料サブスクリプションと承認が必要で、映画/TVの Metascore のみをカバーしており、ゲームはまったく含まれません。
- Next.js のパターンではなく Nuxt.js のレンダリング。 DIY パースでは、文書化されておらずサイトの更新とともに変化する
window.__NUXT__ペイロードを分解する必要があります。埋め込まれた JSON-LD は集計 Metascore のみをカバーし、User Score や個々のレビューはカバーしません。 - レビューはタイトルごと、レビュータイプごとにページネーションされます。 完全なタイトルレコードには、詳細呼び出しに加えて批評家レビューとユーザーレビューそれぞれの個別呼び出しが必要です。
- レビュアーの身元は個人データです。 ユーザー名や引用されたレビュー本文は個人に紐づけられ得るため、レビュー収集は他の個人データスクレイピングと同じ GDPR/CCPA の観点で扱い、レビュー本文全体の一括再配布は避けてください。
どこで使われるか
- レーティングリサーチ — ゲーム・映画・TVにわたる Metascore と User Score のギャップを比較し、批評家とオーディエンスの乖離を調べられます。
- カタログのエンリッチメント — 集計スコアをメディアライブラリ、ウォッチリスト、レコメンデーション機能に付与できます。
- スタジオ&フランチャイズの追跡 — あるパブリッシャーやスタジオのリリースが時間とともにどうスコアされるかを追えます。
- リリースのモニタリング — 新作がジャンルとコンテンツタイプ別にリリースされ、スコアが付くのを見守れます。
出典
収集を始める
まずは無料でお試しください: 任意の公開 URL を無料ウェブスクレイパーに通すか、アンチボットチェッカーでサイトがボットをブロックするかどうかを確認できます。サインアップ不要です。
ブラウズ、ゲーム、映画、TVの各エンドポイントをプレイグラウンドで試し、API ドキュメントでスキーマを確認し、料金をご覧ください。Metacritic は批評家とオーディエンスがあるタイトルをどう評価したかを教えてくれます。IMDb はそれを誰が作ったかと、それ自身の別のレーティングを教えてくれます。TMDB はきれいなカタログメタデータとアートワークを補完します — この3つのうち任意の2つを組み合わせれば、より充実したメディアデータパイプラインになります。あわせてウェブスクレイピング API の選び方とウェブスクレイピングは合法かもご覧ください。
よくある質問
Metacritic に公開 API はありますか?
サードパーティ向けのセルフサービス公開 API はありません。唯一文書化されている公式ルートは Fabric Origin の B2B ライセンス API で、有料サブスクリプションと開発者承認が必要で、映画と TV の Metascore のみをカバーし、ゲームは対象外です。
Metacritic をスクレイピングするのは合法ですか?
metacritic.com を管轄する Fandom の利用規約は、コンテンツの不正なスパイダリング、スクレイピング、データマイニングを明示的に禁止しており、さらにコンテンツを ML/AI システムの学習に使う前には書面での同意を別途求めています。収集範囲は狭く限定し、これを厳格なプラットフォームとして扱ってください。
Metascore と User Score の違いは何ですか?
Metascore はプロの批評家レビューの加重集計(0〜100)です。User Score はオーディエンスが投稿した評価の別の平均値(0〜10)です。Crawlora API はすべてのタイトルでこの両方を別個のオブジェクトとして返します。
Metacritic のゲームデータもスクレイピングできますか、それとも映画と TV だけですか?
Crawlora の Metacritic エンドポイントはゲーム・映画・TVの3領域すべてをカバーしており、それぞれに対応する detail、critic-reviews、user-reviews エンドポイントがあります。唯一の公式ライセンスルートである Fabric Origin は映画と TV のみをカバーし、ゲームデータはありません。
Metacritic API からはどんなデータが取得できますか?
コンテンツタイプとジャンル別のブラウズ一覧、タイトル詳細(Metascore、User Score、ジャンル、公開日、そしてゲームのプラットフォームや TV のシーズン数といったタイプ別フィールド)、そしてスコア・引用・日付・掲載元または著者を含む批評家/ユーザーレビューです。
集計された Metascore だけでなく、個々の批評家レビューを取得するにはどうすればいいですか?
そのタイトルに対応する critic-reviews エンドポイント(例: /metacritic/game/{slug}/critic-reviews)を呼び出してください — 各レビューの掲載元、スコア、引用、日付、プラットフォームが、detail エンドポイントの集計スコアとは別に返ってきます。
Metacritic のレビューデータは GDPR や CCPA の下で個人データに該当しますか?
レビュアーのユーザー名や引用されたレビュー本文は個人に紐づけられ得るため、レビュー収集は他の個人データスクレイピングと同じ観点で扱ってください — レビュー本文全体の一括再配布は避け、収集範囲を必要な分だけに限定してください。