Jellyfin Letterboxd Sync
Sync your watched movies and episodes from Jellyfin to Letterboxd.
Features
- Fetches watched movies and episodes from your Jellyfin server.
- Handles TV shows by mapping them to their series name (since Letterboxd supports some series/miniseries).
- Exports data to a CSV file compatible with Letterboxd import.
- Automates the upload process to Letterboxd using Playwright (browser automation).
Installation
You can install this package via pip (or uv):
uv tool install jellyfin-letterboxd-sync
# or
pip install jellyfin-letterboxd-sync
Since this tool uses Playwright, you'll also need to install the browser binaries. This tool defaults to using Brave/Chrome, so ensure you have a Chromium-based browser installed or install the Playwright browsers:
uv run playwright install chromium
# or
playwright install chromium
Usage
Run the sync tool with the required parameters:
jellyfin-letterboxd-sync \
--jellyfin-url "https://your-jellyfin-server.com" \
--jellyfin-user "your_jellyfin_username" \
--jellyfin-api-key "YOUR_JELLYFIN_API_KEY" \
--letterboxd-user "your_letterboxd_email" \
--letterboxd-pass "your_letterboxd_password"
Options
| Argument | Description | Required | Default |
|---|---|---|---|
--jellyfin-url |
URL of your Jellyfin server | Yes | - |
--jellyfin-user |
Jellyfin username to sync from | Yes | - |
--jellyfin-api-key |
API Key generated in Jellyfin Dashboard | Yes | - |
--letterboxd-user |
Letterboxd account email/username | Yes | - |
--letterboxd-pass |
Letterboxd account password | Yes | - |
--csv-path |
Temporary path for generated CSV | No | /tmp/letterboxd_import.csv |
--headless |
Run browser in headless mode (invisible) | No | False |
Getting a Jellyfin API Key
- Go to your Jellyfin Dashboard.
- Navigate to API Keys.
- Click + to create a new key.
- Name it "Letterboxd Sync" (or similar).
- Copy the generated key.
Development
To run locally without installing:
uv run -m jellyfin_letterboxd_sync.main --help
Metadata
Release files for jellyfin-letterboxd-sync 0.1.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| jellyfin_letterboxd_sync-0.1.4.tar.gz | 4.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| jellyfin_letterboxd_sync-0.1.4-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 8.5 kB
Release files / jellyfin_letterboxd_sync-0.1.4.tar.gz
| Download URL | jellyfin_letterboxd_sync-0.1.4.tar.gz |
|---|---|
| Size | 4.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d758ed289acfde2c52fa2c1080da20788e03518603a9d04ddfd8f0a59f238b06
|
|
BLAKE2b-256 checksum How to use checksums |
f42cc41638120dcac120bda9186095d7e9642392de5f6c33f127a073dd7890f3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
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 Jan 5, 2026.
Transparency logRelease files / jellyfin_letterboxd_sync-0.1.4-py3-none-any.whl
| Download URL | jellyfin_letterboxd_sync-0.1.4-py3-none-any.whl |
|---|---|
| Size | 4.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
81e2a6f6339083ef8300faf8f5563b5dbbff7c15b1ed0a3bddb147029fe2c91b
|
|
BLAKE2b-256 checksum How to use checksums |
5d50424c5fde0bba76606ad92a187aac510d9f6cc8e4523c1c288ad122cf386c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
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 Jan 5, 2026.
Transparency log