Hello,
We use custom token authentication to authorize users to be able to watch a stream. This works great for most all types of streaming, but I just found a problem with HDS streaming and the use of jwplayer.smil. See the problem is that the output generated when /jwplayer.smil is requested doesn’t have the querystring parameters on it. Here’s an example:
Request for the smil:
http://74.121.236.123/ChaosMedia/_definst_/smil:2014/1383-baker_solo/1383-baker_solo.smil/jwplayer.smil?AuthToken=ERvU3kupA9dB-Ww-nqKZZ49Sk6zuhkn82WTfw9CU_dbUMeaVBjSMxdOP1mi7rWGSLSwPpS3t9RcUqsWnu0OhgFuFYxSH9_D5NHUiHH-nj4aq4HgGeBrZlNxYOcRPGjJYitRaAXJQVV9He84l6DyUmw%3D%3D
Generated smil:
<smil>
<head>
<meta base="rtmp://74.121.236.123/ChaosMedia/_definst_"/>
</head>
<body>
<switch>
<video src="mp4:2014/1383-baker_solo/1383-chaosmen_baker_320.SM.mp4" system-bitrate="751000"/>
<video src="mp4:2014/1383-baker_solo/1383-chaosmen_baker_640.MD.mp4" system-bitrate="1451000"/>
<video src="mp4:2014/1383-baker_solo/1383-chaosmen_baker_1024.LG.mp4" system-bitrate="1956000"/>
<video src="mp4:2014/1383-baker_solo/1383-chaosmen_baker_1280.HD.mp4" system-bitrate="2285000"/>
</switch>
</body>
</smil>
Notice that the video src attributes don’t have the AuthToken querystring param that the original request for the smil has. This is a major issue for us because without that, our system can’t authorize the request. This works perfectly fine with HLS streaming:
Request for m3u8:
http://74.121.236.123:80/ChaosMedia/_definst_/smil:2014/1383-baker_solo/1383-baker_solo.smil/playlist.m3u8?AuthToken=ERvU3kupA9dB-Ww-nqKZZ49Sk6zuhkn82WTfw9CU_dbUMeaVBjSMxdOP1mi7rWGSLSwPpS3t9RcUqsWnu0OhgFuFYxSH9_D5NHUiHH-nj4aq4HgGeBrZlNxYOcRPGjJYitRaAXJQVV9He84l6DyUmw%3D%3D
Generated m3u8:
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=751000
chunklist_w2083149689_b751000.m3u8?AuthToken=ERvU3kupA9dB-Ww-nqKZZ49Sk6zuhkn82WTfw9CU_dbUMeaVBjSMxdOP1mi7rWGSLSwPpS3t9RcUqsWnu0OhgFuFYxSH9_D5NHUiHH-nj4aq4HgGeBrZlNxYOcRPGjJYitRaAXJQVV9He84l6DyUmw%3D%3D
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1451000
chunklist_w2083149689_b1451000.m3u8?AuthToken=ERvU3kupA9dB-Ww-nqKZZ49Sk6zuhkn82WTfw9CU_dbUMeaVBjSMxdOP1mi7rWGSLSwPpS3t9RcUqsWnu0OhgFuFYxSH9_D5NHUiHH-nj4aq4HgGeBrZlNxYOcRPGjJYitRaAXJQVV9He84l6DyUmw%3D%3D
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1956000
chunklist_w2083149689_b1956000.m3u8?AuthToken=ERvU3kupA9dB-Ww-nqKZZ49Sk6zuhkn82WTfw9CU_dbUMeaVBjSMxdOP1mi7rWGSLSwPpS3t9RcUqsWnu0OhgFuFYxSH9_D5NHUiHH-nj4aq4HgGeBrZlNxYOcRPGjJYitRaAXJQVV9He84l6DyUmw%3D%3D
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=2285000
chunklist_w2083149689_b2285000.m3u8?AuthToken=ERvU3kupA9dB-Ww-nqKZZ49Sk6zuhkn82WTfw9CU_dbUMeaVBjSMxdOP1mi7rWGSLSwPpS3t9RcUqsWnu0OhgFuFYxSH9_D5NHUiHH-nj4aq4HgGeBrZlNxYOcRPGjJYitRaAXJQVV9He84l6DyUmw%3D%3D
Notice that the AuthToken querystring param was preserved in the output.
Is there anyway I can get the /jwplayer.smil to carry over the querystring params? This is a major show stopper for us right now…
Thanks,
Sean