Picify is a Flask application that converts your photos into Spotify playlists that can be saved for later listening, providing a uniquely personal way to explore new music. The experience is facilitated by interacting and integrating a wide range of services. Try it here.


The main workflow for the app is as follows:

  1. The user uploads a photo to the Picify Flask server.
  2. The image is passed onto the Google Cloud Vision API, where labels and entities are predicted/extracted. This information then gets passed back to the Flask server.
  3. The labels and entities are filtered by a dynamic confidence threshold which is iteratively lowered until a large enough set of descriptors for the image can be formed.
  4. Each of the descriptors in the above set are then expanded into associated "moods" using the Datamuse API.
  5. All of the descriptors and associated moods are filtered against a whitelist of "musically-relevant" terms compiled from sources such as AllMusic and Every Noise at Once, excepting descriptors with extremely high confidence (for example, for a picture of Skrillex this might be "Skrillex").
  6. Finally, the processed words are matched against existing Spotify playlists, which are sampled to form the final playlist.


Built With

Share this project: