latest stable versions: v150827 (changelog)

Old Forums (READ-ONLY): The community now lives at WP Sharks™. If you have an s2Member® Pro question, please use our new Support System.


My Latest Replies (From Various Topics)

Viewing 23 replies - 26 through 48 (of 48 total)
Author Replies
Author Replies
Posted: Thursday Aug 16th, 2012 at 11:39 am #22254

Thanks Cristian, yeah I think it’s definitely worth looking at especially with some of the discussion in these forums about securing urls for the html fallback to prevent downloading. With this method this is not an issue as the content is not being downloaded via HTTP but being streamed. In any event, thanks for the response.


Posted: Wednesday Aug 15th, 2012 at 10:31 am #22100

Hi Cristian, yes we are using that functionality already, however, HTTP live streaming is designed towards playback on the mobile devices and served from amazon. Hence, no need for HTML download fallback. It’s served over HTTP not RTMP.

Posted: Monday Aug 13th, 2012 at 10:07 pm #21943

@Philly I just saw your plugin, awesome that you created this.. I’m having trouble. Activated it, used the short code, but no love. I just see the shortcode in the page, nothing happens. Any thoughts?

Actually I made one adjustment and now getting this response:

Sorry, you do NOT have access to this file.

How do I need to configure this to show my test video? I haven’t had any issue displaying my test video using the code samples .. anyway, I’m sure I’m missing simple.

  • This reply was modified 4 years, 4 months ago by  luisrosario.
Posted: Sunday Jul 1st, 2012 at 3:04 pm #18042

Hey Philly.. Check out this thread. This a thread between Jason and I regarding several different ways to trigger s3 and cloud front with JW player. It goes into detail with some variations on how to use jwplayer with s2member.. I believe the code in question is towards latter half of the thread.. Lots of useful info on this thread. I would copy and past some of these examples for your reference.

Posted: Sunday Jul 1st, 2012 at 2:48 pm #18040

Lol.. Ok.. well what do you need help with? I might be able to lend some assistance.. I’m pretty familiar with how it all works, but I’m not a coder per say.. I have developers who do that for me lol..

Posted: Sunday Jul 1st, 2012 at 2:24 pm #18038

Hey Philly, so yes, using cloudfront. This extends the ability to issue keys on a per video basis bypassing download restrictions extending more control to you when the keys are being issued.

Posted: Saturday Jun 30th, 2012 at 9:13 pm #18000

This is cool. How would you implement this if I wanted to generate a key for each time a person accesses a video?

Posted: Saturday Jun 30th, 2012 at 8:58 pm #17998

Hey Ann Maire Gill, actually I’m very familiar with video streaming using the jwplayer, but have been using it via the javascript calls similar to the code examples. I tried using the plugin and couldn’t get it to work. But now, I realized using your method, it’s probably safe to say that one might use the mod rewrite urls that s2 provides to possibly get some of the same functionality that code examples can do. You could build cloudfront usage into the url that you are using to have the video served via cloud front and not just s3. You’ll find that cloudfront will give you seekable video plus delivers faster. To answer your initial question, I don’t foresee any problem using the plugin since it’s using the same javascript that code samples use, and since you are calling the video file via s2member-files, that triggers your s2 protection on s3 provided that you have successfully configured s2 with s3 lol… The plugin is great because you load other plugins like analytics ect.. It would be cool for s2member could add some support with plugin so they don’t have to reinvent the wheel on providing shortcodes.

Posted: Saturday Jun 30th, 2012 at 7:35 pm #17993

Are you using cloudfront in the shortcode config? Or is it only accessing video via S3?

Posted: Monday May 21st, 2012 at 11:36 pm #14137

Actually code samples are fine.. I just have a certain functionality within my site that allows to load these videos in a lightbox as long as the resulting code ends up in an embed method. So was curious how might do that here.

Posted: Friday Mar 2nd, 2012 at 1:20 pm #7089

