Transcode Plex/media libraries with a simple web UI. The project audits files against codec/bitrate/channel rules, then batch transcodes selected files while streaming live progress.
If you already have Node.js and ffmpeg/ffprobe installed:
- Clone this repository.
- Open a terminal in the project folder.
- Install dependencies:
npm install
- Start the server:
node server.js
- Open http://localhost:3000.
- Download or clone this project.
- Open a terminal in the project folder.
- Run:
./install/install.sh
- Follow the prompts, then open http://localhost:3000.
Run this in PowerShell from the project folder:
.\install\install.ps1- Node.js 18+
ffmpegandffprobe
You can either:
- keep
ffmpeg/ffprobeavailable in your system PATH, or - set folder overrides in Settings (folder path only, not the executable file path).
npm run serverThen open http://localhost:3000.
npm run server:no-sleep- Pick a root folder.
- Choose codec/bitrate/channel rules.
- Run audit.
- Select matching files.
- Run transcode.
The UI includes:
- live per-file and overall transcode progress
- transcode cancel support
- per-file outcome highlighting
- optional per-file
.logoutput - top-level critical error banner when required tools are missing
Smoke test fixture generation:
npm run smoke-test -- --out ./smoke-fixtures- Run
npm run checkto validate project JS syntax. - If tool checks fail, install
ffmpeg/ffprobeor set folder overrides in Settings. - Verify read/write permissions for media folders and transcode target locations.
Packaging is on hold for now. Current supported usage is to clone the repo and run it as a standard Node.js project.
This project is licensed under the MIT License. See LICENSE.
Copyright (c) 2026 Harry Scanlan.
It is provided "AS IS", without warranty of any kind, and the author is not liable for any claim, damages, or other liability arising from use of this software.
server.js— Express app and static hostingroutes/— API routescontrollers/— request handlers/orchestrationservices/— reusable transcode/audit servicespublic/— web UI assets
