Streamystats is a statistics service for Jellyfin, providing analytics and data visualization. 📈 Built with modern advanced frameworks.
This is a hobby project of mine. Don't expect fast development.
Streamystats V2 is a complete rewrite of the backend of this application. It's not backwards compatible with V1. If you're using V1, please read the migration guide below.
Before upgrading:
- Backup database:
docker exec -t streamystats_db pg_dumpall -c -U postgres > backup.sql
- Export your data from V1 settings page (downloads as
.db
file) - Convert to JSON:
sqlite3 input.db -json "SELECT * FROM playback_sessions;" > exported_data.json
- Remove old containers:
docker compose down -v
- Get new docker-compose.yml and start fresh V2 installation
- Import data via V2 Settings → Legacy Import
Note: There's a new docker compose file and new Docker images. Please read carefully.
- 🖥️ Dashboard with overview statistics, live sessions and more!
- 👤 User-specific watch history and statistics
- 🌟 Most popular item tracking
- 📚 Library statistics
- ⏱️ Watch time graphs with advanced filtering
- 🏠 Multi-server and user support
- 🔄 Full sync options of items, libraries and users from the settings page
- 🧹 Supported by Janitorr (beta)
- ⬇️ Import data from Jellystat and Playback Reporting Plugin to get started!
- Only sync certain libraries
- Individual item statistics
- More statistics about unwatched items and maybe the possibility to remove old or unwatched items
- More granular sync options
Playback reporting plugin is no longer needed and Streamystats soely relies on the Jellyfin API for statistics.
- Install Docker and Docker Compose if you haven't already.
- Copy the
docker-compose.yml
file to your desired location. Use tag:edge
(read more below in Version Tags. - Change any ports if needed. Default web port is
3000
. - Change the
SECRET_KEY_BASE
in thedocker-compose.yml
file to a random string. You can generate one withopenssl rand -hex 64
. - Start the application with
docker-compose up -d
- Open your browser and navigate to
http://localhost:3000
- Follow the setup wizard to connect your Jellyfin server.
First time load can take a while, depending on the size of your library.
Version tags (e.g., v1.2.3
) are automatically generated on release. These tags provide stable, tested reference points for production use. I recommend pinning to specific version tags for stability.
The :edge
tag always points to the latest commit on the main branch. It contains the most recent features and fixes. While typically stable, it may occasionally contain breaking changes
Docker is currently the easiest and recommended way to run streamystats. However you can also run without docker.







- Frontend: Next.js, React, TypeScript
- Backend: Phoenix (Elixir)
- Database: PostgreSQL
- Containerization: Docker