Hey Cristian, I agree with you on all that you are saying. I’m curious as to where you found the url… In this case obviously you know where to look.. I’m not sure the average person could find out where to look for the url, but I guess my argument is lets not make so obvious, because as it stands, viewing page source one can easily locate the s2 output of the html url and download. So either make that harder to find, or allow a shorter expiration for the cloudfront download url without affecting the streaming url expiration so users will be able to still seek video ect if viewing via flash and if viewing via html, the cloudfront download link expires similarly to the s3 url link. Based on my testing, using forced s3 url with streaming cloudfront as provided by Jason in a previous example is not as good as using the cloudfront for dowload and streaming all together. So if I could deliver html video via cloudfront download url with shorther expiration, that would be a step in the right direction IMO..

Posted: Friday Mar 2nd, 2012 at 1:07 am #6980

Thanks Jason for the reply. There are a couple points I’d like to address..

1- YES your example above generating Cloudfront and S3 URLS does take it one step further. But as your said, there are still limitations.

2- With that said, I realized after you provided the example, that if there was a way to use the Cloudfront Download Distribution, not Streaming, instead of s3 URL, and assign it a shorter length expiring url i.e. 30 seconds … that would be more favorable in terms of user experience on mobile devices. Since the file would be delivered via Cloudfront, it would be a quicker download, minimizing playback issues in the html fallback. So I thought maybe we could adopt the same logic with the s3 url generation and expiration time and apply it to Cloudfront Download URL. I’ve been doing tests with the example you provided and have seen some difference in the way the video downloads versus using Cloudfront Download … In any case, Maybe this is not possible to split the Cloudfront Distributions URL expiration times ?? …

3- In regards to encrypting the html fallback url .. I can only give you an example of this as we currently use S3flowshield for protecting files from S3 storage.. We have s2member on top as added security. Our main issue with flowshield is it doesn’t use cloudfront. If you visit

You’ll see a video here served from s3 using flowshields url generation to file ect.. If you look at page source, you’ll see where the player is located and all the data is blocked out. Copying this would yield nothing and there are displaying the player and video file somehow.. And added measure as well, is they give the option in the dashboard to set the expiration time. For a while flowshield did not have html fallback and it also exposed the url, but site admin had the option of setting the expiration times of the url as I said previously.

4- So moral of the story, ideally, as a site owner, I would love to be able to use the Cloudfront Download URL to deliver videos to devices using html fallback, but either hide the URL or Garble it up to make copying a link useless or allow a shorter url expiration time … Although RTMP is very secure, mobile is very important to video streaming and making it secure is just as important..

5- I would imagine with extending s2 in this way would really, IMO, make even more complete than it already is.

Posted: Thursday Mar 1st, 2012 at 1:00 pm #6906

Hey Jason, to verify the above config with cloudfront and s3 url, will the s3 url use the default 30s url expiration? If so, would you agree the above example with Cloud Front RTMP Streaming and S3 Html Fallback is definitely a more secure method for using both delivery methods.. Although, one may still be able to download the s3 file within the default 30 second window.. But I feel this at least is step in the right direction towards a solution for both cases. If there’s anything I could suggest, if there was a way to completely hide the s3 url for the html fallback portion with an encryption of sorts, I think this combo would be a very strong solution for secure media delivery using s2member. We are a big supporter of your software and use it heavily on our site and now with the video functionality, we will be upgrading our video delivery and moving to s2 for this functionality. We have been using s3flowshield, but the power of s2member with the video integration is definitely more powerful.

One more thought, is there a way to isolate the cloudfront download distribution url and replace the s3 url in the config and have a different url expiration time than the streaming distribution? Best,


  • This reply was modified 4 years, 10 months ago by  luisrosario.
Posted: Tuesday Feb 28th, 2012 at 8:00 pm #6693

