Skip to main content

letterboxd2jellyfin

Quick Python script to convert a letterboxd list (eg https://letterboxd.com/matchup/list/scream-ranked/) into a Jellyfin-compatible library structure of stub files.

Install

pip install letterboxd2jellyfin

Why

This is for the niche use case where you:

  1. Have a physical media collection that you haven't ripped
  2. You would like to browse that collection in Jellyfin
  3. You have a public list in Letterboxd of all the movies you own

This script will read the list from Letterboxd and copy a stub .mp4 file to the appropriate location.

For example:

$ letterboxd2jellyfin  -o 'deleteme' -url https://letterboxd.com/matchup/list/scream-ranked/
parsing URL
Loading playlist `scream-ranked` from username `matchup`...
done!
This playlist has 6 entries
creating stub file  deleteme/Scream (1996)/Scream (1996).mp4
creating stub file  deleteme/Scream 4 (2011)/Scream 4 (2011).mp4
creating stub file  deleteme/Scream 2 (1997)/Scream 2 (1997).mp4
creating stub file  deleteme/Scream VI (2023)/Scream VI (2023).mp4
creating stub file  deleteme/Scream (2022)/Scream (2022).mp4
creating stub file  deleteme/Scream 3 (2000)/Scream 3 (2000).mp4
all done!

A stub video file for Blu-rays and DVDs is included, or you can provide your own with -dvd.

Usage

$ letterboxd2jellyfin  --help
usage: Turn a Letterboxd list into a Jellyfin library structure, using a stub video file.

options:
  -h, --help            show this help message and exit
  -o, --output-path OUTPUT_PATH
                        Output Jellyfin library path. Should include "Movies" at the end (eg /path/to/library/Movies)
  -u, --username USERNAME
                        Letterboxd username
  -p, --playlist-slug PLAYLIST_SLUG
                        The playlist slug (eg "scream-ranked" from https://letterboxd.com/matchup/list/scream-ranked/)
  -url, --playlist-url PLAYLIST_URL
                        Attempt to parse a letterboxd playlist URL, overrides --username and --playlist-slug (eg "https://letterboxd.com/matchup/list/scream-ranked/")
  -v, --video_file VIDEO_FILE
                        Override the stub video file to put in the library
  -dvd                  Use the build-in DVD placeholder video file instead of the blu-ray one

Metadata

Release files for letterboxd2jellyfin 1.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for letterboxd2jellyfin 1.1.0
File Size Uploaded Provenance Actions
letterboxd2jellyfin-1.1.0.tar.gz 205.0 kB Without provenance Details for letterboxd2jellyfin-1.1.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for letterboxd2jellyfin 1.1.0
File Interpreter ABI Platform Actions
letterboxd2jellyfin-1.1.0-py3-none-any.whl Python 3 none any Details for letterboxd2jellyfin-1.1.0-py3-none-any.whl

Total release size: 413.1 kB

Release files / letterboxd2jellyfin-1.1.0.tar.gz

Download URL letterboxd2jellyfin-1.1.0.tar.gz
Size 205.0 kB
Tags Source
SHA-256 checksum
How to use checksums
56726da278b72c08b64258c414d9cc387237f1d9b5afe03fe9c96556dd12d258
BLAKE2b-256 checksum
How to use checksums
9db81805fffa064f536bcda68dfe07ef083af917076845cf01b3f912787adafc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.10.4 {"installer":{"name":"uv","version":"0.10.4","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Arch Linux","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / letterboxd2jellyfin-1.1.0-py3-none-any.whl

Download URL letterboxd2jellyfin-1.1.0-py3-none-any.whl
Size 208.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8241dc45c09eb98d677be423cd8e3e319feca1055e49a3c30a90ecc4cd85e606
BLAKE2b-256 checksum
How to use checksums
22f86c1efe6b57bbbfb6d7fe94a158bfc5b14c54d537cc0cfdda86c8eb5e1f8f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.10.4 {"installer":{"name":"uv","version":"0.10.4","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Arch Linux","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Security for letterboxd2jellyfin 1.1.0

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.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

1.1.0 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page