首页
/ 【告别繁琐】BiliFM一键解放B站音频:从安装到精通的全攻略

【告别繁琐】BiliFM一键解放B站音频:从安装到精通的全攻略

2026-02-04 04:47:29作者:董宙帆

你是否曾为以下问题困扰?想在通勤时收听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)下载其发布的所有视频音频。

使用步骤:

  1. 获取UP主UID:访问UP主个人空间,URL中的数字部分即为UID(如https://space.bilibili.com/123456中的123456)

  2. 执行下载命令:

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视频自动识别。

使用步骤:

  1. 获取视频BV号:视频URL中BV开头的部分(如https://www.bilibili.com/video/BV1xx4y1z789中的BV1xx4y1z789)

  2. 执行下载命令:

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。

使用步骤:

  1. 获取收藏夹media_id:

    • 访问B站收藏夹页面
    • 点击"分享"按钮,复制链接
    • 链接中media_id参数的值即为所需ID(如https://www.bilibili.com/medialist/detail/ml123456789中的123456789)
  2. 获取Cookies:

    • 在浏览器中登录B站
    • 按F12打开开发者工具,切换到"控制台"标签
    • 输入document.cookie并回车,复制输出的Cookie字符串
    • 将Cookie字符串转换为JSON格式(可使用在线工具如https://uutool.cn/cookie2json/)
    • 保存为cookies.json文件
  3. 执行下载命令:

bilifm fav 123456789 --cookies-path "~/cookies.json" --directory "~/Music/BiliFM/我的收藏"

参数说明:

  • media_id: 收藏夹的媒体ID(必填)
  • --cookies-path: Cookies文件路径(必填)
  • --directory/-d: 音频保存目录(可选)
  • --audio-quality/-q: 音频质量(可选)

4. 合集模式:下载专题合集音频

此模式用于下载UP主创建的专题合集,如"某某教程合集"、"系列讲座"等。

使用步骤:

  1. 获取合集参数:

    • 访问合集页面,URL格式通常为: https://space.bilibili.com/[uid]/channel/collectiondetail?sid=[sid]
    • 其中uid是UP主ID,sid是合集ID
  2. 执行下载命令:

bilifm season 123456 789012 --directory "~/Music/BiliFM/教程合集"

参数说明:

  • uid: UP主ID(必填)
  • sid: 合集ID(必填)
  • --directory/-d: 音频保存目录(可选)
  • --audio-quality/-q: 音频质量(可选)

特点:

  • 会自动创建以合集名称命名的文件夹
  • 按合集中的顺序下载音频
  • 支持分页加载,自动处理大量视频

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

此模式用于下载UP主创建的自定义视频列表,与合集模式类似但结构不同。

使用步骤:

  1. 获取列表参数:

    • 访问列表页面,URL格式通常为: https://space.bilibili.com/[uid]/channel/seriesdetail?sid=[sid]
    • 其中uid是UP主ID,sid是列表ID
  2. 执行下载命令:

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无效或已过期。

解决方案

  1. 重新获取Cookies(参考前文收藏夹模式)
  2. 确保Cookies包含SESSDATAbili_jct字段
  3. 使用最新版本的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

登录后查看全文
热门项目推荐
相关项目推荐