Bilibili Watcher - 一个开源的 B 站视频观看时长追踪工具

项目源码

如果你对这个项目感兴趣,欢迎Star GitHub 仓库:
Bilibili Watcher

使用截图

Light Dark
image image

项目背景

在当今数字化时代,视频学习已经成为一种重要的学习方式。Bilibili 作为中国最大的视频平台之一,拥有海量的学习资源。然而,很多用户在使用 B 站学习时,常常会遇到以下问题:

  1. 无法准确追踪自己的学习时长
  2. 难以分析自己的观看习惯
  3. 缺乏对学习进度的系统化管理

基于这些痛点,我开发了 Bilibili Watcher - 一个开源的 B 站视频观看时长追踪与分析工具。

项目特点

Bilibili Watcher 具有以下核心特点:

1. 数据可视化

  • 提供直观的观看时长统计图表
  • 支持多维度数据分析
  • 清晰展示学习进度和趋势

2. 自动化追踪

  • 定时自动同步 Bilibili 观看进度
  • 无需手动记录,解放双手
  • 实时更新数据,保持同步

3. 用户体验

  • 支持浅色/深色主题切换
  • 响应式设计,完美适配各种设备
  • 简洁直观的界面设计

4. 数据安全

  • 本地部署,数据完全掌握在自己手中
  • 无需担心隐私泄露
  • 支持数据导出和备份

快速开始

使用 Docker(推荐)

视频教程参考:https://v.douyin.com/AQjBm-1iCVQ/

  1. 克隆项目

    1
    2
    git clone https://github.com/krisxia0506/bilibili-watcher.git
    cd bilibili-watcher
  2. 配置环境变量

    1
    cp .env.example .env

    编辑 .env 文件,设置必要参数:

    • BILIBILI_SESSDATA:你的 Bilibili SESSDATA
    • BILIBILI_BVID:要追踪的视频 BVID
  3. 启动服务

    1
    docker-compose up -d
  4. 访问服务

技术实现

后端架构

项目采用领域驱动设计(DDD)架构,使用 Go 语言开发:

  • Web 框架:Gin
  • ORM:GORM
  • 数据库:MySQL 8
  • 定时任务:robfig/cron/v3

前端实现

前端使用现代化的技术栈:

  • 框架:Remix
  • UI 库:Shadcn UI
  • 样式:Tailwind CSS
  • 国际化:i18next
  • 表单处理:React Hook Form + Zod

使用场景

1. 个人时间管理

  • 追踪每日/每周/每月的视频观看时长
  • 分析观看习惯,优化时间分配
  • 了解自己最常观看的内容类型

2. 学习进度追踪

  • 记录学习类视频的观看时长
  • 分析学习效率和专注度
  • 制定合理的学习计划

项目特色

  1. 完整的 DDD 实践

    • 清晰的领域模型
    • 合理的分层架构
    • 可扩展的设计
  2. 现代化的技术栈

    • 后端:Go + Gin + GORM
    • 前端:Remix + TypeScript + Tailwind CSS
    • 容器化:Docker + Docker Compose
  3. 完善的开发规范

    • 遵循阿里巴巴开发规范
    • 统一的代码风格
    • 规范的 Git 提交信息

未来规划

  1. 功能扩展

    • 支持更多视频平台
    • 添加学习计划功能
    • 集成笔记系统
  2. 性能优化

    • 优化数据同步机制
    • 提升查询效率
    • 增强并发处理能力
  3. 用户体验

    • 优化移动端适配
    • 添加更多数据可视化图表
    • 支持自定义主题

结语

Bilibili Watcher 不仅是一个工具,更是一个帮助用户更好地管理学习时间的助手。通过数据可视化和自动化追踪,它让学习过程变得更加透明和高效。如果你也在寻找一个能够帮助你追踪和管理 B 站学习时长的工具,不妨试试 Bilibili Watcher。