用 Rust + GTK 写了个 Linux 版的网易云音乐 (2022-06-28 更新 2.0.0 版本)

一直想写个 Linux 原生的网易云音乐,官方的安装太麻烦,基于 Node/python 的又感觉安装太脏。这个是仿 GNOME Music 风格,用 Rust + gtk 开发,播放是基于 gstreamer ,最大特点就是简单简单简单。开发和测试都是在 TW + GNOME 环境下进行的,KDE 不确定会不会有图标依赖问题,感兴趣的可以试试,欢迎反馈。

更新内容

  • 使用 gtk4 + libadwaita 完全重构。
  • 支持 GNOME 系统皮肤。
  • 新增扫码登陆。
  • 新增验证码登陆。
  • 新增网络代理支持。
  • 新增音质选择。

已完成功能

  • 网易邮箱 / 手机账号登录
  • 私人歌单管理
  • 个性推荐
  • 私人 FM
  • 音乐云盘
  • 热门排行榜
  • 歌曲搜索
  • 简易歌词
  • 桌面歌词 (依赖于 OSDLyrics)
  • 热门歌单
  • 新碟上架

安装

Tumbleweed

sudo zypper in netease-cloud-music-gtk

Leap 15.1/15.2

// 添加源
sudo zypper ar -f obs://multimedia:apps multimedia
// 安装
sudo zypper in netease-cloud-music-gtk

源码

https://github.com/gmg137/netease-cloud-music-gtk

截图


12赞

glibc_2.29 not found
这是什么操作?

可能是在 TW 上编译的。

为什么不使用OBS编译呢?另外是不是可以收入opensuse_zh?
等我有空了我来建立一个库吧

可以直接推进官方源吧

我是在TW编译的,依赖比较新,可以自己下载源码手动编译。

cargo rpm build

没在 OBS 上打包过 Rust ,先改上几版再往 obs 发吧

登陆框有长度限制,邮箱过长输入不了完整的邮箱帐号:joy:

作者的Github已经修复了这个问题,装新版就好了

感谢提醒.

在 obs 上编译报错。

[ 86s] mpris-player-9b111838ccf3b4f8127b9a623057c8f118ca7ef8/src/metadata.rs
[ 86s] mpris-player-9b111838ccf3b4f8127b9a623057c8f118ca7ef8/src/mpris_player.rs
[ 86s] mpris-player-9b111838ccf3b4f8127b9a623057c8f118ca7ef8/src/status.rs
[ 86s] + mkdir -p .cargo/git/db
[ 86s] + mv mpris-player-9b111838ccf3b4f8127b9a623057c8f118ca7ef8 .cargo/git/db/mpris-player-c5d9dec7a5a330ea
[ 86s] + /usr/bin/env CARGO_HOME=.cargo RUSTC_BOOTSTRAP=1 /usr/bin/cargo build -j8 -Z avoid-dev-deps --release
[ 86s] error: no matching package named aes-soft found

aes-soft 是什么东东?

aes-soft 是一个 rust 的 aes 加密库,在 Cargo.toml 里有定义。

看了你的编译脚本,没看太明白 :joy:,OBS 编译 Rust 可以参考下这个 https://build.opensuse.org/package/view_file/openSUSE:Factory/ripgrep/ripgrep.spec?expand=1

OBS 禁用了网络功能,无法使用 git 下载 mpris-player,只能手动处理。

aes-soft 应该在哪个路径下面?

aes-sort 应该是使用 cargo build编译时自动从 rust 仓库下载的,你可以参考下其它rust 项目在obs是怎么打包的。

大概就是通过 cargo-vendor 在源代码目录下通过

cargo vendor

获取所需依赖,根据最后生成提示,在 spec 文件添加类似如下指定 cargo 依赖的配置文件

mkdir cargo-home
cat >cargo-home/config <<EOF
[source.crates-io]
replace-with = "vendored-sources"

[source.vendored-sources]
directory = "./vendor"
EOF

打包源代码目录下的 vendor 作为 source 上传,并在 spec 文件添加该 vendor source项。

Screenshot_20190530_205634 安装不了!

提供的二进制包是tw下的,15.0/15.1 需要自己编译,或者等明天我再编译个15.1版本的。

已更新下载

1赞

谢谢可以用了!