Rat's

一款跨平台的快速,简单,干净的视频下载器:Annie,支持Bilibili/Youtube等多个网站
说明:最近发现了个很强的下载神器Annie,一款用Go构建的快速,简单,干净的视频下载器,支持的平台很多,包括Ma...
扫描右侧二维码阅读全文
24
2019/04

一款跨平台的快速,简单,干净的视频下载器:Annie,支持Bilibili/Youtube等多个网站

说明:最近发现了个很强的下载神器Annie,一款用Go构建的快速,简单,干净的视频下载器,支持的平台很多,包括MacOSWindowsLinux等,安装和使用是非常简单的,很适合新手,支持的网站也多,目前支持以下网站:

抖音、哔哩哔哩、半次元、pixivision、优酷、YouTube、爱奇艺、芒果TV、Tumblr、Vimeo、Facebook、斗鱼视频、秒拍、新浪微博、Instagram、Twitter、腾讯视频、网易云音乐、音悦台

安装

Github地址:https://github.com/iawia002/annie

这里就只说下WindowsLinux大致用法,其它的直接看Github地址,说的很详细了。

1、Linux安装
首先下载作者提供的编译好的二进制文件→传送门,根据自己的系统架构下载对应的最新版压缩包,目前最新版本为0.9.3

使用命令:

wget https://github.com/iawia002/annie/releases/download/0.9.3/annie_0.9.3_Linux_$(getconf LONG_BIT)-bit.tar.gz
tar zxvf annie_*.tar.gz
mv annie /usr/local/bin/
rm -rf annie_*.tar.gz

再安装ffmpeg,使用命令:

#下载ffmpeg二进制
wget https://www.moerats.com/usr/down/ffmpeg/ffmpeg-git-$(getconf LONG_BIT)bit-static.tar.xz
#解压文件
tar xvf ffmpeg-git-*-static.tar.xz
#移动ffmpeg可执行文件
mv ffmpeg-git-*/ffmpeg  ffmpeg-git-*/ffprobe /usr/local/bin/
#删除文件
rm -rf ffmpeg-git-*

不过你要是只下载视频的话,可以不用安装ffmpeg

2、Windows安装
这里为了方便操作就不使用CMD了,直接使用PowerShell,需要的条件PowerShell 5+.NET Framework 4.5+

先在电脑左下角程序搜索框输入PowerShell,然后双击Windows PowerShell工具,再输入以下命令查看版本:

$PSVersionTable.PSVersion

Major为版本号,一般目前常用电脑Windows 10符合条件,Windiows 7还需要升级,大致步骤如下:

1、安装.Net 4.5.2全量包
下载地址:https://www.moerats.com/usr/down/powershell/NDP452-KB2901907-x86-x64-AllOS-ENU.exe

2、升级PowerShell的补丁包
32位下载地址:https://www.moerats.com/usr/down/powershell/Win7-KB3191566-x86.zip
64位下载地址:https://www.moerats.com/usr/down/powershell/Win7-KB3191566-x64.zip

接下来安装一个命令行安装工具Scoop,使用命令:

iex (new-object net.webclient).downloadstring('https://get.scoop.sh')

再安装annie

scoop install annie

该命令会给你把ffmpeg也一起安装好。

使用

使用命令:

annie [OPTIONS] URL [URL...]    
#可选参数如下
Options
  -i    Information only
  -F string
        URLs file path
  -d    Debug mode
  -j    Print extracted data
  -v    Show version

Download:
  -f string
        Select specific stream to download
  -p    Download playlist
  -n int
        The number of download thread (only works for multiple-parts video) (default 10)
  -c string
        Cookie
  -r string
        Use specified Referrer
  -cs int
        HTTP chunk size for downloading (in MB) (default 0)

Network:
  -s string
        SOCKS5 proxy
  -x string
        HTTP proxy
  -retry int
        How many times to retry when the download failed (default 10)

Playlist:
  -start int
        Playlist video to start at (default 1)
  -end int
        Playlist video to end at
  -items string
        Playlist video items to download. Separated by commas like: 1,5,6

Filesystem:
  -o string
        Specify the output path
  -O string
        Specify the output file name

Subtitle:
  -C    Download captions

