{"id":23928770,"url":"https://github.com/fredrikburmester/streamystats","last_synced_at":"2025-12-12T00:49:52.405Z","repository":{"id":260174837,"uuid":"880525372","full_name":"fredrikburmester/streamystats","owner":"fredrikburmester","description":"Streamystats is a statistics service for Jellyfin, providing analytics and data visualization.","archived":false,"fork":false,"pushed_at":"2025-10-24T07:03:11.000Z","size":2617,"stargazers_count":380,"open_issues_count":74,"forks_count":20,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-10-24T08:15:20.667Z","etag":null,"topics":["jellyfin","nextjs","phoenix","statistics"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fredrikburmester.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-10-29T22:06:34.000Z","updated_at":"2025-10-24T06:28:22.000Z","dependencies_parsed_at":null,"dependency_job_id":"e49cd178-9a98-49e4-8f9f-804ce22272f9","html_url":"https://github.com/fredrikburmester/streamystats","commit_stats":null,"previous_names":["fredrikburmester/streamystats"],"tags_count":31,"template":false,"template_full_name":null,"purl":"pkg:github/fredrikburmester/streamystats","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fredrikburmester%2Fstreamystats","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fredrikburmester%2Fstreamystats/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fredrikburmester%2Fstreamystats/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fredrikburmester%2Fstreamystats/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fredrikburmester","download_url":"https://codeload.github.com/fredrikburmester/streamystats/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fredrikburmester%2Fstreamystats/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":281544211,"owners_count":26519560,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-29T02:00:06.901Z","response_time":59,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["jellyfin","nextjs","phoenix","statistics"],"created_at":"2025-01-05T23:01:47.250Z","updated_at":"2025-10-29T02:16:31.194Z","avatar_url":"https://github.com/fredrikburmester.png","language":"TypeScript","funding_links":[],"categories":["TypeScript","👾 Companion Apps \u0026 Tools"],"sub_categories":["📊 Statistics \u0026 Watch History"],"readme":"# Streamystats\n\nStreamystats is a statistics service for Jellyfin, providing analytics and data visualization. 📈 Built with modern advanced frameworks.\n\n\u003e This is a hobby project of mine. Don't expect fast development.\n\n## ⚠️ Breaking change\n\nStreamystats 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.\n\n### Migrating from V1 to V2\n\n**Before upgrading:**\n1. **Backup database**: `docker exec -t streamystats_db pg_dumpall -c -U postgres \u003e backup.sql`\n2. **Export your data** from V1 settings page (downloads as `.db` file)\n3. **Convert to JSON**: `sqlite3 input.db -json \"SELECT * FROM playback_sessions;\" \u003e exported_data.json`\n4. **Remove old containers**: `docker compose down -v`\n5. **Get new docker-compose.yml** and start fresh V2 installation\n6. **Import data** via V2 Settings → Legacy Import\n\n**Note**: There's a new docker compose file and new Docker images. Please read carefully.\n\n## ✨ Features\n\n- 🖥️ Dashboard with overview statistics, live sessions and more!\n- 👤 User-specific watch history and statistics\n- 🌟 Most popular item tracking\n- 📚 Library statistics\n- ⏱️ Watch time graphs with advanced filtering\n- 🏠 Multi-server and user support\n- 🔄 Full sync options of items, libraries and users from the settings page\n- 🧹 Supported by Janitorr (beta)\n- ⬇️ Import data from Jellystat and Playback Reporting Plugin to get started!\n\n## Roadmap\n\n- [ ] Only sync certain libraries\n- [ ] Individual item statistics\n- [ ] More statistics about unwatched items and maybe the possibility to remove old or unwatched items\n- [ ] More granular sync options\n\n## 🚀 Getting started\n\n\u003e Playback reporting plugin is no longer needed and Streamystats soely relies on the Jellyfin API for statistics.\n\n### Docker\n\n1. Install Docker and Docker Compose if you haven't already.\n2. Copy the `docker-compose.yml` file to your desired location. Use tag `:edge` (read more below in [Version Tags](#version-tags).\n3. Change any ports if needed. Default web port is `3000`.\n4. Change the `SECRET_KEY_BASE` in the `docker-compose.yml` file to a random string. You can generate one with `openssl rand -hex 64`.\n5. Start the application with `docker-compose up -d`\n6. Open your browser and navigate to `http://localhost:3000`\n7. Follow the setup wizard to connect your Jellyfin server.\n\nFirst time load can take a while, depending on the size of your library.\n\n### Version Tags\n\nVersion 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.\n\nThe `: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\n\n### Dockerless\n\nDocker is currently the easiest and recommended way to run streamystats. However you can also run without docker.\n\n[See the documentation](DOCKERLESS.md)\n\n## 📸 Screenshots\n\u003cimg width=\"1545\" alt=\"Screenshot 2024-11-06 at 21 29 48\" src=\"https://github.com/user-attachments/assets/78c5843a-7dc4-4485-bfeb-841725b133e7\"\u003e\n\u003cimg width=\"1545\" alt=\"Screenshot 2024-11-06 at 21 30 01\" src=\"https://github.com/user-attachments/assets/d2d4bf6d-85a0-4c6d-8e2b-19e876dc6579\"\u003e\n\u003cimg width=\"1545\" alt=\"Screenshot 2024-11-06 at 21 30 07\" src=\"https://github.com/user-attachments/assets/1da33d70-5c26-4ce8-a753-06b08a409d17\"\u003e\n\u003cimg width=\"1545\" alt=\"Screenshot 2024-11-03 at 10 57 04\" src=\"https://github.com/user-attachments/assets/3dbbc7b0-2f64-44de-9b0c-a524de1a660d\"\u003e\n\u003cimg width=\"1545\" alt=\"Screenshot 2024-11-03 at 10 57 35\" src=\"https://github.com/user-attachments/assets/9dac59d8-54eb-4474-bc21-caf782492c14\"\u003e\n\u003cimg width=\"356\" alt=\"Screenshot 2024-11-03 at 10 57 43\" src=\"https://github.com/user-attachments/assets/b5988b08-8ba6-4fca-99d2-8e221016fcc9\"\u003e\n\u003cimg width=\"357\" alt=\"Screenshot 2024-11-03 at 10 57 46\" src=\"https://github.com/user-attachments/assets/34db1a56-dc05-4c87-b0c7-290e23be6d8c\"\u003e\n\n## 🛠️ Tech Stack\n\n- Frontend: Next.js, React, TypeScript\n- Backend: Phoenix (Elixir)\n- Database: PostgreSQL\n- Containerization: Docker\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffredrikburmester%2Fstreamystats","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffredrikburmester%2Fstreamystats","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffredrikburmester%2Fstreamystats/lists"}