用 Rust 写了一个批量下载网易云音乐 MV, MP3 的程序,包括协议的加密解密,欢迎各位拍砖

2018-05-31 23:03:30 +08:00
 chrislon

Repo: https://github.com/lonnng/yinyue

网易云音乐批量下载,支持下载 mp3 和 mv,支持歌单,专辑,歌手热门,电台,单曲,排行榜.

- http://music.163.com/playlist?id=892177597
- http://music.163.com/#/album?id=38595209"
- http://music.163.com/#/song?id=557584888
- http://music.163.com/#/artist?id=10559"
- http://music.163.com/#/discover/toplist?id=3779629
- http://music.163.com/#/djradio?id=527162580

Build

cargo build --release

Usage

Usage: target/release/yinyue [options] url

Options:
    -t, --type          mp3 or mv
    -f, --format        filename format($name, $artist, $album)
    -q, --quality       quality(480/720/1080 for mv, 12800/19200/32000 for
                        music)
    -d, --dir           save to target directory

参数解释

    -t, --type
      需要下载的类型,可选 mp3 或者 mv
      
    -f, --format
      保存文件的格式,$name: 歌名, $artist: 歌手名, $album: 专辑名),默认为$artist - $name
      
    -q, --quality
      下载多媒体质量,音频可选: 12800/19200/32000(单位比特率), 视频可选 480/720/1080(P)
      
    -d, --dir
      文件保存路径,如果路径不存在,会自动创建,默认为 music

Example

yinyue -t mv http://music.163.com/playlist?id=892177597
5650 次点击
所在节点    Rust
21 条回复
jasonsui
2018-05-31 23:46:24 +08:00
使用略复杂,先帮顶
em70
2018-06-01 00:10:13 +08:00
十年前就做过百度 mp3 top500 批量下载,现在下载需求越来越小,官方客户端下载支持也挺好,自娱自乐吧
muziki
2018-06-01 01:31:49 +08:00
crypto 最后那几个 is_none 用 unwrap_or 写下
其他有些地方在函数内部“暴力” unwrap 换“?” 不是很建议那么 unwrap
chrislon
2018-06-01 07:11:27 +08:00
@em70 主要是官方的不能批量下载 MV
chrislon
2018-06-01 07:11:59 +08:00
@muziki 写的匆忙,还需要处理细节
chrislon
2018-06-01 07:13:19 +08:00
@em70 我主要是用来下载车载 MV:)
chrislon
2018-06-01 08:09:00 +08:00
@muziki 已经按照大佬的建议修改了,谢谢大佬
FindHao
2018-06-01 11:27:10 +08:00
youget 应该也行吧?
est
2018-06-01 11:55:23 +08:00
其实应该做个聚合播放的。这样无论版权被谁买都能通听了。
chrislon
2018-06-01 12:30:45 +08:00
@FindHao 了解了一下,youget 好像不行
chrislon
2018-06-01 12:30:59 +08:00
@est 聚合播放会不会侵权
est
2018-06-01 12:32:50 +08:00
@chrislon 看你怎么定义侵权。。我弹个 iframe 也可以叫聚合。。。我不盈利也可以叫聚合。。。
gonghao
2018-06-01 13:12:38 +08:00
歪个楼,楼主 Github 头像很瞩目~
chrislon
2018-06-01 13:52:35 +08:00
@gonghao 注意力不应该在此
misaka19000
2018-06-01 14:06:15 +08:00
Rust 学起来是不是很难呀。。。
LeungJZ
2018-06-01 14:09:47 +08:00
非会员也能下载?
chrislon
2018-06-01 18:10:14 +08:00
@LeungJZ 是的
chrislon
2018-06-01 18:10:47 +08:00
@misaka19000 不会,会 C++的,比较简单,有其他静态语言经验的也不会太难
qdwang
2018-06-01 18:28:39 +08:00
挺好啊,建议 lz 在 release 里发布个二进制版本,方便没有 rust 的人
chrislon
2018-06-01 18:32:07 +08:00
@qdwang 恩,晚上回去编译一个,放 release

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/459403

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX