Search code examples
securityvideovideo-streamingmpeg-dashnetflix

How to secure a video file played through Media Source Extension API?


I have made a web video player using the Media Source Extension API. The video and audio my player downloads and plays is not secure. As in you can go to the Network in Google Chrome Inspect and download the video and audio and play it through a media player. I want to make my audio and video files to be played via my video player only.

A perfect secure video files example is here. The video player: http://reference.dashif.org/dash.js/nightly/samples/dash-if-reference-player/index.html. U can insert the source in the input: https://dash.akamaized.net/akamai/bbb_30fps/bbb_30fps.mpd. And when I download the files from Network in the Google Chrome Inspect, I cannot play the video file of .m4v in VLC or else where. So I think that this is secure. The files downloaded for playback can be found here: http://dash.akamaized.net/akamai/bbb_30fps/bbb_30fps_1280x720_4000k.

Netflix has very very secured video files where the file try isn't even defined. So can someone advise me how to secure my video and audio files to be downloaded and played from else where. Thanks

A sample of my video player project: https://drive.google.com/file/d/156mDgIltBGMkXhx4LZfShxv3A8JrwkNP/view?usp=sharing


Solution

  • The m4v files can be played, you just need to append them to the initialization fragment. Netflix does not use Media Source Extensions directly. They use Encrypted Media Extensions along with a DRM provider such as widevine.