【问题标题】:How to stream an audio file without be downloadable and hiding the original file name/address?如何流式传输音频文件而不可下载并隐藏原始文件名/地址?
【发布时间】:2015-03-18 08:44:55
【问题描述】:

我需要从我的服务器流式传输音频文件,但我不想这样做:

  • 内容在用户的 PC 上是“可保存”(我的意思是用户不应该 由于版权问题,下载文件并将其保存在他的电脑上)

  • 原始文件的地址和名称,不应泄露。

我尝试了这里提出的有趣的解决方案:

Streaming an MP3 on stdout to Jplayer using PHP

我使用建议的代码创建了一个名为 music.php 的文件。

调用脚本music.php 后,从任何浏览器的URL 栏中调用它,它就会出现多媒体阅读器。这部戏开场很好。

然后只需右键单击并另存为...,它会保存一个名为 music.php 的文件

但是这个文件的内容,是音频文件本身。因此,只需将其重命名为 music.mp3 并下载原始 MP3 :-/ 这是我不希望发生的。

请问您有什么建议吗?

非常感谢

【问题讨论】:

    标签: audio audio-streaming


    【解决方案1】:

    但我不希望这样:内容在用户的 PC 上是“可保存的”

    这是不可能的。如果可以播放,可以录制保存。

    原始文件的地址和名称,不应泄露

    为什么?如果您提供用于下载文件的脚本,那么您可以轻松下载该文件。如果您的意图是阻止人们直接链接到文件,那么您可以检查 Referer 标头以确保请求来自您的站点。但是,任何人都可以通过不发送该标头来下载文件。

    您还可以考虑 Amazon S3 的签名 URL 是如何工作的。 HMAC 用于创建在一段时间后过期的签名 URL。该 URL 有效,但前提是应用程序授予用户使用它的访问权限,并且仅持续几分钟或您指定的任何时间。在您的情况下,如果您只允许登录用户获取您的音乐,简单的会话数据可能会有所帮助。您的问题并没有完全说明您想要做什么,因此您的情况如何工作取决于您。

    但是这个文件的内容,是音频文件本身。因此,只需将其重命名为 music.mp3 并下载原始 MP3 :-/ 这是我不希望发生的。

    同样,这不是您可以阻止的。即使您不遗余力地编写自己的流媒体方法并使用 Web Audio API 或其他任何东西来播放它,捕获该数据甚至以数字方式录制音频仍然是微不足道的。

    【讨论】:

    • 嗨布拉德,我们的目标是:让用户能够收听文件,但避免他下载它。因为音乐在 iTunes 上销售,而且不贵。我想应用的方法,但我不知道如何,它类似于 Reverbnation 中的方法。我找不到他们的文件,也找不到下载。正如你所说,就我不使用特殊程序来记录流而言。临时 URL (Token?) 的解决方案很有意思。我需要开发一些东西或查找一些文档,看看是否已经准备好了一些东西,或者我是否必须从头开始
    猜你喜欢
    • 2018-03-29
    • 1970-01-01
    • 2014-08-25
    • 2018-07-11
    • 2017-05-09
    • 2013-02-11
    • 1970-01-01
    • 1970-01-01
    • 2018-08-18
    相关资源
    最近更新 更多