Custom Spotify Wrapped

CI License: MIT GitHub commit activity (branch) Last Commit made-with-python Release Repo size Roadmap

⚠️ Notice:
This is the README for the experimental version 6.0.1-beta (updates to the GUI, including raw data viewer).
If you want the latest stable release, please download v6.0.0 from the Releases page or check out the Stable branch.

Custom Spotify Wrapped

Flexible, personal, and fully under your control.

This is a personal project I’ve been building during my free time: a custom version of Spotify’s Wrapped feature, fully under my own control.

Instead of being limited to what Spotify chooses to show, this tool lets me generate and explore exactly the statistics and charts I want — from top artists and songs to total listening time, monthly trends, and even genre breakdowns.

It basically tracks and analyzes your Spotify listening data and creates a custom Spotify Wrapped for you.

*The latest version requires a Spotify Developer account. If you don’t have access to one, please download version 1.0.0. View the CHANGELOG for more information.

Alt text

Table of Contents

Getting Started

Installation

  1. Make sure you have Python 3.11.2 installed.
    Compatibility with other versions is not guaranteed

  2. Install the package by running:
     $ pip install git+https://github.com/WilleGyr/Spotify_Wrapped.git@main
    
  3. Create a file named spotifywrapped_credentials.json that follows the template. Place it in the directory you are going to run the program from
  4. Google Sheet connected to your Spotify account through this IFTTT applet. (Guide below)
  5. An active Spotify Developer account

Google Sheet Setup

  1. Sign up and connect this IFTTT applet to your Spotify account and Google Drive.
  2. Wait for the applet to create your Google Sheet (may take up to an hour) and make the sheet public for those with access to the link.
  3. Find your SPREADSHEET_ID from the Google Sheets url:
    https://docs.google.com/spreadsheets/d/SPREADSHEET_ID/edit?gid=0#gid=0
  4. Paste your SPREADSHEET_ID into credentials.py

Spotipy Setup

  1. Browse to Spotify for developers
  2. Log in with your Spotify account
  3. Click on ‘Create an app’ and provide the required information
  4. After creation, you see your CLIENT_ID and you can click on ‘Show client secret` to unhide your CLIENT_SECRET
  5. Paste your CLIENT_ID and SECRET_ID into credentials.py

Usage

  1. Run this command to launch the program
    $ spotifywrapped
    
  2. View your Spotify Wrapped graphs
    On the right side of the window, a graph will be visible immediately.
    You can change which graph you want to view using the filters:
    • Time period
      • Any available month
      • Whole year overview
    • Types
      • Basic Stats
      • Top Artists
      • Top Songs
      • Listening Activity per Month (only available for “Whole Year”)
      • Top Genres (Only for “Whole Year”)
  3. Generate new charts
    To create fresh charts based on the latest data:
    • Select the desired time period.
    • (Optional) Check the box if you want Genre charts included.
    • Click the “Generate” button in the bottom right corner.

Roadmap

  • Add genre analysis
  • Optimize genre calculations
  • Add progress bars
  • Support multiple spreadsheets
  • GUI with chart viewer
  • Genre Explorer
    • List of all genres
    • Every artist per genre
  • Raw Data Explorer
    • View the whole csv file
    • Filter by artist, genres songs and months

License

Distributed under the MIT License. See the LICENSE file for more information.