Skip to main content

Quick Python script to convert a letterboxd list nto a Jellyfin-compatible library structure.

Project description

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

letterboxd2jellyfin-1.1.0.tar.gz (205.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

letterboxd2jellyfin-1.1.0-py3-none-any.whl (208.1 kB view details)

Uploaded Python 3

File details

Details for the file letterboxd2jellyfin-1.1.0.tar.gz.

File metadata

  • Download URL: letterboxd2jellyfin-1.1.0.tar.gz
  • Upload date:
  • Size: 205.0 kB
  • Tags: Source
  • Uploaded using 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}

File hashes

Hashes for letterboxd2jellyfin-1.1.0.tar.gz
Algorithm Hash digest
SHA256 56726da278b72c08b64258c414d9cc387237f1d9b5afe03fe9c96556dd12d258
MD5 277cf41d49f78af6e8834581d8df4c4e
BLAKE2b-256 9db81805fffa064f536bcda68dfe07ef083af917076845cf01b3f912787adafc

See more details on using hashes here.

File details

Details for the file letterboxd2jellyfin-1.1.0-py3-none-any.whl.

File metadata

  • Download URL: letterboxd2jellyfin-1.1.0-py3-none-any.whl
  • Upload date:
  • Size: 208.1 kB
  • Tags: Python 3
  • Uploaded using 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}

File hashes

Hashes for letterboxd2jellyfin-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 8241dc45c09eb98d677be423cd8e3e319feca1055e49a3c30a90ecc4cd85e606
MD5 32fb85bfe6030cffa1d86e7ce142d21a
BLAKE2b-256 22f86c1efe6b57bbbfb6d7fe94a158bfc5b14c54d537cc0cfdda86c8eb5e1f8f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page