Skip to content

Fix Movie Challenge: Letterboxd detail view now blocked by Cloudflare - #3283

Open
caropinzonsilva wants to merge 1 commit into
tidbyt:mainfrom
caropinzonsilva:fix/moviechallenge-letterboxd-cloudflare
Open

caropinzonsilva wants to merge 1 commit into
tidbyt:mainfrom
caropinzonsilva:fix/moviechallenge-letterboxd-cloudflare

Conversation

@caropinzonsilva

@caropinzonsilva caropinzonsilva commented Sep 27, 2026 •

Copy link
Copy Markdown
Contributor

Summary

  • Letterboxd's /detail/by/reverse/ list view (and the RSS feed / per-film JSON endpoints) now sit behind a Cloudflare bot challenge and always return 403, which is why Movie Challenge stopped finding any movies.
  • Switched to the plain list URL (https://letterboxd.com/<user>/list/<list>/), which is still reachable, and updated selectors for its markup: movies are .posteritem elements, titles live in a nested .react-component[data-item-name], and the owner's star rating is on data-owner-rating (0-10, 0 = unrated).
  • Updated the schema's default example list slug, since the old one now redirects.
Monosnap movie_challenge star 2026-09-26 22-37-39

Test plan

  • Verified /detail/... returns 403 with cf-mitigated: challenge, while the plain list URL returns 200
  • Verified real ratings are present and correctly paired with titles against davidehrlich/cannes-2024 and vitof/new-to-me-movies-2026 (e.g. "How to Make Millions Before Grandma Dies (2024)" → 10★, "Ballerina (2025)" → 6★)
  • Rendered in the Tidbyt simulator (no local pixlet available in this environment)

🤖 Generated with Claude Code

@tidbyt

tidbyt Bot commented Sep 27, 2026 •

Copy link
Copy Markdown

⚠️ The automated review process is experimental and likely has bugs. Please bear with us as we iron out the kinks and enable you to ship changes at high velocity 🚀

Next Steps

Hello! Thank you so much for your change 🤜 🤛 . There are a few things you need to do:

  • Sign the CLA if you haven't already
  • Ensure your build is green! Any problem will display a proposed solution to try out
  • Get a review, either by Tidbyt Bot or by a Tidbyt engineer

Manual Review Required

Hang tight! A Tidbyt engineer will be by shortly to review your change. Here is what they will be looking for:

Test Details
✅ App Dir All files are in a single app directory
🟡 Modules Usage of html.star requires review
✅ Original Author The original author matches the PR author

@tidbyt-bot

tidbyt-bot commented Sep 27, 2026 •

Copy link
Copy Markdown

CLA Assistant Lite bot All contributors have signed the CLA ✍️ ✅

desc = "The list name taken from the URL of your Letterboxd list",
icon = "link",
default = "flanagans-best-of-2025",
default = "flanagans-faves-of-2025",

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The default list URL that we are using moved.

@caropinzonsilva
caropinzonsilva force-pushed the fix/moviechallenge-letterboxd-cloudflare branch from 9da5bc3 to ffd3730 Compare September 27, 2026 05:40
Letterboxd's /detail/by/reverse/ list view now sits behind a Cloudflare
bot challenge and always returns 403, which is why the app stopped
finding any movies. Switch to the plain list URL, which is still
reachable, and update selectors for its markup: movies are `.posteritem`
elements, titles live in a nested `.react-component[data-item-name]`,
and the owner's rating is on `data-owner-rating` (0-10, 0 = unrated).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@caropinzonsilva
caropinzonsilva force-pushed the fix/moviechallenge-letterboxd-cloudflare branch from ffd3730 to 3b9367e Compare September 27, 2026 05:41
letterboxd_list_name = config.get("letterboxd_list_name", "flanagans-best-of-2025")
letterboxd_url = "https://letterboxd.com/%s/list/%s/detail/by/reverse/" % (letterboxd_username, letterboxd_list_name)
letterboxd_list_name = config.get("letterboxd_list_name", "flanagans-faves-of-2025")
letterboxd_url = "https://letterboxd.com/%s/list/%s/" % (letterboxd_username, letterboxd_list_name)

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Letterboxd's /detail/list page now returns 403 (Cloudflare bot block). The plain list page still works and has the same data (title, rating), so we fetch that instead.

@caropinzonsilva

Copy link
Copy Markdown
Contributor Author

I have read the CLA Document and I hereby sign the CLA

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants