bilibili 音视频下载教程

分享讨论IT相关的内容
回复
头像
BobMaster
锋芒初露
锋芒初露
帖子: 1187
注册时间: 2020年 12月 7日 08:05
来自: 神秘的东方
我的状态: 🎯
为圈友点赞: 338 次
被赞次数: 178 次
联系:

bilibili 音视频下载教程

帖子 BobMaster »

图片
Generated by Stable Diffusion Model

前言

B站国内用的人比较多,相应的可以用于下载使用的工具也很多。这里向大家介绍三个开源免费的工具用于下载B站的音视频,BBDownyt-dlpyou-get。从使用功能上看,BBDown的功能最丰富也最专业,可以用于下载字幕、番剧等,而后两者只能用于下载音视频。

演示系统:windows 11 22H2
演示例子:https://www.bilibili.com/video/BV1T84y1z7Af

前置准备-安装ffmpeg

上述三款软件都需要使用 ffmpeg 用于音视频合并
下载ffmpeg:https://github.com/BtbN/FFmpeg-Builds/r ... 64-gpl.zip
如果你打不开 Github,可以用这个链接下载ffmpeg:https://cloud.bobmaster.cyou/s/dQfRfF27oYeqBbg
将压缩包解压,进入解压后的文件夹的Bin目录,复制该路径,我这里是 C:\Users\qianxue\Downloads\ffmpeg-master-latest-win64-gpl\bin
打开系统设置->关于->高级系统设置->环境变量
图片
选中 Path->点编辑->点新建,将刚才拷贝的路径粘贴上去,然后保存即可
图片
到这里我们将 ffmpeg 二进制可执行文件的路径添加到了环境变量里,我们可以在终端里验证,打开命令提示符cmd,输入 ffmpeg -version,你能看到类似如下的回显就说明配置成功了
图片

BBDown 使用教程

下载地址:https://github.com/nilaoda/BBDown/relea ... in-x64.zip
如果你打不开 Github,可以用这个链接下载:https://cloud.bobmaster.cyou/s/pYEf4RRE8KgNenL
下载好后,将其解压,然后进入到解压后的文件夹,在文件路径框里输入 cmd 打开终端
图片
为了方便下载,我们使用交互式的方式选择下载的清晰度

代码: 全选

#-ia, --interactive    交互式选择清晰度
BBDown.exe {视频URL} -ia
#本例子
BBDown.exe https://www.bilibili.com/video/BV1T84y1z7Af -ia
图片
下载完成后,视频会保存在当前的目录下!
你还可以选择下载字幕,下载弹幕,然后把字幕嵌入视频中,效果很棒哦,这里以弹幕为例,只需要在前面的命令基础上额外添加一个参数 -dd 即可

代码: 全选

BBDown.exe https://www.bilibili.com/video/BV1T84y1z7Af -dd -ia
下载完后当前目录下会有一个视频文件,一个将弹幕合并到了ASS格式的字幕文件,一个XML文件(可以忽略)。现在播放视频就会看到弹幕了,如果没有看到可以在视频播放器里手动添加一下。
danmaku-demo.webp
danmaku-demo.webp (706.83 KiB) 查看 3615 次
更多精细化的操作说明,可以使用 -?, -h, --help 等参数查看

代码: 全选

Usage:
  BBDown <url> [command] [options]

Arguments:
  <url>  视频地址 或 av|bv|BV|ep|ss

Options:
  -tv, --use-tv-api                              使用TV端解析模式
  -app, --use-app-api                            使用APP端解析模式
  -intl, --use-intl-api                          使用国际版解析模式
  --use-mp4box                                   使用MP4Box来混流
  --encoding-priority <encoding-priority>        视频编码的选择优先级, 用逗号分割 例: "hevc,av1,avc"
  --dfn-priority <dfn-priority>                  画质优先级,用逗号分隔 例: "8K 超高清, 1080P 高码率, HDR 真彩, 杜比视界"
  -info, --only-show-info                        仅解析而不进行下载
  --show-all                                     展示所有分P标题
  --use-aria2c                                   调用aria2c进行下载(你需要自行准备好二进制可执行文件)
  -ia, --interactive                             交互式选择清晰度
  -hs, --hide-streams                            不要显示所有可用音视频流
  -mt, --multi-thread                            使用多线程下载(默认开启)
  --video-only                                   仅下载视频
  --audio-only                                   仅下载音频
  --sub-only                                     仅下载字幕
  --debug                                        输出调试日志
  --skip-mux                                     跳过混流步骤
  --skip-subtitle                                跳过字幕下载
  --skip-cover                                   跳过封面下载
  --force-http                                   下载音视频时强制使用HTTP协议替换HTTPS(默认开启)
  -dd, --download-danmaku                        下载弹幕
  --skip-ai                                      跳过AI字幕下载
  --bandwith-ascending                           比特率升序(最小体积优先)
  -F, --file-pattern <file-pattern>              使用内置变量自定义单P存储文件名:

                                                 <videoTitle>: 视频主标题
                                                 <pageNumber>: 视频分P序号
                                                 <pageNumberWithZero>: 视频分P序号(前缀补零)
                                                 <pageTitle>: 视频分P标题
                                                 <aid>: 视频aid
                                                 <cid>: 视频cid
                                                 <dfn>: 视频清晰度
                                                 <res>: 视频分辨率
                                                 <fps>: 视频帧率
                                                 <videoCodecs>: 视频编码
                                                 <videoBandwidth>: 视频码率
                                                 <audioCodecs>: 音频编码
                                                 <audioBandwidth>: 音频码率
                                                 <ownerName>: 上传者名称
                                                 <ownerMid>: 上传者mid

                                                 默认为: <videoTitle>
  -M, --multi-file-pattern <multi-file-pattern>  使用内置变量自定义多P存储文件名:

                                                 默认为: <videoTitle>/[P<pageNumberWithZero>]<pageTitle>
  -p, --select-page <select-page>                选择指定分p或分p范围: (-p 8 或 -p 1,2 或 -p 3-5 或 -p ALL 或 -p LAST)
  --language <language>                          设置混流的音频语言(代码), 如chi, jpn等
  -c, --cookie <cookie>                          设置字符串cookie用以下载网页接口的会员内容
  -token, --access-token <access-token>          设置access_token用以下载TV/APP接口的会员内容
  --aria2c-args <aria2c-args>                    调用aria2c的附加参数(默认参数包含"-x16 -s16 -j16 -k 5M", 使用时注意字符串转义)
  --work-dir <work-dir>                          设置程序的工作目录
  --ffmpeg-path <ffmpeg-path>                    设置ffmpeg的路径
  --mp4box-path <mp4box-path>                    设置mp4box的路径
  --aria2c-path <aria2c-path>                    设置aria2c的路径
  --delay-per-page <delay-per-page>              设置下载合集分P之间的下载间隔时间(单位: 秒, 默认无间隔)
  --host <host>                                  指定BiliPlus host(解析服务器能够获取你账号的大部分权限!)
  --ep-host <ep-host>                            指定BiliPlus EP host
  --area <area>                                  指定BiliPlus area 例: hk(使用BiliPlus需要access_token, 不需要cookie)
  --config-file <config-file>                    读取指定的BBDown本地配置文件(默认为: BBDown.config)
  --version                                      Show version information
  -?, -h, --help                                 Show help and usage information


