This project was a roller coaster ride to say the least. It’s built with thePlatform PDK. We used thePlatform’s component video tools and used their CMS data backend for all the video storage and delivery. thePlatform’s backend data services are very, very powerful, but my past experience with a earlier version of thePlatform’s PDK left me hoping it matured since then. There’s just so much focus on easy it is for anyone to put together a video player with their online tools, but every client/job/project I’ve ever had: we want our own custom touch, we have our own custom needs and we have sWalt (that would be me, the flash developer that we’re paying to do this custom stuff) to code it all.

Sooooo, that being said, the story continues:

Versus thePlatform Video Player

Versus needed some custom features and wanted more control within the player, so we took thePlatform’s PDK and got started. I built the player in Flex Builder 3  as a pure actionscript 3 project and after working closely with thePlatform’s support team, we were able to get their ‘demo’ player up and running.  For the video, we created custom feeds for serving video streams and let the video team handle uploading content.

So using the thePlatform’s “piece-by-piece” video tools, I was able to get a new player up and running pretty quickly, it was getting the Versus requirements all working together that was a challenge. We were ‘strongly recommended’ not to dig into their SWC files to write our own code. So for me, it was playing with black boxes and hoping to figure out the documentation enough to get things working. The only issue was, not only did I not understand why some features were having issues working, thePlatform’s support team couldn’t figure it out. We were able to get new SWC files compiled with ‘fixes’ that in the end, followed the documentation I was working with. After getting the player list, header populating and video running smoothly, we did some custom skinning for the video player (we created some custom visual assets and used external FLA libraries) . The video player supports DART video ads, with a supporting banner ad shown, all within the single SWF. We also have the player sending tracking data to DART and to some custom platform backend tracking fields.

If anyone says ‘use the canvas tools’ to me again, I’ll go nuts. Why? because we were ‘baking’ settings into the single SWF and not using the typical HTML canvas process.

The biggest challenge for this player is that we needed a single SWF, hosted from the Versus CDN to be syndicated out to Versus’s partners. Mainly the yardbarker.com domain and it’s sub-domains. We ran into the typical cross domain issues, both from my test domain and the Versus test domain, no biggie there (after developing in Flash for 10+ years now, the cross domain stuff was easy). Then the issue was, “how can we get custom embed codes for each of our partners that we can trust to actually work?” Sooooo, I created a simple configuration app that the syndication partners can create their own embed codes. The app allows users to choose what categories they want to provide, any configuration options we wanted to allow and the app creates the correct embed code. We were able to get the player launched, have a single SWF on the Versus CDN (which allows us to easily make any needed updates without numerous domains doing anything), get the full power of thePlatform’s backend data feeds and have everyone’s content update as needed. It felt great to make some needed updates after launch and push to the CDN, see the changes filter out and have a beer watching it all come together. Working with the team at Versus (Hi Jack and Neil!) is always a pleasure and it was awesome knowing that your client ‘gets’ it, sees that there are some issues to work out and no: Flash isn’t broken.