爱意满满的作品展示区。
foam

我音乐自由了。不送码,给大家开源

  foam ·
foamzou · May 4, 2022 · 21667 views
This topic created in 1644 days ago, the information mentioned may be changed or developed.

大家好,继之前写了 b 站音频下载脚本后,这次的自动化更进一步,支持直接上传到音乐云盘(目前仅支持网易云)。该项目也支持一键“解锁”歌单中无法播放的歌曲(适合不喜欢用 proxy 方式解锁的同学)。

如果对你有帮助,欢迎 Star 呀: https://github.com/foamzou/melody/

Melody

项目介绍

大家好,我叫 Melody ,是你的音乐精灵,旨在帮助你更好地管理音乐。目前的主要能力是帮助你将喜欢的歌曲或者音频上传到音乐平台的云盘。

为了避免不必要的纠纷和账号安全问题,本项目不会以任何形式提供在线 demo 服务,也请大家不要使用公共服务。本地部署很简单。

Feature

  • 支持在各大音乐和视频网站检索歌曲。目前支持 咪咕、网易云、QQ 音乐、酷狗、bilibili 等站点。详情可以在我的 media-get 项目中查看
  • 用链接搜索歌曲
  • 一键“解锁”无法播放的歌曲(实验性功能,目前仅支持网易云)

安装和启动

依赖

确保以下两个依赖是安装好的

  1. node >= v14.19 (官网下载)
  2. FFmpeg (windows 安装介绍)

下载源码及初始化服务

其中 init.js 会下载核心组件,初始化 node 依赖,尽可能不需要你关心安装细节

git clone https://github.com/foamzou/melody.git
cd melody
node init.js

配置你的账号

cp backend/.profile/accounts.sample.json backend/.profile/accounts.json

然后编辑 backend/.profile/accounts.json 。

  1. 该 JSON 中的 key 是 Melody Key,是你在网页访问该服务的唯一凭证
  2. 网易云账号信息: account 和 password 可以后续在网页修改
  3. 该 JSON 是个数组,支持配置多个账号

启动服务

建议使用 pm2 将本服务常驻后台

node backend/src/index.js

最后,在浏览器访问 http://127.0.0.1:5566 就可以使用啦~

功能介绍

关键词搜索歌曲

如果试听后是你想要的,点击上传按钮会将该歌曲上传到你的网易云音乐云盘

链接搜索

有时候我们在 b 站 听到好听的歌,也可以上传到云盘

一键解锁歌单

点击 解锁全部(实验性功能) 后,服务会自动匹配每首歌,并把歌曲上传到云盘,最后做个 match ,以保证你还能看到歌词、评论

手动搜索匹配

当某首歌自动解锁失败后,还可以手动点击搜索按钮,找到符合的歌曲后,手动点击上传按钮

Roadmap

计划在后面支持以下功能

  • 页面适配移动端
  • 云盘歌曲 match 手动纠错
  • 浏览器油猴脚本
  • 支持播放列表
  • 支持播放云盘的歌曲
  • 支持 docker 部署
  • 支持 youtube-dl,you-dl 等工具作为输入源
  • 支持 酷狗、qq 音乐等音乐平台的云盘作为输出
  • 偏好设置
  • 版本更新提示

致谢