Commands:
  login    通过APP扫描二维码以登录您的WEB账号
  logintv  通过APP扫描二维码以登录您的TV账号

you-get 使用教程

you-get 需要使用 pip 安装,因此你得先安装Python
下载地址:https://www.python.org/ftp/python/3.10. ... -amd64.exe
安装好Python后打开终端cmd/terminal,输入如下命令安装you-get

代码: 全选

pip install -U you-get
图片
安装好you-get我们现在进入视频下载流程
假设我要将下载的视频保存在 C:\Users\qianxue\Downloads\temp,那么就在这个目录下的地址栏里输入cmd,这会使cmd的当前工作区就是我们所需的目录,我们下载的视频也会保存在这里

1. 获取视频信息

代码: 全选

#使用参数 -i, --info
you-get -i "{视频地址}"
#本例子
you-get -i "https://www.bilibili.com/video/BV1T84y1z7Af"
图片

2. 视频下载

这里我们选择下载码率为1080P的容器为mp4的视频流,程序有提示你该如何下载

代码: 全选

# download-with: you-get --format=dash-flv [URL]
因此我们只需要根据提示使用相应的命令下载即可

代码: 全选

you-get --format=dash-flv "https://www.bilibili.com/video/BV1T84y1z7Af"
图片
视频此时就被下载到了当前工作区里~

yt-dlp 使用教程

yt-dlp 可以使用pip安装也可以使用项目组用pyinstaller打包好的二进制可执行文件直接运行。如果你没有装Python,那么直接下载其二进制可执行文件即可(类似前面的BBDownffmpeg)。
使用pip安装:

代码: 全选

pip install -U yt-dlp
直接下载二进制可执行文件:https://github.com/yt-dlp/yt-dlp/releas ... yt-dlp.exe
软件更新方式:
通过pip安装的,再次执行上述命令即可
下载二进制可执行文件的,可以使用 yt-dlp -U 命令更新

1. 获取视频信息

使用下面的命令获取视频清晰度、编码等信息

代码: 全选

# -F/--list-formats
yt-dlp -F "{视频地址}"
#本例子为
yt-dlp -F "https://www.bilibili.com/video/BV1T84y1z7Af"
图片

2. 视频下载

Bilibili 的视频采用音视频分离的模式进行分发,因此我们下载的时候需要同时指定视频流和音频流
这里我打算下载分辨率为1920x1080码率为2209k编码为avc1的视频流,码率为319k编码为mp4a的音频流,因此我们的Format Code(ID)由43+2组成(视频流要放在音频流前面)

代码: 全选

# -f 指定 format-code
yt-dlp -f {format-code} "{URL}"
# 本例子为
yt-dlp -f 43+2 "https://www.bilibili.com/video/BV1T84y1z7Af"
图片
然后视频会保存在当前cmd所在工作区所对应的路径里

总结

使用体验上来说,BBDown的性能和功能是最棒的,毕竟是专门用于下B站视频的工具。而后两者是由国外开发者开发的,主要用于下载Youtube、Twitter、Instagram、Vimeo等网站的视频和音频的,因此各有优点。
因此你如果只是下载Bilibili的视频,我推荐你使用BBDown,下载Youtube、BBC、Ted等网站的视频,我推荐yt-dlp,下载Pinterest、Instagram等网站的图片我推荐用you-get
思路都是先获取音视频图片等的信息,然后使用相应的参数下载即可,遇到问题和一些客制化的命令这里推荐大家阅读官方的文档。

BBDown: https://github.com/nilaoda/BBDown
you-get: https://github.com/soimort/you-get
yt-dlp: https://github.com/yt-dlp/yt-dlp
人生如音乐,欢乐且自由
回复

在线用户

正浏览此版面之用户: 没有注册用户 和 1 访客