快速开始
嗨~你好呀~这里是 yutto,一个可爱的命令行驱动的 B 站视频下载工具~
我的工作方式非常简单快捷,你只需要提供给我 B 站的链接,我就可以帮你下载好视频啦~就像这样:
❯ yutto https://www.bilibili.com/video/BV1ZEf9YiE2h/
INFO 发现配置文件 yutto.toml,加载中……
大会员 成功以大会员身份登录~
投稿视频 植物大战僵尸融合版2.2正式版宣传片
INFO 开始处理视频 植物大战僵尸融合版2.2正式版宣传片
INFO 共包含以下 15 个视频流:
INFO * 0 [AVC ] [1920x1080] <1080P 60帧> #3
INFO 1 [HEVC] [1920x1080] <1080P 60帧> #3
INFO 2 [AV1 ] [1920x1080] <1080P 60帧> #3
INFO 3 [AVC ] [1920x1080] <1080P 高清> #3
INFO 4 [HEVC] [1920x1080] <1080P 高清> #3
INFO 5 [AV1 ] [1920x1080] <1080P 高清> #3
INFO 6 [AVC ] [1280x720 ] <720P 高清 > #3
INFO 7 [HEVC] [1280x720 ] <720P 高清 > #3
INFO 8 [AV1 ] [1280x720 ] <720P 高清 > #3
INFO 9 [AVC ] [ 852x480 ] <480P 清晰 > #3
INFO 10 [HEVC] [ 852x480 ] <480P 清晰 > #3
INFO 11 [AV1 ] [ 852x480 ] <480P 清晰 > #3
INFO 12 [AVC ] [ 640x360 ] <360P 流畅 > #3
INFO 13 [HEVC] [ 640x360 ] <360P 流畅 > #3
INFO 14 [AV1 ] [ 640x360 ] <360P 流畅 > #3
INFO 共包含以下 3 个音频流:
INFO * 0 [MP4A] <320kbps >
INFO 1 [MP4A] < 64kbps >
INFO 2 [MP4A] <128kbps >
弹幕 ASS 弹幕已生成
INFO 开始下载……
━━━━━━━━━━━━━━━━━━━━━━━━━━━╸━━━━━━━━━━━━━━━━━━━━━━ 39.05 MiB/ 72.13 MiB 32.22 MiB/⚡
下面我将会从安装开始介绍我的使用方式~
环境配置
注意
如果你使用 Homebrew、paru、Docker 等可以自动帮助你配置环境的方式来安装,此部分内容可以跳过~
Python 解释器安装 3.9+
你可能会好奇,我是怎么指挥你的设备来帮助你下载想要的视频的,其实这很大程度归功于 Python 前辈的帮忙,有了 TA,我才能和你的设备正常沟通。不过有一点需要注意的就是,必须要 3.9 以上版本的 Python 前辈才可以哦,不然可能 TA 也听不懂我的一些「方言」呢~
如果你是 Windows,请自行去 Python 官网下载并安装,安装时记得要勾选「Add to PATH」选项,不然可能需要你手动添加到环境变量。
macOS 及 Linux 发行版一般都自带 Python 环境,但要注意版本。
安装完成后可以通过 python --version
来确定是否正确安装,当然这里仍然需要再次注意一下版本号~
FFmpeg 下载与配置
由于 B 站视频是需要混流合并的,因此我的正常运作离不开 FFmpeg 前辈的帮助,因此你需要事先将 TA 正确安装在你的设备上~
如果你所使用的操作系统是 Windows,操作有些些麻烦,你需要手动下载后,并将可执行文件所在路径设置到到你的环境变量中~
详细操作
打开下载链接后,在 「Get packages & executable files」 部分选择 Windows 徽标,在 「Windows EXE Files」 下找到 「Windows builds by BtbN」 并点击,会跳转到一个 GitHub Releases 页面,在 「Latest release」 里就能看到最新的构建版本了~
下载后解压,并随便放到一个安全的地方,然后在文件夹中找到 ffmpeg.exe
,复制其所在文件夹路径。
右击「此电脑」,选择属性,在其中找到「高级系统设置」 → 「环境变量」,双击 PATH,在其中添加刚刚复制的路径(非 Win10 系统操作略有差异,请自行查阅「环境变量设置」的方法)。
保存保存,完事啦~~~
当然,如果你使用的是 macOS 或者 Linux 发行版的话,直接使用自己的包管理器就能一键完成该过程。
示例
这里给出一些示例,不会一一列举,其它的大家可以自行搜索下~
brew install ffmpeg
apt install ffmpeg
pacman -S ffmpeg
此时,你可以尝试在终端上使用 ffmpeg -version
命令来测试下安装是否正确,只要显示的不是 Command not found
之类的提示就说明成功啦~
召唤 yutto
当当当,是时候主角登场啦~不过在此之前仍然需要学习一点小小的咒语~
你可以通过以下几种方式中的任意一种来召唤(安装)我,我随叫随到~
包管理器一键安装啦
我目前可以通过一些包管理器直接安装~这是最简单快捷的安装方式~
使用 Homebrew 的小伙伴可以尝试下下面的命令:
brew tap siguremo/tap
brew install yutto
使用 paru(Arch 上的 AUR 包管理器)的用户可以尝试下这样的命令(感谢 @ouuan):
paru -S yutto
使用 Docker
你也可以尝试使用 docker 直接运行(运行时的更多参数需要参考下后面的内容~)
docker run --rm -it -v /path/to/download:/app siguremo/yutto <url> [options]
与直接本机运行不同的是,这里的下载目标路径是通过 -v <path>:/app
指定的,也就是说 docker 内的我会将内容下载到 docker 里的 /app
目录下,与之相对应的挂载点 <path>
就是下载路径。你也可以直接挂载到 $(pwd)
,此时就和本机运行我的默认行为一致啦,也是下载到当前目录下~
pip/pipx/uv 安装 需自行配置环境
我的所有版本均已上传到 PyPI,因此你当然可以通过 pip 来安装啦~
pip install yutto
当然,你也可以通过 pipx/uv 来安装(当然,前提是你要自己先安装 TA 们)
pipx install yutto # 使用 pipx
uv tool install yutto # 或者使用 uv
pipx/uv 会类似 Homebrew 无感地为我创建一个独立的虚拟环境,与其余环境隔离开,避免污染 pip 的环境,因此相对于 pip,pipx/uv 是更推荐的安装方式(uv 会比 pipx 更快些~)。
体验 main 分支最新特性 需自行配置环境
有些时候有一些在 main 分支还没有发布的新特性或者 bugfix,你可以尝试直接安装 main 分支的代码,最快的方式仍然是通过 pip 安装,只不过需要使用 git 描述符
pip install git+https://github.com/yutto-dev/yutto@main # 通过 pip
pipx install git+https://github.com/yutto-dev/yutto@main # 或者通过 pipx
uv tool install git+https://github.com/yutto-dev/yutto.git@main # 或者通过 uv
yutto 一下~
嗯,跟随上面的指引后我应当可以正常工作啦,那么现在,请为我分配任务吧~
yutto <url>
没错,为我分配任务的方式就是这么简单~
不过值得注意的是这样只可以下载单个视频,如果有批量下载需求的话请添加 -b/--batch
参数:
yutto --batch <url>
# 或者使用其短参数
yutto -b <url>
此时我会认为该 url 是一个批量下载链接,会从其中解析出多个视频链接出来进行下载。
下面举例说明一下:
这里的 <url>
是 《転スラ日記》 第一话链接,那么如果你只想下载该话的话只需要运行:
yutto https://www.bilibili.com/bangumi/play/ep395211
或者如果你想要该番剧全集,请运行:
yutto -b https://www.bilibili.com/bangumi/play/ep395211
下一步
很好,到此为止你已经了解如何让我来帮你下载视频啦~
不过你可能会有一些问题,比如:
- 为什么下载的视频不够清晰?我在线看的视频明明至少都有 1080P 的呀
- 为什么需要这么冗长的 url 才能下载视频?是否有更简洁的方式?
这里先简单卖个关子,因为这些答案你都可以在后续内容中找到,这才刚刚开始呢~
这里给出一些推荐内容,你可以尝试: