当前位置: 首页 > news >正文

一款基于 .NET 开源、免费、命令行式的哔哩哔哩视频内容下载工具

前言

今天大姚给大家分享一款基于 .NET 开源(MIT license)、免费、命令行式的哔哩哔哩视频内容下载工具:BBDown。

工具介绍

BBDown 是一款基于 .NET 开源(MIT license)、免费、命令行式的哔哩哔哩视频内容下载工具。它支持从哔哩哔哩平台下载普通视频、番剧、课程、合集、收藏夹等多类型内容,具备强大的解析能力、灵活的配置选项和高度可扩展性。

注意:本项目仅供个人学习、研究和非商业性用途。用户在使用本工具时,需自行确保遵守相关法律法规,特别是与版权相关的法律条款。

工具功能

  • 番剧下载:支持 Web、TV 和 App 接口

  • 课程下载:支持 Web 接口

  • 普通内容下载:支持 Web、TV 和 App 接口

  • 合集/列表/收藏夹/个人空间解析

  • 多分P自动下载

  • 选择指定分P进行下载

  • 选择指定清晰度进行下载

  • 下载外挂字幕并转换为srt格式

  • 自动合并音频+视频流+字幕流+章节信息(使用 ffmpegmp4box

  • 单独下载视频/音频/字幕

  • 二维码登录账号

  • 多线程下载

  • 支持调用aria2c下载

  • 支持AVC/HEVC/AV1编码

  • 支持8K/HDR/杜比视界/杜比全景声下载

  • 自定义存储文件名等等......

工具源代码

快速开始

本软件已经以 .NET Tool 形式发布,如果你本地有 .NET 环境,使用如下命令即可安装使用:

dotnet tool install --global BBDown

如果需要更新BBDown,使用如下命令:

dotnet tool update --global BBDown

支持的命令行参数

Description:BBDown是一个免费且便捷高效的哔哩哔哩下载/解析软件.Usage:BBDown <url> [command] [options]Arguments:<url>  视频地址 或 av|bv|BV|ep|ssOptions:-tv, --use-tv-api                              使用TV端解析模式-app, --use-app-api                            使用APP端解析模式-intl, --use-intl-api                          使用国际版(东南亚视频)解析模式--use-mp4box                                   使用MP4Box来混流-e, --encoding-priority <encoding-priority>    视频编码的选择优先级, 用逗号分割 例: "hevc,av1,avc"-q, --dfn-priority <dfn-priority>              画质优先级,用逗号分隔 例: "8K 超高清, 1080P 高码率, HDR 真彩, 杜比视界"-info, --only-show-info                        仅解析而不进行下载--show-all                                     展示所有分P标题-aria2, --use-aria2c                           调用aria2c进行下载(你需要自行准备好二进制可执行文件)-ia, --interactive                             交互式选择清晰度-hs, --hide-streams                            不要显示所有可用音视频流-mt, --multi-thread                            使用多线程下载(默认开启)--video-only                                   仅下载视频--audio-only                                   仅下载音频--danmaku-only                                 仅下载弹幕--sub-only                                     仅下载字幕--cover-only                                   仅下载封面--debug                                        输出调试日志--skip-mux                                     跳过混流步骤--skip-subtitle                                跳过字幕下载--skip-cover                                   跳过封面下载--force-http                                   下载音视频时强制使用HTTP协议替换HTTPS(默认开启)-dd, --download-danmaku                        下载弹幕--skip-ai                                      跳过AI字幕下载(默认开启)--video-ascending                              视频升序(最小体积优先)--audio-ascending                              音频升序(最小体积优先)--allow-pcdn                                   不替换PCDN域名, 仅在正常情况与--upos-host均无法下载时使用-F, --file-pattern <file-pattern>              使用内置变量自定义单P存储文件名:<videoTitle>: 视频主标题<pageNumber>: 视频分P序号<pageNumberWithZero>: 视频分P序号(前缀补零)<pageTitle>: 视频分P标题<bvid>: 视频BV号<aid>: 视频aid<cid>: 视频cid<dfn>: 视频清晰度<res>: 视频分辨率<fps>: 视频帧率<videoCodecs>: 视频编码<videoBandwidth>: 视频码率<audioCodecs>: 音频编码<audioBandwidth>: 音频码率<ownerName>: 上传者名称<ownerMid>: 上传者mid<publishDate>: 收藏夹/番剧/合集发布时间<videoDate>: 视频发布时间(分p视频发布时间与<publishDate>相同)<apiType>: API类型(TV/APP/INTL/WEB)默认为: <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 或 -p 3,5,LATEST)--language <language>                          设置混流的音频语言(代码), 如chi, jpn等-ua, --user-agent <user-agent>                 指定user-agent, 否则使用随机user-agent-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的路径--upos-host <upos-host>                        自定义upos服务器--force-replace-host                           强制替换下载服务器host(默认开启)--save-archives-to-file                        将下载过的视频记录到本地文件中, 用于后续跳过下载同个视频--delay-per-page <delay-per-page>              设置下载合集分P之间的下载间隔时间(单位: 秒, 默认无间隔)--host <host>                                  指定BiliPlus host(使用BiliPlus需要access_token, 不需要cookie, 解析服务器能够获取你账号的大部分权限!)--ep-host <ep-host>                            指定BiliPlus EP host(用于代理api.bilibili.com/pgc/view/web/season, 大部分解析服务器不支持代理该接口)--tv-host <tv-host>                            自定义tv端接口请求Host(用于代理api.snm0516.aisee.tv)--area <area>                                  (hk|tw|th) 使用BiliPlus时必选, 指定BiliPlus area--config-file <config-file>                    读取指定的BBDown本地配置文件(默认为: BBDown.config)--version                                      Show version information-?, -h, --help                                 Show help and usage informationCommands:login    通过APP扫描二维码以登录您的WEB账号logintv  通过APP扫描二维码以登录您的TV账号serve    以服务器模式运行

