我知道这个问题以前有人问过:
Vimeo - 通过 javascript api 发送密码
在没有密码的情况下显示受密码保护的Vimeo视频
如何通过 vimeo GET API 3 c# 发送密码来嵌入受密码保护的视频
但是自从每个问题被问到以来已经过去了一年或更长时间,我们希望Vimeo可以改进东西/API,因为多个用户似乎有相同的要求。
我们正在评估Vimeo的客户的视频托管需求,一切似乎都很完美且到位。我们将进行自定义集成,因此将使用他们的API和Player SDK将Vimeo视频嵌入我们的门户。
但是,我们试图找出的只有一个缺失的环节: Vimeo 允许视频从 vimeo.com 中取消列出,并且仅在列入白名单的域中显示;这是完美的。我们将使用此功能。
但是,Vimeo进一步允许视频受到密码保护。但是当通过播放器SDK玩游戏时,Vimeo总是提示用户输入密码,这基本上违背了密码保护的全部目的。我们有付费内容视频,如果我们与一个用户共享密码;没有什么可以阻止用户进一步分发密码。
上述问题的答案建议将视频设为私密,并仅在列入白名单的域上显示。但是,同样不会受到标头欺骗攻击吗?
我本以为Vimeo的oEmbedded API将使我们能够从我们的服务器发送视频的密码,然后vimeo返回视频的一次性播放链接,我们可以使用Vimeo的播放器SDK在网络上渲染该链接。从而为付费内容/商业视频提供更好的保护。
但是,我在播放器 SDK/oEmbed API 文档中没有看到这样的选项。
那么有没有人知道一个选项,可以将Vimeo密码保护的视频嵌入到白名单域的页面上,并且我们的服务器与Vimeo透明地共享密码,这样用户就不需要在视频本身中输入密码?
下面的答案会给你一个清晰的画面:
我会假设Vimeo的oEmbedded API...
一旦您将域或 IP 地址列入白名单,该计算机或服务器就可以访问资源,以下请求是将您的 IP 或域带到 Vimeo,根据白名单规则进行检查并返回所需的 JSON,其中最重要的一切都是具有安全 URL 的 html
https://vimeo.com/api/oembed.json?url=https://vimeo.com/videso/45215485
这是基于屏障的,将返回低于 JSON 的内容:
{
"type": "video",
"version": "1.0",
"provider_name": "Vimeo",
"provider_url": "https://vimeo.com/",
"title": "ReflectionVOID",
"author_name": "Page Films",
"author_url": "https://vimeo.com/pagefilms",
"is_plus": "1",
"html": "<iframe src="https://player.vimeo.com/video/204420014" width="640" height="272" frameborder="0" title="ReflectionVOID" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>",
"width": 640,
"height": 272,
"duration": 345,
"description": "",
"thumbnail_url": "https://i.vimeocdn.com/video/621081707_640.jpg",
"thumbnail_width": 640,
"thumbnail_height": 272,
"thumbnail_url_with_play_button": "https://i.vimeocdn.com/filter/overlay?src0=https%3A%2F%2Fi.vimeocdn.com%2Fvideo%2F621081707_640.jpg&src1=http%3A%2F%2Ff.vimeocdn.com%2Fp%2Fimages%2Fcrawler_play.png",
"upload_date": "2017-02-16 15:03:43",
"video_id": 204420014,
"uri": "/videos/204420014"
}
这就是我刚刚得出的结论。