基于《Project SEKAI》"25时、Nightcord见。"主题的沉浸式作业陪伴网页应用
结合时间同步背景视频、CD 播放器和番茄钟,为你提供专注的学习环境。
- 🕒 时间同步视频 - 背景视频与现实时间精确同步
- 🎵 沉浸式音乐 - 完整的 Project SEKAI 曲库,支持多版本切换
- 🍅 番茄工作法 - 标准番茄钟,支持自定义时长
- 🏆 成就系统 - 追踪学习进度,解锁特殊成就
- 📡 实时状态 - WebSocket 实时显示在线人数和活动
- 💬 聊天功能 - 与其他"25时"成员实时交流
- 🌍 世界时钟 - 多时区时间显示
- 🔍 智能搜索 - 支持假名转罗马音搜索
直接访问:https://25ji.nightcord.de5.net
无需安装,打开即用!
# 克隆仓库
git clone https://github.com/25-ji-code-de/25ji-sagyo.git
cd 25ji-sagyo
# 方式 1: 直接打开
# 在浏览器中打开 index.html
# 方式 2: 使用 Python HTTP 服务器
python3 -m http.server
# 方式 3: 使用 VS Code Live Server
# 安装 Live Server 扩展后,右键 index.html 选择 "Open with Live Server"- 现代浏览器(Chrome, Firefox, Safari, Edge)
- 支持 ES6+ 和 Web Audio API
- 建议启用通知权限以接收番茄钟提醒
25ji-sagyo/
├── index.html # 主页面
├── style.css # 样式文件
│
├── js/
│ ├── core/ # 核心模块
│ │ ├── video-player.js # 视频播放器
│ │ ├── time-sync.js # 时间同步
│ │ ├── hls-handler.js # HLS 处理
│ │ └── audio-processor.js # 音频处理
│ │
│ ├── components/ # UI 组件
│ │ ├── pomodoro.js # 番茄钟
│ │ ├── world-clock.js # 世界时钟
│ │ └── settings-panel.js # 设置面板
│ │
│ ├── cd-player/ # CD 播放器
│ │ ├── index.js # 入口
│ │ ├── api.js # 音乐数据 API
│ │ ├── playback-controls.js # 播放控制
│ │ └── visualizer.js # 可视化
│ │
│ ├── features/ # 功能模块
│ │ ├── achievements.js # 成就系统
│ │ └── live-status.js # 实时状态
│ │
│ └── utils/ # 工具函数
│ ├── helpers.js # 通用工具
│ ├── storage.js # 本地存储
│ └── search.js # 搜索功能
│
├── tutorials/ # 教程文档
├── README.md
├── CONTRIBUTING.md
├── CODE_OF_CONDUCT.md
├── SECURITY.md
└── LICENSE
- 自动同步:根据本地时间自动播放对应的视频片段
- 无缝衔接:视频进度与现实时间精确同步
- 时区支持:支持本地时间和东京时间切换
- 多种模式:支持 HLS 流媒体和 MP4 分段播放
- 海量曲库:通过 Sekai Master DB Diff 获取音乐数据
- 多版本支持:Sekai ver. / Virtual Singer ver. / Anvo ver. 等
- 智能播放:顺序播放、随机播放、单曲循环
- 记忆功能:自动保存音量、播放列表设置
- 视觉效果:CD 旋转动画、专辑封面显示
- 标准流程:25分钟工作 + 5分钟短休息 + 长休息
- 状态保持:刷新页面不丢失进度(sessionStorage)
- 桌面通知:计时结束时浏览器通知
- 自定义设置:可调整工作和休息时长
- 丰富成就:番茄钟累计、连续学习天数、累计学习时长、歌曲播放数
- 段位等级:从 Platinum(白金)到 Emerald(祖母绿)
- 特殊成就:「25時の住人」(凌晨1点学习)、「朝活 Master」(早起学习)
- 活动记录:自动记录学习活动,追踪成长轨迹
- 在线人数:实时显示当前在线用户数量
- 广播消息:显示其他用户的活动动态
- WebSocket 连接:低延迟实时通信
- 聊天功能:公共聊天室,支持自定义昵称
- 智能搜索:支持假名转罗马音搜索
- 模糊匹配:自动文本标准化
- 搜索评分:基于匹配度的精准排序
- 防抖优化:减少计算压力,提升响应速度
- 核心:原生 HTML5, CSS3, JavaScript(ES6+)
- 部署:
- 托管:Cloudflare Pages
- 逻辑处理:Cloudflare Workers(回源代理)
- 资源存储:Cloudflare R2
- 数据源:
- 音乐数据:Sekai Viewer
- API 网关:Gateway
- 存储:
localStorage:用户偏好(音量、播放列表设置)sessionStorage:番茄钟运行状态IndexedDB:本地音乐文件
用户访问
↓
计算当前时间对应的视频片段
↓
HLS 模式(优先)
├─ 单一 m3u8 流
└─ 自动 seek 到对应时间点
↓ 不支持
MP4 模式(降级)
├─ 6 段模式(4小时/段)
└─ 3 段模式(8小时/段)
↓
每 5 秒检查时间偏移
└─ 偏移 >3 秒时自动校正
CD 播放器初始化
↓
从 Gateway API 获取音乐数据
↓
解析并缓存到 IndexedDB
↓
用户选择歌曲
↓
从 R2 加载音频文件
↓
Web Audio API 播放
└─ 可选:音频处理(限幅器、人声消除)
- 功能教程索引 - 详细的功能使用教程
本项目是 SEKAI 生态的一部分。
查看完整的项目列表和架构:SEKAI 门户
声明:本项目受 Project SEKAI COLORFUL STAGE! feat. Hatsune Miku 启发。
本项目是非官方、非商业性质的粉丝作品,与 SEGA、Colorful Palette、Crypton Future Media 或任何其他与《Project SEKAI》相关的版权持有方无任何官方关联。
所有游戏相关素材(包括但不限于角色、音乐、图像)的版权归其各自的版权持有方所有。
欢迎贡献!我们非常感谢任何形式的贡献。
在贡献之前,请阅读:
如果发现安全漏洞,请查看我们的 安全政策。
本项目采用 GNU Affero General Public License v3.0 only(AGPL-3.0-only)许可证 - 详见 LICENSE 文件。
- GitHub Issues: https://github.com/25-ji-code-de/25ji-sagyo/issues
- 项目主页: https://25ji.nightcord.de5.net
- 哔哩哔哩: @bili_47177171806
如果这个项目对你有帮助,请给我们一个 Star!
SEKAI 生态 的一部分
Made with 💜 by the 25-ji-code-de team