一个用 Rust 语言重写的网易云音乐 Telegram 机器人,基于 Music163bot-Go 项目。
- 🎵 链接解析: 支持解析网易云音乐分享链接。
- 📱 Inline 模式: 支持在任何聊天中使用
@botname搜索并分享音乐。 - 🔍 关键词搜索: 支持私聊中使用
/search搜索音乐。 - 📁 完善缓存: 自动缓存歌曲,支持 FLAC 无损格式。
- 🎤 歌词获取: 支持获取歌曲歌词。
- 🖼️ 封面嵌入: 自动为下载的音乐文件嵌入 ID3/FLAC 封面。
- 📊 统计信息: 查看缓存占用和用户统计。
- 🚀 智能存储: 支持磁盘/内存/混合模式,优化下载性能和资源占用(v1.1.0+)。
- ⚡ 高性能: 基于 Tokio 异步运行时,响应迅速。
https://music.163.com/song?id=xxxxxhttps://music.163.com/#/song?id=xxxxxhttps://163cn.tv/xxxxxhttps://163cn.link/xxxxx
- Rust 1.70+
- SQLite3
从 Releases 页面下载最新的预编译版本,或者从源码构建。
git clone https://github.com/Lemonawa/music163bot-rust.git
cd music163bot-rust
cargo build --release构建完成后,可执行文件位于 target/release/music163bot-rust。
-
复制配置文件模板:
cp config.ini.example config.ini
-
编辑
config.ini配置文件:- 在
[bot]部分设置你的bot_token。 - 可选:在
[music]部分设置music_ucookie 来访问付费歌曲。 - 调整
cache_dir和database路径。 - (v1.1.0+)在
[download]部分配置存储模式(推荐disk)。 - 在
[download]部分配置cover_mode(默认thumbnail,嵌入封面固定 320x320 JPEG;original/both仅保留兼容,不再下载原始分辨率)。 - (v1.1.14+)可在
[upload]调整client_reuse_requests(0表示不按请求次数刷新)。
- 在
在 [download] 部分设置存储模式:
disk: 传统磁盘文件(稳定,低内存)memory: 内存处理(更快,但更依赖内存和链路稳定性)hybrid: 智能选择(小文件用内存,大文件用磁盘)
可选参数:
memory_threshold: 混合模式阈值(默认 100MB)memory_buffer: 内存安全缓冲区(默认 100MB)memory_max_file_mb: 内存模式文件大小上限(建议稳定优先时设为 16~32)
示例配置:
[download]
storage_mode = disk
# 如果你要用 hybrid,可按需限制大文件内存路径
# memory_threshold = 100
# memory_buffer = 100
# memory_max_file_mb = 32[upload] 里的 client_reuse_requests 控制上传客户端刷新频率:
另:upload.local_file_uri 开启后使用本地文件 URI 上传,需 telegram-bot-api --local(默认 false)。
0:不按请求次数刷新(默认,持续复用,除非进程重启)10:每 10 次请求后刷新(需要定期重建客户端时可用)
示例:
[upload]
client_reuse_requests = 0
max_concurrent = 1
pool_max_idle_per_host = 1
pool_idle_timeout_secs = 300- 内嵌封面固定为 320x320 JPEG(符合 Telegram 封面规范)。
cover_mode=thumbnail使用 320x320 缩略图。cover_mode=original/both仅保留兼容,当前与thumbnail行为一致,不再下载原始分辨率。
# 使用发布版本运行
./target/release/music163bot-rust
# 指定配置文件
./target/release/music163bot-rust --config /path/to/config.ini请在 @BotFather 中使用 /setcommands 设置以下列表:
start - 开始使用机器人或解析歌曲 ID
music - 下载/分享网易云音乐 (支持搜索关键词或 ID)
netease - 下载/分享网易云音乐 (等同于 /music)
search - 搜索网易云音乐
lyric - 获取歌曲歌词
status - 查看机器人运行状态和缓存信息
about - 关于机器人
rmcache - [管理员] 清理指定音乐的缓存
clearallcache - [管理员] 清除所有缓存 (需确认)
help - 显示详细使用帮助
- tokio - 异步运行时
- teloxide - Telegram Bot 框架
- reqwest - HTTP 客户端
- sqlx - 异步 SQL 工具
- id3 / metaflac - 音乐标签处理
- Music163bot-Go - 原项目参考
- 网易云音乐 API 相关项目