Youku:
  -ccode string
        Youku ccode (default "0590")
  -ckey string
        Youku ckey (default "7B19C0AB12633B22E7FE81271162026020570708D6CC189E4924503C49D243A0DE6CD84A766832C2C99898FC5ED31F3709BB3CDD82C96492E721BDD381735026")
  -password string
        Youku password

YouTube
  -ytb-stream2
        Use data in url_encoded_fmt_stream_map

Aria2:
  -aria2
        Use Aria2 RPC to download
  -aria2addr string
        Aria2 Address (default "localhost:6800")
  -aria2method string
        Aria2 Method (default "http")
  -aria2token string
        Aria2 RPC Token

这里拿bilibili视频为例,基本上用法都一样,不过下载B站的时候,后面可以不用链接,直接使用avep号也行。

直接下载一个视频:

#如果你想下载多个链接视频,那么就在后面加上多个链接
annie https://www.bilibili.com/video/av45654043

请输入图片描述
列举视频所有清晰度,但不下载:

annie -i https://www.bilibili.com/video/av45654043

请输入图片描述
根据列举出来的清晰度,下载指定清晰度的视频:

#比如列表显示的1080P视频
annie -f 80 https://www.bilibili.com/video/av45654043

请输入图片描述
一般视频都默认下载到当前目录,如果你想下载到其它目录,需要在下载时候,加一个-o参数,后面带上文件夹路径即可。

#比如下载到桌面C:\Users\Rats\Desktop文件夹,Linux路径写法为/root/Rats
annie -o C:\Users\Rats\Desktop -f 80 https://www.bilibili.com/video/av45654043

如果是下载bilibili电视剧,可以在后面加一个-p参数,然后可以将所有集数一起下载。

#列出该集数的电视剧所有集数清晰度等信息
annie -i -p https://www.bilibili.com/bangumi/play/ep133269
#下载1到20集1080P视频
annie -f 80 -p -start 1 -end 20 https://www.bilibili.com/bangumi/play/ep133269

目前播放列表暂时只支持B站和youtube

你也可以将你需要下载的链接存放到bz.txt文件里,然后使用命令一起下载:

#列出所有链接信息
annie -F /root/bz.txt -i
#下载1080p视频
annie -f 80 -F /root/bz.txt

如果你下载的视频,比如需要会员啥的,就需要Cookies了,这里补充下优酷会员下载视频方法。

首先登录优酷账号,然后获取Cookies,只需要P_pck_rm参数即可,再新建一个文本cookie.txt,格式如下:

#后面为该值参数
P_pck_rm=moerats

接下来在命令中加上-c cookie.txt参数解析地址并下载视频:

#获取视频格式列表
annie -i -c cookie.txt https://v.youku.com/v_show/id_*.html
#根据自己需求下载指定清晰度视频
annie -f mp4hd3v2-guoyu -c cookie.txt https://v.youku.com/v_show/id_*.html

如果你不会看Cookie,可以直接使用浏览器插件editthiscookie,具体使用方法如下:

首先百度下载安装该浏览器插件,再打开EditThisCookie插件选项,导出格式改成Semicolon separated name=value pairs,接下来登录B站或其它账号,再点击浏览器右上角插件选项并将Cookie导出剪贴板。复制粘贴到cookie.txt里,只要最后一行有用的代码参数,//几行开头的不要。

其它使用可以查看→传送门,包括HTTP/SOCKS5代理使用也可以一起看看。

Vultr注册就送$50,可开日本/新加坡等机房,【点击注册】。
最后修改:2019 年 07 月 28 日 10 : 41 PM

发表评论

