# 转码媒资 ID 精度与存量兜底修复 ## 取证 - 示例分集 `2113150431755636737` 的 `video_asset_id` 为 `2113150398670966786`,与 `media_asset.id` 完全一致。 - JS `Number('2113150398670966786')` 序列化为 `2113150398670966800`, 超出安全整数后发生精度丢失,导致手动转码查询了错误 ID。 ## 修复 1. 聚合响应的 episodeId/mediaAssetId/taskId 使用字符串。 2. 手动转码仍由后端 Long 接收精确路径 ID。 3. 媒资不存在时通过 content 模块的端口按候选 ID 查找分集: - 分集 id; - video_asset_id; - transcode_task.id。 4. 找到分集后按 video_url/source_url/objectKey 反查媒资; 文件存在但媒资缺失时补登记并回填分集 video_asset_id。 5. 无可用视频时保持明确空态/错误语义。 ## 验证 - 超 2^53 ID 字符串契约。 - 聚合无媒资空态。 - video_url 反查命中。 - 文件存在时补登记。 - `mvn -pl fruitshorts-module-media,fruitshorts-transcode-worker test`。