plex-poster-set-helper is a tool to help upload sets of posters from ThePosterDB or MediUX to your Plex server in seconds!
-
Install Python (if not installed already)
-
Extract all files into a folder
-
Open a terminal in the folder
-
Install the required dependencies using
pip install -r requirements.txt
-
Rename example_config.json to config.json, and populate with the proper information:
- "base_url"
- The IP and port of your Plex server. e.g. "http://12.345.67.890:32400/".
- "token"
- Your Plex token (can be found here).
- "tv_library"
- The name of your TV Shows library (e.g., "TV Shows"). Multiple libraries are also supported (see the Multiple Libraries section below).
- "movie_library"
- The name of your Movies library (e.g., "Movies"). Multiple libraries are also supported (see the Multiple Libraries section below).
- "mediux_filters"
- Specify which media types to upload by including these flags:
- show_cover
- background
- season_cover
- title_card
- Specify which media types to upload by including these flags:
- "base_url"
Run python plex_poster_set_helper.py in a terminal, using one of the following options:
The script supports various command-line arguments for flexible use.
-
Launch the GUI
Use the gui argument to open the graphical user interface:python plex_poster_set_helper.py gui
-
Single Link Import
Provide a link directly to set posters from a single MediUX or ThePosterDB set:python plex_poster_set_helper.py https://mediux.pro/sets/9242
-
Bulk Import
Import multiple links from a .txt file using the bulk argument:python plex_poster_set_helper.py bulk bulk_import.txt
-
The .txt file should contain one URL per line. Lines starting with # or // will be ignored as comments.
-
If no text file parameter is provided, it will use the default value from config.json for bulk_txt.
-
If no command-line arguments are provided, the script will enter an interactive CLI mode, where you can select from menu options to perform various tasks:
- Option 1: Enter a ThePosterDB set URL, MediUX set URL, or ThePosterDB user URL to set posters for individual items or entire user collections.
- Option 2: Run a bulk import by specifying the path to a
.txt
file containing multiple URLs (or simply pressEnter
to use the default bulk file defined inconfig.json
). - Option 3: Launch the GUI for a graphical interface.
- Option 4: Stop the program and exit.
When using bulk import, if no file path is specified, the script will default to the file provided in the config.json
under the bulk_txt
key. Each URL in the .txt
file should be on a separate line, and any lines starting with #
or //
will be ignored as comments.
The GUI provides a more user-friendly interface for managing poster uploads. Users can run the script with python plex_poster_set_helper.py gui to launch the CustomTkinter-based interface, where they can:
- Easily enter single or bulk URLs.
- View progress, status updates, and more in an intuitive layout.
To target multiple Plex libraries, modify config.json as follows:
"tv_library": ["TV Shows", "Kids TV Shows"],
"movie_library": ["Movies", "Kids Movies"]
Using these options, the tool will apply posters to the same media in all specified libraries.
- Use the bulk argument to import your default
bulk_text
file specified inconfig.json
. - Or, specify the path to a .txt file containing URLs as a second argument. Each URL will be processed to set posters for the corresponding media.
The mediux_filters option in config.json allows you to control which media types get posters:
- show_cover: Upload covers for TV shows.
- background: Upload background images.
- season_cover: Set posters for each season.
- title_card: Add title cards.
In the dist/
directory, you'll find the compiled executable for Windows: Plex Poster Set Helper.zip
. This executable allows you to run the tool without needing to have Python installed.
To rebuild the executable:
Note: Prior to building, set the interactive_cli
boolean to False on line 20
to ensure the executable launches in GUI Mode by default
-
Install PyInstaller if you don't have it already:
pip install pyinstaller
-
Use the provided spec file (
_PlexPosterSetHelper.spec
) to build the executable:pyinstaller _PlexPosterSetHelper.spec
This will create the executable along with the necessary files.