Introduction
The SearchLy API provides similarity searching based on song lyrics.
Operations
The API allows for the /similarity/bysong operation, which allows clients to search the similarity for an existing song in the database. Also, the API has an additional /similarity/bycontent endpoint which allows clients to search similarity given a free String input through a JSON request body. Additional /song/search operation is available for searching songs given a query String.
Endpoint
The API endpoint for the SearchLy API v1 is as follows:
Motivation
This project was built in order to create an API for searching similarities based on song lyrics. There are a lot of songs in the industry and most of them are talking about the same topic. What I wanted to prove with SearchLy was to estimate how similar are two songs between them based on the meaning of their lyrics.
SearchLy is using a database of 100k songs from AZLyrics, using this scraper, which is being updated periodically. Then, using word2vec and NMSLIB, it was possible to create an index where you can search similarities using the k-nearest neighbors (KNN) algorithm.
> Note: I am currently using a micro-instance from DigitalOcean where the API is deployed, so you should expect a bad performance. However, if this API becomes popular I will deploy it in a bigger instance.