EOT for Multiple CCAPS issue

Hello friends! I’m hoping this is not a unique issue and that I may find a way to address this issue I have:

I’m selling access to individual yoga videos using a CCAP for each video. The video purchase term is 48 hours, non-recurring. When a user purchases a video, an EOT gets assigned in the “Automatic EOT Time” field in their profile. The problem arises because that EOT is not linked to a specific CCAP, so if 24 hours later, the customer purchases another video, the system updates the EOT value by adding another 48 hours. Since the user was not demoted because the original EOT was never reached, they now have 2 CCAPs listed, and the first video purchase will not expire at the 48 hours-from-purchase mark, but instead use the EOT set by the second purchase.

Does anyone have a solution that might work? I am greatly appreciative of your consideration, and I’m open to custom development to achieve this goal.

Thank you!
Gerry

If you are selling videos you should probably be streaming them, encrypting the traffic, providing time-limited unique purchase-specific URLs. If you are streaming them then it should be from a cloud / SaaS provider (like AWS) rather than from your WordPress site for cost / performance reasons.

I previously used s2member / AWS protected streaming but it is now deprecated since RTMP is no longer supported.

After extensive research I settled on FV Player Pro / AWS Encrypted HLS combo. Because my client sold videos on a subscription basis there was no custom coding involved in integrating with s2member subscription levels.

For your use-case you would need to write some code to integrate with s2member ccaps protection or use the Folivision optional “pay-per-play” plugin.

NOTE: Foliovision products are pay-per-year. They are not free. I am not an affiliate…just a satisfied user.

Hi Tim, Thanks for your thoughtful reply. We aren’t streaming the videos, they are pre-recorded and served through Vimeo embed so there’s no performance issue with Wordpress. Peace Gerry

Your choice with Vimeo is unprotected progressive download or HLS…which is streaming). If you upgrade to the pro version of Vimeo you can get private links but not encrypted traffic or time-limited one-off unique links as with the Foliovision / AWS combo. That’s how you protect the videos. You provide time-limited links to someone who has to log into their account on your server to get one and you encrypt the traffic from the player to the server.

The reason I raised the point is that to limit someone’s access to offline content you need to use the content server to provide time-limited access and the content player to enforce it.

S2member ccaps protect online content on the site that the s2member is installed on. S2member ccaps does not protect offline content.

S2member DOES protect offline content via AWS time-limited links but the S2member offline video protection is no longer viable since it is based on the AWS RTMP which AWS has deprecated.

So what this long winded description is getting at is that you can create time-limited access TO the link (the ccaps way) or you can create time-limited links (the Foliovision/AWS way). You can use a Foliovision/ Vimeo combo to offer pay per view I beleive…but the underlying access links would not be time-limited unique links if they are leaked.

Thanks again, Tim. Your video approach is solid. I’m still hoping for someone to help figure out this issue with individual CCAPs and multiple EOTs… regardless of content type, this is an issue that s2M should have built in IMHO.

Custom code is the short answer.

Hi Gerry.

I understand your difficulty. Right, there aren’t individual EOTs for ccaps. I very much want to improve this. Although you and only a very few others have asked for it over the years, it’s high in my list because I myself consider it important. It’s just that some higher priority items have kept me from getting to it yet.

You can do it with some custom code, as Tim said. Actually, the s2Drip shortcode may come close to what you need, from what you described… Give it a look and see if it could work for you: https://s2member.com/kb-article/s2drip-shortcode/

Instead of using the EOT, the s2Drip checks the time the user got that ccap. This is the closest I got Jason (the original s2Member developer) to implement something like the EOT for ccaps.

Let me know if you have questions, I’ll be happy to help. :slight_smile:

Hi Cristián,

This issue has become something that I must address now that the client has tried it for a few months, it’s problematic that users don’t get properly demoted at the EOT.

I’m looking at the s2Drip conditionals, and I’m not sure that it’s going to work… I understand how the from_day and to_day attributes work, but it seems like the date calculations are based on the initial registration date. This would not be helpful if a user is a repeat customer who registered back in September, but continues to purchase various CCAPS over the course of time.

Can you explain how to write the short code that “checks the time the user got that ccap” as your post above states?

Thank you for your time and considerations,
Gerry