问题出现得很突然,日志倒是留得挺全。视频 sitemap 里 duration 写的是 320 秒,页面 VideoObject 标的是 280 秒,两边差了 40 秒,富媒体测试通过但搜索结果里的视频卡片两周后被撤掉。

把日志和配置对完,能解释这个现象的基本就这几处。sitemap 由转码任务生成,转码后时长变了但没回写。另一种情况是页面标记是编辑手工填的,和实际文件对不上。

还有一种情况,两个来源没有统一校验,谁最后写谁生效。

第一件事是用 ffprobe 取真实时长

ffprobe -v error -show_entries format=duration -of csv=p=0 clip.mp4

随后统一从转码结果生成 sitemap 与标记

grep -o 'duration>[0-9]*' video-sitemap.xml | head

剩下的就是重新提交视频 sitemap

curl -s -o /dev/null -w '%{http_code}' 'https://www.bing.com/ping?sitemap=https://www.example.com/video-sitemap.xml'

同事提醒我看一下最近一次发布,时间点确实对得上。

别只看报错消失,验证要多做一步。统一数据源后时长两边一致,三周内视频卡片恢复展示,点击回到撤下前的水平。

补一句。时长这类可校验字段最容易暴露不一致,凡是能自动生成的都不要让编辑手填。改动前把原配置备份一份,出问题能马上回滚,这比任何技巧都实用。

作者 9823189