chrislon
V2EX  ›  Rust

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

By chrislon at 2018 年 5 月 31 日 · 6935 次点击

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
21 条回复  •  2018-09-24 08:45:14 +08:00
jasonsui
   1
jasonsui  
   2018 年 5 月 31 日 via Android
使用略复杂,先帮顶
em70
   2
em70  
   2018 年 6 月 1 日 via Android   ❤️ 1
十年前就做过百度 mp3 top500 批量下载,现在下载需求越来越小,官方客户端下载支持也挺好,自娱自乐吧
muziki
   3
muziki  
   2018 年 6 月 1 日 via iPhone
crypto 最后那几个 is_none 用 unwrap_or 写下
其他有些地方在函数内部“暴力” unwrap 换“?” 不是很建议那么 unwrap
chrislon
   4
chrislon  
OP
   2018 年 6 月 1 日 via Android
@em70 主要是官方的不能批量下载 MV
chrislon
   5
chrislon  
OP
   2018 年 6 月 1 日 via Android
@muziki 写的匆忙,还需要处理细节
chrislon
   6
chrislon  
OP
   2018 年 6 月 1 日 via Android
@em70 我主要是用来下载车载 MV:)
chrislon
   7
chrislon  
OP
   2018 年 6 月 1 日
@muziki 已经按照大佬的建议修改了,谢谢大佬
FindHao
   8
FindHao  
   2018 年 6 月 1 日 via Android
youget 应该也行吧?
est
   9
est  
   2018 年 6 月 1 日
其实应该做个聚合播放的。这样无论版权被谁买都能通听了。
chrislon
   10
chrislon  
OP
   2018 年 6 月 1 日 via Android
@FindHao 了解了一下,youget 好像不行
chrislon
   11
chrislon  
OP
   2018 年 6 月 1 日 via Android
@est 聚合播放会不会侵权
est
   12
est  
   2018 年 6 月 1 日
@chrislon 看你怎么定义侵权。。我弹个 iframe 也可以叫聚合。。。我不盈利也可以叫聚合。。。
gonghao
   13
gonghao  
   2018 年 6 月 1 日
歪个楼,楼主 Github 头像很瞩目~
chrislon
   14
chrislon  
OP
   2018 年 6 月 1 日 via Android
@gonghao 注意力不应该在此
misaka19000
   15
misaka19000  
   2018 年 6 月 1 日
Rust 学起来是不是很难呀。。。
LeungJZ
   16
LeungJZ  
   2018 年 6 月 1 日
非会员也能下载?
chrislon
   17
chrislon  
OP
   2018 年 6 月 1 日 via Android
@LeungJZ 是的
chrislon
   18
chrislon  
OP
   2018 年 6 月 1 日 via Android
@misaka19000 不会,会 C++的,比较简单,有其他静态语言经验的也不会太难
qdwang
   19
qdwang  
   2018 年 6 月 1 日
挺好啊,建议 lz 在 release 里发布个二进制版本,方便没有 rust 的人
chrislon
   20
chrislon  
OP
   2018 年 6 月 1 日 via Android
@qdwang 恩,晚上回去编译一个,放 release
YongXMan
   21
YongXMan  
   2018 年 9 月 24 日
是不是不能用了?
© 2026 V2EX · 94ms · 3.9.8.5