69 条评论

  1. 味道

    博主,我使用ffmpeg -i https://xxx/index.m3u8 123456.mp4的方法转的好慢啊,有没有更快速的方法,或者web界面的系统?

    1. Rat's
      @味道

      这个调用ffmpeg后,快慢应该主要是与你的cpu有关了。

  2. DoCare

    大神,爱奇艺或者是别的网站,会员下载用Cookie里哪一个键值对,把Cookie都复制进Cookie.txt提示失败

    1. Rat's
      @DoCare

      爱奇艺我没试过,所以暂时帮不了你,只能你慢慢尝试了

  3. Zero

    我按照博主的的教程。。已经成功下载了youku里面的VIP可看的视频,但是下载归下载了。。却显示错误,无法打开,格式就是mp4。自带的播放器不行,potplayer也不行。。这到底是哪里出了问题呢。。

  4. 刘景威

    极尽详细,Annie实为神器,CR TubeGet v0.9.2.5版始加入对其支持,但未完全发挥其全部功能。

  5. Garasu
    该评论仅登录用户及评论双方可见
    1. Rat's
      @Garasu

      爱奇艺我还没试过,你把//行都去掉

  6. 樱花风誓

    请问下大佬,我这边使用-f 80 -c cooki.txt -p下载,显示只有360P(B站会员番剧非会员似乎也是)
    具体参数
    annie -f 80 -c /cookie/cookie.txt https://www.bilibili.com/bangumi/play/ep250649
    annie -f 80 -c /cookie/cookie.txt -p https://www.bilibili.com/bangumi/play/ep267891
    cookie应该是正确的。
    求大佬看下

    1. 樱花风誓
      @樱花风誓
      该评论仅登录用户及评论双方可见
  7. sk0237

    博主,不知道你有没有遇到过在下载YOUKU视频的时候,所出现的问题.当一部视频有段落,只会下载最前面的段落后,就提示完成下载.如这部视频:v.youku.com/v_show/id_XNjY3OTIwNzQ0.html?spm=a2h0k.11417342.soresults.dposter

    1. Rat's
      @sk0237

      么有,我好像没怎么下载优酷的,都是b站

  8. SSEAN

    安装好了下载视频显示这个怎么解决annie : The term 'annie' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.

    1. Rat's
      @SSEAN

      Windows系统?安装的时候没报错吗?

      1. SSEAN
        @Rat's

        没有..重复安装好几次也还是这样

  9. biubiubiu

    博主大佬啊,cookies文件放在哪里啊,能不能给个cookies.txt的案列图片看一下啊

    1. Rat's
      @biubiubiu

      这个其实随便放的,到时候读取cookies文件的时候,填绝对路径就行了,比如放在/home文件夹,那就使用/home/cookies.txt

      1. 单纯
        @Rat's

        如果有个图片就好了

  10. hihi

    博主,有人盗你文章
    http://www.nifengmandi.com/852.html

    1. Rat's
      @hihi

      习惯就好

  11. hihi

    youtube下载没有问题,但是合成的时候出错
    Error while opening encoder for output stream #0:1 - maybe incorrect parameters such as bit_rate, rate, width or height

    1. swordsman
      @hihi

      youtube有问题,如果想下载youtube,我觉得还是得用youtube-dl。
      这里还想请求博主弄一篇文章关于youtube-dl web页面下载到vps上的视频,而不是本地计算机上的。

      1. Rat's
        @swordsman

        有具体的项目地址吗?

        1. swordsman
          @Rat's

          有的,我给你发一个https://github.com/d0u9/youtube-dl-webui,我弄了半天没弄出来,想让博主帮忙写个教程。

          1. Rat's
            @swordsman

            好的,我先看看再说

    2. Rat's
      @hihi

      提示是说你后面几个参数可能不对,你可以去看下github问题区,看能不能找到答案

      1. hihi
        @Rat's

        这款软件还是不错的,可以下载youtube4K,不过合成视频音频的时候会报错,另外反应比较慢,输入命令要一会才能加载出来

  12. 季悠然

    请问一下b站的cookie要怎么使用?

    1. Rat's
      @季悠然

      打开EditThisCookie插件选项,导出格式改成Semicolon separated name=value pairs,然后登录B站账号,将Cookie导出剪贴板。复制粘贴到cookie.txt里,只要最后一行有用的代码参数,//几行开头的不要。

  13. 小俊

    可以转载文章吗

    1. Rat's
      @小俊

      可以。

  14. 味道

    能下载m3u8么?

    1. Rat's
      @味道

      能下载直链,其它需要你自己试试。

  15. science

    您的SSL证书是腾讯申请的吗?这个证书似乎需要付费啊。

    1. Rat's
      @science

      不知道,别个帮我申请的

      1. Caibao
        @Rat's

        "别个"南方人..湖北湖南一带的?

        1. Rat's
          @Caibao

          你好聪明,我湖北的

  16. 扬帆大海

    看起来像youtube-dl,you-get?连命令都好像。。。

    1. Rat's
      @扬帆大海

      其实都差不多

  17. 脆皮小黄瓜

    用aria2下载是怎样的命令,没有成功

    1. Rat's
      @脆皮小黄瓜

      其实这个参数大概是把下载资源传输到aria2中进行下载,如果你在安装annie的服务器或者本地电脑上安装aria2,那就可以直接调用,比如使用annie -aria2 https://www.bilibili.com/video/av45654043,这个命令会使用aria2给你下载,下载的文件在aria2下载目录,如果你的aria2在其它服务器上,那就需要使用其它几个参数,比如annie -aria2addr 44.77.66.88:6800 -aria2token xxxx -aria2 https://www.bilibili.com/video/av45654043,填上地址和密匙就可以了,然后会添加到远程aria2任务中,下载的文件也会在远程aria2下载目录。

  18. jux

    写得非常好,博主可否加个微信啊或者qq啊,请教!

  19. xiaoxuan

    看作者说明是可以下载优酷vip视频的,可是试了下还是下不了,而且普通视频还是只能下到720的,失望啊

    1. Rat's
      @xiaoxuan

      我这里下载vip的1080是没问题的,记得使用cookie,解析命令为annie -i -c youku.txt https://v.youku.com/v_show/id_*.html,youku.txt为cookie,只需要P_pck_rm参数即可,具体使用我在文中补一下。

      1. xiaoxuan
        @Rat's
        该评论仅登录用户及评论双方可见
        1. Rat's
          @xiaoxuan

          下载会员的视频肯定需要会员的cookie。

          1. xiaoxuan
            @Rat's

            明白了,谢谢,那是不是别人的会员cookie都可以,不会出现因ip更换频繁导致账号异常

            1. Rat's
              @xiaoxuan

              对,别人的cookie也可以,应该不会异常,毕竟是尊贵的vip会员

        2. xiaoxuan
          @xiaoxuan
          该评论仅登录用户及评论双方可见
  20. Feng

    ffmpeg应该是合并用的吧,不安装的话如果遇到分段的视频还能正常下载吗…

    1. Rat's
      @Feng

      应该可以,只下载的话就与ffmpeg没啥关系,不过还是都安装好些

      1. FENG
        @Rat's

        油管1080P以上的视频都是音频视频分离的,下载完必须有ffmpeg才能自动合并~

        1. Rat's
          @FENG

          这回事,我还没测试油管

  21. DogEgg

    如果支持下载电视不让放广播不让播的就更好了

  22. xxbs

    请问我使用winodws安装的时候
    显示:无法将“insall”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径
    正确,然后再试一次
    怎么办?

    1. Rat's
      @xxbs

      安装命令是install?还是insall?

      1. xxbs
        @Rat's

        install啊

        1. Rat's
          @xxbs

          你的错误提示是insall

          1. xxbs
            @Rat's

            那个问题解决了,现在下载B站视频没问题。但是下载油管视频下载不了!
            它提示:Downloading https://www.youtube.com/watch?v=BZSIVQp4GIA error:
            request error: Get https://www.youtube.com/watch?v=BZSIVQp4GIA&gl=US&hl=en&has_verified=1&bpctr=9999999999: dial tcp 203.98.7.65:443: connectex: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond.

            翻译过来是:连接尝试失败,因为连接方未正确 一段时间后响应,或建立的连接失败,因为连接的主机无法响应
            我也开了全局,正常FQ的

            1. Rat's
              @xxbs

              这个本身就支持HTTP/SOCKS5,你可以看下git文档,或者直接用个国外的vps下载吧

          2. xxbs
            @Rat's

            我就是输入这条命令“scoop install annie”出错的

  23. SCGabriel

    同类的软件太多了,还是习惯youtube-dl
    然后这个软件依旧不支持下载niconico的视频

    1. Rat's
      @SCGabriel

      可以去https://github.com/iawia002/annie/issues提下要求,说不定就支持了

  24. lala

    不错不错先评论在看

  25. Xavier Wang

    坐等 Docker 版

    1. Rat's
      @Xavier Wang

      这个用docker不是很方便

  26. 惶心

    同样的工具还有 youtube-dl,you-get,ykdl

    全都是 python 程序

    1. Rat's
      @惶心

      这个感觉简单些。

  27. 刀下的小猪

    这是一个好东西啊,搞搞看