Releases: Yooooomi/your_spotify
1.7.1
Bug fixes
- A first try at solving Google marking domains as deceptive #271 #254
- Mongo crashing at boot for people with a lot of tracks #272
- Weird Settings icon color when selecting a custom range in dark mode #268
- Customization of the authentication token, follow the readme env variable #277
- Filenames when importing full privacy data have been updated #279
- Fixed being able to un-admin ourselves while being the single admin #286
- More compliant extended streaming history import #291
Thanks a lot again for giving feedback
TimothΓ©e
1.7.0
Features
- Added "This year" button to date range picker #253
Miscellaneous
- Updated all dependencies
Bugs fixes
- Affinity is now only available when logged #252
- Fixed an issue where tracks would still be added to history and stats even if the artist is blacklisted #247
Thanks again a lot for contributors and donators.
Longest sessions, even more responsive
Hello! Welcome to the 1.6.0 release!
This time, a new Longest session feature and very welcoming site on mobile, which allows complete use of the app on mobile.
Longest session
A new link is available on the sider, allowing you to, depending on the interval selected, visualize the 5 longest listening session over the period. It shows all the songs that have been played and the hour of beginning of the session. It will surely remind you of long parties or coding sessions.
Responsive
A huge rework has been done concerning the display of scrollable lists. The display is now way clearer. Those lists are now way more enjoyable on mobile. The context menu button has been replaced with a long click on the rows. The rows slowly disappear as the screen gets smaller.
Releases
A nice work has been done by @Byh0ki to allow having docker image tags for each commit on the master branch. It allows smoother version control and will allow easier debugging.
Mongo upgrade
Please backup your database before upgrading
Be careful as low power cpu (and raspberry Pi) might not support AVX instructions, thus not being compatible with mongo 5.0+.
YourSpotify now supports mongo up to version 6. In order to upgrade your current mongo database, you must incrementally update it, YourSpotify will handle the migration.
- Start the whole stack with mongo 5
- Shut it down
- Restart it with mongo 6
You must go through these versions:
- 4 -> 4.2 -> 4.4 -> 5.0 -> 6.0
Miscellaneous
- Fixed a bug where duplicate detection when importing would only check on already saved data. Now also checking for current batch.
- Same tracks listened in a 30 seconds interval will be marked as duplicates and deleted at startup, this can happen on shaky imports.
- Fixed a bug where changing interval on safari would not render the correct data.
- Reworked a bit (spent hours as usual) light and dark version the application.
- Fixed import not working with specific data #224
Thanks a lot for this release sponsors
Also, thanks a lot for this release contributors, you guys come with a lot of ideas, merge requests and heartwarming stuff.
TimothΓ©e
Blacklisting artists, song stat page and easier imports
Hello guys! Time for a new release. This time this release does not only include bug fixes and improvements, it offers a brand new blacklisting feature proposed by @Byolock and a Song stat page almost entirely developped by @michaelkennethdavid .
Blacklisting an artist #192
Blacklisting an artist can be done through the artist page or directly in the settings. Blacklisting an artist is not definitive and can always be disabled from the same pages.
What does it do?
Blacklisting an artist will result in having him disappear from everywhere in the application:
- The song history
- The computed statistics
- Affinity
It can be useful when you listen to someone that does not only publish music but also comedies or things like that.
Song stats page #194
The song stats is a pretty straight to the goal page where you can see basic statistics on a song, exactly like you would do for an artist.
I won't enumerate all the features it contains and will let you check out the amazing work of @michaelkennethdavid!
Bug fixes
- The CORS env variable set would result in not being able to log in on the app #182
- The full privacy import changed a bit on Spotify side, resulting in not being able to import the data they send #201
Thanks again for the load of feedbacks, feature requests and merge requests you guys open!
TimothΓ©e
βοΈ QoL Update
Hello! welcome to this new release.
I've been working on some quality of life improvements for this release.
Responsive
Responsiveness had become more and more buggy and it was time for me to refresh the system.
- You now have more space on mobile to explore your statistics.
- The date picker should now be usable on mobile devices. #172
Miscellaneous
- Artist rank is now computed apart from the other statistics as it is the one that takes the most time to compute. #162
- The project description when sharing a link on social platform has been updated thanks to @michaelkennethdavid. #185
- You are now informed when a new update is available beside the YourSpotify header.
- Added specifications on how to add users to the Spotify application for them to be able to register on YourSpotify.
- Timezones: people using the platform from other country than the owner of the server can now specify their timezone in the settings. Timezone is needed when computing stats backend, but not when exploring your song history. Exploring your song history will always follow the timezone of your computer. #180
- Fixed a bug where a scrollbar would randomly appear when scrolling through your song history.
Thanks a lot for the numerous feedbacks in the issues section. I try to spend as much time as possible solving and exploring solutions with you. If you have any feedback regarding this release or the project in general, feel free to open an issue.
A huge thank you to all the sponsors of the project, your investments mean a lot to me.
TimothΓ©e
π Playlist update
Hello there!
It's time for a new YourSpotify update on this Saturday evening! This time, you can add songs to playlists from different places in the app.
Playlists
You can now create or add songs to a playlist from the following contexts.
Playlist from Top Songs
A new Create playlist button is available on the top right corner when exploring your top songs. Clicking this button will open a popup that lets you decide:
- If you want to create or choose a playlist to put your top songs in.
- The number of songs you want to put into.
Keep in mind that the songs that will be put in the final playlist depend on the time interval you selected before creating your playlist.
Playlist from Affinity
The same Create Playlist button can be found when using the new affinity feature. It lets you create playlists from common songs you have with someone. It's ideal if your friend uses your YourSpotify instance, so that you can listen to a playlist you two (maybe more) are sure to enjoy :).
Playlist from song
A new button is available on the right of each songs displayed on the platform, allowing you to put it in a playlist or create a new one, in the same manner as the flow for top songs.
Note that it now requires a new scope when logging in.
Miscellaneous
- Fetching images such as covers is now optimized to fetch the smallest image needed to display, opposed to the largest before.
- Fixed a bug where the X Axis of the Artist Listening Distribution would show incorrect values.
- Fixed useless additional renders when switching time intervals on the top screens causing requests to sometimes be duplicated.
I hope you'll love those new features! As always, if you have any feedback or issue with the project, feel free to open an issue here
TimothΓ©e
Friends and Dark mode update π―ββοΈπ
Hello guys, it's been a while!
It's time for another YourSpotify update, the third one. This update comes with exciting features such as dark mode and friends affinity.
Friends
A few features have been added so that you can use your YourSpotify instance with friends in an easy way.
Public view URL
The public view URL is a URL you can generate in the Settings page. It allows everyone with it to consult your YourSpotify profile. Any edition to your profile is disabled, the user will only be able to view. If your URL becomes too public and you receive too much traffic on your device, you can regenerate a new one, the older one will be instantly deprecated.
Also, from any page, after having generated a public URL, you can click the Share this page button on the side to copy the public link to the specific page you're in! The copied link will contain the time range you specified in the header.
Affinity
You can find a new tab on the sider when you access the platform, the Affinity tab. The affinity tab allows you to find affinity with one or more people registered on the platform. You can find affinity with songs, albums and artists. Its goal is to find the elements specified group are meant to like
How is it calculated π§
Affinity comes with two modes that require a bit of focus to understand.
- Minima: The minima mode takes the songs (can be albums or artists) of each people and create the proportion of the time listened of this element compared to all the time spent listening. Then it takes the minimum of all people values and sort the elements by this value. e.g if A listens to SongA 30% of his time and B listens to SongA 1% of his time, the value used for sorting will be 1%.
- Average: The average mode does the same calculations on the proportions and only differ when sorting the elements. While minima takes the minimum of the proportions, average computes the average value to sort. e.g if A listens to SongA 30% of the time and B listens to SongA 1% of his time, the value used will be ~15%.
The difference of these modes in terms of meaning is that the minima will ensure everyone knows the songs where the average mode will ensure a few subset of the group really like the song.
Dark mode π«£
Dark mode is out! The dark mode is synced to your profile so that you have a consistent experience across your devices. By default, the dark mode will be set to respect the device settings, but you can force the platform to be dark π or light π‘.
New stat π
Best 20 songs / albums / artists per hour of day
I introduced a brand new statistic that lets you see what songs you listened the most on a specific hour of the day. This stat will work better the more data you have and the larger the timespan. It lets you interpret the moods you're in at a specific moment of the day based on the artist you're listening too for example. Have fun using this stat!
Miscellaneous
- We have a new website icon thanks to @kimdre on #107.
- Repartition is now named distribution #113.
- An All range button is now accessible without having to manually select 2013 as a date of start. The start date is computed given your first record on YourSpotify, and won't break upon imports #119.
- Fixed a bug where changing interval on the Best Songs page would result in infinite loading the best songs.
Donations
A huge thanks to all donators:
I hope you guys will love the new features as much I am excited to present them.
Have a good one!
TimothΓ©e
Full privacy import, import history β±
Hello, second written release! I received my whole privacy data this week so I worked on implementing an importer of it.
Full privacy import
You can now import your data from the bundle Spotify sends you if you asked for your whole data. Work has been made on reducing database requests size to prevent from crashing if you request stats for a period of 6+ years π.
The files containing your whole history contains Spotify IDs of songs, making it way easier to import. This allows batch of 50 songs in one request.
I imported 96 000+ entries in less than 2 hours.
Related to #96
Import history
To keep track of your imports, an import history is now available. It helps you track the imports that failed and the ones which succeeded.
In case of failure, it keeps the files you uploaded and the state when it failed so that you can retry them. Retrying them will make them start where it stopped. If the importer cannot initialize again, your import will be marked as failure-removed, meaning that you cannot retry them again. Of course, you can clean the stored data of a failed import by hitting the clean up button.
Related to #91
Miscellaneous
- The server performs a database check on start, meaning that if a song has no album stored, it will fetch it before starting the server loop. If an album is missing its artist, it will also fix it. Related to #95
- Every request to the Spotify API is retried 10 times before failing now. Related to #91
- Updated dependencies.
- Graph dates are more accurate. For example, if you hover a graph with a precision of month (meaning that you have one number per month), the tooltip with show 01/2022 instead of 01/01/2022.
Login with Spotify / Admin panel
Hello, this is the first written release in the YourSpotify repository to keep track of the implemented features and how they work.
Login with Spotify (#67)
I switched the login functionality from the old username / password form to Spotify OAuth. I needed to run migration in order to do that, they do the following:
- If there is more than one account with the same Spotify account (same Spotify ID), only the oldest is kept, the other are removed.
- People login and register using the same
Login with Spotify
button. When registrations are disabled, the login button cannot create an account.
Admin capabilities
I added the admin feature so that there are admins in the app and not everyone is allowed to do everything. After updating, all accounts already existing will be admin. You can set or unset admin capabilities in the settings menu if you are an admin.
If there is no data in the database, the first account created is always admin. If all accounts are removed, the next created one will be admin.
Deleting users
You can now, as an admin, delete existing users. Deleting a user will remove every data belonging to it. Note that every orphan track will be removed, and subsequently any album that has no track and artist that has no album wiill be removed.
Miscellaneous
- You can now change your username in the settings menu
- Improved looper stability
Notes:
- Please do not remove all the accounts with the registrations disabled for now
- Please do not unset admin on all the accounts