功能演示

项目源码地址

更多项目实用功能和特性欢迎前往项目开源地址查看👀,别忘了给项目一个Star支持💖。

  • GitHub开源地址: https://github.com/nilaoda/BBDown

优秀项目和框架精选

该项目已收录到C#/.NET/.NET Core优秀项目和框架精选中,关注优秀项目和框架精选能让你及时了解C#、.NET和.NET Core领域的最新动态和最佳实践,提高开发工作效率和质量。坑已挖,欢迎大家踊跃提交PR推荐或自荐(让优秀的项目和框架不被埋没🤞)。

  • GitHub开源地址: https://github.com/YSGStudyHards/DotNetGuide/blob/main/docs/DotNet/DotNetProjectPicks.md

  • Gitee开源地址: https://gitee.com/ysgdaydayup/DotNetGuide/blob/main/docs/DotNet/DotNetProjectPicks.md

http://www.dtcms.com/a/393591.html

相关文章:

  • Win Semi宣布推出线性优化的GaN工艺
  • 考研408计算机网络2025年第38题真题解析
  • C++编写的经典贪吃蛇游戏
  • 风险预测模型原理
  • PS练习5:利用翻转制作图像倒影
  • 平替Jenkins,推荐一款国产开源免费的CICD工具 - Arbess
  • aws 实战小bug
  • NumPy 系列(一):numpy 数组基础
  • VSCode 的 launch.json 配置
  • OpenLayers地图交互 -- 章节六:范围交互详解
  • 分布式专题——15 ZooKeeper特性与节点数据类型详解
  • 分布式专题——16 ZooKeeper经典应用场景实战(上)
  • Torch-Rechub学习笔记-task2
  • Hadoop分布式计算平台
  • hive调优系列-1.调优须知
  • 爆炸特效:Unity+Blender-01
  • 解决切换 Node 版本后 “pnpm 不是内部或外部命令”问题
  • flag使用错误出现bug
  • 【Kafka面试精讲 Day 20】集群监控与性能评估
  • SQL 注入攻防:绕过注释符过滤的N种方法
  • 微软常用运行库
  • 在Kubernetes(k8s)环境中无法删除持久卷(PV)和持久卷声明(PVC)的解决方案
  • 【连载7】 C# MVC 跨框架异常处理对比:.NET Framework 与 .NET Core 实现差异
  • 芯脉:面向高速接口的SoC架构与完整性设计<3>
  • ArrayList与LinkedList深度对比
  • AI IDE 综合评估:代码能力与上下文连续性深度分析
  • OceanBase备租户创建(一):通过CREATE STANDBY TENANT
  • C++ 多态:从概念到实践,吃透面向对象核心特性
  • ​​如何用 Webpack 或 Vite 给文件名(如 JS、CSS、图片等静态资源)加 Hash?这样做有什么好处?​​
  • QT-数据库编程