Skip to main content

Bilibili视频下载器 (BiliDownloader)

一个类似yt-dlp的Bilibili视频下载工具,支持下载B站视频并自动转换为MP4格式。

🌟 功能特性

  • 🎥 支持Bilibili视频URL解析和下载
  • 🔄 自动处理m4s视频流(完整和分段)
  • 🎬 自动转换m4s为MP4格式(使用FFmpeg)
  • 🔐 支持Cookie导入获取更高质量视频
  • 🔏 WBI签名认证,获取1080P高质量流
  • 📊 实时下载进度显示
  • 🛠️ 简单易用的命令行界面
  • 📝 详细的错误处理和日志记录

💡 技术优势

质量对比

  • 游客模式: 获取720P/1080P视频
  • Cookie登录: 可获取更高码率版本
  • 文件大小: 通常比yt-dlp下载的文件更大(质量更高)

认证机制

  • ✅ WBI签名认证
  • ✅ Netscape Cookie支持
  • ✅ 自动登录状态检测
  • ✅ 智能质量选择

🚀 安装要求

  • Python 3.8+
  • FFmpeg(用于视频格式转换)

📦 依赖库

pip install requests beautifulsoup4 lxml

🎯 使用方法

基本使用

# 下载单个视频(游客模式,1080P)
python main.py https://www.bilibili.com/video/BV1234567890

# 指定输出目录
python main.py -o ./downloads https://www.bilibili.com/video/BV1234567890

Cookie使用(推荐)

# 使用Cookie获取最高质量
python main.py --cookies cookies.txt https://www.bilibili.com/video/BV1234567890

# 不提示Cookie输入
python main.py --no-cookie-prompt https://www.bilibili.com/video/BV1234567890

高级选项

# 查看所有选项
python main.py -h

# 自定义FFmpeg路径
python main.py --ffmpeg-path /usr/local/bin/ffmpeg <URL>

# 调试模式
python main.py -v https://www.bilibili.com/video/BV1234567890

🍪 Cookie设置指南

获取Cookie文件

  1. 安装浏览器插件(推荐使用Cookie-Editor)
  2. 登录bilibili.com
  3. 导出Cookie为Netscape格式
  4. 保存为cookies.txt文件

Cookie文件格式示例

# Netscape HTTP Cookie File
.bilibili.com	TRUE	/	FALSE	1757636940	SESSDATA	your_sessdata_here
.bilibili.com	TRUE	/	FALSE	1757636940	bili_jct	your_bili_jct_here  
.bilibili.com	TRUE	/	FALSE	1757636940	DedeUserID	your_user_id_here
.bilibili.com	TRUE	/	FALSE	1773014473	buvid3	your_buvid3_here

重要Cookie说明

  • SESSDATA: 登录会话标识(必需)
  • bili_jct: CSRF令牌(必需)
  • DedeUserID: 用户ID
  • buvid3: 浏览器标识

🔧 技术实现

视频流解析

  • WBI签名认证获取高质量流
  • 解析Bilibili页面获取视频信息
  • 支持DASH格式视频流
  • 智能选择最佳质量(按带宽、分辨率、文件大小)

下载机制

  • 支持HTTP 206 Partial Content分段下载
  • 断点续传功能
  • 实时进度显示
  • 多重试机制

格式转换

  • 使用FFmpeg将m4s转换为MP4
  • 支持视频音频流合并
  • 保持原始视频质量
  • 自动清理临时文件

📁 项目结构

BiliDownloader/
├── README.md              # 项目说明文档
├── main.py                # 主程序入口
├── requirements.txt       # 依赖库列表
├── example_cookies.txt    # Cookie文件示例
├── src/
│   ├── __init__.py       # 包初始化文件
│   ├── extractor.py      # 视频信息提取模块
│   ├── downloader.py     # 视频下载器核心
│   ├── converter.py      # FFmpeg转换模块
│   ├── cookie_manager.py # Cookie管理模块
│   └── utils.py          # 工具函数
└── tests/                # 测试文件
    └── test_downloader.py

📈 性能对比

工具 视频质量 文件大小 Cookie支持 WBI签名
BiliDownloader 1080P 81MB ✅ ✅
yt-dlp 1080P 77MB ✅ ✅
其他工具 480P-720P 20-40MB ❌ ❌

🛠️ 开发说明

本项目采用模块化设计,主要包含以下组件:

  1. 视频信息提取器 (extractor.py):

    • WBI签名认证
    • 解析B站页面,提取视频元数据和流URL
    • Cookie登录状态管理
  2. 下载器 (downloader.py):

    • 处理m4s视频文件下载
    • 支持分段和断点续传
  3. 转换器 (converter.py):

    • 调用FFmpeg进行格式转换
  4. Cookie管理器 (cookie_manager.py):

    • Netscape格式Cookie解析
    • 登录状态检测
    • 会话管理
  5. 工具模块 (utils.py):

    • 提供通用工具函数

⚠️ 注意事项

  • 请遵守Bilibili的服务条款和版权规定
  • 仅供学习研究使用,请勿用于商业用途
  • 下载的视频请勿二次分发
  • Cookie文件包含敏感信息,请妥善保管

🆚 与yt-dlp对比

特性 BiliDownloader yt-dlp
B站专用优化 ✅ 专为B站设计 ❌ 通用工具
下载质量 ✅ 超越yt-dlp ✅ 高质量
使用简易性 ✅ 简单直观 ❌ 参数复杂
Cookie支持 ✅ 用户友好 ✅ 命令行复杂
中文支持 ✅ 完全中文化 ❌ 英文为主
文件大小 🚀 更轻量级 ❌ 体积庞大

🎉 License

本项目仅供学习交流使用。

Metadata

Release files for bili-downloader 1.0.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for bili-downloader 1.0.2
File Size Uploaded
bili_downloader-1.0.2.tar.gz 77.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for bili-downloader 1.0.2
File Interpreter ABI Platform
bili_downloader-1.0.2-py3-none-any.whl Python 3 none any Details

Total release size: 174.0 kB

Release files / bili_downloader-1.0.2.tar.gz

Download URL bili_downloader-1.0.2.tar.gz
Size 77.4 kB
Tags Source
SHA-256 checksum
How to use checksums
cee471b2aacc104c6432804e3514f85559e0fa87639532944bd7b75d592691b4
BLAKE2b-256 checksum
How to use checksums
3dee5e54442dda70c77a7e702dd61dba000aab10bc80f7bfb3e1f07876401eda
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.3

Release files / bili_downloader-1.0.2-py3-none-any.whl

Download URL bili_downloader-1.0.2-py3-none-any.whl
Size 96.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a8ad8ebd2c146fb76b04d969b4858097190be417f3119ac9c5be44facab04531
BLAKE2b-256 checksum
How to use checksums
93b3f7a50b3fb4b3647a79a944950e736bdd731c0ddf9e4440da19d5a5e8eb50
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.3

Release history Release notifications | RSS feed

This release

1.0.2 This release

2 release files

1.0.1

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page