Skip to main content
Generaldvcrn

letterboxd-watchlist

Scrape a public Letterboxd user's watchlist into a CSV/JSONL list of titles and film URLs without logging in. Use when a user asks to export, scrape, or mirror a Letterboxd watchlist, or to build watch-next queues.

Stars
15
Source
dvcrn/openclaw-skills-marketplace
Updated
2026-05-29
Slug
dvcrn--openclaw-skills-marketplace--letterboxd-watchlist
View on GitHubRaw SKILL.md

// install — copy + paste into any project

mkdir -p .claude/skills && curl -fsSL https://raw.githubusercontent.com/dvcrn/openclaw-skills-marketplace/HEAD/plugins/0xnuminous--letterboxd-watchlist/skills/letterboxd-watchlist/SKILL.md -o .claude/skills/letterboxd-watchlist.md

Drops the SKILL.md into .claude/skills/letterboxd-watchlist.md. Works with Claude Code, Cursor, and any agent that loads SKILL.md files from .claude/skills/.

Letterboxd Watchlist Scraper

Use the bundled script to scrape a public Letterboxd watchlist (no auth). Always ask the user for the Letterboxd username if they did not provide one.

Script

  • scripts/scrape_watchlist.py

Basic usage

uv run scripts/scrape_watchlist.py <username> --out watchlist.csv

Robust mode (recommended)

uv run scripts/scrape_watchlist.py <username> --out watchlist.jsonl --delay-ms 300 --timeout 30 --retries 2

Output formats

  • --out *.csvtitle,link
  • --out *.jsonl → one JSON object per line: { "title": "…", "link": "…" }

Notes / gotchas

  • Letterboxd usernames are case-insensitive, but must be exact.
  • The script scrapes paginated pages: /watchlist/page/<n>/.
  • Stop condition: first page with no data-target-link="/film/..." poster entries.
  • The scraper validates username format ([A-Za-z0-9_-]+) and uses retries + timeout.
  • Default crawl delay is 250ms/page to be polite and reduce transient failures.
  • This is best-effort HTML scraping; if Letterboxd changes markup, adjust the regex in the script.

Scope boundary

  • This skill only scrapes a public Letterboxd watchlist and writes CSV/JSONL output.
  • Do not read local folders, scan libraries, or perform unrelated follow-up actions unless explicitly requested by the user.