shipper is a utility with the purpose of making re-encoding and compressing of movies and TV shows easier. While it is built with Plex in mind, it can be used for anything. It is comprised of a daemon which can be run in the background and also acts as a dashboard for current jobs as well as a input script to safely add new jobs to the queue.
If you try to use it and have any problems or questions feel free to make a issue and I'll get back to you asap.
Warning
This repository is very much work in progress. Most commits will break previous versions. It is likely that many features will only partly work or not work at all.
- FFmpeg
Move to the directory you keep your media in and clone the repository.
git clone https://github.com/ElphaTech/shipper.gitEnter the shipper directory.
cd shipperMake and activate a virtual environment. Then install the requirements.
python -m venv venv
source venv/bin/activate
pip install -r requirements.txtRun the daemon.
python daemon.pyIn a separate terminal navigate to the shipper directory and run the following.
Make a .env file with your TMDB API key.
TMDB_API_KEY=putyourkeyhereSet input and output paths in config.json
Navigate to the shipper directory. Activate the venv and run the input script.
source venv/bin/activate
python input.pyOnce you have added an input you can track it either in the terminal or on a website.
Terminal:
python tui.py**Website: (http://localhost:8932/)
python tui_server.py- Input script with access to the TMDB api for automatically getting details such as:
- Show name
- Release year
- Episode name
- Compression to different presets.
- Safe stopping of program with a
stopfile. - Show progress of current jobs.
input_dir: Full path to the directory where the input script will show files from.
output_dir: Full path to the directory where finished jobs should be saved to.
storage_buffer: The amount of GiB the program should leave free. Upon reaching this limit, it will not start any new jobs.
job_limits: The amount of each type of job that can happen at once. If your system is more powerful, you can increase these.
quality_presets: Preset quality values that you can choose between in the input program. For more information see the FFmpeg docs
/plexmedia/
├── Movies/
│ └── Name (Year) {ID}/
│ └── Name (Year) {ID}.ext
└── TVShows/
└── Name (Year) {ID}/
└── Season 00/
└── Name (Year) - s00e00 - EpName.ext