TopGit theo dõi Yooooomi/your_spotify trên GitHub trong nhóm UI / UX, đã đạt 4.5k sao. Self hosted Spotify tracking dashboard
Tóm tắt dựng từ metadata GitHub của chính dự án — chưa có bài review TopGit. Trang sẽ tự động cập nhật khi bài review đầy đủ được xuất bản.
VÌ SAO CHƯA CÓ REVIEW
TopGit viết bài đầy đủ cho repo có nhiều sao nhất và được yêu cầu nhiều nhất. Trang này là snapshot trong thời gian chờ — xem README gốc ở tab READ ME.
YourSpotify is a self-hosted application that tracks what you listen and offers you a dashboard to explore statistics about it!
It's composed of a web server which polls the Spotify API every now and then and a web application on which you can explore your statistics.
Table of contents
Prerequisites
Installation
Using docker
Installing locally
Environment
Advanced CORS settings
Creating the Spotify application
Importing past history
Supported import methods
Privacy data
Full privacy data
Troubleshoot
FAQ
External guides
Contributing
Sponsoring
Prerequisites
You have to own a Spotify application ID that you can create through their dashboard.
You need to provide the Server environment the public AND secret key of the application (cf. Installation).
You need to provide an authorized redirect URI to the docker-compose file.
A tutorial is available at the end of this readme.
Installation
Using docker-compose
Follow the docker-compose-example.yml to host your application through docker.
services:
server:
image: yooooomi/your_spotify_server
restart: always
ports:
- "8080:8080"
links:
- mongo
depends_on:
- mongo
environment:
API_ENDPOINT: http://localhost:8080 # This MUST be included as a valid URL in the spotify dashboard (see below)
CLIENT_ENDPOINT: http://localhost:3000
SPOTIFY_PUBLIC: __your_spotify_client_id__
SPOTIFY_SECRET: __your_spotify_secret__
web:
image: yooooomi/your_spotify_client
restart: always
ports:
- "3000:3000"
environment:
API_ENDPOINT: http://localhost:8080
mongo:
container_name: mongo
image: mongo:8
volumes:
- ./your_spotify_db:/data/db
Installing locally (not recommended)
You can follow the instructions here. Note that you will still have to do the steps below.
Environment
Key
Default value (if any)
Description
CLIENT_ENDPOINT
REQUIRED
The endpoint of your web application
API_ENDPOINT
REQUIRED
The endpoint of your server
SPOTIFY_PUBLIC
REQUIRED
The public key of your Spotify application (cf Creating the Spotify Application)
SPOTIFY_SECRET
REQUIRED
The secret key of your Spotify application (cf Creating the Spotify Application)
TIMEZONE
Europe/Paris
The timezone of your stats, only affects read requests since data is saved with UTC time
MONGO_ENDPOINT
mongodb://mongo:27017/your_spotify
The endpoint of the Mongo database, where mongo is the name of your service in the compose file
PROMETHEUS_USERNAME
not defined
Prometheus basic auth username (see here)
PROMETHEUS_PASSWORD
not defined
Prometheus basic auth password
LOG_LEVEL
info
The log level, debug is useful if you encouter any bugs
CORS
not defined
List of comma-separated origin allowed (not required; defaults to CLIENT_ENDPOINT)
COOKIE_VALIDITY_MS
1h
Validity time of the authentication cookie, following this pattern
MAX_IMPORT_CACHE_SIZE
Infinite
The maximum element in the cache when importing data from an outside source, more cache means less requests to Spotify, resulting in faster imports
MONGO_NO_ADMIN_RIGHTS
false
Do not ask for admin right on the Mongo database
PORT
8080
The port of the server, do not modify if you're using docker
FRAME_ANCESTORS
not defined
Sites allowed to frame the website, comma separated list of URLs (i-want-a-security-vulnerability-and-want-to-allow-all-frame-ancestors to allow every website)
Advanced CORS settings
Manually specifying CORS configuration is not required for typical deployments.
99.9% of users do not need to worry about this, it is handled automatically.
If your use case requires the backend to be used from multiple frontend origins, you can manually adjust the CORS variable.
For example, a value of origin1,origin2 will allow origin1 and origin2.
Creating the Spotify Application
For YourSpotify to work you need to provide a Spotify application public AND secret to the server environment.
To do so, you need to create a Spotify application here.
Click on Create app.
Fill out all the information.
Set the redirect URI, corresponding to your server location on the internet (or your local network) adding the suffix /oauth/spotify/callback (/api/oauth/spotify/callback if using the linuxserver image).
i.e: http://localhost:8080/oauth/spotify/callback or http://home.mydomain.com/your_spotify_backend/oauth/spotify/callback
Check Web API
Check I understand and agree
Hit Settings at the top right corner
Copy the public and the secret key into your docker-compose file under the name of SPOTIFY_PUBLIC and SPOTIFY_SECRET
respectively.
Once you have created your application, Spotify wants you to register the users that will be able to access the application. (You don't need to do that for the account that created the application)
Click the User Management button
Enter the required information, a name and the email the user's Spotify account has been created with.
(Optional) You can Request extension if you do not want to register the users by hand.
Importing past history
By default, YourSpotify will only retrieve data for the past 24 hours once registered. This is a technical limitation. However, you can import previous data by two ways.
The import process uses cache to limit requests to the Spotify API. By default, the cache size is unlimited, but you can limit is with the MAX_IMPORT_CACHE_SIZE env variable in the server.
Supported import methods
Privacy data
Takes a maximum of 5 days.
Only gets you the last year of history.
Request your privacy data at Spotify to have access to your history for the past year here.
Head to the Settings page and choose the Account data method.
Input your files starting with StreamingHistoryX.json.
Start your import.
Full privacy data (recommended)
Takes a maximum of 30 days.
Gets you the whole history since the creation of your account.
Request your Full privacy data to have access to your history data since the creation of the account here.
Head to the Settings page and choose the Extended streaming history method.
Input your files starting with Streaming_History_Audio_YYYY-YYYY_X.json.
Start your import.
Troubleshoot
An import can fail:
If the server reboots.
If a request fails 10 times in a row.
A failed import can be retried in the Settings page. Be sure to clean your failed imports if you do not want to retry it as it will remove the files used for it.
It is safer to import data at account creation. Though YourSpotify detects duplicates, some may still be inserted.
FAQ
How can I block new registrations?
From an admin account, go to the Settings page and hit the Disable new registrations button.
Songs don't seem to synchronize anymore.
This can happen if you revoked access on your Spotify account. To re-sync the songs, go to settings and hit the Relog to Spotify button.
The web application is telling me it cannot retrieve global preferences.
This means that your web application can't connect to the backend. Check that your API_ENDPOINT env variable is reachable from the device you're using the platform from.
A specific user does not use the application in the same timezone as the server, how can I set a specific timezone for him?
Any user can set his proper timezone in the settings, it will be used for any computed statistics. The timezone of the device will be used for everything else, such as song history.
External guides
BreadNet installation tutorial
Contributing
If you have any issue or any idea that could make the project better, feel free to open an issue. I'd love to hear about new ideas or bugs you are encountering.
Sponsoring
I work on this project on my spare time and try to fix issues as soon as I can. If you feel generous and think this project and my investment are worth a few cents, you can consider sponsoring it with the button on the right, many thanks.
Trang TopGit này là một snapshot — tab "Readme" hiển thị nguyên văn README của repo (đã bỏ link, giữ ảnh). Repo GitHub ở github.com/Yooooomi/your_spotify là nguồn chính thức.
Yooooomi/your_spotify có những chủ đề gì?
GitHub topics của Yooooomi/your_spotify: "dashboard", "react", "self-hosted", "spotify", "statistics", "webapp". TopGit xếp repo vào nhóm UI / UX.
Yooooomi/your_spotify có phải mã nguồn mở không?
Có — Yooooomi/your_spotify phát hành theo license GPL-3.0, nghĩa là mã nguồn mở để đọc, fork và (tùy license) tái sử dụng. Mã: github.com/Yooooomi/your_spotify.
Yooooomi/your_spotify có website riêng không?
TopGit chưa ghi nhận URL trang chủ cho Yooooomi/your_spotify. Phần README ở tab phía trên thường có link demo, hoặc xem mô tả GitHub của repo.
Yooooomi/your_spotify còn đang phát triển không?
Commit gần nhất trên Yooooomi/your_spotify là 1 tháng trước (theo timestamp GitHub). Repo có 203 fork — một chỉ báo về mức độ quan tâm của cộng đồng.
Yooooomi/your_spotify dùng license gì?
Yooooomi/your_spotify phát hành theo license GPL-3.0. Nên mở file LICENSE trên GitHub để xác nhận — license metadata đôi khi lệch với thực tế dự án.
Đọc đầy đủ README ở tab phía trên.
your_spotify có đáng để bạn bỏ thời gian?
ChatGPT, Claude và Perplexity đều đọc được trang này. Hỏi thử xem họ nghĩ gì về your_spotify.