<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css" style="display:none;"> P {margin-top:0;margin-bottom:0;} </style>
</head>
<body dir="ltr">
<div style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Hi Francis and thank you for your quick response / support.</div>
<div style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Now is more clear how locations and secure link works. </div>
<div style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
I would like to add the secure link in each m3u8 and ts file but can't modify the files on the fly with the free nginx version, i think nginx plus have this capability ? (receive fmp4 and deliver manifests on the fly)</div>
<div style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<a href="https://www.nginx.com/products/nginx/streaming-media/" id="LPNoLP892346">https://www.nginx.com/products/nginx/streaming-media/</a><br>
</div>
<br>
<div style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
What you would suggest in case i want to use secure link for all the files?</div>
<div style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Thanks</div>
<div style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Andrew</div>
<div style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div>
<div id="appendonsend"></div>
<div style="font-family:Calibri,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">
<br>
</div>
<div style="font-family:Calibri,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">
<br>
</div>
<div style="font-family:Calibri,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">
<br>
</div>
<div style="font-family:Calibri,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">
<br>
</div>
<hr tabindex="-1" style="display:inline-block; width:98%">
<div id="divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" color="#000000" style="font-size:11pt"><b>From:</b> nginx <nginx-bounces@nginx.org> on behalf of Francis Daly <francis@daoine.org><br>
<b>Sent:</b> Monday, June 17, 2019 7:40 AM<br>
<b>To:</b> nginx@nginx.org<br>
<b>Subject:</b> Re: Securing URLs with the Secure Link Module in NGINX</font>
<div> </div>
</div>
<div class="BodyFragment"><font size="2"><span style="font-size:11pt">
<div class="PlainText">On Sat, Jun 15, 2019 at 06:08:07PM +0000, Andrew Andonopoulos wrote:<br>
<br>
Hi there,<br>
<br>
> In my case the player will request the m3u8 URL:<br>
> <br>
> https://<domain>/hls/justin-timberlake-encrypted/playlist.m3u8?md5=u808mTXsFSpZt7b8wLvlIw&expires=1560706367<br>
> <br>
> The response from the server will be:<br>
> <br>
> #EXTM3U<br>
> #EXT-X-VERSION:3<br>
> #EXT-X-STREAM-INF:BANDWIDTH=200000,RESOLUTION=416x234<br>
> Justin_Timberlake_416_234_200.m3u8<br>
> #EXT-X-STREAM-INF:BANDWIDTH=300000,RESOLUTION=480x270<br>
> Justin_Timberlake_480_270_300.m3u8<br>
<br>
> Can I instruct Nginx to use secure link only for the playlist.m3u8 and not for the other m3u8 and ts files?<br>
<br>
Yes.<br>
<br>
I am not sure why you would do that; or what benefit it will give you;<br>
but that's ok. I do not need to understand that part.<br>
<br>
<br>
In nginx, a request in handled in a location.<br>
<br>
So you want one location that will handle playlist.m3u8 requests and<br>
does the secure_link thing; and a separate location that will handle<br>
all of the other /hls/ requests.<br>
<br>
I think you want to proxy_pass all of the requests, so you need proxy_pass<br>
in both locations.<br>
<br>
I think you want lots of common config -- add_header, proxy_hide_header --<br>
so it is probably simplest to use nested locations to allow inheritance<br>
rather than duplication.<br>
<br>
For example (untested):<br>
<br>
  location /hls/ {<br>
<br>
    # all of the common config goes here<br>
<br>
    proxy_pass <a href="http://s3test.s3.amazonaws.com">http://s3test.s3.amazonaws.com</a>;<br>
<br>
    location ~ /playlist\.m3u8$ {<br>
      secure_link $arg_md5,$arg_expires;<br>
      secure_link_md5 "enigma$hls_uri$secure_link_expires";<br>
<br>
      if ($secure_link = "") { return 403; }<br>
      if ($secure_link = "0") { return 410; }<br>
      proxy_pass <a href="http://s3test.s3.amazonaws.com">http://s3test.s3.amazonaws.com</a>;<br>
    }<br>
<br>
  }<br>
<br>
Adjust to fit the rest of your requirements.<br>
<br>
Good luck with it,<br>
<br>
        f<br>
-- <br>
Francis Daly        francis@daoine.org<br>
_______________________________________________<br>
nginx mailing list<br>
nginx@nginx.org<br>
<a href="http://mailman.nginx.org/mailman/listinfo/nginx">http://mailman.nginx.org/mailman/listinfo/nginx</a><br>
</div>
</span></font></div>
</div>
</body>
</html>