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.0.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.0.0-py3-none-any.whl (207.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: letterboxd2jellyfin-1.0.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.0.0.tar.gz
Algorithm Hash digest
SHA256 4683b3173cf788c28481264b4a7daedaf4257bd28206ea516d2d089e6a5f705e
MD5 c7617eb10f6d807042e033f7b7ab140b
BLAKE2b-256 eeaadc0d0b540cbbb304ee2e2073ecbf20e22f70ff01a014d6420d192a7d99fd

See more details on using hashes here.

File details

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

File metadata

  • Download URL: letterboxd2jellyfin-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 207.8 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.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 844021fac217e2474fa2fb89692cfde55314e45167557d73678550d56f0fae43
MD5 0d3220c71ff22c50217eaf06d58fa13f
BLAKE2b-256 75c342594b6ef323c32c7a342f91b5ddd448107046b938be6dcdfb7439057cb6

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