Skip to content

fredrikburmester/streamystats

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Streamystats

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.

⚠️ Breaking change

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.

Migrating from V1 to V2

Before upgrading:

  1. Backup database: docker exec -t streamystats_db pg_dumpall -c -U postgres > backup.sql
  2. Export your data from V1 settings page (downloads as .db file)
  3. Convert to JSON: sqlite3 input.db -json "SELECT * FROM playback_sessions;" > exported_data.json
  4. Remove old containers: docker compose down -v
  5. Get new docker-compose.yml and start fresh V2 installation
  6. Import data via V2 Settings → Legacy Import

Note: There's a new docker compose file and new Docker images. Please read carefully.

✨ Features

  • 🖥️ 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!

Roadmap

  • 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

🚀 Getting started

Playback reporting plugin is no longer needed and Streamystats soely relies on the Jellyfin API for statistics.

Docker

  1. Install Docker and Docker Compose if you haven't already.
  2. Copy the docker-compose.yml file to your desired location. Use tag :edge (read more below in Version Tags.
  3. Change any ports if needed. Default web port is 3000.
  4. Change the SECRET_KEY_BASE in the docker-compose.yml file to a random string. You can generate one with openssl rand -hex 64.
  5. Start the application with docker-compose up -d
  6. Open your browser and navigate to http://localhost:3000
  7. 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

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

Dockerless

Docker is currently the easiest and recommended way to run streamystats. However you can also run without docker.

See the documentation

📸 Screenshots

Screenshot 2024-11-06 at 21 29 48 Screenshot 2024-11-06 at 21 30 01 Screenshot 2024-11-06 at 21 30 07 Screenshot 2024-11-03 at 10 57 04 Screenshot 2024-11-03 at 10 57 35 Screenshot 2024-11-03 at 10 57 43 Screenshot 2024-11-03 at 10 57 46

🛠️ Tech Stack

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

About

Streamystats is a statistics service for Jellyfin, providing analytics and data visualization.

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages