处理流程概览
MemShare 的异步处理围绕 Media.subtitleStatus 状态机运转:
pending → processing → success
↘ failed| 状态 | 含义 |
|---|---|
pending | 等待 Worker 领取 |
processing | Worker 正在处理(下载 / 转写中) |
success | 字幕已就绪 |
failed | 处理失败,subtitleError 记录原因 |
两条主路径
Worker 任务优先级
GET /api/worker/jobs/next 按以下顺序认领:
- YouTube 下载:
sourceType=youtube且audioS3Key=null且subtitleStatus=pending - 转写:
audioS3Key已存在且subtitleStatus=pending
同一 Worker 实例在处理完 YouTube 下载后,会链式执行转写(无需重新入队)。
客户端字幕拉取
播放器(usePlayerTranscript)行为:
subtitleStatus为pending或processing时,每 5 秒轮询字幕 API- 404 表示字幕尚未写入,继续等待
- 一旦有片段写入,App 即可展示部分字幕并随处理进度更新