diff --git a/README.md b/README.md index 8017ef6..5095c1f 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -

NotShazam :musical_note:

+

SeekTune :musical_note:

@@ -10,7 +10,7 @@

Demo in Video

## Description 🎼 -NotShazam is an implementation of Shazam's song recognition algorithm based on insights from these [resources](#resources--card_file_box). It integrates Spotify and YouTube APIs to find and download songs. +SeekTune is an implementation of Shazam's song recognition algorithm based on insights from these [resources](#resources--card_file_box). It integrates Spotify and YouTube APIs to find and download songs. [//]: # (## Current Limitations While the algorithm works excellently in matching a song with its exact file, it doesn't always find the right match from a recording. However, this project is still a work in progress. I'm hopeful about making it work, but I could definitely use some help :slightly_smiling_face:. @@ -27,44 +27,57 @@ Additionally, it currently only supports song files in WAV format. ### Steps Clone the repository: ``` -git clone https://github.com/cgzirim/not-shazam.git +git clone https://github.com/cgzirim/seek-tune.git ``` Install dependencies for the backend ``` -cd not-shazam +cd seek-tune go get ./... ``` Install dependencies for the client ``` -cd not-shazam/client +cd seek-tune/client npm install ``` ## Usage :bicyclist: -Start the Client App +▸ Setup MongoDB + +To configure the database connection, you need to set the following environment variables: +- `DB_USER`: The username for the MongoDB database. +- `DB_PASS`: The password for the MongoDB database. +- `DB_NAME`: The name of the MongoDB database. +- `DB_HOST`: The host address of the MongoDB database. +- `DB_PORT`: The port number of the MongoDB database. + +The database connection URI is constructed using the environment variables. +If the `DB_USER` or `DB_PASS` environment variables are not set, it defaults to connecting to `mongodb://localhost:27017`. + +▸ Start the Client App ``` cd client npm start ``` -Serve the Backend App +▸ Serve the Backend App ``` +cd .. # to go to the root dir go run main.go serve [-proto ] [-port ] ``` -Download a Song +▸ Download a Song Note: A link from Spotify's mobile app won't work. You can copy the link from either the desktop or web app. ``` go run main.go download ``` -Find matches for a song/recording +▸ Find matches for a song/recording ``` go run main.go find ``` -Delete fingerprints and songs +▸ Delete fingerprints and songs ``` go run main.go erase ``` -### Example :film_projector: +## Example :film_projector: Download a song ``` $ go run main.go download https://open.spotify.com/track/4pqwGuGu34g8KtfN8LDGZm?si=b3180b3d61084018 @@ -110,6 +123,11 @@ Final prediction: Voilà by André Rieu , score: 5390686.00 - [How does Shazam work - Toptal](https://www.toptal.com/algorithms/shazam-it-music-processing-fingerprinting-and-recognition) - [Creating Shazam in Java](https://www.royvanrijn.com/blog/2010/06/creating-shazam-in-java/) + +## Todo +- [ ] Enable song addition from WAV files +- [ ] Add support for file-based DB as an alternative to MongoDB. + ## Author :black_nib: - Chigozirim Igweamaka - Check out my other [GitHub](https://github.com/cgzirim) projects.