Vimeo API 显示未找到视频,但播放器 url 仍然有效帮我理解

问题描述

此网址加载并播放视频:https://player.vimeo.com/video/516699168

此网址表示未找到该视频:https://vimeo.com/516699168

所以我在 https://developer.vimeo.com/api/reference/videos#get_video 使用 ID 为 516699168 的 API 调用,它返回

HTTP/1.1 404
Content-Type: application/vnd.vimeo.error+json

{
  "error": "The requested video Couldn't be found."
}

那么为什么 player.vimeo.com 链接有效?应该是吗?

我之所以这么问是因为我的链接脚本已损坏,而且 API 与 player.vimeo.com 链接不兼容。

如果视频有限制(例如隐私),为什么播放器网址仍然有效?

解决方法

播放器网址 (player.vimeo.com) 用作 Vimeo iframe 中的来源。访问该 URL 时很可能可以访问该视频,因为它被设置为“从 vimeo.com 隐藏”并且只能在嵌入时播放。为防止发生这种情况,应将视频的嵌入隐私设置为域级别,以便仅在嵌入到指定域时才能播放。

当请求 /videos/516699168 时,API 返回 404 可能是因为与请求一起使用的身份验证令牌只有“公共”范围,并且只能用于获取 Vimeo 上的公共数据。由于视频具有“从 vimeo.com 隐藏”的隐私,因此它不是公开的,并且 API 无法提取其元数据。

视频隐私设置概述:https://vimeo.zendesk.com/hc/en-us/articles/224817847

API 身份验证和范围概述:https://developer.vimeo.com/api/authentication#understanding-the-auth-process