Usage (Mac and Linux) - ladyisatis/OnePaceOrganizer GitHub Wiki
For the following, you will need Python 3.13+. Newer Macs should have this already, but you may need Homebrew to install Python. On Linux, refer to your OS's package manager system to install it.
Instructions
Run the following from the OnePaceOrganizer
directory in Terminal:
Qt GUI: ./scripts/run.sh gui
Terminal UI: ./scripts/run.sh console
- Create a folder containing nothing except the
.mkv
(or.mp4
) files. By default, it'll assume you've made a folder namedin
in the same directory as the.exe
(if using Windows release) or one folder up fromsrc
. - Extract the
.zip
and run the.exe
on Windows, or via Python via the instructions above. - There will be a wizard to guide you through the steps on the console version, or options to help guide you in the GUI version.
The first step in the console version will ask for the folder you made in step 1.
For output, this will assume a directory of, for example, /mnt/storage/Anime/One Pace
, etc., however keep in mind this won't be the exact path needed. This is going to be the folder that Season 01
, Season 02
, ...and so on and all of the subsequent video files will be put into.
If you're using Jellyfin, nothing else is necessary, and the program is re-usable for newer One Pace releases, even if it's for a single video file.
If you're using Plex, there will be a two step process: one will move all of the video files to the output directory, so in case your Plex server is on a separate server/computer, this will give you time to transfer everything. Let Plex (incorrectly) index all of said files that get added to Plex. Once that's done, the second step will contact the Plex API to upload posters and edit show, arc/season, and episode metadata.
Headless Mode (No Interaction Mode)
With the environment variable OPO_INTERACTIVE=false
you can run this without user input dialogs, especially if you have configuration already set. This way, you can run it automatically without needing to do anything. This requires environment variables to be set, especially if config.json doesn't exist, e.g.:
Environment Variable | Description | Default |
---|---|---|
OPO_LOG_LEVEL | Log Level (TRACE, DEBUG, INFO, WARNING, ERROR) | INFO |
OPO_INTERACTIVE | Interactive Mode (Show User Dialogs) | true |
OPO_LOAD_CONFIG | Load config.json | true |
OPO_SAVE_CONFIG | Save config.json | true |
OPO_INPUT_PATH | Where to read unsorted .mkv/.mp4 files from | |
OPO_OUTPUT_PATH | Where to put sorted .mkv/.mp4 files (and .nfo/posters if Jellyfin) | |
OPO_FILE_ACTION | Action to take on unsorted file when processing (0 for Move, 1 for Copy, 2 for Symlink, 3 for Hardlink) | 0 |
OPO_WORKERS | Worker threads for I/O processses | max(8, process_cpu_count) |
OPO_PLEX_ENABLED | Is Plex Enabled | false (Jellyfin mode) |
OPO_PLEX_SERVER | Plex Server ID | |
OPO_PLEX_LIBRARY | Plex Library Key | |
OPO_PLEX_SHOW | Plex Show GUID | |
OPO_PLEX_USE_TOKEN | Use Authorization Token instead of Username and Password | false |
OPO_PLEX_AUTH_TOKEN | Plex Authorization Token | |
OPO_PLEX_USERNAME | Plex Username | |
OPO_PLEX_PASSWORD | Plex Password | |
OPO_PLEX_CODE | Plex 2-Factor Auth Code (if set on account) | |
OPO_PLEX_REMEMBER | Remember Plex Credentials | false |
OPO_PLEX_WAIT_SECS | Wait number of seconds for file transfers | 300 |
For example with Jellyfin:
$ export OPO_INTERACTIVE=false
$ ./scripts/run.sh console