Prevent Cloudflare Stream from being downloaded

Hello. There is a well-known tool out there to easily download the video through the .mpd or .m3u8 files (for example, a video on the Cloudflare stream advertisement page). I’m working on a project that wants to prevent users from downloading video content.

I have read ‘Securing Cloudflare Stream videos’ (Securing Cloudflare Stream videos – Cloudflare Help Center and https://developers.cloudflare.com/stream/viewing-videos/securing-your-stream) and want to know whether it could prevent the download from such tool. From my understanding, it doesn’t deter the download process once the user obtains a .mpd or .m3u8 file (intercepted easily). In addition, if the user manages to find this workaround, will the extra bandwidth be charged to the bill?

There are other video streaming players in the market that implements AES-128 key rotation for HLS stream, which expires in a very short period (<10s). This seems to prevent such a tool to download video streams well. Does Cloudflare stream offer something similar to this?

Unfortunately, Stream doesn’t support AES-128 key rotation at the moment.

Thank you zaid. It looks like Stream isn’t able to block the download once a .mpd or .m3u8 is obtained. The important question is: does this extra bandwidth (downloaded by someone else outside the player) be charged to the bill of the account owner?

If I want to make it extra hard to download videos I’d consider:

  • using signed urls that expire in a period that is as short as possible
  • making signed urls that are entirely restricted to the IP address of the user requesting the video. This way, if the user shared the .mpd link, somebody else can’t download it.
  • adding user-specific metadata in JWTs so I can track if a user has shared the URL online

Key rotation within manifests would be an additional step to all of the above suggestions, but as Zaid said, Stream does not support it at this moment.