I recently participated in a SharePoint community hackathon hosted by EUSP and sponsored by CloudShare. We were tasked with creating a media solution that manages both local videos and YouTube videos in a SharePoint environment. Let us take some time to walk through my submission entry in detail.

I would be remiss if I didn’t ask for your vote. PLEASE VOTE HERE by Friday 05/25/2012 Midnight EST: http://poll.pollcode.com/09l7 

Motivations

I took a bold position with my solution. I decided to showcase the power of configuration over customization. I focused my efforts on sandbox packaging for deployment ease. I decided to drink the Microsoft Kool-Aid and thought hard about how the platform is already equipped to handle the given challenge. I started with the basic assumption that the SharePoint platform itself is satisfactory.

Storage

My solution is inspired from an Asset library which ships with content types for Image, Audio and Video. I decided to create a custom list definition schema based upon the asset library that only contains an inherited Video content type. This content is being used to store local videos in the ‘Media Library’

image

SharePoint additionally ships with a lesser known content type called ‘Link to a Document’. An inherited version of this content type is being used to store links to YouTube videos within the same Media Library thus grossly simplifying the underlying storage mechanism

image

Uploading

The simplified storage mechanism allows the solution to leverage SharePoint’s in-built upload mechanisms for both types of content. The intended use case is to use the Media Library’s ‘New Document’ drop downs to allow for content type selection during uploads

image

The ‘YouTube Video’ content type simply uses a standard URL column to store both the hyperlink and the title of the video

image

The ‘Local Video’ content type uses a standard document upload process to transfer videos from the user’s local drive. After the upload the content type tracks various standard properties for the local video such as keywords, preview image and much more

image

Viewing

Now that we are able to capture both local and YouTube videos, the challenge becomes one of integrating and simplifying the user experience for viewing these media. The asset library out of the box uses a Silverlight player for video assets which can be invoked by hovering over a video and clicking the ‘Play’ link. In an effort to simplify and unify the user experience, the solution rips out the hover functionality and the Silverlight player by modifying the list view XSL. Instead, a clickable ‘Play’ icon is overlaid on top of the video preview thumbnails to allow for quicker access to the media.

image

Clicking on the play icon overlay launches a standard SharePoint modal popup which does one of two things. For the YouTube videos, the modal displays the YouTube embed page which is instructed to auto play using query string parameters. For local videos, the modal passes the video URL as a query string to a custom page which leverages a 3rd party HTML5 media player to display the local video. The 3rd party player chosen for this application is an open source player called VideoJS which is available with a YouTube skin. This skin choice unifies the user experience while the player choice increases browser compatibility.

image

image

Lessons Learnt

I realize my solution is bold. I realized that going in. Let’s face it, it is a glorified list definition at the end of the day. One that successfully solves the challenge albeit but it is still a somewhat rudimentary solution compared to some of the more complex entries by the other contestants. What surprised me though is the strong reaction to the UI. I think my solution is simple which lends it the sort of elegance that solution architects tend to crave. However, I learnt (yet again) two very important lessons

  1. Presentation matters: Think Zune vs. iPod. Similar functionality but one sold millions while the other was trashed by millions. Form is supposed to follow function but it’s not always automatic.
  2. SharePoint UI is bleh: Our own baby is the cutest thing regardless of how ugly it may actually be to an objective observer. As SharePoint consultants we tend to start thinking of the standard UI as ‘usable’ and perhaps even ‘beautiful’. Show the same to someone outside the industry and they will gladly burst your bubble.

Solution Presentation Recording

Scrub to 19:08 for my 10 min presentation


Acknowledgements & Links

  • Mark Miller (@EUSP) – Thank you so much for organizing the event
  • Judges
    • Bil Simser (@bsimser) – Our resident Simon Cowell
    • Marc Anderson (@sympmarc) – Encouraging words of wisdom abound
    • Mark Fidelman (@markfidelman) – The ‘end user’ perspective
  • Contestants
    • Matthew Bramer (@iOnline247) – Without Matt’s C# hating, this wouldn’t have mattered
    • Doug Hemminger (@DougHemminger) – Thank you for choosing the competition over your domestic duties
    • James Love (@jimmywim) – I still don’t know where J Lo found the time to submit what he did. Truly impressed.
  • Links

I would be remiss if I didn’t ask for your vote. PLEASE VOTE HERE by Friday 05/25/2012 Midnight EST: http://poll.pollcode.com/09l7

Tagged with:
 

Leave a Reply

Your email address will not be published.

Set your Twitter account name in your settings to use the TwitterBar Section.