阻止下载HTML5视频(右键单击保存)?

2024-04-26 22:36:56 发布

您现在位置:Python中文网/ 问答频道 /正文


Tags: python
3条回答

对于那些只想从html5视频中删除右键“保存”选项的人来说,这是一个简单的解决方案

$(document).ready(function(){
   $('#videoElementID').bind('contextmenu',function() { return false; });
});

您不能。这是因为浏览器就是这样设计的:提供内容。但是下载会变得更困难。

首先,您可以禁用^{} event,也就是“右键单击”。这将防止你的经常滑道公然撕毁你的视频,右键点击并另存为。但之后他们可以禁用JS并绕过它,或者通过浏览器的调试器找到视频源。加上这是糟糕的用户体验。上下文菜单中有很多合法的内容,而不仅仅是另存为。

您也可以使用自定义视频播放器库。他们中的大多数实现了视频播放器,可以根据您的喜好自定义上下文菜单。所以你不会得到默认的浏览器上下文菜单。如果它们提供的菜单项与“另存为”类似,则可以禁用它。但同样,这是一个JS解决方案。弱点与之前的选择相似。

另一种方法是使用HTTP Live Streaming为视频服务。它的本质是把视频分成小块,然后一个接一个地播放。这就是大多数流媒体网站提供视频的方式。因此,即使您设法保存为,您只保存一个块,而不是整个视频。收集所有的块并使用一些专用软件缝合它们需要更多的努力。

另一种技术是paint ^{} on ^{}。在这种技术中,使用一点JavaScript,您在页面上看到的是来自隐藏的<video><canvas>元素呈现帧。因为它是一个<canvas>,所以上下文菜单将使用<img>的菜单,而不是<video>的菜单。您将得到一个另存图像为,而不是另存视频为。

您也可以使用CSRF tokens来获得优势。你会让你的服务器在页面上写下一个标记。然后你用那个令牌来获取你的视频。服务器在提供视频之前检查它是否是有效的令牌,或者获取一个HTTP 401。这个想法是,你只能通过一个令牌获得一个视频,而不是直接访问视频url,只有当你来自页面时,你才能获得这个令牌。

最后,我会把我的视频上传到第三方视频网站,比如YouTube或者Vimeo。他们有很好的视频管理工具,优化了设备的播放,并且他们努力防止他们的视频在你的一端被零努力地撕开。

简单的回答

你不能

如果他们正在观看您的视频,他们已经拥有了它

You can slow them down but can't stop them.

相关问题 更多 >