Then I thought: What did I just promise?
There are a lot of problems to solve in that request:
- Deliver not only the web site but also the audio and video across platforms
- iPad support
- eCommerce engine and, in turn, PCI compliance is a given
- Easy to use
- Low cost
Now, we have built CMS and eCommerce systems before. Almost all of our solutions have some kind of cross-platform requirement, so neither of those points seemed too daunting. We’ve also built sophisticated applications that work well on the iPad. But streaming audio and video across platforms with a pay-per-view feature, including iPad support, is a bit of a new one, even for AIS.
With the low-cost requirement in mind, enlisting a third party to provide the audio/video streaming, cross-platform encoding and meta-data tagging is a good idea. And this streaming server solution also needs to have an open API for integrating with the CMS system.
The solution: Kaltura. Kaltura’s web-accessible interface allows users to specify what encoding flavors are needed. Any time audio or video source files are uploaded, they are automatically encoded to the right flavors for your target devices. The Kaltura API also allows us to dynamically query audio and video files by metadata, and display only the right audio and video for the CMS page the user is browsing.
A combination of Kaltura and Media Element JS integrated into a single CMS site solves our cross platform media-streaming problem.
So, with Kaltura handling our server-side media streaming requirements, we now need a cross-platform player for the front end. Media Element JS provides a pure HTML 5 and CSS player with a customizable look and feel. For older browsers (or ones that do not support HTML 5), Media Element JS provides Flash and Silverlight plug-ins that mimic HTML 5. A combination of Kaltura and Media Element JS integrated into a single CMS site solves our cross platform media-streaming problem.
Umbraco is a free open source .NET project that was perfect or this project. (Umbraco has cancelled version 5 and we are now looking at Orchard for future open source .net CMS needs.) Umbraco has an easy-to-use interface for adding, editing and tagging content and pages. Umbraco’s authoring interface allows a non-technical user to add new audio and video artists to the system without the help of a technical resource. Then, when uploading and tagging the creative content in Kaltura, the CMS page content and audio/video content is married together and delivered on a single web page.
On to the next challenge: The need to allow CMS users to tag certain audio/video resources as premium content and collect fees. Kaltura already has a built-in mechanism for tagging media as pay-per-view, so we are easily covered there.
With a low-cost solution still in mind, we turn to another third party for payment processing. Braintree allows for payment processing without storing any personal identifiable information on the customer’s CMS server(s). Upon payment submission, all payment information is securely passed to Braintree’s servers for processing. This makes obtaining PCI compliance a snap. Braintree has even partnered up with Security Metrics and Security metrics will certify your application as PCI compliant as part of Braintree’s initiation fee!
The very last item to solve was hosting. In a low-cost scenario, customers usually do not plan on procuring and managing their own hardware, so the cloud is a good option. For this project we hosted the solution in Windows Azure.
The entire solution successfully integrates several low-cost third parties into one CMS system that satisfies all the customer’s requirements. We deliver audio and video content across a myriad of devices including multiple browser types on iPad, Mac and PC. We have a free and easy-to-use CMS system that allows non-technical users to keep the content fresh. A low-cost eCommerce engine (that’s easy to certify as secure with PCI compliance) is also implemented and integrated into the CMS site. All of this is hosted in the cloud at a low cost through Windows Azure Platform. Problems solved, and mission accomplished.