Tried your example for file_download_key => true and getting a stream not found. I have a working example of the standard config of jw and html fallback, this new example having trouble with @Jason … Also, I had a question. Is there a way to force a s3 download link not cloudfront into the html fallback? So basically if a mobile device is loading html fallback, instead of the video coming form cloudfront, it’s delivered from s3 storage utilizing the default 30 second expiration to prevent link sharing. Is that possible? Creating a hybrid of s3 and cloudfront dynamically generating the urls for each case in the jwplayer…


Posted: Friday Feb 24th, 2012 at 5:04 pm #6330

The only thing I can think of is allowing us to have the option to set the expiration time for the download link. I’ve used another plugin that does this. So if we set it to 60 seconds for example, then there’s less time to copy and paste the url or encrypting it to some level.. Thanks for your reply, I’m hopeful there may be a workable solution to this. Best,


Posted: Thursday Feb 23rd, 2012 at 7:11 pm #6218

Hey Raam, thanks for the reply. So correct me if I’m wrong, if my site is streaming site only and I don’t want to allow people to download a video, just watch it, s2member will allow them to download the file? Even if I set restrictions on the file downloads, users will at least need access for 1 download to even see the video, otherwise it won’t load in the player and they would get redirected to the downloads exceed page? is that right? So then I would have to allow access to let them see it, but expose the url in page source where people could copy the link at download. If it set 0 downloads in the download restrictions settings, then users will not be able to see html fallback on mobile devices.. is that right?

Posted: Monday Feb 20th, 2012 at 10:08 pm #5784

Hey Ryan, I’m sure you’ll get what you need. I’m aware of removing the html5 will render the video to go with a rtmp stream. What I’m hoping for is to extend this so I can protect html url so it can’t be downloaded but still viewed on mobile devices. I’m currently using s3flowshield to protect my video files with s2member on top for extra security. It only works with s3 storage. With s3flowshield the url to the file is encrypted and expires where I have the option to set the time to expire i.e. 10min. So you can’t copy and past the download url into the browser and download. The main limitation is it doesn’t have cloudfront support and is why it makes sense for us to use s2member for this functionality. @Jason , is there a way to do this with s2member? I want to be able to allow for the html fallback for video playback on mobile devices but don’t want the download url to be exposed. Any thoughts?

Posted: Monday Feb 20th, 2012 at 5:17 pm #5734

Hey there Jason, am I correct in recognizing if we look at page source, one can copy the download link distribution and download the file? So logged in user if they have access to a specific video, all they have to do is look at page source to download the file?? Can you confirm if this is the case? Thank you.


Posted: Monday Feb 20th, 2012 at 12:31 pm #5700

