实现类似于 Spotify 的音频流服务

Implementing an audio stream service similar to Spotify

高级描述

假设我有一个客户端程序(在我的特定情况下是一个 iOS 应用程序)应该与远程主机上的服务器程序 运行 通信。系统应按如下方式工作:

在我看来,这是 Spotify 功能的简单实现。

技术问题

The data streamed by the server should only be used by the client itself, i.e. someone sniffing the traffic should not be able to interpret the contents…

HTTPS 是最好的方式。

…and the user should not be able to access the data.

这不可能。即使您有某种魔法来防止捕获解密数据(这是不可能的),总有人可以记录音频输出,甚至是数字记录。

From my perspective, this is a simple implementation of what Spotify does.

Spotify 不这样做。没有人这样做,也没有人可以。不可能。如果客户端必须解码数据,那么您无法阻止某人修改数据的解码方式。

你能做什么

  • 使用 HTTPS
  • 在您的 URL 上签名,以便原始媒体只能在短时间内访问。每个人都有效地向媒体展示了自己的 URL。 (查看 AWS S3 如何处理这个,这是一个很好的例子。)
  • 如果你真的很担心,你可以watermark your files on-the-fly,在其中编码一个 ID,这样如果有人泄露了媒体,你就可以根据他们的帐户数据来追踪他们。这很昂贵,因此请确保您确实有这样做的商业案例。