Skills 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.

install
source · Clone the upstream repo
git clone https://github.com/openclaw/skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/openclaw/skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/0xnuminous/letterboxd-watchlist" ~/.claude/skills/clawdbot-skills-letterboxd-watchlist && rm -rf "$T"
manifest: skills/0xnuminous/letterboxd-watchlist/SKILL.md
source content

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 *.csv
    title,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.