Skip to content
A simple UI to help find and delete duplicate and sample files from your Plex server
TypeScript Python HTML Dockerfile CSS
Branch: master
Clone or download
Type Name Latest commit message Commit time
Failed to load latest commit information.
backend #2: Fix: Add option to bypass SSL verification Feb 14, 2020
screenshots Add GIF demo to readme Feb 9, 2020
.dockerignore Setup for docker deployment Feb 9, 2020
.gitignore Inital Commit Feb 9, 2020
Dockerfile Change BACKEND_URL to REACT_APP_BACKEND_URL to comply with React env … Feb 10, 2020 Setup for docker deployment Feb 9, 2020 Update issue link in readme Feb 14, 2020

Plex Library Cleaner

A simple UI to help find and delete duplicate and sample files from your Plex server.

Note: At this time only Plex Movie Libraries are supported.

Run with Docker

This project is available as a docker container on Docker Hub.

Docker Parameters

You will need to set the correct parameters for your setup:

Parameter Function
-e PLEX_BASE_URL="plex_address" (required) Plex Server Address (e.g.
-e PLEX_TOKEN="somerandomstring" (required) A valid Plex token for your Plex Server (How to find your Plex Token)
-e BYPASS_SSL_VERIFY=1 (optional) Disable SSL certificate verification. Use this if your Plex Server has "Secure Connections: Required" and you are having issues connecting to it. (Thanks @booksarestillbetter - #2)
-p 5000:80 (required) Expose the UI via the selected port (in this case 5000). Change 5000 to the port of your choosing, but don't change the number 80.
docker run \
	-e PLEX_BASE_URL="" \
	-e PLEX_TOKEN="somerandomstring" \
	-p 5000:80 \

You can then access the UI in your browser at http://localhost:5000/.

Run from Source / Setup Development Environment

To run from source you need to run two parts - the Python Backend and React Frontend.

First clone down this repo:

git clone


Requirements: python3

The backend is just a thin wrapper around the Python Plex API using Flask to serve requests. I recommend using a virtualenv to run.

You should change to the backend folder to get things running:

cd backend

Setup the python environment and dependencies:

python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt

Run the Backend:

PLEX_BASE_URL="plex_address" PLEX_TOKEN="somerandomstring" FLASK_APP=main python -m flask run

The backend will start and run from port 5000 on localhost (e.g. http:localhost:5000).

See Flask's Docs for more run options (such as chaning the port).


Requirements: node, yarn.

You should change to the frontend folder to get things running:

cd frontend

Setup the node environment and dependencies:

yarn install

Run the Frontend development server:

Note: change REACT_APP_BACKEND_URL to match where your backend is running at - make sure to include the trailing slash!

REACT_APP_BACKEND_URL="http://localhost:5000/" yarn serve

The frontend will now be available in your browser at http:localhost:3000.


Demo of deleting duplicate movies


Thanks to the following projects:


MIT - see

You can’t perform that action at this time.