Skip to content
forked from cgzirim/seek-tune

An implementation of Shazam's song matching algorithm.

License

Notifications You must be signed in to change notification settings

faik/not-shazam

This branch is 226 commits ahead of, 271 commits behind cgzirim/seek-tune:main.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

888070f · Jul 29, 2024
Jul 14, 2024
Jul 14, 2024
Jun 23, 2024
Jul 14, 2024
Jul 14, 2024
Jul 14, 2024
Jul 14, 2024
Jul 10, 2024
Jul 7, 2024
Jul 29, 2024
May 21, 2024
Jul 14, 2024
Jun 23, 2024
Jun 23, 2024
Jul 14, 2024
Jul 14, 2024

Repository files navigation

NotShazam 🎵

screenshot

Demo in Video

Description 🎼

NotShazam is an implementation of Shazam's song recognition algorithm based on insights from these resources. It integrates Spotify and YouTube APIs to find and download songs.

Installation 🖥️

Prerequisites

Steps

Clone the repository:

git clone https://github.com/cgzirim/not-shazam.git

Install dependencies for the backend

cd not-shazam
go get ./...

Install dependencies for the client

cd not-shazam/client
npm install

Usage 🚴

Start the Client App

cd client
npm start

Serve the Backend App

go run main.go serve [-proto <http|https>] [-port <port number>]

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 <https://open.spotify.com/.../...>

Find matches for a song/recording

go run main.go find <path-to-wav-file>

Delete fingerprints and songs

go run main.go erase

Example 📽️

Download a song

$ go run main.go download https://open.spotify.com/track/4pqwGuGu34g8KtfN8LDGZm?si=b3180b3d61084018
Getting track info...
Now, downloading track...
Fingerprints saved in MongoDB successfully
'Voilà' by 'André Rieu' was downloaded
Total tracks downloaded: 1

Find matches of a song

$ go run main.go find songs/Voilà\ -\ André\ Rieu.wav
Top 20 matches:
        - Voilà by André Rieu, score: 5390686.00
        - I Am a Child of God by One Voice Children's Choir, score: 2539.00
        - I Have A Dream by ABBA, score: 2428.00
        - SOS by ABBA, score: 2327.00
        - Sweet Dreams (Are Made of This) - Remastered by Eurythmics, score: 2213.00
        - The Winner Takes It All by ABBA, score: 2094.00
        - Sleigh Ride by One Voice Children's Choir, score: 2091.00
        - Believe by Cher, score: 2089.00
        - Knowing Me, Knowing You by ABBA, score: 1958.00
        - Gimme! Gimme! Gimme! (A Man After Midnight) by ABBA, score: 1941.00
        - Take A Chance On Me by ABBA, score: 1932.00
        - Don't Stop Me Now - Remastered 2011 by Queen, score: 1892.00
        - I Do, I Do, I Do, I Do, I Do by ABBA, score: 1853.00
        - Everywhere - 2017 Remaster by Fleetwood Mac, score: 1779.00
        - You Will Be Found by One Voice Children's Choir, score: 1664.00
        - J'Imagine by One Voice Children's Choir, score: 1658.00
        - When You Believe by One Voice Children's Choir, score: 1629.00
        - When Love Was Born by One Voice Children's Choir, score: 1484.00
        - Don't Stop Believin' (2022 Remaster) by Journey, score: 1465.00
        - Lay All Your Love On Me by ABBA, score: 1436.00

Search took: 856.386557ms

Final prediction: Voilà by André Rieu , score: 5390686.00

Resources 🗃️

Author ✒️

  • Chigozirim Igweamaka

License 🔒

This project is licensed under the MIT License - see the LICENSE file for details.

About

An implementation of Shazam's song matching algorithm.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 71.9%
  • JavaScript 20.1%
  • CSS 4.0%
  • Shell 2.2%
  • HTML 1.8%