Distributed media library automation tool that transcodes and remuxes video and audio files with FFmpeg or HandBrake using conditional plugin rules.
frederikemmer/MediaLyze
Self-hosted tool that scans video, music and audiobook libraries with ffprobe and shows technical metadata in a web UI.
- Stars
- 509
- Forks
- 17
- Open issues
- 8
- Last commit
- yesterday
What is it?
MediaLyze scans local video, music, and audiobook collections and analyzes each file with ffprobe, normalizing formats, streams, and subtitles into a searchable library. Results are explored through a FastAPI and React web interface, with charts, historical analysis, comparison views, and quality scores across the collection.
It can run as a single Docker container backed by one SQLite database, or as a desktop app built with Electron for Windows, macOS, and Linux. Full and incremental scans track changes by path, size, and modification time, and glob patterns let you ignore files and folders.
The project also includes beta FFmpeg transcoding into linked video variants. Hardware acceleration is probed across Intel, AMD, NVIDIA, and Apple engines, and original files are left untouched unless replacement is explicitly confirmed.
Key features
- 01Analyzes media files with ffprobe and normalizes formats, streams, and subtitles
- 02Full and incremental library scans based on path, size, and modification time
- 03Charts, historical analysis, and quality scores across the collection
- 04Recognizes shows, seasons, and bonus content
- 05Glob-based ignore rules for files and folders
- 06Beta FFmpeg transcoding with hardware acceleration probing and non-destructive output
Use cases
- Auditing codec, resolution, and subtitle coverage across a large home video or music library
- Finding files that need re-encoding before they play on a target device
- Tracking how a NAS media collection changes over time
- Running a read-only analysis of network-mounted media in a Docker setup
Quick start
- 1
Copy the example environment file
cp docker/env.example .env - 2
Build and start the container with Docker Compose
docker compose -f docker-compose-dev.yaml up --build - 3
Open http://localhost:8080 in your browser
Things to know
- Licensed under AGPL-3.0, a strong copyleft license that applies to modified network-served versions.
- Transcoding is still in Beta.
- No built-in authentication; you must bring your own auth layer.
In collections
Topics
FAQ
- What is MediaLyze?
- Self-hosted tool that scans video, music and audiobook libraries with ffprobe and shows technical metadata in a web UI. MediaLyze scans local video, music, and audiobook collections and analyzes each file with ffprobe, normalizing formats, streams, and subtitles into a searchable library. Results are explored through a FastAPI and React web interface, with charts, historical analysis, comparison views, and quality scores across the collection.
- Is MediaLyze free to use? What license does it have?
- MediaLyze is open source under the AGPL-3.0 license. Check the license terms before using it in commercial products.
- Is MediaLyze still maintained?
- Actively maintained. The last commit to MediaLyze was on Nov 6, 2026.
- What can I use MediaLyze for?
- Auditing codec, resolution, and subtitle coverage across a large home video or music library Finding files that need re-encoding before they play on a target device Tracking how a NAS media collection changes over time Running a read-only analysis of network-mounted media in a Docker setup
- How do I install MediaLyze?
- Copy the example environment file: cp docker/env.example .env Build and start the container with Docker Compose: docker compose -f docker-compose-dev.yaml up --build Open http://localhost:8080 in your browser
- Where can I get MediaLyze?
- The source code and installation instructions are on GitHub: https://github.com/frederikemmer/MediaLyze
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
Self-hosted media server for movies, series and anime, an alternative to Jellyfin and Plex that needs little manual setup.
Run ffmpeg on a remote GPU machine from any client over one TCP port, without GPU passthrough or shared filesystems.
A C library collection and command-line toolbox for decoding, encoding, converting, filtering and streaming audio, video and subtitles.
A pure WebAssembly and JavaScript port of FFmpeg that lets browsers record, convert and stream video and audio.
A native desktop GUI for FFmpeg that gives granular control over video, audio, image, subtitle and metadata conversion settings.