Skip to content

Y-R-T/bilihistory

Repository files navigation

Bilibili Feed History (B站首页推荐流回溯)

📺 Bilibili Feed History 是一款开源的 Chrome/Edge 浏览器扩展。它能在你访问 B 站首页时,自动无感地记录下每一次“换一换”的新旧推荐流数据。你可以随时通过“回溯”按钮找回刚刚不小心刷走的视频,或者在历史记录弹窗中查阅过去的推荐卡片。

✨ 核心特性

  • 无感记录:后台静默捕获首页 bilibili.com 的推荐视频卡片。
  • 无限回溯:原生接入 B 站 UI,在刷新按钮旁提供 ⏪ 回溯⏩ 前进 按钮。
  • DOM 防污染渲染: 使用 outerHTML 无损保存,哪怕 B 站修改了 DOM 层级,只要旧的字符串不变,回溯视图永远是 100% 保真的。
  • 存储优化:采用 chrome.storage.local,加入指纹去重(消除恶意重绘产生的冗余快照)和 LRU 淘汰机制(最高保留 500 次刷新记录),既保证速度又节省内存。
  • 历史管理面板:点击扩展图标即可打开暗色主题的数据面板,按现实时间线梳理你的推荐流历史。

📦 安装说明 (安装稳定版)

我们提供了已经打包好的 ZIP 发布版本,您可以直接下载使用:

  1. 前往 GitHub 的 Releases 页面。
  2. 下载最新版本。
  3. 将下载的 ZIP 文件解压到一个固定的文件夹中。
  4. 打开浏览器的扩展程序页面:
    • Chrome: chrome://extensions/
    • Edge: edge://extensions/
  5. 开启右上角的 “开发者模式”
  6. 点击左上角的 “加载已解压的扩展程序”,选择你刚刚解压的那个文件夹。
  7. 完成!你可以去 B 站首页试试看。

🛠️ 源代码结构与本地开发

如果你想参与项目开发、修改样式或者学习其原生的隔离渲染架构:

├── manifest.json      # 扩展声明与核心权限配置 (Manifest V3)
├── background.js      # Service Worker (全生命周期的存储与队列管理)
├── content.js         # Content Script (负责 B 站 DOM 的监听、解析与注入)
├── content.css        # 为注入的 DOM 提供的样式补偿
├── popup.html         # 扩展点击弹窗的面板骨架
├── popup.js           # 历史时间线与详细卡片逻辑
├── popup.css          # 面板的暗色美学与动画支持
└── icons/             # 扩展多尺寸图标

开发构建

本项目无需 Node.js / Webpack 构建,完全基于原生 JavaScript 编写,即改即生效。修改完代码后,直接在浏览器扩展页面点击“更新/加载”即可测试。

💡 存储技术内幕

扩展通过 chrome.runtime.sendMessage 通信,依赖 chrome.storage.local 构建持久层。

  • 指纹生成:c => ${c.title}|${c.url}
  • 防止重复捕获的 500ms 动态防抖。
  • outerHTML 无损保存:哪怕 B 站修改了 DOM 层级,只要旧的字符串不变,回溯视图永远是 100% 保真的。

📄 许可协议

GNU Affero General Public License v3.0

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors