I am building a website that hosts video's stored on AWS's S3 service. The videos are played thru a HTML5 player we have built.

Ive just been asked to make sure "nobody can steal our video's".

Now I know that if you really don't want something stolen, don't put it up on the internet. However I just need to secure these videos as good as possible, the videos need to at the very least resist someone going thru the source code and trying to download them manually.

One option available to me is to completely rebuild the video player in flash. This is not ideal, for several reasons, notably because I would also then have to build an App for mobile devices to be able to view this site.

So I am looking for other options.

I have heard about using a token to make the file available only during certain times.

I have heard of using a separate file to serve the videos that sits between the HTML5 page and the video file.

I am also having a look at IAM, the Secure AWS Access Control, in the hopes AWS can solve this problem for me.

Can anyone here recommend any of these options? Or perhaps suggest other options available to me?

Any help would be greatly appreciated.

  • 2
    This stack exchange question <stackoverflow.com/questions/9756837/…> may have what you are looking for
    – Daniel F
    Commented Mar 26, 2014 at 23:43
  • By "nobody can steal our videos" what type of theft are you referring to? Are you talking about people who have access to the "media player" being prevented from downloading videos or are you talking about preventing people who don't have access to view the videos from simply catching the URL and downloading the videos? It may seem strange, but the answer will differ vastly based on the type of theft you are trying to prevent.
    – Joe
    Commented May 23, 2014 at 18:36
  • I was thinking of either way really, anything you can tell me to make downloading the videos more difficult would be greatly appreciated.
    – Jimmery
    Commented May 24, 2014 at 12:23
  • the only way to prevent anyone from stealing anything is keeping it offline? Some suggest to destroy the file to be 100% sure...
    – tattvamasi
    Commented May 28, 2014 at 7:43
  • @tattvamasi I get that you can't make files impossible to steal, I just want to make it difficult to steal. Hence the title of my question.
    – Jimmery
    Commented May 28, 2014 at 11:40

3 Answers 3


I think using it with Lightbox makes chance of download hard. You can read this article: How to create a Video Membership Site with Complete Protection to Your Videos and after the content I found this: Limitting Accessing to Video Content

These are for Wordpress but I think you can easily apply for PHP or other web programming language.

Note : I recommend you research how YouTube can store their exact video URL and make hard to find!


I think, in spite of the fact that preventing or trying to prevent download is pointless, because those who are skilled enough will download it from the stream or cache, that you can use modernizr. It isn't aimed at preventing anything per se, but makes the source code highly unintelligible. It may be worth giving it a try. However, if it is possible to download videos from Youtube, the site that is spending more energies in preventing downloads, then it is possible to download from every site that has videos.

Have you considered adding a watermark with reference to the site (logo+url) to the uploaded video?

Sorry, I have no quick solutions for this. Every developer will tellyou it's not worth pursui


I know this thread is quite old, but wanted to respond in case people are still landing here through a search (like I just did):

  • You can create videos that are hard-to-download, by using Apple's "HTTP Live Streaming" (HLS).

  • Streaming videos are not necessarily "100% download-proof". Almost nothing is online. But because it uses strange file extensions (.m3u8 and .ts), AND browser plugins like Video Downloader won't work with it, that makes it really hard for the average person to download a streaming video from a website.

  • And on top of that, now add signed expiring URL's to those streaming files, and it makes it really hard to even get a direct link to the video that will work when sent to someone else (simply sending someone a .m3u8 URL that has already expired, will not work if they're trying to share the video).

  • You will need to use the following stack: S3 to store the videos, CloudFront, MediaConvert to convert your single .mp4 into a streaming files (a .m3u8 index file & .ts segment files).

  • Doing all of this manually, and each time for each video, is going to be quite an intensive and time-consuming experience, even for those technically inclined. If you have a WordPress website, then you could use a plugin like https://S3MediaVault.com which can automate almost all of this for you.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.