Important
This is a modified version of the Upload Assistant project and is not affiliated with or endorsed by Audionut.
- Fork Features & Differences from Upstream (Audionut/Upload-Assistant)
- Supported Sites
- Setup Guide
- Updating
- CLI Usage
- Docker Usage
- Seedbox / Linux Install
- Attributions
This branch introduces new media categories and automation features not present in the upstream Audionut repository:
- Ebook & Audiobook (
BOOKCategory):- Automatic Type Detection: Classifies uploads into Ebooks (PDF, EPUB, MOBI), Comics/Manga (CBR, CBZ), Newspapers, or Audiobooks.
- Local Metadata Extraction: Reads metadata from OPF files in EPUB/MOBI,
ComicInfo.xmlin CBR/CBZ, parses tags via Mutagen for audiobooks, and uses PyMuPDF (fitz) with checksum-validated regex to extract ISBNs from PDFs. - API Integrations: Queries MyAnonamouse (MAM) API, Google Books API, and OpenLibrary API for automated metadata lookup.
- Artwork & Screenshot Generation: Renders gallery screenshots from PDF/EPUB pages, extracts cover artwork, and auto-generates
POSTER.png. - Smart Duplicate Checking: Custom rules distinguishing formats (e.g., EPUB vs PDF) and audiobooks vs ebooks, with tracker-specific overrides.
- Video Game (
GAMECategory):- Game Directory Parsing: Priority scans for executables (
.exe), disc images (.iso), or archives (.rar,.zip, etc.) in the upload path. - IGDB & Steam Metadata API: Queries Twitch/IGDB API for storyline, ratings, involved companies, release year, genre mapping, and downloads cover images. Fetches PC system requirements via Steam Store API.
- Platform Detection: Identifies systems (PC, PS5, Switch, Xbox Series X|S, etc.) and enforces platform-group duplicate checks (so Switch uploads aren't blocked by PC dupes).
- Platform-specific Prompts: Attended prompts for console TV standard (NTSC/PAL) and region codes (USA/EUR/JPN) for trackers like BJSHARE.
- Game Directory Parsing: Priority scans for executables (
- Music (
MUSICCategory):- Local Tag & Metadata Extraction: Parses audio tags, cue sheets, and rip logs (EAC, XLD, etc.) using Mutagen to extract tracklists, artists, and audio metadata.
- Discogs & MusicBrainz APIs: Optionally queries external APIs (Discogs via release/master ID or URL, and MusicBrainz) for metadata enrichment.
- Artwork & Cover Extraction: Automatically searches for local cover images or extracts embedded artwork from FLAC/MP3/M4A tags to upload to image hosts.
- Preflight & Rule Validation: Enforces mechanical validation for audio formats, sample/bit rates, track counts, and hybrid setups before uploading.
- Spectrogram Extraction & Plotting: Use
-as/--audio-spectrogramto automatically extract audio streams from MKVs, Blu-ray BDInfo, music tracks, or audiobook chapters using FFmpeg and plot frequency/time graphs (inferno theme) vialibrosaandmatplotlib. Music and audiobook processing is capped byaudio_spectrogram_max_files. - Automated Upload: Automatically uploads generated spectrograms along with your screenshots for release verification.
- Stream Selection: Supports targeting specific tracks using
-ast/--audio-spectrogram-tracks(e.g., track indexes orall).
- Traffic Control: Prevents overloading your connection during uploads using
-qbcon/--qbit-bw-control. - Dynamic Wait: Pauses uploading if your active client upload speed exceeds a threshold (
qbit_bandwidth_thresholdKB/s) and resumes once it stays below the limit for a set time (qbit_bandwidth_timeseconds). - Safe Rechecking: Performs a second duplicate check after the bandwidth wait to ensure a duplicate wasn't posted while the client was waiting.
- Custom Parameter Queues: When running batch uploads with a
.txtqueue file, each line is treated as an independent execution command. - shlex-Split Parsing: Allows specifying unique CLI arguments (e.g., different IMDB IDs, tags, or tracker targets) for each file/folder on its respective line.
- Resume Capability: Logs processed lines to prevent reprocessing completed uploads if a queue run is interrupted.
- Usenet Upload Support: Automatically archives and splits files/folders (via
7z), generates parity recovery blocks (viapar2), and uploads them to Usenet (vianyuu). - Anonymity & Privacy: Generates randomized poster details and obfuscates post subject lines to protect privacy.
- Indexer Integration: Automatically uploads the generated
.nzbfile to configured Usenet indexers.
- Manual Screenshot Review: Inspect, add, delete, or replace/recapture individual frames before uploading through the interactive Web UI.
- Provider-Scoped API Caching: Disk-cached metadata for TMDb, IMDb, TVDB, TVmaze, OpenLibrary, IGDB, Discogs, and MusicBrainz.
- Performance & Rate Limit Protection: Configurable TTL and negative caching reuse fetched metadata across runs, avoiding redundant API calls and preventing rate-limiting bans.
- Full Parity Web UI: Modern interface providing full feature parity with CLI options (
--webui). - Real-Time Execution & Presets: Live log streams, real-time preparation preview, preset saving, and interactive screenshot management.
Click to view Supported Torrent Trackers
Click to view Supported Usenet Indexers
| Site | Usage | Supported Categories | |
|---|---|---|---|
| Curupira | CURUPIRA | MOVIE, TV, BOOK, GAME | |
| DrunkenSlug | DRUNKENSLUG | MOVIE, TV, BOOK, GAME |
Setting up Upload Assistant is straightforward, even if you are not a developer. Follow these steps to get up and running:
Windows users should install Upload Assistant with the Windows .exe installer. It includes everything needed to run the assistant.
For a manual Linux/macOS/Windows installation, Upload Assistant needs a few tools to process media and run:
- Python (version 3.14 or newer):
- Download and install it from the official Python website.
- MediaInfo & FFmpeg:
- These are helper tools used to scan files and generate screenshots/spectrograms.
- Install them using your system's software manager:
- Debian/Ubuntu:
sudo apt install mediainfo ffmpeg - Arch Linux:
sudo pacman -S mediainfo ffmpeg - RedHat/Fedora:
sudo dnf install mediainfo ffmpeg
- Debian/Ubuntu:
- Having issues with FFmpeg? Check out our FFmpeg troubleshooting guide.
Choose one of the two options below to get the files onto your computer:
Using Git is the recommended method because it makes updating the assistant in the future extremely easy.
-
Install Git (if you don't already have it):
- Linux: Install it via your package manager.
- macOS: Install it via Homebrew or Xcode Command Line Tools.
-
Clone the project: Open your command prompt or terminal, navigate to the folder where you want to keep the assistant, and run:
git clone https://github.com/wastaken7/Upload-Assistant.git cd Upload-Assistant
If you do not want to install Git, you can download a copy of the files directly:
- Go to the GitHub Repository Page.
- Click the green Code button near the top right, and click Download ZIP.
- Extract the ZIP file to a folder of your choice on your computer.
On Linux/macOS, open a terminal, navigate to the folder where you downloaded Upload Assistant, and run:
pip3 install --user -U -r requirements.txtTip
Getting an "externally managed environment" error? This means your system prefers keeping Python packages separated. You can set up a "Virtual Environment" (a private workspace for this tool) by running:
-
Linux / macOS:
python3 -m venv venv source venv/bin/activate pip install -r requirements.txt
You need to add your API keys (like TMDb) and tracker credentials so the tool knows where to upload.
If you plan to use the Web UI, your configuration file will be generated automatically when you launch and configure it for the first time.
In your terminal, run the command for your operating system and follow the on-screen prompts:
-
Windows: Install with the
.exeinstaller, then runua-configin a new terminal. -
Linux / macOS:
python3 config-generator.py
- Go to the
data/folder inside the project. - Copy
example_config.pyand rename the copy toconfig.py(leave the originalexample_config.pyfile as-is). - Open
config.pyin a text editor (like Notepad, VS Code, or TextEdit) and fill in your information.- For detailed info on what each setting does, see Example Config Docs.
- Get a free TMDb API key from TheMovieDB API settings.
Additional Resources:
- Check out our Wiki Help Page.
- Windows installation and basic commands: see Windows Install.
- Need a no-root Linux or seedbox setup? See Seedbox / Linux Install.
- Found an issue or need help? Please open a GitHub Issue so we can track and resolve it.
-
To update a Git installation, navigate into the Upload-Assistant directory and pull the latest changes:
cd Upload-Assistant git pull -
Or, if you downloaded the ZIP file, download a fresh ZIP from GitHub and overwrite your existing files.
-
For the Windows installation, run
ua-update. -
Run the command to update dependencies:
- Linux / macOS:
python3 -m pip install --user -U -r requirements.txt
- Linux / macOS:
-
Run the configuration generator to fetch any new settings:
- Windows: run
ua-configfrom any folder. - Linux / macOS:
python3 config-generator.py
- Windows: run
To run the assistant, use the command for your system:
-
Windows:
ua "C:\path\to\content" --args -
Linux / macOS:
python3 upload.py "/path/to/content" --args
Arguments are optional and normally follow the path. Input modes such as --paths-from-stdin may omit the positional path. For a list of all available arguments, pass --help.
The file/folder path works best enclosed in double quotes.
- CLI arguments: docs/cli-args.md
- Usenet uploading: docs/usenet.md
Visit our wonderful docker usage
Also see this excellent video put together by a community member https://videos.badkitty.zone/ua
Web UI setup (Docker GUI / Unraid): docs/docker-gui.md Web UI docs: docs/web-ui.md
Built with autobrr/go-bdinfo
Features automated binary managers for:







