Plex to Letterboxd Exporter
Exports Plex watch history and ratings to a Letterboxd‑compatible CSV file using TMDB IDs for reliable matching.
Install
From PyPI:
pip install plex-letterboxd
Or with uv:
uv pip install plex-letterboxd
From source:
git clone https://github.com/brege/plex-letterboxd.git
cd plex-letterboxd
pip install .
Or with uv:
git clone https://github.com/brege/plex-letterboxd.git
cd plex-letterboxd
uv pip install .
Configure
There are two ways to include your Plex token.
Option 1: Set your Plex token in config.yaml:
plex:
url: http://your-plex-server:32400
token: PLEX_TOKEN
timeout: 60
Option 2: Kometa users may source Kometa's config in this project's config.yaml:
kometa:
config_path: ./path/to/Kometa/config.yml
Exporter options are in config.yaml.
- export: output, after, before, user, library
- csv: rating, review, max_rows, genres, tags, rewatch, mark_rewatch
See config.example.yaml for available options.
Usage
- List users
plex-letterboxd --list-users
- Export for a specific user
plex-letterboxd --user USERNAME --output plex-export.csv
- Export a date range
plex-letterboxd \
--user USERNAME \
--after 2024-01-01 \
--before 2024-12-31 \
--output plex-export-2024.csv
Import at https://letterboxd.com/import/
See plex-letterboxd --help for CLI options.
Output CSV Columns
| Field | Description |
|---|---|
tmdbID |
TMDB ID for precise matching |
Title |
Movie title |
Year |
Release year |
Directors |
Director names |
WatchedDate |
When you watched it (YYYY‑MM‑DD) |
Rating |
Your rating (0.5–5.0), if enabled |
Tags |
Genres and/or custom tags, if enabled |
Rewatch |
Whether it's a rewatch |
Automated Exports
Set up a systemd timer for automated monthly exports with CSV checkpointing.
Setup Timer
Monthly
bash <(curl -s https://raw.githubusercontent.com/brege/plex-letterboxd/refs/heads/main/systemd/install.sh)
Or weekly
bash <(curl -s https://raw.githubusercontent.com/brege/plex-letterboxd/refs/heads/main/systemd/install.sh) weekly
The timer will run the exporter on your chosen schedule, producing CSV files in ~/.config/plex-letterboxd/data/. Configure the output data directory via config.yaml to change.
I suggest running this on the same machine Plex runs on, since it's typically always online.
License
Metadata
Release files for plex-letterboxd 0.8
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| plex_letterboxd-0.8.tar.gz | 23.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| plex_letterboxd-0.8-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 47.0 kB
Release files / plex_letterboxd-0.8.tar.gz
| Download URL | plex_letterboxd-0.8.tar.gz |
|---|---|
| Size | 23.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c30d7fdecabd2b164a6e9261f7b879a791396211d1b5a280ba8dd4e573144b27
|
|
BLAKE2b-256 checksum How to use checksums |
4233f173a06a67235251cf642201cd4a5f92e715e92e10022e0b583f9d5ea546
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 26, 2026.
Transparency logRelease files / plex_letterboxd-0.8-py3-none-any.whl
| Download URL | plex_letterboxd-0.8-py3-none-any.whl |
|---|---|
| Size | 23.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
21fcd4f00343c4dcaa5ad02d6c0474042d8ede6dd32c8d5968762a95a2868295
|
|
BLAKE2b-256 checksum How to use checksums |
7746f73fb2d7a1576092e7ebe1ab6b8e0927cd873747bd59ddf4efd027de7500
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 26, 2026.
Transparency log