Immersive Reading 中的视频学习¶
在 Learning 下打开 Reading,将 YouTube 或 Bilibili URL 添加到收藏中,然后在辅导老师旁边学习该视频。视频与文档使用相同的阅读材料、转录文本、批注和对话存储。媒体舞台支持转录文本搜索与跟随、时间戳引用、全屏观看以及当前/下一行字幕。字幕缺失或不支持播放时会明确显示;辅导老师不得仅凭转录文本声称已观看过视频画面。
新的带时间戳笔记属于 Reading 批注。笔记的位置在编辑器打开时被捕获,因此书写时播放进度移动不会移动笔记位置。保存失败时会保留草稿以供重试;较早完成的保存不会抹除较新的文本。
现有的 Watching 会话¶
独立的 Watching 功能已退役。现有的 /watching/{sessionId} 和 /learning/watching/{sessionId} 链接会打开一条兼容路由,将对话显式迁移到 Reading。对话 ID 和消息保持不变。旧版视频 JSON 仍作为提供商/缓存记录保留;现有的 Video Learning 笔记本记录仍可读取,不会被重写。兼容的转录文本、笔记和保存位置会被幂等地复制到 Reading 中,且现有的 Reading 位置优先于较早导入的位置。
会话列出与检查不会创建素材。当学习者打开旧版对话或继续旧版轮次时才会发生迁移。如果旧版视频缓存缺失,其对话仍可作为普通聊天使用,并记录视频不可用状态;绝不会静默替换为其他视频。其他迁移失败会保留原始首选项并提供重试。
配置 Invidious¶
在管理员设置中,打开视频学习设置,输入实例的后端 API origin 和公共 origin,测试连接,然后选择 Invidious 作为默认提供商。Reading 的 YouTube 字幕加载器使用该已配置的提供商。Bilibili 保持独立。字幕服务不可用不会使原生可播放的视频无法使用,但缺失的转录文本会显示出来,且辅导老师可用的证据仍然有限。
invidious.api_base_url 必须能被后端访问;invidious.public_base_url 必须能被浏览器访问。在现有已配置实例策略下,私有 HTTP origin 可以使用回环(loopback)、局域网(LAN)或叠加网络(overlay)地址。公共实例需要 HTTPS。将设置保存在 video_learning.json 中;项目的 .env 文件会被忽略。
在添加素材对话框中使用 Browse Invidious 进行搜索,或从账户的订阅和播放列表中选择。账户令牌仅对所有者保持私有。没有 GET:feed、GET:playlists 和 GET:playlists/* 权限的旧版令牌需要重新连接;不会请求任何订阅或播放列表变更。DeepTutor 绝不会索要 Invidious 密码。授权发生在已配置的实例上,回调反馈返回到 Reading,而不会将令牌放入重定向目标中。断开失败时保留令牌以供重试。
验证与恢复¶
检查播放、拖动进度、转录文本搜索/跟随、时间戳引用,以及笔记的保存/编辑/重试。重新打开已迁移的对话,确认其消息历史和来源身份保持不变。同时检查字幕缺失、提供商不可用、窄屏和所有者访问边界。在部署或回滚期间保留现有数据目录和所有者身份;不要仅仅为了撤销前端更改而用备份覆盖较新的用户数据。
实现与验证¶
本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 dee/DeepTutor