SeekTune :musical_note:
描述 🎼
SeekTune 是基于这些资源中的见解实现的 Shazam 歌曲识别算法。它集成了 Spotify 和 YouTube API 来查找和下载歌曲。
安装 :desktop_computer:
前提条件
步骤
克隆仓库:
git clone https://github.com/cgzirim/seek-tune.git
安装后端依赖
cd seek-tune
go get ./...
安装客户端依赖
cd seek-tune/client
npm install
使用方法 :bicyclist:
▸ 启动客户端应用 🏃♀️➡️
# 假设你在客户端目录中:
npm start
▸ 启动后端应用 🏃♀️
在另一个终端窗口中:
cd seek-tune
go run *.go serve [-proto <http|https> (默认: http)] [-port <端口号> (默认: 5000)]
▸ 下载歌曲 📥
注意:Spotify 移动应用的链接不起作用。你可以从桌面或网页应用复制链接。
go run *.go download <https://open.spotify.com/.../...>
▸ 将本地歌曲保存到数据库(支持所有音频格式) 🗃️
go run *.go save [-f|--force] <歌曲文件或歌曲目录的路径>
-f
或 --force
标志允许即使没有找到 YouTube ID 也保存歌曲。请注意,如果没有 YouTube ID,前端将不会显示匹配结果。
▸ 为歌曲/录音查找匹配项 🔎
go run *.go find <wav文件路径>
▸ 删除指纹和歌曲 🗑️
go run *.go erase
示例 :film_projector:
下载歌曲
$ go run *.go download https://open.spotify.com/track/4pqwGuGu34g8KtfN8LDGZm?si=b3180b3d61084018
获取曲目信息...
正在下载曲目...
指纹已成功保存到 MongoDB
'Voilà' 由 'André Rieu' 演唱的歌曲已下载
总共下载的曲目数:1
查找歌曲匹配项
$ go run *.go find songs/Voilà\ -\ André\ Rieu.wav
前 20 个匹配项:
- Voilà by André Rieu, 得分:5390686.00
- I Am a Child of God by One Voice Children's Choir, 得分:2539.00
- I Have A Dream by ABBA, 得分:2428.00
- SOS by ABBA, 得分:2327.00
- Sweet Dreams (Are Made of This) - Remastered by Eurythmics, 得分:2213.00
- The Winner Takes It All by ABBA, 得分:2094.00
- Sleigh Ride by One Voice Children's Choir, 得分:2091.00
- Believe by Cher, 得分:2089.00
- Knowing Me, Knowing You by ABBA, 得分:1958.00
- Gimme! Gimme! Gimme! (A Man After Midnight) by ABBA, 得分:1941.00
- Take A Chance On Me by ABBA, 得分:1932.00
- Don't Stop Me Now - Remastered 2011 by Queen, 得分:1892.00
- I Do, I Do, I Do, I Do, I Do by ABBA, 得分:1853.00
- Everywhere - 2017 Remaster by Fleetwood Mac, 得分:1779.00
- You Will Be Found by One Voice Children's Choir, 得分:1664.00
- J'Imagine by One Voice Children's Choir, 得分:1658.00
- When You Believe by One Voice Children's Choir, 得分:1629.00
- When Love Was Born by One Voice Children's Choir, 得分:1484.00
- Don't Stop Believin' (2022 Remaster) by Journey, 得分:1465.00
- Lay All Your Love On Me by ABBA, 得分:1436.00
搜索用时:856.386557ms
最终预测:Voilà by André Rieu,得分:5390686.00
数据库选项 👯♀️
此应用程序默认使用 SQLite 数据库,但如果需要,你可以切换到 MongoDB。
使用 MongoDB
-
配置 MongoDB 连接: 要连接到你的 MongoDB 实例,请设置以下环境变量:
DB_TYPE
:将其设置为 "mongo" 以表示使用 MongoDB。DB_USER
:你的 MongoDB 数据库用户名。DB_PASS
:你的 MongoDB 数据库密码。DB_NAME
:你想使用的 MongoDB 数据库名称。DB_HOST
:你的 MongoDB 服务器的主机名或 IP 地址。DB_PORT
:你的 MongoDB 服务器监听的端口号。
注意: 数据库连接 URI 是使用环境变量构建的。 如果未设置
DB_USER
或DB_PASS
环境变量,默认连接到mongodb://localhost:27017
。
资源 :card_file_box:
作者 :black_nib:
许可证 :lock:
本项目采用 MIT 许可证 - 详情请参阅 LICENSE 文件。