用 Rust 写了一个批量下载网易云音乐 MV, MP3 的程序,包括协议的加密解密,欢迎各位拍砖 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
chrislon
V2EX    Rust

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

  •  
  •   chrislo 2018-05-31 23:03:30 +08:00 6056 次点击
    这是一个创建于 2692 天前的主题,其中的信息可能已经有所发展或是发生改变。

    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-05-31 23:46:24 +08:00 via Android
    使用略复杂,先帮顶
    em70
        2
    em70  
       2018-06-01 00:10:13 +08:00 via Android   1
    十年前就做过百度 mp3 top500 批量下载,现在下载需求越来越小,官方客户端下载支持也挺好,自娱自乐吧
    muziki
        3
    muziki  
       2018-06-01 01:31:49 +08:00 via iPhone
    crypto 最后那几个 is_none 用 unwrap_or 写下
    其他有些地方在函数内部“暴力” unwrap 换“?” 不是很建议那么 unwrap
    chrislon
        4
    chrislon  
    OP
       2018-06-01 07:11:27 +08:00 via Android
    @em70 主要是官方的不能批量下载 MV
    chrislon
        5
    chrislon  
    OP
       2018-06-01 07:11:59 +08:00 via Android
    @muziki 写的匆忙,还需要处理细节
    chrislon
        6
    chrislon  
    OP
       2018-06-01 07:13:19 +08:00 via Android
    @em70 我主要是用来下载车载 MV:)
    chrislon
        7
    chrislon  
    OP
       2018-06-01 08:09:00 +08:00
    @muziki 已经按照大佬的建议修改了,谢谢大佬
    FindHao
        8
    FindHao  
       2018-06-01 11:27:10 +08:00 via Android
    youget 应该也行吧?
    est
        9
    est  
       2018-06-01 11:55:23 +08:00
    其实应该做个聚合播放的。这样无论版权被谁买都能通听了。
    chrislon
        10
    chrislon  
    OP
       2018-06-01 12:30:45 +08:00 via Android
    @FindHao 了解了一下,youget 好像不行
    chrislon
        11
    chrislon  
    OP
       2018-06-01 12:30:59 +08:00 via Android
    @est 聚合播放会不会侵权
    est
        12
    est  
       2018-06-01 12:32:50 +08:00
    @chrislon 看你怎么定义侵权。。我弹个 iframe 也可以叫聚合。。。我不盈利也可以叫聚合。。。
    gonghao
        13
    gonghao  
       2018-06-01 13:12:38 +08:00
    歪个楼,楼主 Github 头像很瞩目~
    chrislon
        14
    chrislon  
    OP
       2018-06-01 13:52:35 +08:00 via Android
    @gonghao 注意力不应该在此
    misaka19000
        15
    misaka19000  
       2018-06-01 14:06:15 +08:00
    Rust 学起来是不是很难呀。。。
    LeungJZ
        16
    LeungJZ  
       2018-06-01 14:09:47 +08:00
    非会员也能下载?
    chrislon
        17
    chrislon  
    OP
       2018-06-01 18:10:14 +08:00 via Android
    @LeungJZ 是的
    chrislon
        18
    chrislon  
    OP
       2018-06-01 18:10:47 +08:00 via Android
    @misaka19000 不会,会 C++的,比较简单,有其他静态语言经验的也不会太难
    qdwang
        19
    qdwang  
       2018-06-01 18:28:39 +08:00
    挺好啊,建议 lz 在 release 里发布个二进制版本,方便没有 rust 的人
    chrislon
        20
    chrislon  
    OP
       2018-06-01 18:32:07 +08:00 via Android
    @qdwang 恩,晚上回去编译一个,放 release
    YongXMan
        21
    YongXMan  
       2018-09-24 08:45:14 +08:00
    是不是不能用了?
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1040 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 18:31 PVG 02:31 LAX 11:31 JFK 14:31
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86