findio is a web app built on Node.js and Python with TypeScript, Express, HTML/CSS/JS, Bootstrap, and TensorFlow (+TensorFlow.js).

It provides an overengineered search interface for the Spotify catalog with the ability to search across a number of different attributes, filters, and sorting methods, many of which are not currently made available as part of the Spotify API. Use it to find new songs in a different way or analyze your favorite songs to understand how they are related.

  • Audio feature similarity (by image or manual)

  • Release year range

  • Genre

  • Explicit content

  • Popularity

  • Search depth

  • Track duration

  • 29 different sorting options

Submitted as part of the r/ProgrammerHumor Hackathon 2019

Try out findio for yourself here.

findio is open source and all of the code is available on GitHub.

Built by Christian Steinmetz and Sean Myers

Audio features by image

We train a CNN (using Keras) on a dataset of album covers and the audio features of a track from that album, in an effort to predict the audio features of a track based solely on its album cover. After training, we include this model in the front-end, which allows users to select an image to run inference on. The model will predict the audio features of a track as if the uploaded image was an album cover.

During the search filtering process we collect the audio features for all tracks in the search and then filter tracks out of the search that have a Euclidean distance greater than the +/- the specified audio features. This approximates a kind of “search by image” for the Spotify catalog. Optionally, you can directly input audio feature values without uploading an image.