Plexer
Summary
A CLI tool made to make organizing your media for Plex Media Server easy. Normalize names of media files and directories to match the hierarchial requirements that Plex requires.
Features
Support
Currently, Plexer only supports organizing movies and other individual video files.
Roadmap
- Support for TV Shows (#28)
- Docker implementations (#29)
- MacOS support (#30)
- Windows support (#31)
- Metadata inference using file/directory info (i.e. analyze the video files to "guess" what the name, year, etc is) (#32)
Install
Docker
The most portable way to install and run Plexer is by using Docker.
Via Container Registry
The easiest way to run Plexer in Docker is by using the public containers hosted on container registries. Plexer images are available on both Docker Hub and GitHub Container Registry. See the commands below for how to run Plexer using each registry.
Docker Hub
docker run --rm -it magneticstain/plexer-cli
Github Container Registry
docker run --rm -it ghcr.io/magneticstain/plexer-cli
Via Local Image Build
In the case that container registries are unavailable, there's also the option to build the image locally. To do that, check out the main branch of this repo, build the Plexer image, and run it.
git clone https://github.com/magneticstain/plexer-cli.git
docker build -t plexer_cli .
docker run --rm -it plexer_cli
Requirements
Linux and MacOS Native Install
If you've installed plexer-cli natively (i.e. outside of a Docker container) on Ubuntu, Devian, Fedora, etc, or MacOS, you will also need to install additional dependencies:
Python-Magic
While python-magic is imported in the standard fashion (via pip/python requirements), it itself depends on the presence of the libmagic C library. To install this library, follow the installation instructions provided in the python-magic README.
Media Metadata
The most important requirement before running plexer is to ensure that you've created a .plexer file in each of your target directories.
This is a JSON-formatted file that includes the movie metadata required by Plexer to perform its jobs.
Usage
The source directory is the directory containing the raw media. The destination is where you'd like to save the processed media to.
usage: plexer.py [-h] [-v] [--version] -s SOURCE_DIR -d DESTINATION_DIR
options:
-h, --help show this help message and exit
-v, --verbose Verbosity (-v, -vv, etc)
--version show program's version number and exit
-s SOURCE_DIR, --source-dir SOURCE_DIR
-d DESTINATION_DIR, --destination-dir DESTINATION_DIR
Support & Feedback
If you run into issues while using Plexer, think you know a way to make it better, or just need help using it, create a new issue within this project and they will triaged when possible.
Development
Software Stack
For developing with Plexer, there are several tools that are in use:
Coding Standards and Conventions
- Pre-commit hooks are utilized and managed in
.pre-commit-config.yml- For example,
ruffis run as part of every commit - These pre-commit hooks MUST be installed and utilized by all developers
- For example,
Testing
- All functions MUST have unit tests created for them
- Tests are executed using VS Code with the
launch.jsonconfig file in.vscode
Metadata
Release files for plexer-cli 0.1.14
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| plexer_cli-0.1.14.tar.gz | 65.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| plexer_cli-0.1.14-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 76.4 kB
Release files / plexer_cli-0.1.14.tar.gz
| Download URL | plexer_cli-0.1.14.tar.gz |
|---|---|
| Size | 65.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
bd5750887da61b35c438d020fec30904cb23ea539dee30166118c56941f5aa95
|
|
BLAKE2b-256 checksum How to use checksums |
bc2d7e29a006feec55a672bb72fe97af1722ad2d020ad016ff155a0c8afd0680
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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 Oct 11, 2026.
Transparency logRelease files / plexer_cli-0.1.14-py3-none-any.whl
| Download URL | plexer_cli-0.1.14-py3-none-any.whl |
|---|---|
| Size | 11.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
f8fd63b7f11e85ecdd4cd218e5987c9d638c1904d7adfe1d0f0dfa25ba170aee
|
|
BLAKE2b-256 checksum How to use checksums |
f81835aad11d08d72a219f981f0368a14aef0759add5ce38b5168c8455350ef5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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 Oct 11, 2026.
Transparency log