如何在网页上播放音乐,让用户获取不到音乐的地址?

白菜1031
  • 5.4k

如何在网页上播放音乐,让用户获取不到音乐的地址?

要在手机和电脑网页上都可以播放。

主要是为了保护版权,防止用户获取到原音频。

回复
阅读 4.8k
6 个回答
吃瓜群众
  • 953
✓ 已被采纳

你要不想被别的网站盗链,那么后台做防盗链就好了。如果你不想用户下载,前端还真的没啥好的措施,即使隐藏也会被软件嗅探出来的。除非你用blob对象、然后分段传输,十几秒验证这样咯,手笔太大了。慕课网的视频就是这种做法,但还是会被软件给嗅探到,只不过下载下来,都是十几秒的短视频,通过合并,还是可以得到完整的视频的。刚刚还特意去查了网页版酷狗,竟然没有做防盗链!!!

刚刚去看了下网易云的实现,页面是没有<audio>标签的,真的很困惑它是怎么播放的。后来发现,直接用js生成<audio>标签,不用插入到body中,然后也是可以播放的。这样至少普通用户是发现不了了。

小哈
  • 214

前端没啥好的方法,主要采用防盗链。。。目前各大公司的xxx云都可以

兄dei,DRM了解下?

DRM,直接下载播放不了

关于DRM,查了一下,在技术实现上完全没有头绪。


经过权衡,最终还是决定采用防盗链来实现需求,主要从以下两个方面防止音频被盗取:

1. 将音频文件存储在七牛云私有空间,token有效期为1小时。

也就是音频的访问链接1小时就会失效,防止音频链接被采集下来进行批量爬取。

2. 音频链接设置防盗链,不允许空referer

设置防盗链且不允许空referer,防止在浏览器地址栏直接访问音频链接进行下载。


局限:

1. 目前仍无法防止伪造 referer 爬取页面内的音频。

关于这个问题,可以关注:
防盗链 - 如何防止伪造 referer 爬取页面内的音频和图片?

2. 无法阻止用户从浏览器的缓存里去查找缓存下来的音频。

如果音频是存储在自己的服务器上的话,可以在web服务器配置禁止浏览器缓存相应数据。
但是音频是存储在七牛云,就没有办法进行相应的配置了,是这样吧?
@七牛云

我觉得就目前来看分段的策略就挺好的,攻防就是一个成本的博弈,如果你的资源本身价值达不到,加密成本又太大就得不偿失了。

提供一个可能的思路:
后台C/C++对原视频文件加密,传输到浏览器 通过使用 webassembly(这个不那么开源,破解成本相对较高) 中对应的解密方法,拿到帧数据,可以转成base64,通过canvas展示图像。 音频的处理,我没有可行方案,以上。

宣传栏