先把当时的情况摆出来。视频页的 VideoObject 测试工具全绿,thumbnailUrl、duration、uploadDate 都齐全,搜索结果里始终是普通蓝色链接,连大图都不出现。

这类报错背后常见的原因有几处,逐个排除就行。视频被嵌在 iframe 里,页面主体只有一段文字说明。也可能是duration 写成 90 秒而不是 ISO8601 的 PT1M30S。

还有一种情况,contentUrl 指向的 mp4 需要登录才能播放。

先用测试工具看解析后的字段值

curl -s https://www.example.com/video/1 | grep -o '"duration":[^,]*'

再往下确认视频文件能否匿名访问

curl -sI https://cdn.example.com/v/1.mp4 | head -5

补上 contentUrl 与 embedUrl 后复查

curl -s https://www.example.com/video/1 | grep -c embedUrl

那几天正好在做别的变更,先把时间线对齐才敢动手。

排查用的命令都是临时敲的,没有写成脚本,事后才整理。

手上没有现成的复现脚本,就照着线上请求手工拼了一个。

恢复的判定其实很直接。补完字段两周后视频结果里出现缩略图卡片,同一批关键词的点击率明显高于纯链接。

视频富媒体除了标记还要求视频本身可公开播放,缺一个条件都会退回普通结果。这类问题最好一次改到位,反复小改反而容易把原因搅混。

作者 9823189