Repolode
fredrikburmester

fredrikburmester/streamystats

A statistics and analytics service for Jellyfin media servers, with dashboards, watch history, and AI-based recommendations.

Open-source alternative to:Tautulli

Stars
842
Forks
46
Open issues
150
Last commit
2 months ago

What is it?

Streamystats connects to a Jellyfin server and turns its playback data into dashboards. It shows overview statistics, live sessions, per-user watch history, library statistics, watch time graphs with filtering, and client statistics. It supports multiple servers and users, and existing data can be imported from Jellyfin's Jellystat and Playback Reporting Plugin.

The project also includes an optional AI layer. Library items can be embedded through any OpenAI-compatible API and stored in vectorchord. A chat interface uses function calling with 13 tools to answer questions about your library, and recommendations are based on cosine similarity to items in your watch history, with explanations of which watched titles led to each suggestion.

The service is deployed with Docker Compose and sets its web port to 3000 by default. It is built with Next.js and React on the frontend, Hono running on Bun on the backend, and vectorchord for embeddings.

Key features

  • 01Dashboard with overview statistics, live sessions and recommendations
  • 02User-specific watch history and library statistics
  • 03Watch time graphs with advanced filtering
  • 04Multi-server and multi-user support
  • 05AI chat over your library with 13 function-calling tools
  • 06Vector-similarity recommendations with explanations

Use cases

  • Jellyfin server admins who want per-user viewing analytics
  • Households wanting recommendations based on their own watch history
  • Migrating statistics from Jellystat or Playback Reporting Plugin

Quick start

  1. 1

    Install Docker and Docker Compose

  2. 2

    Copy the docker-compose.yml file to your desired location, using the :latest tag

  3. 3

    Change the SESSION_SECRET in docker-compose.yml to a random string generated with openssl

    openssl rand -hex 64
  4. 4

    Start the application

    docker-compose up -d

Things to know

  • The author describes it as a hobby project with no guarantee of rapid development, and it is prone to bugs.
  • No license is specified in the project metadata.
  • The :latest tag may contain breaking changes, and downgrades are not supported without restoring a database backup.

In collections

Topics

FAQ

What is streamystats?
A statistics and analytics service for Jellyfin media servers, with dashboards, watch history, and AI-based recommendations. Streamystats connects to a Jellyfin server and turns its playback data into dashboards. It shows overview statistics, live sessions, per-user watch history, library statistics, watch time graphs with filtering, and client statistics. It supports multiple servers and users, and existing data can be imported from Jellyfin's Jellystat and Playback Reporting Plugin.
Is streamystats free to use? What license does it have?
streamystats has no declared license. Its code is public, but without a license you have no explicit permission to reuse it; ask the author before relying on it.
Is streamystats still maintained?
Updated within 6 months. The last commit to streamystats was on Sep 14, 2026.
What can I use streamystats for?
Jellyfin server admins who want per-user viewing analytics Households wanting recommendations based on their own watch history Migrating statistics from Jellystat or Playback Reporting Plugin
How do I install streamystats?
Install Docker and Docker Compose Copy the docker-compose.yml file to your desired location, using the :latest tag Change the SESSION_SECRET in docker-compose.yml to a random string generated with openssl: openssl rand -hex 64 Start the application: docker-compose up -d
Where can I get streamystats?
The source code and installation instructions are on GitHub: https://github.com/fredrikburmester/streamystats

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects