Introduction to SeekTune
SeekTune is an exciting project that recreates the functionality of Shazam's renowned music recognition system. It is designed to identify songs by analyzing audio content and cross-referencing it with a database of recorded music. Importantly, SeekTune also integrates with popular platforms like Spotify and YouTube, allowing users to easily find and download songs.
Description 🎼
SeekTune utilizes Shazam's music recognition algorithm. Although it primarily aims to match songs exactly, the project incorporates functionality to find and download music via Spotify and YouTube APIs. Presently, it is still under development and primarily supports audio files in WAV format. Despite its limitations, SeekTune holds promise for future enhancements with collaborative efforts.
Installation :desktop_computer:
Before using SeekTune, users must ensure they have the necessary prerequisites, which include:
- Golang: This programming language is necessary for running the backend. Install Golang.
- FFmpeg: Essential for handling multimedia files. Install FFmpeg.
- NPM: This is needed for running the frontend client.
Usage :bicyclist:
To utilize SeekTune, users follow these steps:
-
Start the Client App: Navigate to the client directory and use the command
npm start
. -
Start the Backend App: In a separate terminal, execute the Go server using
go run *.go serve
. -
Download Songs: With a valid Spotify link (from the web or desktop app), users can download songs using the command
go run *.go download
. -
Database Management: Users can save local songs to the database or delete fingerprints and songs with specific commands to manage local music files and fingerprints.
-
Finding Song Matches: SeekTune allows users to find matches for recordings by providing the path to the WAV file. The system will analyze and return the best matches based on scoring.
Database Options 👯♀️
SeekTune primarily uses SQLite for database storage, offering a straightforward setup. However, it also supports MongoDB for users who prefer scaling and flexibility. Setting up with MongoDB involves configuring environment variables to connect to an existing MongoDB instance.
Resources :card_file_box:
SeekTune is built on insights from several resources, including detailed descriptions of Shazam's algorithms and audio fingerprinting technologies. These resources provide foundational knowledge crucial for users and developers interested in the intricacies of music recognition.
Author :black_nib:
Chigozirim Igweamaka is the developer behind SeekTune. He invites collaboration, feedback, and contributions to improve the project. His additional projects and contact information can be found on GitHub, LinkedIn, and Twitter.
License :lock:
This project is available under the MIT License, ensuring that users have the flexibility to use, modify, and distribute the software within the boundaries of the license agreement.
SeekTune is an innovative step towards better music recognition technology and promises to evolve with community input and technological advancements.