100 replies  •  2022-08-07 22:30:57 +08:00
mlhadoop
mlhadoop
May 4, 2022
1
执行力💯
foam
foam
OP
May 4, 2022 via Android
2
@mlhadoop 谢谢打破零回复😂
Either
Either
May 4, 2022 via iPhone
3
昨晚在手动上传,今天就看到解决方案。🐴👀
archbishop
archbishop
May 4, 2022 via Android
4
好人一生平安🙏🙏🙏
yibie
yibie
May 4, 2022❤️1
5
已经发送感谢
foam
foam
OP
May 4, 2022
6
@Either #3 哈哈 赶紧试用下
foam
foam
OP
May 4, 2022
7
@archbishop #4
@yibie #5
谢谢支持
zytomorrow
zytomorrow
May 4, 2022
8
棒!!!等一个 docker 镜像
tediorelee
tediorelee
May 4, 2022
9
坐等支持 Youtube ,很多 mix 我都在国内 app 上找不到
leaves98
leaves98
May 4, 2022
10
厉害了 老哥
waler
waler
May 4, 2022
11
非常感谢!!!
A01514035
A01514035
May 4, 2022
12
mark , 等一个 docker 镜像
foam
foam
OP
May 4, 2022❤️1
13
@tediorelee #9 指的是 YouTube Music 吗?还是 YouTube Video 转音频? 后者已经支持了。
akumans
akumans
May 5, 2022 via iPhone
14
非常不错~
ilyyfan
ilyyfan
May 5, 2022
15
牛逼,感谢老哥
e1d4py0KiD6KgqkQ
e1d4py0KiD6KgqkQ
May 5, 2022 via Android
16
只会双击 apk🙈🙈你这个不懂
tuutoo
tuutoo
May 5, 2022
17
希望 docker 版的可以优先做, 这样能降低不少门槛, 前两个依赖可能就难倒好多人.

环境可能不一样, 我 CentOS 上部署成功了, 但是报 Key 不对, 可能我部署的过程有问题.
本地试了一下, 先费了老大劲在 macOS 上装 ffmpeg, 服务跑起来了,Key 没问题, 到绑定帐号这一步, 登陆时候又报错了.

ℹ uid(XXXXXXXX)'s cookie not found from .profile
ℹ uid(XXXXXXXX) login...

ERROR requestWyyApi failed: {
status: 502,
body: {
code: 502,
msg: Error: unable to verify the first certificate
at TLSSocket.onConnectSecure (node:_tls_wrap:1530:34)
at TLSSocket.emit (node:events:390:28)
at TLSSocket._finishInit (node:_tls_wrap:944:8)
at TLSWrap.ssl.onhandshakedone (node:_tls_wrap:725:12) {
code: 'UNABLE_TO_VERIFY_LEAF_SIGNATURE',
config: [Object],
request: [Writable],
response: undefined,
isAxiosError: true,
toJSON: [Function: toJSON]
}
},
cookie: []
}
cassyfar
cassyfar
May 5, 2022
18
电话怎么填国际电话区号?
cassyfar
cassyfar
May 5, 2022
19
一运行直接把终端关闭了。。。错误信息看不到
ColorfulBoar
ColorfulBoar
May 5, 2022
20
@cassyfar 目测这个版本就没做……你手工搜索一下把所有包含 account 和 password 的地方塞个 countrycode 进去就能凑合着用了(虽然对我来说好像只有来自 bilibili 的能下下来,然后上传一定失败,约等于不可用,如果你不在国内我猜也是这个结果
foam
foam
OP
May 5, 2022 via Android
21
@tuutoo 是的,docker 得先支持了。
你的是证书问题,是不是开了 UnblockNeteaseMusic 服务劫持了网易云请求?或者本地证书有问题。
foam
foam
OP
May 5, 2022 via Android
22
@tuutoo
可以先试试。
控制台执行,windows 下应该是 set NODE_TLS_REJECT_UNAUTHORIZED=0,Linux 和 mac 是 export NODE_TLS_REJECT_UNAUTHORIZED=0

ref https://github.com/Binaryify/NeteaseCloudMusicApi/issues/1070
foam
foam
OP
May 5, 2022 via Android
23
@cassyfar
@ColorfulBoar
晚点看看海外怎么优化下
cassyfar
cassyfar
May 5, 2022
24
@foam
@ColorfulBoar

塞了个 coutrycode 可以登录了。体验不错!(就是好像只有逗音能听)
qbhy
qbhy
May 5, 2022
25
牛
suyuyu
suyuyu
May 5, 2022
26
以前写了个类似的东西写到一半烂尾了,,,
foam
foam
OP
May 5, 2022 via Android
27
@cassyfar 那你们一般在国外怎么使用国内音乐平台的,开代理吗?😄
foam
foam
OP
May 5, 2022 via Android
28
@suyuyu 坚持不易啊
niknik
niknik
May 5, 2022
29
mark 等 docker
mywaiting
mywaiting
May 5, 2022
30
一直等这样一个开源作品,终于~~~

多谢!!!
4196
4196
May 5, 2022
31
其他歌单都可以访问,唯独 [我喜欢的音乐] 这个歌单请求返回结果是空,控制台报错

[
省略......,
{
id: 1826753,
fee: 8,
payed: 0,
realPayed: 0,
st: 0,
pl: 128000,
dl: 0,
sp: 7,
cp: 1,
subp: 1,
cs: false,
maxbr: 999000,
fl: 128000,
pc: null,
toast: false,
flag: 0,
paidBigBang: false,
preSell: false,
playMaxbr: 999000,
downloadMaxbr: 999000,
maxBrLevel: 'lossless',
playMaxBrLevel: 'lossless',
downloadMaxBrLevel: 'lossless',
plLevel: 'standard',
dlLevel: 'none',
flLevel: 'standard',
rscl: null,
freeTrialPrivilege: [Object],
chargeInfoList: [Array]
},
... 900 more items
],
sharedPrivilege: null,
resEntrance: null
} {"msg":"参数错误","code":400}{"msg":"参数错误","code":400}


