A free, open-source, multi-user movie catalogue add-on. Turn any public Letterboxd watchlist into a catalogue in Nuvio or another Stremio-compatible client. No account credentials, paid film API, application secrets or external Node dependencies.
Anyone can run their own copy with npm start or choose to deploy it on their own host (for example, Render). The maintainer of this GitHub repository does not provide a hosted add-on or manage other people's accounts. A public deployment, if someone chooses to create one, can serve multiple people with individual add-on URLs.
Films with an IMDb ID may be playable through other independently installed playback add-ons.
- Easy setup webpage: enter a public Letterboxd username or paste a public watchlist URL, and copy the personal manifest URL.
- Separate catalogues for multiple usernames, so one deployment works for everyone.
- Loads all public watchlist pages as you browse; no fixed maximum number of movies.
- Stremio-compatible
manifest.json,catalogand fallbackmetaendpoints. - Pagination (100 films per catalogue page) and cached IMDb/TMDB resolution.
- New watchlist edits are reflected after caching expires (usually about 15 minutes, plus client caching).
- No database, registration, cookies, analytics, API keys, telemetry or paywall.
- MIT license, automated tests, Dockerfile and optional Render deployment blueprint. No maintainer-provided hosting.
You do not need Render, a paid host, an API key or a database to run the add-on. You need a computer with Node.js 20 or newer. No third-party npm packages are required.
-
On GitHub, choose Code → Download ZIP, then unzip the repository. Alternatively, clone your fork with Git.
-
Open a terminal inside the extracted folder, the one containing
package.json. -
Start the server:
npm start
-
Open http://localhost:3000 in a browser on that computer.
-
Enter your public Letterboxd username or watchlist URL and select Get add-on link.
-
Copy the generated
manifest.jsonURL into Nuvio → Addons → Add from URL if your Nuvio installation can reach that server and accepts local HTTP URLs. -
Keep the terminal open and the computer running while using the add-on. Press Ctrl+C to stop it.
Optional local checks:
npm test
npm run checkRender is one optional hosting platform.
- Fork the GitHub repository to your own account (or create your own repository and upload the source files).
- Go to Render, sign into your own Render account, and create New → Web Service connected to your copy.
- Select the Free plan if it is offered. Use Node.js with
npm installas the build command andnpm startas the start command. The includedrender.yamlcontains equivalent optional settings. - Once your service is running, open its assigned public HTTPS URL and enter your own Letterboxd username on the setup page.
- Copy your personal manifest link into Nuvio. You can share your hosted setup page with others if you choose.
Costs: This software is free and open source. Third-party hosting may have quotas, sleeping instances, usage restrictions or charges depending on the provider, account and plan. A public deployment is your responsibility, not the repository owner's.
- Open the add-on's setup page: http://localhost:3000 if you run it locally, or the HTTPS URL of your own deployed instance.
- Enter your own public Letterboxd username or paste its public watchlist URL.
- Select Get add-on link and copy the personal manifest URL.
- In Nuvio, open Addons, choose the option to add/install an add-on from a URL, and paste the manifest URL. Nuvio must be able to reach the server.
- Find Letterboxd Watchlist in your catalogues. Other Stremio-compatible clients may use the same URL if they accept custom add-ons.
A public manifest URL looks like:
https://your-own-server.example/u/filmfan/manifest.json
docker build -t letterboxd-watchlist-addon .
docker run --rm -p 3000:3000 letterboxd-watchlist-addon| URL | Purpose |
|---|---|
/ or /configure |
Mobile-friendly, no-login configuration UI |
/health |
Health check (reveals no account information) |
/u/filmfan/manifest.json |
Example user-specific add-on manifest |
/u/filmfan/catalog/movie/letterboxd-watchlist.json |
First 100 movie previews |
/u/filmfan/catalog/movie/letterboxd-watchlist/skip=100.json |
The next 100 movie previews |
/u/filmfan/meta/movie/letterboxd:some-film.json |
Cached metadata for fallback IDs |
- The repository deliberately contains no user profile or identifying default account. Users supply public usernames on the configuration page.
- The app only fetches public watchlist pages and public movie pages on
letterboxd.comto obtain film titles, images and external film IDs. It does not read profile bios, followers, diary entries or private account data. - No login, password, OAuth, API token or credit card is requested by the app.
- No cookies, external scripts or analytics. Temporary caches exist in server memory, not in a permanent database.
- A username is necessarily part of the installed manifest URL. Host infrastructure may log request URLs, and clients have access to installed URLs. Do not use this with a username you wish to conceal.
- Input validation and a fixed Letterboxd host prevent user-controlled external HTTP destinations.
- Hosting provider accounts (for example GitHub and optionally Render) have their own privacy policies and terms. Running locally does not require registering with a web-hosting provider.
Independent community project, not affiliated with Letterboxd, Nuvio, Stremio, IMDb or TMDB. It does not provide streams, copyrighted movie downloads or access to private watchlists.
Licensed under the MIT License.