Hey Ryan, the tutorial works if you follow it to the tee. The confusing part is how to build the url for rtmp streaming. The only thing you need to enter in the example code is the absolute file path to the file in your s3 bucket. As an example, below is an sample of a test I’m doing, locate this piece of code in the example code provided by s2member, as you can see all I’ve done is inserted where it says (“file_download” => “file”, …. the absolute path to my file. In this example I have a file in an access-s2member-level0 subdirectory which gives access to level0. if you don’t have your file in a s2 member subdirectory or any subdirectory for that matter, then the only thing you need to enter is the file name.. that’s it. nothing more, provided that you have configured cloudfront correctly. and after installing the raw html plugin as suggested in the tutorial, my example worked. make sure you re-paste the example code into the page/post and after you have installed the plugin, insert the path to the file as it exists in your bucket and it should work.

$cfg = array (“file_download” => “access-s2member-level0/arms_11.1.mp4”, “url_to_storage_source” => true, “count_against_user” => true, “check_user” => true); ?>

The streaming works beautifully and if you are on a mobile device it falls back to html video tag which then gets distributed by your file download distribution on cloudfront.

Posted: Friday Feb 17th, 2012 at 3:10 am #5469

After more investigating I realized that I am getting the html fallback and not the rtmp stream.. I had some wrong code inserted and the player fell back to html and i was still able to play the video. Below is the current output of the code that i copied from the page source, it seems the rtmp url is not generating properly??? .. With this current code, I’m now getting stream not found, any thoughts?:

/* First try real-time streaming with Flash® player. */
{type: “flash”, provider: “rtmp”, src: “/jwplayer/player.swf”,
config: {streamer: “rtmp://”, file: “wp-content/plugins/s2member-files/s2member-file-storage-cf/access-s2member-level0/arms_11.1.mp4?Policy=eyJTdGF0ZW1lbnQiOlt7IlJlc291cmNlIjoid3AtY29udGVudC9wbHVnaW5zL3MybWVtYmVyLWZpbGVzL3MybWVtYmVyLWZpbGUtc3RvcmFnZS1jZi9hY2Nlc3MtczJtZW1iZXItbGV2ZWwwL2FybXNfMTEuMS5tcDQiLCJDb25kaXRpb24iOnsiSXBBZGRyZXNzIjp7IkFXUzpTb3VyY2VJcCI6Ijc2Ljg5LjE0NS4zLzMyIn0sIkRhdGVMZXNzVGhhbiI6eyJBV1M6RXBvY2hUaW1lIjoxMzI5NTUyMzg1fX19XX0_&Signature=d8BZIESNGSLKGWbx2hiFGB1XzfNJuONZUOZIPOiYZRa~YhqSoKFk2IGuZs85lwqtbLp2y1Z940XyzKzxu1kngc5fBeXOT68THttXY4h6AKQqoylp~izFhd87eVASvRazY-uZXVixRF0U6gxIrhYa-T4NnsrS0JuD-YVqIJhsmLA_&Key-Pair-Id=APKAJ7GIEGYYPENSOKXA”}},

/* Else, try an HTML5 video tag. */
{type: “html5”, provider: “video”,
config: {file: “”}},

/* Else, this is a safe fallback. */
{type: “download”, /* Download the file. */
config: {file: “”}}

  • This reply was modified 4 years, 10 months ago by  luisrosario.
Posted: Friday Feb 17th, 2012 at 2:13 am #5460

That worked. Thanks. One observation.. How does the RTMP seeking work? It seems that I can’t jump ahead while the file is loading.. Thoughts?

Posted: Tuesday Feb 14th, 2012 at 6:55 pm #5092

I jason, I am using the code example from within the dashboard.. the code gets corrupt upon posting into the form on this forum. When I preview post it looks what I have in my html editor, but upon submitting it gets corrupted on here. not sure why… I reposted this issue here’s what I posted:

Hello, I’m hoping someone might be able to help me with this cloudfront config with jwplayer. I’m just not clear what needs to be filled in the JWPlayer RTMP Protocol Example Code.

I have successfully created cloudfront download and streaming distributions: I have a file located in my S3 bucket:


I’m trying to use this url for my file:

What do I insert and where in the below example to get this video properly loaded using RTMP? Really need help with this. I’ve tried looking on the forums and tried different combinations on trying to make this work and I can’t figure it out. When I load the above link into the web browser, it seems to authenticate and loads video via download distribution. Some instances I get access denied or video not found and others I get stream not found. I just need to know what the example code needs to look like with my links… Any help on this would be greatly appreciated.

JW Player® ( RTMP streaming MP4, via s2Member’s Amazon® S3/CloudFront integration )

*Using the code tags corrupts the post so I can’t post the example in this post fyi…

Posted: Tuesday Feb 14th, 2012 at 12:31 pm #5043

You might want to double check that the spelling of your bucket on S3 matches what you have entered in the fields for Cloudfront/S3 config within s2member. I had problems similar to this and realized that my bucket wasn’t named exactly the same as what I entered in the configuration. There was a slight mispelling on my bucket name. Not sure if that helps..

Viewing 23 replies - 26 through 48 (of 48 total)

Old Forums (READ-ONLY): The community now lives at WP Sharks™. If you have an s2Member® Pro question, please use our new Support System.

Contacting s2Member: Please use our Support Center for bug reports, pre-sale questions & technical assistance.