【B站音频黑科技】BiliFM:一键解放UP主所有音频的终极解决方案

【B站音频黑科技】BiliFM:一键解放UP主所有音频的终极解决方案

【免费下载链接】BiliFM 下载指定 B 站 UP 主全部或指定范围的音频,支持多种合集。A script to download all audios of the Bilibili uploader you love. 【免费下载链接】BiliFM 项目地址: https://gitcode.com/jingfelix/BiliFM

你是否曾遇到这些痛点?通勤路上想听B站UP主的播客却要耗费流量?收藏夹里的音频节目想离线保存却找不到工具?面对多P视频、系列合集只能逐个下载?今天推荐的开源项目BiliFM将彻底解决这些问题,让你以最高效的方式管理B站音频资源。

读完本文你将获得:

  • 5种下载模式的全场景应用指南
  • 突破412错误的独家技术解析
  • 从安装到高级配置的一站式操作手册
  • 应对网络异常的100%成功率保障方案

项目概述:重新定义B站音频下载

BiliFM是一款专为B站音频资源设计的命令行工具(Command-Line Interface,CLI),能够通过UP主UID、视频BV号、收藏夹、合集、列表等多维度批量获取音频内容。项目基于Python开发,采用模块化架构设计,已修复B站API接口的412签名验证问题,支持断点续传与文件去重,是目前GitHub上Star增长最快的B站音频工具之一。

mermaid

安装部署:30秒快速启动

环境要求

  • Python 3.10+(推荐3.11版本)
  • 网络环境:建议使用稳定网络连接
  • 存储空间:根据下载量预留至少1GB

安装方式

1. PyPI官方源(推荐)
pip install BiliFM --upgrade
2. 源码编译安装
git clone https://gitcode.com/jingfelix/BiliFM
cd BiliFM
pip install -r requirements.txt

安装完成后验证版本:

bilifm --version
# 输出示例:BiliFM, version 1.2.0

核心功能解析:5大模式全覆盖

1. UID模式:UP主全量下载

适用场景:关注的UP主更新了新节目,需要一次性获取其所有作品

# 基础用法
bilifm uid 261485584

# 指定存储目录
bilifm uid 261485584 --directory "~/Music/B站音频"

# 高质量音频(320kbps)
bilifm uid 261485584 --audio-quality 30280

实现原理:通过B站用户空间API获取视频列表,自动解析每个视频的BV号并调用音频下载接口。代码采用生成器模式(Generator)实现分页加载,避免内存溢出:

# 核心代码片段(src/bilifm/user.py)
def get_videos(self):
    for page in range(1, self.total_pages + 1):
        params = {"mid": self.uid, "pn": page, "ps": 30}
        res = request("https://api.bilibili.com/x/space/arc/search", params=params)
        for video in res["data"]["list"]["vlist"]:
            yield {"bvid": video["bvid"], "title": video["title"]}

2. BV模式:单视频/多P下载

适用场景:下载单个视频或多P视频的音频轨道

# 单P视频
bilifm bv BV1k341187kG

# 多P视频(自动识别所有分P)
bilifm bv BV1LY4y1z7gQ

# 自定义文件名
bilifm bv BV1LY4y1z7gQ --output "科技早报.mp3"

特别优化:针对B站多P视频(Pages)设计了分P处理逻辑,自动在文件名后添加分P序号:

# 分P文件命名逻辑(src/bilifm/audio.py)
if len(self.part_list) > 1:
    file_path = f"{self.title}-{part}.mp3"  # 多P时添加分P标题
else:
    file_path = f"{self.title}.mp3"  # 单P直接使用标题

3. 收藏夹模式:精选内容备份

适用场景:将收藏的"学习资料"、"播客合集"导出为音频

