
Building a live video streaming website – Part 3 – DRM - benwilber0
https://benwilber.github.io/nginx/rtmp/live/video/streaming/django/drm/2018/10/20/building-a-live-video-streaming-website-part-3-drm.html
======
shmerl
Proliferating DRM is evil. The most disgusting are some companies like Denuvo
which make money on it.

------
snacktaster
The video segments are encrypted by the same key? It's not a per-user key? So
if a single "authorized" viewer can just get all decryption keys then they can
allow anyone to decrypt the video stream. Completely bypassing these
authorization checks.

~~~
esotericn
The author did include this caveat:

> WARNING: This method of DRM will keep honest people honest. But determined
> people will figure out how to break it. This is the case with any kind of
> DRM.

It seems to me that this is more about essentially preventing the link being
shared.

Having not played around with HLS I don't see why this couldn't be done by
simply doing an authentication check and refusing to serve content if the auth
check fails.

Preventing decryption of the video is obviously impossible as it's being
decrypted on the box itself.

The key rotation seems odd to me.

If you're worried about users sharing their session key or something then that
can be dealt with on the back end (it surprises me that, for example, YT
seemingly don't care about the same IP downloading a ton of videos in parallel
with ytdl, say; I suppose NAT makes it slightly more difficult to detect, but
not much more so...).

~~~
qwertay
This kind of DRM will turn honest people in to pirates when the video doesn't
play properly.

------
M2Ys4U
Here's an even better solution:

1\. Don't use DRM.

2\. Feel ashamed for considering using DRM.

3\. Repeat.

------
ej3
Streaming with a custom built NGINX instance? This person is one of maybe 3 in
the world that can actually make this work. This blog post is representative
of years of life obiterated in nonsensical DSL syntax / grammer mistakes.

Buyer beware. Seriously, don't do this to yourself. I read this because
streaming is an enigma to me, but this post is suicide.

If you want something this fragile for yourself, just pay this guy to do it
for you.

~~~
pavs
> Streaming with a custom built NGINX instance? This person is one of maybe 3
> in the world that can actually make this work.

From a cursory look, it looks like he is using nginx-RTMP - one of the most
widely used streaming solutions out there: [https://github.com/arut/nginx-
rtmp-module](https://github.com/arut/nginx-rtmp-module) \+ ffmpeg

If you know Linux - shouldn't take more than 5-10 minutes to set it up.

------
rahimnathwani
Nice write up!

After reading, I was excited to read the previous two. The links at the bottom
of the page are broken, as they appear to include the wrong date (off by 1).

------
tsumnia
This is fantastic! I started doing webwork a few years back and while I've
gotten a chance to do some cool projects, streaming wasn't there.

------
markovbot
This seemed like something that parts 1 and 2 of would be much more
interesting, but the links to them both 404 :(

~~~
phit_
[https://benwilber.github.io/nginx/rtmp/live/video/streaming/...](https://benwilber.github.io/nginx/rtmp/live/video/streaming/2018/03/25/building-
a-live-video-streaming-website-part-1-start-streaming.html)

[https://benwilber.github.io/nginx/rtmp/live/video/streaming/...](https://benwilber.github.io/nginx/rtmp/live/video/streaming/django/2018/10/20/building-
a-live-video-streaming-website-part-2-the-applications.html)

------
iofiiiiiiiii
Here is how you do it with real DRM: [https://github.com/Axinom/drm-quick-
start](https://github.com/Axinom/drm-quick-start)

