Wowza Community

Restrict the domain that a specific stream is allowed to play

We have a specific client that uses flash media encoder (h264) and wants to stream to one specific domain only.

He doesn’t want someone to steal the link and add it on another player (like jwplayer on another domain).

  • he wants to do this for different stream names like this:

Stream name: stream1 -> ONLY plays on domain1.com

Stream name: stream2 -> ONLY plays on domain2.com

Stream name: stream3 -> ONLY plays on domain3.com

(note: all these streams run from the same server)

Can this be done? Is there already a module that does exactly this or do we have to hire a wowza programmer to do it?

Cheers,

Savvas

Hi

The Hotlink denial module allows you to lock an application to only play from a particular domain but I think it could be modified to lock a stream.

Here’s the link

https://www.wowza.com/docs/how-to-combat-hotlinking-your-adobe-flash-swf-file

Jason

Wowza has to run on one domain, so you can’t really use Wowza this way. (You can restrict what domain or IP you accept rtmp streams from.)

Take a look at the MediaSecurity Addon, ModuleRTMPAuthenticate. This is the best way to limit encoder access to a live Wowza application.

https://www.wowza.com/docs/media-security-overview

Richard

Take a look at this example:

https://www.wowza.com/docs/how-to-limit-playback-by-ip-address-moduleoverrideplayrestrictip

Richard

Hotlink denial limits what domain a Flash RTMP client (swf) that connects to your server can be served from, so that won’t do what you want. You said you want to restrict by domain, I think what I pointed to will do that.

Richard

Thank you for the reply!

We want to limit the domain that is allowed to PLAY the stream, not the IP that the encoder sends the stream.

We use Amazon EC2 Wowza Instance, so most probably by only using the code below this will work (have to try it now):

domainLock

localhost,mysite.com

AllowEncoder

Wirecast

Now, if we want different stream names to be allowed to ONLY PLAY on a different domains, can this be done?

Stream name: stream1 -> ONLY plays on domain1.com

Stream name: stream2 -> ONLY plays on domain2.com

Stream name: stream3 -> ONLY plays on domain3.com

Hi again!

It’s working great now, we just added wms-plugin-collection.jar, in the folder: /usr/local/WowzaMediaServer/lib of the EC2 instance.

Then, above module Name: ModuleRTMPAuthenticate this:

Hotlink Denial

Hotlink Denial Module

com.wowza.wms.plugin.collection.module.ModuleHotlinkDenial

and in the properties:

domainLock

localhost,*domain.com

AllowEncoder

FM, Wirecast

It simply reject everyone that tries to embed the link or player somewhere else.

Now, if we want to restrict streams to specific domains, can this be done on the same server without coding?

Thank you rrlanham, that is a good solution but we don’t want to handle IP whitelisting/blacklisting.

Can the Hotlink denial module work per stream name?

So when we add this code, can we associate it only with a specific stream name?

domainLock

localhost,*domain.com <------------ We want this to ONLY work when someone streams from FME etc with the stream name stream1 (so, we don’t want this to work when someone streams from any other stream name other than stream1).

Thank you Richard!

We just wanted to know if there is a way to do this using the simple setup with xml files + module.

Hi

Let us know how you get on and if you are successful in locking a stream to a domain/multiple domains.

Jason