ProbableOdyssey

Tuner: why dating apps (probably) don't match with Spotify data

When I was on Tinder many years ago, the app prompted me to enter my Spotify details to my profile. When I did, some of my top artists and albums appeared on my profile which seemed a bit lackluster. This made me think of the compatibility of people based on their taste in music, and I wondered: why isn’t this data being used to help match people?

At the time I didn’t have the skills or the tools needed to explore this idea. But as I outlined in my post a couple of months ago, I was able to combine newly acquired skills with Flask and embeddings to create a proof-of-concept of this idea: tuner.

Using the Spotify API was a relatively straightforward process: sign into https://developer.spotify.com/, create an app, enter in the redirect URL, and copy your Client ID and secret ID. This grants you developer privileges, meaning your account has access to your data and public data, but not anyone else’s data.

In order to get permissions for other peoples data, you need to submit a request to Spotify via their developer portal with a brief description of what your app is and what it does (plus a demo video). This sounded like a great idea, I could open up this proof-of-concept to the world and let people learn about embeddings using their music data!

So I applied, and got a response after a month or so:

Dear Tuner team,

Thank you for submitting Tuner to Spotify for review.

We appreciate your interest and efforts in using Spotify’s open platform to innovate and build interesting integrations. However, after reviewing we found that your app does not comply with our terms and conditions for the following reasons:

* You must not analyze the Spotify Content or the Spotify Service for any
  purpose, including without limitation, benchmarking, functionality,
  usage statistics, or user metrics
* The product or service is integrated with streams or content from
  another service

We will therefore not be able to support your use case.

An unfortunate outcome… Addressing their points in reverse order:

  1. The only reason I needed to source data from other services is because they changed the API halfway through my project, and made it impossible to get related tracks and small track snippets when generating a recommended playlist.

  2. The definition of “analyzing Spotify Content” is a bit broad, and perhaps so is the definition of “user metrics”, but I would argue I’m not analysing the data:

    • This app uses the genre tags of a users top artists to determine their music taste, this is the extent of Spotify data that’s used
    • There is no analysis of data taking place – only computation of a users tags to generate Spotify playlists

The genre vector computed from the embedding is a different representation of their data which isn’t analysed. But taking the definition of a metric as “a noun describing a specific type of measurement”, I can see how they arrived at their interpretation.

How does this project conclude? I’m tempted to revisit the app and replace the extra service data access with placeholders. But addressing the “analyzing data” clause will be much more difficult. Perhaps there’s a way to fuzz the data so it’s not matching users? I think there’s still utility in this to generate playlists to help users discover new artists, but it seems debatable if that would even be allowed.

In any case, publishing this proof-of-concept was an extension of my original project. I wanted to answer “why isn’t Spotify data being used to help match people?”, and I can conclude the reason is not because the technology isn’t there, but because Spotify’s terms of usage might not allow it.

(Anyway, I’ll be keeping an eye out to see if Spotify releases a matching algorithm or partners with a dating app)

Reply to this post by email ↪