准备工作:获取Cookies和MediaID
  1. 获取MediaID: 打开B站收藏夹页面,URL中"media_id="后的数字即为所需参数
    例如:https://space.bilibili.com/23263470/favlist?fid=6936194469361944

  2. 获取Cookies

    • 浏览器打开B站,F12打开开发者工具
    • 控制台输入:document.cookie
    • 复制输出内容,使用在线Cookie转JSON工具转换为JSON格式
    • 保存为cookies.json文件
执行下载
bilifm fav 69361944 cookies.json --directory "~/收藏夹音频"

4. Season模式:系列合集下载

适用场景:下载课程、专辑等结构化合集内容

# 从URL提取参数:https://space.bilibili.com/23263470/channel/collectiondetail?sid=1855309
bilifm season 23263470 1855309

参数解析

  • 23263470:UP主UID(实际可任意填写,API限制导致的兼容处理)
  • 1855309:合集ID(sid参数)

5. Series模式:自定义列表下载

适用场景:下载UP主创建的非官方系列内容

# 从URL提取参数:https://space.bilibili.com/488978908/channel/seriesdetail?sid=888434
bilifm series 488978908 888434

高级配置:打造个性化下载体验

音频质量控制

支持三种音质选择,通过--audio-quality参数指定:

质量等级参数值比特率适用场景
标准品质3021664kbps节省流量
高清品质30232192kbps日常收听
无损品质30280320kbps高保真需求

示例:

bilifm bv BV1LY4y1z7gQ --audio-quality 30280

错误处理与重试机制

内置三层容错保障:

  1. 网络错误重试:默认3次重试,指数退避策略
  2. 文件校验:通过文件大小和哈希值验证完整性
  3. 断点续传:支持中断后继续下载未完成文件

mermaid

常见问题解决方案

1. 412错误(签名验证失败)

原因:B站API更新了签名算法
解决:项目已集成最新签名算法(参照bilibili-API-Collection),确保使用1.1.0以上版本

2. 下载速度慢

优化方案

  • 关闭代理
  • 更换网络环境(推荐有线连接)
  • 添加--concurrent 5参数启用多线程下载

3. 文件名过长导致保存失败

自动处理:程序会自动截断超过255字符的文件名,保留核心标识:

# 文件名处理逻辑(src/bilifm/audio.py)
if len(file_path) > 255:
    file_path = file_path[:255]  # 截断长文件名

性能对比:为什么选择BiliFM?

特性BiliFM传统在线工具浏览器插件
批量下载✅ 支持无限量❌ 单次5个限制❌ 依赖人工操作
音质选择✅ 3档可调❌ 固定128kbps❌ 不可调
断点续传✅ 支持❌ 需重新下载❌ 不支持
本地存储✅ 完全本地❌ 云端中转✅ 支持
多平台✅ Windows/macOS/Linux✅ 仅网页❌ 依赖浏览器

未来 roadmap

根据项目GitHub Issues和开发者规划,即将支持的功能:

  • 音频格式转换(支持FLAC/ACC)
  • 订阅更新通知
  • GUI图形界面
  • 音频标签自动补全(歌手/专辑信息)

使用许可与致谢

BiliFM采用GPL-3.0开源协议,允许非商业用途的自由分发和修改。项目特别感谢:

结语

BiliFM通过命令行的简洁界面,提供了专业级的B站音频管理解决方案。无论是通勤路上的播客收听,还是学习资料的离线整理,都能以最高效的方式完成。现在就通过以下命令开始你的高效音频管理之旅:

# 安装并体验
pip install BiliFM
bilifm uid 261485584 --directory "我的B站音频库"

如有任何使用问题或功能建议,欢迎在项目GitHub仓库提交Issue或参与讨论。开源项目的成长离不开每一位用户的反馈与贡献!

【免费下载链接】BiliFM 下载指定 B 站 UP 主全部或指定范围的音频,支持多种合集。A script to download all audios of the Bilibili uploader you love. 【免费下载链接】BiliFM 项目地址: https://gitcode.com/jingfelix/BiliFM

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值