BiliPai
English | 简体中文
原生、纯净、可扩展 —— 重新定义你的 B 站体验
最后更新:2026-02-16 · 文档已同步至 v6.0.0(以 CHANGELOG 与源码为准)
功能
描述
高清画质
支持 4K / 1080P60 / HDR / Dolby Vision (需登录/大会员)
DASH 流媒体
自适应码率选择,无缝切换画质,流畅播放体验
弹幕系统
透明度、字体大小、滚动速度可调,支持弹幕密度过滤
手势控制
左侧上下滑动调节亮度,右侧调节音量,左右滑动快进/快退
倍速播放
0.5x / 0.75x / 1.0x / 1.25x / 1.5x / 2.0x
画中画
悬浮小窗播放,多任务无缝切换
听视频模式
🆕 专属音频播放界面,支持沉浸式/黑胶唱片模式,歌词显示与播放列表管理
AI 总结
🆕 智能生成视频内容摘要,快速获取核心信息
原地播放
长按视频封面直接预览播放,点击即可全屏,无缝衔接
后台播放
锁屏/切后台继续听,支持通知栏控制
播放顺序
支持播完暂停 / 顺序播放 / 单个循环 / 列表循环 / 自动连播,横竖屏可快捷切换
播放完成体验
关闭“自动播放下一个”后,播完不再弹强干扰操作弹窗
评论体验
支持默认排序偏好(最热/最新),并修复特定排序下 UP 主/置顶评论缺失问题
横屏信息栏
全屏顶部新增时间显示,横屏交互信息更完整
播放记忆
自动记录观看进度,下次打开继续播放
TV 登录
支持 TV 端扫码登录,解锁大会员专属高画质
插件系统
内置空降助手、去广告、弹幕增强、夜间护眼、今日推荐单等插件,可扩展架构
插件
描述
空降助手
基于 BilibiliSponsorBlock 数据库,自动跳过广告/恰饭片段
去广告插件
智能过滤推荐流中的商业推广内容
弹幕增强
支持关键词 + 用户 UID/hash 过滤与高亮,规则变更支持播放内热更新
夜间护眼
定时护眼、三档预设可 DIY、实时预览、暖色滤镜、关怀提醒(支持稍后提醒)
🆕 今日推荐单
本地分析观看历史与反馈,生成“今晚轻松看 / 深度学习看”队列,支持收起/展开、单独刷新、UP 主榜与推荐解释
插件中心
统一管理所有插件,支持独立配置
🆕 外部插件
支持通过 URL 动态加载 JSON 规则插件
今日推荐单:
支持双模式切换(今晚轻松看 / 深度学习看)
支持 UP 主榜、视频队列、推荐理由标签
推荐队列展示 UP 主头像与昵称,优化观感
联动护眼状态:夜间自动偏向短时长、低刺激内容
支持本地负反馈学习(不感兴趣视频/UP/关键词)
支持冷启动首屏曝光策略,避免“已生成但看不到”
插件内可一键清空本地画像与反馈,重新学习
夜间护眼:
三档预设(轻柔/平衡/专注)并支持用户 DIY
实时预览亮度与暖色滤镜强度
定时护眼 + 使用时长关怀提醒 + 稍后提醒
关怀文案与提醒策略支持人性化优化
画质切换:
画质列表优先使用 DASH 实际可切换轨道
缓存切换改为目标画质精确匹配,缺失时回退 API
切换提示文案更明确(目标不可用时清晰反馈)
先看你最近看了谁 :统计历史记录里你常看的 UP 主,并结合播放进度和“最近看过”的权重。
再给候选视频打分 :每条视频会综合以下信号:
热度(播放量)
与你偏好 UP 主的匹配度
新鲜度(发布时间)
模式偏好(今晚轻松看 更偏短、轻松;深度学习看 更偏知识、时长适中)
夜间护眼状态(夜间会降低高刺激、超长视频权重)
负反馈(不感兴趣的视频/UP/关键词会被明显降权)
最后做“去同质化”排序 :不是只按分数从高到低排,而是避免连续刷到同一个 UP 主,让列表更耐看。
一句话总结:今日推荐单 是一个完全本地、可解释的加权排序器,会根据你的观看行为持续微调结果。
对应实现:app/src/main/java/com/android/purebilibili/feature/home/TodayWatchPolicy.kt
画像与反馈存储:app/src/main/java/com/android/purebilibili/core/store/TodayWatchProfileStore.kt、app/src/main/java/com/android/purebilibili/core/store/TodayWatchFeedbackStore.kt
输入数据
历史样本:historyVideos(本地历史记录)
候选集合:candidateVideos(首页推荐流候选)
模式:RELAX(今晚轻松看)或 LEARN(深度学习看)
护眼信号:eyeCareNightActive(夜间护眼是否激活)
画像信号:creatorSignals(本地累计的 UP 主偏好)
负反馈信号:penaltySignals(不感兴趣视频/UP/关键词)
历史预处理与 UP 主亲和度构建
仅保留有效历史项:bvid 非空且 owner.mid > 0
按 view_at 倒序,统计每位 UP 的聚合分:
creator_score += 1.0 + completion * 1.2 + recencyBonus(view_at)
completion:
progress < 0 -> 0.35
duration <= 0 -> clamp(progress / 600, 0..1)
其他 -> clamp(progress / duration, 0..1)
recencyBonus(view_at):
<=1天:1.0,<=3天:0.8,<=7天:0.6,<=30天:0.35,其余 0.15
跨会话画像融合(Creator Signal)
从本地画像仓读取每位 UP 的长期偏好分:
engagementScore = ln(totalWatchSec + 1) * 0.92 + ln(engagementEvents + 1) * 0.66
recencyScore:
<=1天:1.15,<=3天:0.85,<=7天:0.55,<=30天:0.2,其余 -0.1
signal.score = engagementScore + recencyScore
合并到当前会话亲和度:creatorAffinity[mid] += signal.score
候选视频清洗
过滤无效候选:bvid/title 非空
按 bvid 去重
标记是否已看过:alreadySeen = bvid in historySet
单条候选打分(核心公式)
总分:
score = base + creator + freshness + seenPenalty + mode + night + feedback
基础分:
base = ln(view + 1) * 0.45
creator = ln(creatorAffinity + 1) * 2.1
freshness(pubdate):<=1天:0.8,<=3天:0.55,<=7天:0.3,<=30天:0.1,其余 -0.05
seenPenalty:已看过则 -2.6
强度信号(弹幕密度近似刺激度):
intensity = danmaku / max(view,1)
calmScore:<0.004:1.0,<0.01:0.3,其余 -1.0
模式分:
RELAX:
durationRelaxScore:<2:-0.2,<=12:1.4,<=20:0.6,<=35:-0.1,其余 -0.9
keywordBonus(title, RELAX_KEYWORDS, LEARN_KEYWORDS)
+ calmScore
LEARN:
durationLearnScore:<5:-0.6,<=12:0.5,<=35:1.5,<=55:0.8,其余 -0.2
keywordBonus(title, LEARN_KEYWORDS, RELAX_KEYWORDS)
时长补偿:duration>=10分钟 ? +0.6 : -0.2
夜间护眼调权(仅护眼激活时):
durationPenalty:<=15:+1.2,<=25:+0.2,>25 按时长递减到最多 -3.0
intensityPenalty:<0.006:+0.6,<0.012:0.0,其余 -1.1
负反馈惩罚:
命中不感兴趣视频:-3.2
命中不感兴趣 UP:-2.4
不感兴趣关键词:每个 -0.7,最低封顶 -2.8
关键词加权与限幅
keywordBonus = positiveCount * 0.55 - negativeCount * 0.35
限幅区间:[-1.2, 1.8](防止关键词信号压过核心行为信号)
UP 主榜与多样化队列
UP 主榜:按聚合 creator_score 取 TopN(默认 5,可配置)
视频队列不是直接按总分排序,而是做“多样化贪心”:
adjusted = candidateScore - sameCreatorPenalty - repeatPenalty + noveltyBonus
同 UP 连续惩罚:1.15
重复出现惩罚:usedCount * 0.75
首次出现奖励:+0.35
作用:避免连续刷到同一个 UP,提高耐看度和探索感
可解释输出
每条推荐会附带解释标签(如:学习向 · 中时长 · 夜间友好 · 偏好UP)
偏好UP 触发阈值:creatorAffinity > 0.8
冷启动可见性策略
推荐单在冷启动窗口内采用一次性曝光策略:
若插件已启用、推荐单已生成、当前在推荐页且列表不在顶部,则自动回顶一次
避免“推荐单已生成但首屏看不到”
隐私与可控性
算法完全在本地运行,不上传历史记录用于个性化训练
支持一键清空本地画像与反馈,恢复冷启动推荐状态
📖 JSON 规则插件快速入门(点击展开)
JSON 规则插件是一种无需编程 的轻量级插件格式,只需编写简单的 JSON 文件即可实现内容过滤功能。
{
"id" : " my_plugin" ,
"name" : " 我的插件" ,
"description" : " 插件描述" ,
"version" : " 1.0.0" ,
"author" : " 你的名字" ,
"type" : " feed" ,
"rules" : [
{
"field" : " title" ,
"op" : " contains" ,
"value" : " 广告" ,
"action" : " hide"
}
]
}
类型
字段
说明
Feed
title
视频标题
Feed
duration
视频时长(秒)
Feed
owner.mid
UP 主 UID
Feed
owner.name
UP 主名称
Feed
stat.view
播放量
Danmaku
content
弹幕内容
操作符
说明
示例
contains
包含
"value": "广告"
regex
正则匹配
"value": "震惊.*必看"
lt / gt
小于 / 大于
"value": 60
eq / ne
等于 / 不等于
"value": 123456
startsWith
以...开头
"value": "【"
{
"id" : " short_video_filter" ,
"name" : " 短视频过滤" ,
"type" : " feed" ,
"rules" : [
{ "field" : " duration" , "op" : " lt" , "value" : 60 , "action" : " hide" }
]
}
将 JSON 文件上传到公开可访问的 URL(如 GitHub Gist)
在 BiliPai 中进入 设置 → 插件中心 → 导入外部插件
粘贴链接并安装
📚 完整文档 : 插件开发指南
🧩 示例插件 : plugins/samples/
功能
描述
番剧首页
热门推荐、新番时间表、分区浏览
选集面板
官方风格底部弹出面板,支持季度/版本切换
追番管理
追番列表、观看进度自动同步
弹幕支持
番剧同样支持完整弹幕功能
功能
描述
直播列表
热门直播、分区浏览、关注直播
高清直播流
HLS 自适应码率播放
直播弹幕
实时弹幕显示
一键跳转
动态卡片直接进入直播间
功能
描述
动态流
关注 UP 主的视频/图文/转发动态
分类筛选
全部动态 / 仅视频动态 切换
GIF 支持
完美渲染动态中的 GIF 图片
图片下载
长按预览,一键保存到相册
图片预览
全局 Overlay 预览层 + iOS 风格开关动画,返回统一固定退场更稳定
@ 高亮
动态中 @用户 自动高亮显示
功能
描述
消息列表
支持查看历史消息,分页加载
富文本交互
支持表情包、@提醒、图片查看
链接预览
自动识别视频链接 (BV号) 并生成即时预览卡片
深色适配
聊天界面完美适配深色模式
功能
描述
视频下载
支持选择画质下载,音视频自动合并
断点续传
网络中断后自动恢复下载
下载管理
清晰的下载列表与进度显示
本地播放
离线视频管理与播放
功能
描述
实时建议
输入时实时搜索建议 (300ms 防抖优化)
热门榜单
展示当前热门搜索词
历史记录
搜索历史自动保存,支持去重
分类搜索
视频 / UP主 / 番剧 分类检索
视频音乐查找
🆕 快速识别并查找视频中的背景音乐 (BGM)
功能
描述
Material You
动态主题色,根据壁纸自动适配
深色模式
完美适配系统深色模式
iOS 风格底栏
优雅的毛玻璃导航栏效果
卡片动画
波浪式进场动画 + 弹性缩放 + 共享元素过渡
骨架屏加载
Shimmer 效果,优雅的加载占位
Lottie 动画
点赞/投币/收藏 精美交互反馈
庆祝动画
三连成功烟花粒子特效
粒子消散
"不感兴趣"操作触发灭霸响指式粒子消散动画
平板适配
侧边栏支持持久化切换,底部栏自动居中适配大屏体验
功能
描述
双登录方式
扫码登录 / 网页登录
个人信息
头像、昵称、等级、硬币数展示
观看历史
自动记录观看历史,支持云同步
收藏管理
收藏夹列表与视频管理
关注/粉丝
关注列表与粉丝列表浏览
🚫 无广告 - 纯净观看体验,无任何广告植入
🔐 权限最小化 - 仅申请必要权限 (无位置/通讯录/电话)
💾 数据本地存储 - 登录凭证仅存本地,不上传任何隐私数据
🔍 开源透明 - 完整源码公开,接受社区审查
项目
要求
Android 版本
Android 8.0+ (API 26)
处理器架构
64 位 (arm64-v8a)
推荐版本
Android 12+ 获得完整 Material You 体验
安装包大小
因 ABI 与构建方式不同会有差异,请以 Releases 实际产物为准
在 Releases 页面下载最新 APK
在设备上点击安装 (可能需要允许"未知来源"应用)
打开应用,扫码或网页登录 Bilibili 账号
开始享受纯净的 B 站体验!
类别
技术
说明
语言
Kotlin 1.9+
100% Kotlin 开发
UI 框架
Jetpack Compose
声明式 UI,Material 3 设计语言
架构模式
MVVM + Clean Architecture
分层清晰,易于维护
类别
技术
说明
网络请求
Retrofit + OkHttp
RESTful API 调用
序列化
Kotlinx Serialization
JSON 解析
本地存储
Room + DataStore
数据库 + 偏好设置
图片加载
Coil Compose
支持 GIF 解码
类别
技术
说明
视频播放
ExoPlayer (Media3)
DASH / HLS / MP4 支持
弹幕引擎
DanmakuFlameMaster
B 站官方弹幕库
硬件解码
MediaCodec
高效硬件加速
类别
技术
说明
动画
Lottie Compose
高品质矢量动画
毛玻璃
Haze
iOS 风格模糊效果
Material You
Material 3
动态取色主题
app/src/main/java/com/android/purebilibili/
├── app/ # Application 初始化
├── core/ # 核心工具类
│ ├── network/ # 网络配置
│ ├── utils/ # 工具函数
│ └── ui/ # 通用 UI 组件
├── data/ # 数据层
│ ├── api/ # API 接口定义
│ ├── model/ # 数据模型
│ └── repository/ # 数据仓库
├── domain/ # 领域层
│ └── usecase/ # 用例
├── feature/ # 功能模块
│ ├── home/ # 首页
│ ├── video/ # 视频播放
│ ├── bangumi/ # 番剧
│ ├── live/ # 直播
│ ├── dynamic/ # 动态
│ ├── search/ # 搜索
│ ├── download/ # 下载
│ ├── profile/ # 个人中心
│ ├── settings/ # 设置
│ └── login/ # 登录
└── navigation/ # 导航
Tip
路线图最后同步于 2026-02-08(v5.1.4)。功能以最新 Release、CHANGELOG.md 与主分支代码为准。
查看完整更新记录:CHANGELOG.md
最近更新 (v6.0.0 · 2026-02-16)
✨ 平板 + TV 深度适配 :Home/Search/Settings/Video/Player 完成大屏分档布局与 UI 收口
✨ TV 遥控器链路增强 :焦点导航、Back 行为、播放器返回链路与端到端回归补齐
🎬 动画策略统一 :焦点抖动、回场过渡、共享元素后首页顶部标签显隐时序修复
🧪 自动化与基线 :新增 TV/平板 androidTest 与 benchmark 采样脚本,提升回归稳定性
v5.2.0 / v5.1.4 / v5.1.3 / v5.1.1 / v5.1.0 / v5.0.5 / v5.0.4 变更详情请查看 CHANGELOG.md
# 克隆仓库
git clone https://github.com/jay3-yy/BiliPai.git
cd BiliPai
# 使用 Android Studio 打开项目
# 或使用命令行构建
./gradlew assembleDebug
JDK 21+
Android Studio 2024.1+ 或更高版本
Android SDK 36(Compile SDK)
Gradle 8.2+
(可选) google-services.json: 放置于 app/ 目录下以启用 Firebase 功能。如无此文件,构建脚本将自动跳过相关插件,不影响编译运行。
欢迎提交 Issue 和 Pull Request!
Fork 本仓库
创建特性分支 (git checkout -b feature/AmazingFeature)
提交更改 (git commit -m 'Add some AmazingFeature')
推送到分支 (git push origin feature/AmazingFeature)
提交 Pull Request
Caution
本项目仅供 学习交流 ,严禁用于商业用途
数据来源 Bilibili 官方 API,版权归上海幻电信息科技有限公司所有
登录信息仅保存本地,不会上传任何隐私数据
使用本应用观看内容时,请遵守相关法律法规
如涉及版权问题,请联系删除
本项目采用 GPL-3.0 License 开源协议
这意味着:
✅ 可以自由使用、修改和分发
✅ 修改后的代码必须同样开源
❌ 不得用于商业目的
❌ 不得移除原作者信息
如果这个项目对你有帮助,欢迎点个 Star ⭐
Made with ❤️ by YangY
( ゜- ゜)つロ 干杯~