ReplayTagger watches your clips folder and tags each file with its game name, so Plex builds per-game collections automatically. No re-encoding, no manual sorting.
Your capture software already organizes clips into per-game folders. ReplayTagger turns those folder names into Plex collections, without re-encoding a single frame.
A clip lands in a per-game folder on your gaming PC.
A tool like Syncthing delivers it to your server.
ReplayTagger writes the game name into the clip's genre metadata with ffmpeg.
Plex reads the tag and drops the clip into the matching game collection.
One container, your hardware, your rules.
ffmpeg remuxes to a temp file, atomically replaces the original, and restores its timestamp. Identical bytes except the tag.
NVIDIA, OBS, AMD ReLive, or anything that saves clips into per-game subfolders. The folder name is all it needs.
One Docker container on your NAS or homelab box. It just needs network access to Plex and the clips folder.
Queue uploads automatically. Each file is fingerprinted so it's never uploaded twice, even after a rename.
Fire a notification when clips are tagged or uploaded, including ntfy and other webhook targets.
MIT licensed, built for homelab and self-hosted setups. No accounts, no telemetry.
Already running Plex and Docker? Copy-paste this.
# grab the compose file and env template curl -O https://raw.githubusercontent.com/iamclements/replay-tagger/main/docker-compose.yml curl -O https://raw.githubusercontent.com/iamclements/replay-tagger/main/.env.example && mv .env.example .env $EDITOR .env # set CLIPS_DIR, PLEX_URL, PLEX_LIBRARY_NAME docker compose run --rm replaytagger plex-auth # guided login, saves the Plex token docker compose run --rm replaytagger doctor # verify connectivity, ffmpeg, paths docker compose up -d # tag clips, then watch for new ones