使用Node.js的cloudinary.v2.api.resources获取视频时长失败求助
解决Cloudinary API获取视频时长的问题
- 替换参数:用
video_metadata替代image_metadataimage_metadata: true仅针对图片类资源提取元数据,视频资源需要用video_metadata: true才能拉取时长等专属元数据。修改后的代码示例:
cloudinary.api.resources( { ... video_metadata: true, resource_type: 'video' // 可选,限定只拉取视频资源,提升请求效率 }, (err: any, result: any) => { console.log(err, result); // 视频时长通常在资源项的 metadata.duration 或 video.duration 字段中 result.resources?.forEach(item => { console.log('视频时长:', item.metadata?.duration || item.video?.duration); }); } );
- 确认视频资源的处理状态
如果是刚上传的视频,Cloudinary可能还未完成元数据解析,建议等待片刻后再调用接口。如果始终无法获取时长,可以调用explicit接口触发重新处理:
cloudinary.api.explicit( '你的视频public_id', { resource_type: 'video', type: 'upload', video_metadata: true }, (err, result) => { // 处理完成后再调用resources接口获取数据 } );
- 检查返回字段结构
视频时长的返回位置可能因资源类型略有差异,除了metadata.duration,也可以查看顶层video对象中的duration字段(部分场景会直接返回核心视频属性)。
内容的提问来源于stack exchange,提问作者Nex
相关产品推荐
相关产品推荐

