【告别繁琐】BiliFM一键解放B站音频:从安装到精通的全攻略
你是否曾为以下问题困扰?想在通勤时收听B站UP主的节目却受限于流量,收藏的音频节目无法离线保存,手动下载多个音频文件耗时又费力?现在,这些问题将成为历史。BiliFM——这款专为B站音频下载打造的开源工具,能让你轻松获取喜爱UP主的所有音频内容,支持多种合集类型,完全免费且无需复杂配置。本文将带你从零基础到熟练掌握BiliFM的全部功能,让优质音频触手可及。
读完本文,你将获得:
- 3种快速安装BiliFM的方法(Windows/macOS/Linux全适配)
- 5大核心功能的实战教程(含UID/BV/收藏夹/合集/列表下载)
- 7个进阶技巧与常见问题解决方案
- 完整的参数配置表与命令速查表
项目概述:BiliFM是什么?
BiliFM是一款开源的B站音频下载工具(Python脚本),能够批量下载指定UP主的全部或指定范围音频内容。它基于B站API开发,支持多种内容形式(单个视频、UP主全部视频、收藏夹、合集、列表),并提供不同音质选择。项目采用GPL-3.0开源协议,代码托管于GitCode,目前已更新至v0.2.6版本。
核心功能架构
classDiagram
class BiliFM {
+downloadByUID(uid: str)
+downloadByBV(bv: str)
+downloadByFav(media_id: str, cookies: str)
+downloadBySeason(uid: str, sid: str)
+downloadBySeries(uid: str, sid: str)
}
class AudioDownloader {
+quality: AudioQuality
+directory: str
+download(bvid: str)
}
class APIClient {
+getVideoInfo(bvid: str)
+getUserVideos(uid: str)
+getFavorites(media_id: str, cookies: str)
+getSeasonVideos(uid: str, sid: str)
+getSeriesVideos(uid: str, sid: str)
}
BiliFM --> AudioDownloader
BiliFM --> APIClient
支持的内容类型
| 下载模式 | 适用场景 | 必要参数 | 特点 |
|---|---|---|---|
| UID模式 | 下载UP主全部视频音频 | UP主UID | 批量获取,自动分页 |
| BV模式 | 下载单个视频音频 | BV号 | 支持多P视频 |
| 收藏夹模式 | 下载指定收藏夹内容 | 收藏夹media_id、Cookies | 需要登录凭证 |
| 合集模式 | 下载专题合集 | UP主UID、合集sid | 按合集结构组织文件 |
| 列表模式 | 下载自定义列表 | UP主UID、列表sid | 灵活获取指定内容 |
安装指南:3种方法快速部署
BiliFM支持Windows、macOS和Linux系统,要求Python 3.10及以上版本。以下是三种安装方式,可根据网络环境和使用需求选择:
方法1:PyPI快速安装(推荐)
这是最简单的安装方式,适合大多数用户:
pip install BiliFM --upgrade
国内用户如果遇到下载缓慢,可使用豆瓣镜像源:
pip install BiliFM --upgrade -i https://pypi.doubanio.com/simple/
方法2:源码安装
适合需要获取最新开发版或参与贡献的用户:
# 克隆仓库
git clone https://gitcode.com/jingfelix/BiliFM.git
cd BiliFM
# 安装依赖
pip install -r requirements.txt
# 安装到系统
pip install .
方法3:免安装直接运行
适合临时使用或测试场景:
# 克隆仓库
git clone https://gitcode.com/jingfelix/BiliFM.git
cd BiliFM
# 安装依赖
pip install -r requirements.txt
# 直接运行
python main.py --help
验证安装
安装完成后,执行以下命令验证是否成功:
bilifm --version
若输出类似BiliFM, version 0.2.6的信息,则表示安装成功。
核心功能教程:5种下载模式全解析
BiliFM提供五种下载模式,覆盖了B站音频获取的各种场景。以下是每种模式的详细使用方法:
1. UID模式:下载UP主全部音频
此模式通过UP主的UID(用户ID)下载其发布的所有视频音频。
使用步骤:
-
获取UP主UID:访问UP主个人空间,URL中的数字部分即为UID(如https://space.bilibili.com/123456中的123456)
-
执行下载命令:
bilifm uid 123456 --directory "~/Music/BiliFM/UP主名字"
参数说明:
uid: UP主的用户ID(必填)--directory/-d: 音频保存目录(可选,默认当前目录)--audio-quality/-q: 音频质量(可选,默认192kbps,可选值:64/128/192/320)
示例输出:
[INFO] 正在获取UP主123456的视频列表...
[INFO] 共发现25个视频,开始下载...
[1/25] 下载中: BV1xx4y1z789 - 视频标题.mp3 [192kbps]
[2/25] 下载中: BV2yy4x1a234 - 另一视频标题.mp3 [192kbps]
...
[SUCCESS] 已下载UID 123456的所有音频
2. BV模式:下载单个视频音频
此模式通过视频BV号下载单个视频的音频,支持多P视频自动识别。
使用步骤:
-
获取视频BV号:视频URL中
BV开头的部分(如https://www.bilibili.com/video/BV1xx4y1z789中的BV1xx4y1z789) -
执行下载命令:
bilifm bv BV1xx4y1z789 --audio-quality 320
参数说明:
bv: 视频的BV号(必填)--directory/-d: 音频保存目录(可选)--audio-quality/-q: 音频质量(可选,默认192kbps)
多P视频处理: 对于多P视频,BiliFM会自动识别所有分P并按顺序下载,文件名将自动添加分P序号:
BV1xx4y1z789-1-第一集标题.mp3
BV1xx4y1z789-2-第二集标题.mp3
...
3. 收藏夹模式:下载指定收藏夹音频
此模式可下载用户收藏夹中的所有视频音频,需要提供收藏夹ID和用户Cookies。
使用步骤:
-
获取收藏夹media_id:
- 访问B站收藏夹页面
- 点击"分享"按钮,复制链接
- 链接中
media_id参数的值即为所需ID(如https://www.bilibili.com/medialist/detail/ml123456789中的123456789)
-
获取Cookies:
- 在浏览器中登录B站
- 按F12打开开发者工具,切换到"控制台"标签
- 输入
document.cookie并回车,复制输出的Cookie字符串 - 将Cookie字符串转换为JSON格式(可使用在线工具如https://uutool.cn/cookie2json/)
- 保存为
cookies.json文件
-
执行下载命令:
bilifm fav 123456789 --cookies-path "~/cookies.json" --directory "~/Music/BiliFM/我的收藏"
参数说明:
media_id: 收藏夹的媒体ID(必填)--cookies-path: Cookies文件路径(必填)--directory/-d: 音频保存目录(可选)--audio-quality/-q: 音频质量(可选)
4. 合集模式:下载专题合集音频
此模式用于下载UP主创建的专题合集,如"某某教程合集"、"系列讲座"等。
使用步骤:
-
获取合集参数:
- 访问合集页面,URL格式通常为: https://space.bilibili.com/[uid]/channel/collectiondetail?sid=[sid]
- 其中
uid是UP主ID,sid是合集ID
-
执行下载命令:
bilifm season 123456 789012 --directory "~/Music/BiliFM/教程合集"
参数说明:
uid: UP主ID(必填)sid: 合集ID(必填)--directory/-d: 音频保存目录(可选)--audio-quality/-q: 音频质量(可选)
特点:
- 会自动创建以合集名称命名的文件夹
- 按合集中的顺序下载音频
- 支持分页加载,自动处理大量视频
5. 列表模式:下载自定义列表音频
此模式用于下载UP主创建的自定义视频列表,与合集模式类似但结构不同。
使用步骤:
-
获取列表参数:
- 访问列表页面,URL格式通常为: https://space.bilibili.com/[uid]/channel/seriesdetail?sid=[sid]
- 其中
uid是UP主ID,sid是列表ID
-
执行下载命令:
bilifm series 123456 789012 --audio-quality 128
参数说明:
uid: UP主ID(必填)sid: 列表ID(必填)--directory/-d: 音频保存目录(可选)--audio-quality/-q: 音频质量(可选,默认64kbps)
注意:列表模式默认音频质量为64kbps,若需更高质量需显式指定。
进阶技巧与最佳实践
音频质量选择策略
BiliFM提供四种音频质量选项,可根据需求选择:
| 质量参数 | 比特率 | 文件大小(每小时) | 适用场景 |
|---|---|---|---|
| 64 | 64kbps | ~28MB | 存储空间有限,追求数量 |
| 128 | 128kbps | ~56MB | 平衡音质与存储 |
| 192 | 192kbps | ~84MB | 默认选择,日常收听 |
| 320 | 320kbps | ~140MB | 高质量需求,无损音质爱好者 |
建议:
- 播客、讲座类内容:64-128kbps足够
- 音乐类内容:建议192-320kbps
- 批量下载多个UP主:可先使用64kbps试下载,满意后再提高质量
批量操作与自动化
通过结合shell脚本,可以实现更复杂的批量下载任务。例如,创建download.sh:
#!/bin/bash
# 定义要下载的UP主UID列表
UIDS=(
"123456" # UP主A
"789012" # UP主B
"345678" # UP主C
)
# 定义保存根目录
ROOT_DIR="~/Music/BiliFM"
# 遍历UID列表并下载
for uid in "${UIDS[@]}"; do
# 创建以UID命名的目录
DIR="$ROOT_DIR/$uid"
mkdir -p "$DIR"
# 下载音频,质量192kbps
bilifm uid "$uid" --directory "$DIR" --audio-quality 192
# 记录下载时间
echo "[$(date)] 完成UID $uid的下载" >> "$ROOT_DIR/download_log.txt"
done
常见问题解决方案
问题1:出现412错误(请求被拒绝)
原因:B站API需要特定的签名参数,BiliFM已集成相关算法,但在某些网络环境下可能失效。
解决方案:
# 更新到最新版本
pip install BiliFM --upgrade
# 关闭代理后重试
问题2:收藏夹下载失败,提示"需要登录"
原因:Cookies无效或已过期。
解决方案:
- 重新获取Cookies(参考前文收藏夹模式)
- 确保Cookies包含
SESSDATA和bili_jct字段 - 使用最新版本的BiliFM
问题3:下载速度慢或频繁中断
解决方案:
- 使用
--directory参数指定本地磁盘而非网络驱动器 - 降低同时下载的任务数量(默认单线程,可通过修改源码调整)
- 分时段下载,避开B站服务器高峰期(通常为晚间)
问题4:音频文件无法播放或时长不正确
原因:视频格式特殊或下载不完整。
解决方案:
# 删除不完整文件并重试
rm *.part # 删除临时文件
bilifm [模式] [参数] --audio-quality 128 # 尝试降低质量重新下载
命令参考速查表
基础命令格式
bilifm [模式] [参数] [选项]
模式与参数对照表
| 模式 | 必需参数 | 可选参数 | 示例 |
|---|---|---|---|
| uid | UP主UID | --directory, --audio-quality | bilifm uid 123456 -d ~/Music -q 192 |
| bv | 视频BV号 | --directory, --audio-quality | bilifm bv BV1xx4y1z789 -q 320 |
| fav | media_id, --cookies-path | --directory, --audio-quality | bilifm fav 789012 --cookies-path cookies.json |
| season | uid, sid | --directory, --audio-quality | bilifm season 123456 789012 -d ~/Music |
| series | uid, sid | --directory, --audio-quality | bilifm series 123456 789012 -q 64 |
全局选项
| 选项 | 说明 |
|---|---|
| --version | 显示版本信息 |
| --help | 显示帮助信息 |
总结与展望
BiliFM作为一款专注于B站音频下载的工具,凭借其简洁的接口、丰富的功能和良好的兼容性,为用户提供了高效的音频获取方案。无论是日常通勤、学习还是离线收听,BiliFM都能满足你的需求。
已实现功能回顾
- ✅ 五种下载模式覆盖各种使用场景
- ✅ 多P视频自动识别与下载
- ✅ 自定义音频质量与保存目录
- ✅ B站API签名算法支持,解决412错误
- ✅ 完善的错误处理与提示
未来发展方向
根据项目 roadmap,未来版本可能会增加以下功能:
- 音频格式转换(支持MP3/WAV/FLAC等)
- 下载进度保存与断点续传
- 定时任务与自动更新
- 图形用户界面(GUI)
- 音频标签自动添加(标题、UP主、封面等)
如果你在使用过程中遇到问题或有功能建议,欢迎通过项目仓库提交issue或Pull Request,一起完善这个工具。
法律声明:本工具仅用于个人学习和研究目的,下载的音频内容请遵守B站用户协议和版权相关法律法规,支持正版内容。
开源协议:GPL-3.0 License
Kimi-K2.5Kimi K2.5 是一款开源的原生多模态智能体模型,它在 Kimi-K2-Base 的基础上,通过对约 15 万亿混合视觉和文本 tokens 进行持续预训练构建而成。该模型将视觉与语言理解、高级智能体能力、即时模式与思考模式,以及对话式与智能体范式无缝融合。Python00- QQwen3-Coder-Next2026年2月4日,正式发布的Qwen3-Coder-Next,一款专为编码智能体和本地开发场景设计的开源语言模型。Python00
xw-cli实现国产算力大模型零门槛部署,一键跑通 Qwen、GLM-4.7、Minimax-2.1、DeepSeek-OCR 等模型Go06
PaddleOCR-VL-1.5PaddleOCR-VL-1.5 是 PaddleOCR-VL 的新一代进阶模型,在 OmniDocBench v1.5 上实现了 94.5% 的全新 state-of-the-art 准确率。 为了严格评估模型在真实物理畸变下的鲁棒性——包括扫描伪影、倾斜、扭曲、屏幕拍摄和光照变化——我们提出了 Real5-OmniDocBench 基准测试集。实验结果表明,该增强模型在新构建的基准测试集上达到了 SOTA 性能。此外,我们通过整合印章识别和文本检测识别(text spotting)任务扩展了模型的能力,同时保持 0.9B 的超紧凑 VLM 规模,具备高效率特性。Python00
KuiklyUI基于KMP技术的高性能、全平台开发框架,具备统一代码库、极致易用性和动态灵活性。 Provide a high-performance, full-platform development framework with unified codebase, ultimate ease of use, and dynamic flexibility. 注意:本仓库为Github仓库镜像,PR或Issue请移步至Github发起,感谢支持!Kotlin07
VLOOKVLOOK™ 是优雅好用的 Typora/Markdown 主题包和增强插件。 VLOOK™ is an elegant and practical THEME PACKAGE × ENHANCEMENT PLUGIN for Typora/Markdown.Less00