ERROR get user all playlist failed, uid:
N032138
N032138
May 5, 2022
32
做个 docker 版食用更方便呀
Echoleung
Echoleung
May 5, 2022
33
马克,同等 docker
oluoluo
oluoluo
May 5, 2022
34
码住
sypopo
sypopo
May 5, 2022
35
同等 docker
melsp
melsp
May 5, 2022 via Android
36
感谢
lfsc
lfsc
May 5, 2022
37
大佬
tuutoo
tuutoo
May 5, 2022 via Android
38
@foam 谢谢 应该是你说这问题我回去试试。
的确是路由上布署了 UnblockNeteaseMusic ,前几天试了没效果,用不起来,忘记关了。。
以后就靠你这个项目了 哈哈 还能传到云音乐,赞
standin000
standin000
May 5, 2022
39
楼主厉害!
rfrftt
rfrftt
May 5, 2022❤️2
40
楼主厉害
贴下 dockerfile
-----------------------
FROM node:17.9.0-buster
RUN apt update && apt install -y ffmpeg git vim && ffmpeg -version
RUN git clone 'https://github.com/foamzou/melody.git' /melody && cd /melody && node init.js
EXPOSE 5566
CMD exec node /melody/backend/src/index.js
-----------------------
volume 映射配置文件 /melody/backend/.profile/accounts.json
a566
a566
May 5, 2022
41
牛逼 大大的点赞了
foam
foam
OP
May 5, 2022 via Android
42
@rfrftt 感谢老哥先贴了个 docker file 。
另外确认下,服务里会使用临时目录(node.js 的 tmp 方法,不确定获取到的目录是否可用)作为临时歌曲存储目录,可能要确认下上传功能是否正常。
foam
foam
OP
May 5, 2022 via Android
43
@4196 晚点看看
rfrftt
rfrftt
May 5, 2022 via iPhone
44
@foam 正在使用解锁全部,看了下云盘里面不停的有新增曲目🎵,功能是正常的
cassyfar
cassyfar
May 5, 2022
45
@foam 之前用过网易云,不过好多歌都听不了了。
96368a
96368a
May 5, 2022
46
太棒了,这下不用网易 qq 来回切了🤣
xmt328
xmt328
May 5, 2022
47
本地编译了一个 docker 版本先体验着,坐等作者出官方版本
xtinput
xtinput
May 5, 2022
48
不怕律师函?
Allan0423
Allan0423
May 5, 2022
49
好人一生平安
cue
cue
May 5, 2022 via Android
50
等 docker
fandr
fandr
May 5, 2022
51
JAY
tomchiler
tomchiler
May 5, 2022
52
好用好用
yangzj1992
yangzj1992
May 5, 2022
53
感谢大佬,本地部署了下,试了下不少歌上传时还是失败。= =
yangzj1992
yangzj1992
May 5, 2022
54
@yangzj1992 #53 #53 补一下 case: 『 A/Z 』 前几首都是
soseek
soseek
May 5, 2022 via iPhone
55
我记得好像网易云音乐的网盘有些歌曲上传会被替换或者限制不是 VIP 无法播放?
nishuoshenme
nishuoshenme
May 5, 2022
56
再次检查 media-get 是否安装成功
media-get 安装失败。请手动从 https://github.com/foamzou/media-get/releases 下载最新版本到 C:\Users\xxx\melody\backend\bin\media-get.exe
nishuoshenme
nishuoshenme
May 5, 2022
57
可是本地目录是已经下载好了的😓
nishuoshenme
nishuoshenme
May 5, 2022
58
有大佬遇到这种情况吗
liyvhg
liyvhg
May 5, 2022
59
@rfrftt #40 感谢楼主分享!参考楼主的 docker file ,我也来贴一个,比楼主的臃肿一些

