Repolode
frederikemmer

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. 1

    Copy the example environment file

    cp docker/env.example .env
  2. 2

    Build and start the container with Docker Compose

    docker compose -f docker-compose-dev.yaml up --build
  3. 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

#media-library#ffprobe#ffmpeg#self-hosted#media-analysis#transcoding#docker#video-metadata

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