{"repo":"krisxia0506/bilibili-watcher","free":true,"listed":false,"github":"https://github.com/krisxia0506/bilibili-watcher","clone":"git clone https://github.com/krisxia0506/bilibili-watcher.git","description":"Bilibili Watcher 是一个开源的 Bilibili 视频观看时长追踪与分析工具。它能够自动记录你在 Bilibili 上观看某个视频的时长数据，并通过直观的图表和数据分析，帮助你了解自己的观看习惯和偏好。适用于你正在学习一门网课的场景，使用这个工具你可以清晰的查看自己的每段时间的观看时长","language":"Go","stars":75,"topics":["bilibili","go","remix"],"license":"Apache-2.0","category":"deployment-docker-iac","readme_excerpt":"Bilibili Watcher Bilibili Watcher 是什么 Bilibili Watcher 是一个开源的 Bilibili 视频观看时长追踪与分析工具。它能够自动记录你在 Bilibili 上观看某个视频的时长数据，并通过直观的图表和数据分析，帮助你了解自己的观看习惯和偏好。 主要特点 - 📊 数据可视化 ：提供直观的观看时长统计图表 - 🔄 自动同步 ：定时自动同步 Bilibili 观看进度 - 🌙 深色模式 ：支持浅色/深色主题切换 - 📱 响应式设计 ：完美适配桌面和移动设备 - 🔒 数据安全 ：本地部署，数据完全掌握在自己手中 使用场景 1. 个人时间管理 - 追踪每日/每周/每月的视频观看时长 - 分析观看习惯，优化时间分配 - 了解自己最常观看的内容类型 2. 学习进度追踪 - 记录学习类视频的观看时长 - 分析学习效率和专注度 - 制定合理的学习计划 使用截图 Light Dark ---- ---- 快速开始 使用 Docker（推荐） 1. 克隆项目 2. 配置环境变量 编辑 .env 文件，设置以下必要参数： - BILIBILI SESSDATA ：你的 Bilibili SESSDATA（用于获取观看进度） - BILIBILI BVID ：要追踪的视频 BVID 3. 启动服务 4. 访问服务 - 前端界面：http://localhost:3000 - 后端 API：http://localhost:8080 获取 Bilibili SESSDATA 1. 登录 Bilibili 2. 打开浏览器开发者工具（F12） 3. 在 应用（Application）-- 存储（Storage） 中找到 Cookies 4. 找到 SESSDATA 字段的值并复制，例如： ⚠️ 注意：请妥善保管你的 SESSDATA，不要分享给他人。 核心功能 定时获取进度 : 通过用户配置的 Cron 表达式，定时从 Bilibili API 获取指定UP主最新视频的观看进度。 数据持久化 : 将获取到的观看进度记录（包括播放时长、分P等信息）存储到 MySQL 数据库中。 观看时长分析 : 提供 API 接口，用于计算和查询指定时间范围、特定视频（通过 AID 或 BVID）以及时间间隔（如每日、每周）的有效观看时长。 API 服务 : 基于 Gin 框架提供 RESTful API 接口，方便前端或其他服务调用。 健康检查 : 提供 /healthz 端点，用于监控服务运行状态和数据库连接情况。 数据处理流程 下图展示了本项目的核心数据处理流程： 请求处理时序 (获取观看分段时长) 下图展示了用户请求\"获取观看分段时长\"接口时的主要交互时序： 技术栈 后端 (Go) 语言 : Go Web 框架 : Gin ORM : GORM 数据库 : MySQL 8 架构 : 领域驱动设计 (DDD)，参考 go-ddd 实践。 依赖管理 : Go Modules (go.mod, go.sum) 配置 : 环境变量 定时任务 : robfig/cron/v3 部署 : 推荐 Docker + Docker Compose 前端 (Remix) 框架 : Remix (web/) 语言 : TypeScript UI 库 : Shadcn UI 样式 : Tailwind CSS 国际化 : i18next + react-i18next 表单处理 : React Hook Form + Zod 包管理器 : pnpm","default_branch":null,"files":null,"tree":[],"storefront":"/r/krisxia0506","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/krisxia0506/bilibili-watcher/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}