FROM debian:latest
RUN apt update && apt install -y ffmpeg git vim curl && ffmpeg -version
RUN apt-get update && apt-get install -y locales && rm -rf /var/lib/apt/lists/* && localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8
RUN curl -sL https://deb.nodesource.com/setup_14.x | bash -
RUN apt update && apt install -y nodejs
RUN git clone 'https://github.com/foamzou/melody.git' /melody && cd /melody && node init.js
EXPOSE 5566
ENV LANG en_US.utf8
ENV SHELL /bin/bash
CMD exec node /melody/backend/src/index.js

-----------------------
volume 映射配置文件 /melody/backend/.profile/accounts.json
如果没有映射上述文件会直接取法启动。
junhua13
junhua13
May 5, 2022 via iPhone
60
希望能支持上传到自己的云盘,webdav 那种🥺
yazoox
yazoox
May 5, 2022 via Android
61
真的厉害👍
foam
foam
OP
May 5, 2022
62
@yangzj1992 #54 A/Z 的修复了,麻烦更新下代码,删除 backend/bin/media 之后重新 node init.js 一下。
原因是一个低级代码错误,没有成功移除文件名中的 / 。
不过这样的话,文件名就变 AZ 了。先这样吧
foam
foam
OP
May 6, 2022
63
@nishuoshenme #56 应该是偶现 bug ,一些情况下会有延迟。不用删除 media-get 文件,再次执行 node init.js 应该就可以的。
foam
foam
OP
May 6, 2022
64
@xjh2949744520 #60 可以到 issue 提下 request
caomingjun
caomingjun
May 6, 2022 via Android
65
很好的项目!出 docker 就部署到服务器上!
未来会支持网易云音乐云盘以外的其他存储方式吗,比如 onedrive/webdav/对象存储 /本地存储?
谢谢!
mscsky
mscsky
May 6, 2022
66
真刑,前段时间网易还批 qq
lw3088
lw3088
May 6, 2022
67
先 star 了
devilte
devilte
May 6, 2022
68
献上 star
ltkun
ltkun
May 6, 2022 via Android
69
exe ?
nishuoshenme
nishuoshenme
May 6, 2022
70
@foam 应该是我本地的问题,昨晚一直没成功,换虚拟机重新搞了一下,然后就可以了,再次感谢大佬哈哈
outcastveron
outcastveron
May 6, 2022
71
高级,star 先,等 docker 开玩:))
foam
foam
OP
May 6, 2022 via Android
72
@caomingjun
@outcastveron
docker 可以先用楼上的版本哈。
caomingjun
caomingjun
May 6, 2022❤️1
73
关于其他存储方式,回复 #60 #64 #65:
我今天看了一下代码,似乎作者在编写时没有考虑到这个需求,改起来可能比较麻烦。我目前的思路是,指定一个目录作为本地备份目录,前端中设置按钮让用户手动同步该目录和网易云音乐云盘(也可以考虑加上定时任务)。Docker 下该目录可以挂载到主机上,至于云存储和该目录的同步,可以交给 rclone 等其他程序负责,不用重复造轮子。

另外提出两个建议:
1. 前端可以显示一下任务状态,我看 JobManager 有相关函数,但是前端没有这个功能。
2. 希望能显示网易云音乐云盘上的当前曲目
caomingjun
caomingjun
May 6, 2022
74
还有一个建议,可以把输入 melody key 的框改成密码框,这样浏览器就能自动保存密码了
alfawei
alfawei
May 6, 2022 via iPhone
75
厉害👍 可以支持手机版 app ?
foam
foam
OP
May 6, 2022
76
@caomingjun #73 #74
谢谢建议。项目有考虑多个输入源和多个输出源,只是先把 MVP 跑起来。
任务状态会考虑下合适的设计,后端我很多东西写好了,前端在慢慢折腾中,哈哈。
foam
foam
OP
May 6, 2022
77
@alfawei #75 暂不考虑哈。不过会适配移动端 web
foam
foam
OP
May 6, 2022 via Android
78
@foam 目前前端其实也有任务状态,不过是轮询弹消息框的形式。确实不够友好,算是有个展示的地方。
killeder
killeder
May 7, 2022
79
安卓 APP v2er(版本 2.0.2.202)一打开这个帖子就闪退
DrEAmSs59
DrEAmSs59
May 7, 2022
80
大佬
zooo
zooo
May 7, 2022
81
蹲一个 docker 版
foam
foam
OP
May 8, 2022
82
@4196 #31 应该是数量超过了 1k 。已经修复。可以更新代码后,npm run update && npm run app 以更新和运行服务
foam
foam
OP
May 8, 2022❤️2
83
cue
cue
May 9, 2022
84
@foam #83 弱问 melody key 是什么……
foam
foam
OP
May 9, 2022
85
@cue #84 算是用户 ID/ 密钥。
tuutoo
tuutoo
May 9, 2022
86
@foam 刚在 CentOS 上部署成功了. 搜索的歌曲可以播放, 但我网易云音乐里歌单里的歌点击没法直接播放. 至少已经可以简单的用起来了 多谢.
tuutoo
tuutoo
May 9, 2022
87
有了 docker 版的 部署起来太方便了.
foam
foam
OP
May 11, 2022 via Android
88
@tuutoo 好的。主要是用于同步到云盘哈,不打算聚焦播放器。
leonzh
leonzh
May 12, 2022
89
蹲一个 docker 版的
leonzh
leonzh
May 12, 2022
90
@leonzh 原来已经有 docker 啦,马上装起来
4196
4196
May 12, 2022
91
@foam 是的,可以了🙇‍
keepro
keepro
May 12, 2022
92
白嫖伸手党申请美化前端页面,抄个 music.163 ,顺便适配移动端 UI
真的不错,感觉比 navidrome 更适合
手动狗头保护

我真不会改 T_T!
foam
foam
OP
May 13, 2022 via Android
93
@keepro 难道你以为我就会改吗 😂 vue 还是边写边 Google Baidu 的
foam
foam
OP
May 13, 2022 via Android
94
@keepro 适配移动端倒是在 roadmap 里
Xushet
Xushet
May 13, 2022 via Android
95
小心绿尸寒啊
keepro
keepro
May 13, 2022
96
@foam 哈哈,坐等大佬更新,大佬加油!!
foam
foam
OP
May 13, 2022 via Android
97
@Xushet 没事 都是公开资源
Chenxiaolannnnn
Chenxiaolannnnn
May 25, 2022
98
@foam #85 小白问下,部署在 koyeb 里,怎么改 melody key
foam
foam
OP
May 25, 2022 via Android
99
@Chenxiaolannnnn 我还未使用过哈,你可以研究下,有结果可以提下 PR 。感谢
DonkeyBenjamin
DonkeyBenjamin
Aug 7, 2022
100
已经用起来了,不错👍
About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   5147 Online   Highest 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 188ms · UTC 00:13 · PVG 08:13 · LAX 16:13 · JFK 19:13
♥ Do have faith in what you're doing.