asuarez.dev – searchly
Introduction
The SearchLy API provides similarity searching based on song lyrics.
Operations
The API allows for the /similarity/by_song operation, which allows clients to search the similarity for an existing song in the database. Also, the API has an additional /similarity/by_content 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 , 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.
- Homepage
- https://api.apis.guru/v2/specs/asuarez.dev:searchly/1.0.json
- Provider
- asuarez.dev:searchly / searchly
- OpenAPI version
- 3.0.1
- Spec (JSON)
- https://api.apis.guru/v2/specs/asuarez.dev/searchly/1.0/openapi.json
- Spec (YAML)
- https://api.apis.guru/v2/specs/asuarez.dev/searchly/1.0/openapi.yaml
Tools (5)
Extracted live via the executor SDK.
-
similarity.srcSearchlyApiV1ControllersSimilarityByContentEndpoint for an end-user client to search similarity by content.
If you want to run the /similarity/by_content operation, you can do so via an HTTP POST command to the following URL:
-
similarity.srcSearchlyApiV1ControllersSimilarityBySongEndpoint for an end-user client to search similarity by song identifier.
If you want to run the /similarity/by_song operation, you can do so via an HTTP GET command to the following URL:
-
song.srcSearchlyApiV1ControllersSongSearchEndpoint for an end-user client to search songs from the database given a String query.
If you want to run the /song/search operation, you can do so via an HTTP GET command to the following URL:
-
openapi.previewSpecPreview an OpenAPI document before adding it as a source
-
openapi.addSourceAdd an OpenAPI source and register its operations as tools