先把当时的情况摆出来。视频页的 VideoObject 里 uploadDate 写成 2026-09-18,测试通过但视频一直拿不到富媒体,报告提示时间字段不完整。
把日志和配置对完,能解释这个现象的基本就这几处。uploadDate 需要带时区的完整时间,只有日期会被降级处理。还有一种是模板取的是发布日期字段,本身就不含时分秒。
还有一种情况,duration 用了中文的 3 分 20 秒,不被 ISO 8601 接受。另外,视频封面尺寸不够,缩略图被判定不可用。
先抽出视频标记里的时间与时长字段
curl -s https://www.example.com/v/1 | grep -o -E '"(uploadDate|duration)"[^,]*'
再往下输出带时区的 ISO 8601 时间
date('c', strtotime($post->post_date))
随后把时长转成 PT3M20S 形式
python -c "print('PT%dM%dS' % (200//60, 200%60))"
末了确认封面图尺寸达到 1200 像素宽
identify -format '%wx%h\n' cover.jpg
恢复的判定其实很直接。时间补全并换成 ISO 时长后,视频在两周内进入视频索引,缩略图也开始在搜索结果里出现。
容易忽略的是,视频富媒体的门槛比文章高,时间、时长、封面三项任一不合规都会整条不展示。同一份配置在测试环境跑通,不代表线上没事,两边的默认值经常不一样。
