ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

BBDown 完整实战指南:从一条命令到 API 自动化的哔哩哔哩视频下载全流程

BBDown 完整实战指南:从一条命令到 API 自动化的哔哩哔哩视频下载全流程 BBDown 完整实战指南从一条命令到 API 自动化的哔哩哔哩视频下载全流程【免费下载链接】BBDownBilibili Downloader. 一个命令行式哔哩哔哩下载器.项目地址: https://gitcode.com/gh_mirrors/bb/BBDownBBDown 是一个基于 .NET 的命令行式哔哩哔哩下载器Bilibili Downloader只需一条命令即可完成视频、弹幕、字幕、封面的一站式下载支持 8K、HDR、杜比视界与番剧、课程、合集、收藏夹等几乎所有内容类型。本文将以下载管线为主线带你从零安装走到 API 服务器自动化每一步都有真实可复制的命令。一个真实的场景收藏夹要没了怎么办设想这样一个夜晚你精心收藏的学习资料合集突然提示UP主已删除该视频或者你有一门付费课程即将下架而你的网速恰好只够在线看。你翻遍了网页端发现 B 站官方并不提供一键备份全部的选项。BBDown 就是为解决这类需求而生的。它是一个纯命令行工具没有花哨的界面却把哔哩哔哩的下载能力做到了极致——更重要的是它的工作方式清晰得像一条流水线你可以随时插手其中任何一环。看懂 BBDown 的下载管线一次下载的四段旅程大多数下载器对用户是个黑盒扔进去一个链接吐出一个文件。而 BBDown 的设计更接近一条透明的生产线理解这条管线你就能理解它 90% 的命令行参数。管线环节做什么对应核心参数解析识别链接类型抓取视频信息-info、--show-all选流从音视频流中挑出最佳组合-q、-e、--video-only拉流下载所选的分片流-mt、-aria2、--force-http混流合并音视频并封装成 MP4--use-mp4box、--skip-mux、--language管线的第一站是解析。BBDown 会根据输入自动识别内容类型源码BBDown.Core/FetcherFactory.cs中写得很直白以cheese开头走课程解析器以ep开头走番剧解析器以mid开头解析个人空间favId对应收藏夹seriesBizId对应合集列表其余情况走普通视频解析器。也就是说你把什么地址丢给它它就知道该用哪套接口。第二站选流是 BBDown 的看家本领。B 站的视频是视频流 音频流分离存储的BBDown 会把所有可用的流都列出来让你挑。画质编号在BBDown.Core/Config.cs中有完整映射127是 8K 超高清126杜比视界125HDR 真彩1204K 超清往下依次是 1080P 高帧率、1080P 高码率、1080P 高清、720P、480P、360P 等等。第三站拉流解决怎么下得快。BBDown 默认开启多线程下载BBDown/BBDownDownloadUtil.cs中实现了 Range 分片下载如果服务器不支持多线程它会自动重试并提示你用--multi-thread false关闭。第四站混流依赖外部程序。普通视频需要 FFmpeg或 MP4Box杜比视界则要求 FFmpeg 5.0 以上或新版 MP4Box。混流时 BBDown 还能自动把字幕流、章节信息一并封装进去。环境准备与安装步骤三分钟跑起来BBDown 以 .NET 全局工具的形式发布安装极其简单。第一步确认本机有 .NET 环境dotnet --version如果版本号大于 6.0.100直接执行dotnet tool install --global BBDown日后升级只需要dotnet tool update --global BBDown想从源码编译也没问题仓库结构分两个项目BBDown/是主程序命令行解析、下载、混流逻辑BBDown.Core/是核心库视频信息获取、弹幕处理、实体模型用dotnet build即可构建。第一次下载不要急着加参数安装完成后最基础的用法是这样BBDown https://www.bilibili.com/video/BV1xx4y1v7SjBBDown 会解析视频信息自动选择最佳画质下载完成后在当前目录生成 MP4 文件。如果你只想看看这个视频能下到什么画质、有哪些分P而不实际下载用-info参数预览BBDown -info https://www.bilibili.com/video/BV1xx4y1v7Sj输入框也支持直接写av、bv、BV、ep、ss编号不必每次贴完整链接。画质与编码把最佳画质的主动权拿回来BBDown 默认自动选最佳但什么是最佳因人而异。想要 1080P 高码率可以显式指定画质优先级BBDown -q 1080P 高码率, 1080P 高清 https://www.bilibili.com/video/BV1xx4y1v7Sj编码优先级同理。H.265HEVC同画质下文件更小、但老设备解码吃力AV1 压缩率最高AVC 兼容性最好。按你的播放环境排序BBDown -e hevc,av1,avc https://www.bilibili.com/video/BV1xx4y1v7Sj如果不想在命令行里纠结用-ia--interactive进入交互模式下载前手动勾选清晰度。批量场景分P、合集、番剧、收藏夹一网打尽BBDown 的批量能力是它的核心价值所在。分P选择支持三种写法覆盖所有需求# 下载单个分P BBDown -p 10 https://www.bilibili.com/video/BV1At41167aj # 下载多个指定分P BBDown -p 1,2,10 https://www.bilibili.com/video/BV1At41167aj # 下载连续范围 BBDown -p 1-10 https://www.bilibili.com/video/BV1At41167aj # 全集 BBDown -p ALL https://www.bilibili.com/bangumi/play/ss33073-p还支持LAST和LATEST关键字分别表示最后一集和最新一集。分P很多时默认只显示摘要想看全部标题用--show-all。批量下载收藏夹内容只需要传入收藏夹 IDBBDown favId:123456 https://www.bilibili.com/video/BV1xx4y1v7Sj给合集分P之间设置下载间隔避免触发风控BBDown --delay-per-page 2 https://www.bilibili.com/video/BV1At41167aj多 P 视频默认按videoTitle/[PpageNumberWithZero]pageTitle的结构存成主标题/序号分P标题的目录结构开箱即用。内容类型地图TV 接口、APP 接口与国际版BBDown 支持多套解析接口各有适用场景# 普通网页接口最通用 BBDown https://www.bilibili.com/video/BV1xx4y1v7Sj # TV 端接口粉丝量大的 UP 主基本无水印 BBDown -tv https://www.bilibili.com/video/BV1xx4y1v7Sj # APP 端接口 BBDown -app https://www.bilibili.com/video/BV1xx4y1v7Sj # 国际版接口用于东南亚地区内容 BBDown -intl https://www.bilibili.com/video/BV1xx4y1v7Sj三种接口共用一套下载管线区别只在解析来源。-info输出里会标注本次使用的 API 类型TV/APP/INTL/WEB这也是文件名变量apiType的取值来源。登录与鉴权三种方式解锁会员内容下载大会员专享内容需要登录BBDown 提供了三条路径方式一扫码登录最推荐BBDown login终端会直接渲染一个二维码基于 ConsoleQRCode用 B 站 App 扫码即完成 WEB 账号登录。TV 端账号则是BBDown logintv登录信息会写入本地数据文件后续自动复用。方式二手动传 CookieBBDown -c SESSDATA****** https://www.bilibili.com/video/BV1qt4y1X7TW方式三access_tokenAPP/TV 接口的会员内容需要 tokenBBDown -tv -token ****** https://www.bilibili.com/video/BV1qt4y1X7TW有几点值得注意TV 登录产生的 token 可以直接给 APP 接口用把BBDownTV.data复制成BBDownApp.data即可自动读取APP 接口的 token 目前推荐通过抓包获取从请求头authorization字段中取identify_v1后面的那串数字。只想要其中一部分精细化的单元素下载有时候你不需要完整视频BBDown 提供了四种单飞模式# 只要视频流 BBDown --video-only https://www.bilibili.com/video/BV1xx4y1v7Sj # 只要音频流 BBDown --audio-only https://www.bilibili.com/video/BV1xx4y1v7Sj # 只要弹幕 BBDown --danmaku-only https://www.bilibili.com/video/BV1xx4y1v7Sj # 只要封面 BBDown --cover-only https://www.bilibili.com/video/BV1xx4y1v7Sj弹幕下载需要显式开启-dd--download-danmaku支持 XML 和 ASS 两种格式。外挂字幕会被自动下载并转换为 SRT 格式不想下载字幕用--skip-subtitle跳过。AI 字幕默认不下载需要时用--skip-ai false关闭跳过开关。让文件名符合你的强迫症变量化命名默认文件名只有视频主标题BBDown 从 1.4.9 版本开始支持自定义命名模板。内置变量非常丰富videoTitle主标题、pageNumber分P序号、pageNumberWithZero补零序号、dfn清晰度、res分辨率、fps帧率、videoCodecs编码、ownerName上传者、publishDate发布时间、apiType接口类型等。例如把清晰度加进单 P 文件名BBDown -F videoTitle[dfn] https://www.bilibili.com/video/BV1xx4y1v7Sj多 P 场景下按标题/清晰度/序号组织BBDown -M videoTitle/[PpageNumberWithZero]pageTitle[dfn] https://www.bilibili.com/video/BV1xx4y1v7Sj配置文件把常用参数固化下来每次敲一大串参数很烦BBDown 支持从 1.4.9 版本开始的本地配置文件。默认读取程序同目录下的BBDown.config也可以用--config-file指定其他文件。配置格式很简单一行选项一行参数#开头的是注释# 输出文件名格式 --file-pattern videoTitle[dfn] # 多P存储格式 --multi-file-pattern videoTitle/[PpageNumberWithZero]pageTitle[dfn] # 开启弹幕下载 --download-danmaku # 分P下载间隔2秒 --delay-per-page 2之后运行BBDown --config-file BBDown.config https://www.bilibili.com/video/BV1xx4y1v7Sj注意命令行参数的优先级高于配置文件两者冲突时以命令行输入为准源码BBDown/BBDownConfigParser.cs中实现了这个合并逻辑。速度优化多线程、Aria2c 与下载服务器默认多线程下载已经足够快但追求极限可以引入 Aria2cBBDown --use-aria2c --aria2c-args -x 16 -s 16 -j 16 -k 5M https://www.bilibili.com/video/BV1xx4y1v7Sj需要你提前准备好 aria2c 二进制文件默认附加参数就是上面这组 16 线程配置。也可以单独指定 aria2c 路径--aria2c-path。下载慢还可能与 CDN 有关。BBDown 默认把下载域名的 HTTPS 替换为 HTTP--force-http默认开启并强制替换下载服务器 host--force-replace-host默认开启如果遇到特殊网络环境可以用--upos-host自定义 upos 服务器--allow-pcdn则保留 PCDN 域名仅在正常方式和自定义 host 都失败时使用。API 服务器模式把下载能力嵌入你自己的应用这是进阶用户最值得研究的特性。启动命令BBDown serve -l http://0.0.0.0:12450BBDown 就变成了一个本地 HTTP 服务接口文档在仓库的json-api-doc.md中有完整说明。核心接口包括接口方法作用/get-tasks/GET获取全部任务运行中已完成/get-tasks/runningGET获取运行中任务/add-taskPOST添加下载任务/remove-finishedGET清空已完成任务/get-tasks/{id}GET按 AID 查询单个任务添加任务只需一个 URL 字段curl -X POST -H Content-Type: application/json \ -d { Url: BV1qt4y1X7TW } http://localhost:12450/add-task配合 FilePattern 字段还能指定下载目录和命名规则。DownloadTask数据结构包含进度0-1 的小数、实时速度、总下载字节数、是否成功等字段足够支撑一个简单的下载管理前端。需要注意服务器目前不支持取消单个任务也不限制并发任务数批量添加时要控制节奏避免资源耗尽。常见问题排查四个高频坑下载提示需要登录按上文三种方式之一登录多数情况是 Cookie 过期重新BBDown login扫码即可。视频没声音绝大多数是混流失败。先确认 FFmpeg 在系统 PATH 中然后跑一次--skip-mux跳过混流看视频和音频文件是否单独下载成功如果单独文件正常问题就在混流工具检查 FFmpeg 版本杜比视界需要 5.0 以上。提示服务器不支持多线程下载加上--multi-thread false关闭多线程即可某些 CDN 不支持 Range 请求。Linux 扫码登录报The type initializer for Gdip threw an exception这是图形库依赖缺失安装系统对应的 libgdiplus 包即可解决。结语把 B 站装进你的硬盘回看这条下载管线解析、选流、拉流、混流BBDown 把每一步都做成了你可以插手的旋钮。普通用户只需要记住一条命令进阶用户则能通过编码优先级、多线程、Aria2c、配置文件把下载体验调到极致而开发者更可以借助 API 服务器模式把它嵌入自己的自动化体系——定时任务、媒体库整理、内容备份都可以围绕它搭建。它的 TODO 列表里还写着自动刷新 Cookie和更多自定义选项意味着这个项目仍在持续进化。无论你是想离线学习课程、备份收藏夹还是为创作收集素材BBDown 都是值得你放进工具箱的那把钥匙。现在就装上它用第一条命令把那个怕它消失的视频收进硬盘吧。【免费下载链接】BBDownBilibili Downloader. 一个命令行式哔哩哔哩下载器.项目地址: https://gitcode.com/gh_mirrors/bb/BBDown创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表