# Bilibili 视频下载器 一个基于 bilibili-api-python 的 B 站视频下载工具,支持自动发现相关视频并批量下载。 ## 功能特性 - 🎥 支持 B 站视频下载 - 🔄 自动发现并下载相关视频 - 📝 持久化保存已下载视频记录(基于 bvid 去重) - 🚀 多线程下载,后台自动处理 - 💾 自动合并音视频流 ## 环境要求 - Python 3.10+ - ffmpeg - 网络连接 ## 安装依赖 ```bash # 安装 bilibili-api pip install bilibili-api-python # 安装 you-get(用于下载视频) pip install you-get # 安装其他依赖库 pip3 install aiohttp pip3 install httpx pip3 install "curl_cffi" ``` ## 安装 ffmpeg ### Windows #### 方法一:使用 winget(推荐) ```powershell winget install ffmpeg ``` #### 方法二:手动安装 1. 访问 [ffmpeg 官网](https://ffmpeg.org/download.html) 或 [BtbN FFmpeg Builds](https://github.com/BtbN/FFmpeg-Builds/releases) 2. 下载 Windows 版本的 ffmpeg(选择 `ffmpeg-master-latest-win64-gpl.zip`) 3. 解压到 `C:\ffmpeg` 目录 4. 将 `C:\ffmpeg\bin` 添加到系统环境变量 PATH 中: - 右键「此电脑」→「属性」→「高级系统设置」→「环境变量」 - 在「系统变量」中找到 Path,点击「编辑」 - 添加 `C:\ffmpeg\bin` - 点击「确定」保存 #### 方法三:使用 Chocolatey ```powershell choco install ffmpeg ``` ### macOS #### 使用国内 Homebrew 镜像安装(推荐) 由于网络原因,建议使用国内镜像源: **1. 配置 Homebrew 国内镜像** ```bash # 替换 Homebrew 源 export HOMEBREW_BREW_GIT_REMOTE="https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/brew.git" export HOMEBREW_BOTTLE_DOMAIN="https://mirrors.tuna.tsinghua.edu.cn/homebrew-bottles" # 重置 Homebrew git -C "$(brew --repo)" remote set-url origin https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/brew.git git -C "$(brew --repo homebrew/core)" remote set-url origin https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/homebrew-core.git ``` **2. 安装 ffmpeg** ```bash brew install ffmpeg ``` #### 使用官方 Homebrew 安装 ```bash # 安装 Homebrew(如果未安装) /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" # 安装 ffmpeg brew install ffmpeg ``` ### Linux #### Ubuntu/Debian ```bash sudo apt update sudo apt install ffmpeg ``` #### CentOS/RHEL/Fedora **CentOS/RHEL:** ```bash sudo yum install epel-release sudo yum install ffmpeg ``` **Fedora:** ```bash sudo dnf install ffmpeg ``` #### Arch Linux ```bash sudo pacman -S ffmpeg ``` #### 使用 Snap 安装 ```bash sudo snap install ffmpeg ``` ## 使用方法 ### 1. 运行程序 ```bash python spider.py ``` ### 2. 输入视频链接 程序启动后,会显示提示符: ``` ================================================== Bilibili Video Downloader ================================================== Download worker started in background Enter bilibili video URLs to download Related videos will be automatically discovered and queued Type 'quit' to exit ================================================== input worker started, waiting for URLs... Enter a bilibili URL (or 'quit' to exit): > ``` ### 3. 输入 B 站视频链接 支持的链接格式: - `https://www.bilibili.com/video/BV1xx411c7mD` - `https://b23.tv/xxxxx` - 直接输入 bvid:`BV1xx411c7mD` 示例: ``` > https://www.bilibili.com/video/BV1xx411c7mD added to queue: BV1xx411c7mD, queue size: 1 ``` ### 4. 自动下载 - 程序会在后台自动下载队列中的视频 - 下载完成后会自动发现相关视频并添加到队列 - 已下载的视频会记录在 `downloaded_bvids.txt` 文件中,避免重复下载 ### 5. 退出程序 ``` > quit stopping... ``` ## 文件说明 ``` spider/ ├── spider.py # 主程序 ├── downloaded_bvids.txt # 已下载视频记录(自动生成) ├── downloads/ # 下载目录(自动生成) │ ├── BV1xx411c7mD_视频标题.mp4 │ └── ... ├── requirements.txt # Python 依赖 └── README.md # 本文件 ``` ## 注意事项 1. **首次运行**:程序会自动查找 ffmpeg,请确保已正确安装 2. **下载位置**:视频默认下载到 `downloads/` 目录 3. **去重机制**:程序基于 bvid 进行去重,已下载的视频不会重复下载 4. **网络要求**:需要稳定的网络连接,建议使用国内网络环境 5. **存储空间**:请确保有足够的磁盘空间存储视频 ## 常见问题 ### Q: 提示 "ffmpeg not found" A: 请按照上述安装教程安装 ffmpeg,并确保添加到系统环境变量中。 ### Q: 下载速度慢 A: 下载速度取决于网络环境和 B 站服务器,建议在网络较好的时段下载。 ### Q: 如何重新下载已下载的视频 A: 删除 `downloaded_bvids.txt` 文件中对应的 bvid 行,或删除整个文件重新开始。 ### Q: 程序卡住不动 A: 可能是网络问题,可以按 `Ctrl+C` 终止程序后重新运行。 ## 许可证 MIT License ## 致谢 - [bilibili-api-python](https://github.com/MoyuScript/bilibili-api-python) - B 站 API 库 - [FFmpeg](https://ffmpeg.org/) - 音视频处理工具