Tony Wang7 分で読めますLetterboxdのスクレイピング方法【2026年版】(API・Python)
2026年版のLetterboxdスクレイピングガイド。映画評価・レビュー・メンバー統計・人気チャートをDIY、ノーコード、構造化APIの3通りで取得する方法と法的注意点を解説。
2026年に Letterboxd をスクレイピングする最も手早い方法は、Letterboxd のサーバーレンダリングされたページを自分で解析するのではなく、正規化された JSON — 映画詳細、評価ヒストグラム、メンバーレビュー、類似映画、人気チャート — を返す構造化 API を呼び出すことです。Letterboxd にはまだセルフサービス型の公開 API がないため、ほとんどの連携は DIY スクレイパーを構築するか、ノーコードツールに頼るか、ページ構造をすでに処理済みのスクレイピング API を呼び出すことになります。このガイドでは3つのアプローチすべてを取り上げ、それぞれが何を返し、どこで破綻し、そして法律上の実情を最初に解説します。
なぜ Letterboxd をスクレイピングするのか?
Letterboxd は IMDb や Metacritic と並ぶ単なる評価集計サイトではありません — ソーシャルな映画日記プラットフォームです。人々は観たすべての映画を記録し、5つ星で評価し、レビューを書き、自分が信頼する好みを持つ他のメンバーをフォローします。そのコミュニティ層こそが実際のプロダクトであり、それは収集する価値のあるものにも表れています。
- 単なるスコアではなくコミュニティの感情 — 映画の平均評価と(評価ヒストグラムによる)完全な星評価の分布は、単一の集計数値では隠れてしまう、意見が二極化しているのか一致しているのかを教えてくれます。
- メンバーレベルのシグナル — 視聴本数、今年の合計、フォロワー数、リスト数は、批評家向けのスコアとは別に、特定のメンバーやオーディエンス層が実際にどれだけエンゲージしているかを示します。
- 今何がトレンドか — 人気チャートは今週/今月/今年/全期間のエンゲージメントによって映画を表示し、ジャンルや年代でフィルタできるため、非常に活発で好みにこだわるオーディエンスが実際に何を観ているかを追跡できます。
- 好みのグラフと発見 — 類似映画の関係性や人物(監督/キャスト)のフィルモグラフィが、レコメンデーションや「Xが好きなら」機能を支えます。
- レビューと評判のリサーチ — 公開レビューには星評価、ネタバレフラグ、いいね数、コメント数が付随しており、時間の経過に伴う評判トレンドの追跡に役立ちます。
Letterboxd をスクレイピングするのは合法か?
選択肢1: Python で DIY する(そしてなぜ破綻するか)
Letterboxd の映画ページやメンバーページはサーバーレンダリングされた HTML のため、DIY スクレイパーはページを取得し、必要なフィールドについてマークアップを解析します。
import requests
from bs4 import BeautifulSoup
resp = requests.get(
"https://letterboxd.com/film/parasite-2019/",
headers={"User-Agent": "Mozilla/5.0 (compatible; research-bot/1.0)"},
)
soup = BeautifulSoup(resp.text, "html.parser")
# Title, year, and synopsis are in visible markup, but the rating
# average and histogram load from separate /csi/ endpoints, not this page
デモは動きますが、その後破綻します。
- 利用規約は明確です。 書面による同意なしの自動データ収集は完全に禁止されています — これは理論上のリスクではなく実際のリスクなので、プロジェクトの範囲は公開の参照フィールドに厳密に絞ってください。
- 評価とヒストグラムはページ外にあります。 平均評価と完全な星評価の分布は、初期ページの読み込み後にフロントエンドが別の
/csi/(クライアントサイドインクルード)エンドポイントから取得するため、映画ページ単体の単純な HTML フェッチではこれらを取得できません。 - レビューと類似映画は別々にページネーションされます。 それぞれが独自のサブページ(
/reviews/by/activity/、/similar/)を持つため、完全な映画レコードを得るには1回ではなく複数のリクエストが必要です。 - マークアップはリデザインで変化します。 今日動作しているセレクターも、フロントエンドの変更後に静かに壊れることがあり、空のフィールド以外に警告はありません。
選択肢2: ノーコードツール
マーケットプレイスのスクレイパーアクター(例えば Apify 上のもの)は、映画ページ、メンバーのプロフィール、レビューなど単発の Letterboxd 取得のために存在し、小さなサンプルをざっと確認するには妥当な手段です。これらは上記の DIY スクレイピングと同じ利用規約上のリスクを抱えており、スケジュール実行や毎日新鮮なデータを必要とするパイプラインへの組み込みには扱いにくいものです。手動での随時取得を超える用途には、構造化 API か Letterboxd 自身のベータプログラムのほうが適しています。
選択肢3: 構造化された Letterboxd API
ページ解析や /csi/ エンドポイントの追跡をメンテナンスする必要のない、繰り返し実行できるワークフローには、Letterboxd スクレイピング API が正規化された JSON を返します。映画や人物を検索するには次のようにします。
curl "https://api.crawlora.net/api/v1/letterboxd/search?q=bong+joon+ho" \
-H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"query": "bong joon ho",
"results": [
{ "type": "person", "title": "Bong Joon Ho", "slug": "bong-joon-ho", "role": "director", "uri": "https://letterboxd.com/director/bong-joon-ho/" },
{ "type": "film", "title": "Being John Malkovich", "slug": "being-john-malkovich", "year": 1999, "uri": "https://letterboxd.com/film/being-john-malkovich/" }
],
"source_url": "https://letterboxd.com/s/search/bong%20joon%20ho/"
}
}
続いてスラッグを使って映画の詳細、評価分布、レビューを Python で取得します。
import requests
h = {"x-api-key": "YOUR_API_KEY"}
base = "https://api.crawlora.net/api/v1/letterboxd"
film = requests.get(f"{base}/film/parasite-2019", headers=h).json()["data"]
histogram = requests.get(f"{base}/film/parasite-2019/rating-histogram", headers=h).json()["data"]
reviews = requests.get(f"{base}/film/parasite-2019/reviews", headers=h, params={"limit": 20}).json()["data"]
映画詳細は正規化された JSON です(実際のフィールドです — ドキュメントを確認してください)。
{
"data": {
"slug": "parasite-2019",
"title": "Parasite",
"year": 2019,
"runtime_minutes": 133,
"directors": [{ "name": "Bong Joon Ho", "slug": "bong-joon-ho" }],
"genres": ["Thriller", "Comedy", "Drama"],
"rating": { "average": 4.52, "count": 5553202, "review_count": 740173 }
}
}
評価ヒストグラムはその平均を星0.5刻みの各バケットに分解します。ここにこそ、コミュニティの意見が一致しているか二極化しているかというシグナルが実際に存在します。
{
"data": {
"slug": "parasite-2019",
"buckets": [
{ "stars": 4, "count": 1231158, "percent": 22 },
{ "stars": 4.5, "count": 960428, "percent": 17 },
{ "stars": 5, "count": 2785234, "percent": 50 }
],
"total_ratings": 5553315
}
}
メンバーのプロフィールも同様に動作します — /letterboxd/member/{username} は公開プロフィールについて films_watched、films_this_year、lists、following、followers を返し、/letterboxd/popular は period、genre、decade でフィルタ可能なトレンド映画を返します。映画(またはレビュー、メンバー)ごとに1行を保存し、スケジュールを組んで再実行しましょう。
収集できるもの
公開されている映画・コミュニティのメタデータです。検索結果(映画、人物、リスト、タグの一致)、映画詳細(タイトル、年、あらすじ、上映時間、監督、キャスト、ジャンル、国、言語、ポスター、平均評価)、完全な評価ヒストグラム(星0.5刻みごとの件数と割合)、公開レビュー(評価、いいねフラグ、日付、本文、ネタバレフラグ、いいね数、コメント数)、類似映画の関係性、役割別(監督、俳優)の人物フィルモグラフィ、公開メンバープロフィール統計(視聴本数、今年の視聴本数、リスト数、フォロー数、フォロワー数)、そして期間・ジャンル・年代別の人気映画チャートです。あくまで公開データのみであり、非公開の日記エントリ、ウォッチリスト、レビュー本文の一括再公開は決して含みません。
制約とよくある課題
- 明確な利用規約上の制約。 Letterboxd の規約は書面による同意なしの自動データ収集を禁止しています — プロジェクトの範囲は公開の参照フィールドに絞り、レビュー本文全体を一括再公開することは決して行わず、より大規模な商用利用には公式 API ベータへの申請を検討してください。
- 評価はクライアントサイドで読み込まれます。 平均評価とヒストグラムは、映画ページの読み込み後にブラウザが取得する別のエンドポイントから来るものであり、初期 HTML には含まれません。
- 映画ごとのファンアウト。 レビューと類似映画はそれぞれ独自のサブページでページネーションされるため、完全な映画レコードを得るには複数のリクエストが必要です。
- メンバーデータは個人データです。 公開プロフィール統計(視聴本数、フォロワー数)であっても、特定可能な人物に紐づく場合は GDPR/CCPA の対象となり得ます — 公開されている事実に基づくフィールドのみを収集し、正当な根拠なくプロフィールデータベースを構築することは避けてください。
- 公開データのみ。 これは映画ページやプロフィールページがすでに公開表示している内容を収集するものであり、ログインウォールを回避する手段でも、競合するカタログ製品を構築する手段でもありません。
どこで使われるか
- 映画の嗜好・評価ダッシュボード — 映画の平均評価と評価分布を時系列で追跡できます。
- レコメンデーション機能 — 「類似映画」や監督/キャストベースの発見機能を支えます。
- トレンドと人気度のトラッキング — ジャンルや年代別に人気チャートを上昇している作品を監視できます。
- 評判リサーチ — レビューの感情と量を映画の公開時期と組み合わせて分析できます。
出典
収集を始める
まずは無料でお試しください: 任意の公開 URL を無料ウェブスクレイパーに通すか、アンチボットチェッカーでサイトがボットをブロックするかどうかを確認できます。サインアップ不要です。
検索、映画、評価ヒストグラムの各エンドポイントをプレイグラウンドで試し、API ドキュメントでスキーマを確認し、料金をご覧ください。Letterboxd は、活発な映画ファンのコミュニティが実際に何を評価し、何を語っているかを教えてくれます。正統なキャスト・クルー記録にはIMDbのスクレイピング方法を、クリーンなカタログと画像 API にはTMDBのスクレイピング方法を、批評家スコアの集計にはMetacriticのスクレイピング方法を組み合わせることで、「何が良いか、誰が作ったか、みんなが何を思っているか」を網羅するパイプラインを構築できます。あわせてウェブスクレイピング API の選び方とウェブスクレイピングは合法かもご覧ください。
よくある質問
Letterboxdをスクレイピングするにはどうすればいいですか?
検索クエリまたは映画のスラッグを指定して構造化されたLetterboxd APIエンドポイントを呼び出すと、映画詳細・評価ヒストグラム・レビュー・類似映画・人気チャートが正規化されたJSONとして返ってきます。ログインやHTML解析は不要です。
Letterboxdに公開APIはありますか?
まだセルフサービス型のAPIはありません。letterboxd.com/api-betaにベータプログラムがあり、api@letterboxd.comへのリクエストでアクセスが許可されますが、返信は保証されていません。
Letterboxdをスクレイピングするのは合法ですか?
Letterboxdの利用規約は、書面による許可なしにロボット、スクレイパー、自動データ収集ツールを使用することを明示的に禁止しています。収集はあくまで公開の参照データとして扱い、大規模な商用利用には書面による許可を取得してください。
平均値だけでなく完全な星評価の分布を取得できますか?
はい — 評価ヒストグラムのエンドポイントは、総評価数とあわせて星0.5刻みごとの件数と割合を返すため、映画への意見が一致しているのか二極化しているのかがわかります。
メンバーの日記やウォッチリストをスクレイピングできますか?
いいえ。対象は公開プロフィール統計(視聴本数、今年の視聴本数、リスト数、フォロー数、フォロワー数)のみで、非公開の日記エントリやウォッチリストの中身は決して含みません。
スクレイピングの観点でLetterboxdがIMDbやMetacriticと違う点は何ですか?
Letterboxdはソーシャルな映画日記プラットフォームなので、単なる批評家スコアやキャスト・クルーのデータベースとは異なり、メンバーレベルのシグナル(視聴本数、フォロワーグラフ、コミュニティの評価分布)が映画のメタデータと同じくらい重要になります。
Letterboxdでトレンドを追跡するにはどうすればいいですか?
/letterboxd/popular エンドポイントを使い、期間(日/週/月/年/全期間)、ジャンル、年代でフィルタすることで、今コミュニティのエンゲージメントが上昇している映画を確認できます。