Linux Foundation Video Site: A Case Study

linux_video_front_0.png

Background

The Linux Foundation Video site is a community-driven web presence originally developed as a way to feature the “I'm Linux” video contest. The contest highlights user-generated videos that add a third voice to the “I'm a Mac” and “I'm a PC” advertising campaigns. OpenSourcery made the contest possible by developing a Drupal site that makes interaction simple, clean, and entertaining.

The Linux Foundation selected OpenSourcery to create an interactive website that allows the community to upload user-generated videos, respond to other videos, easily search content, and view Linux Foundation-produced videos. In essence, the site combines video upload functionality with social networking tools.

OpenSourcery engaged Linux Foundation from the earliest stages of the project, consulting on a full range of development options. OpenSourcery understood that a majority of the tools Linux Foundation's needed already existed, and we created a roadmap that efficiently scoped the development of custom modules required for the site. Together we determined what contributed and custom modules would ultimately comprise the Linux Foundation Video Drupal site.

linux_video_share_screenshot_0.png

Goals and Challenges

The Linux Foundation approached OpenSourcery with an exciting idea, an ambitious timeline, and an active community that was ready to engage the final product. As an open source development shop, we were honored to work with the Linux Foundation, so we put our Agile development process to work right away. We were able to efficiently capture their needs up front and begin the process of building out a test site almost immediately. In order to successfully deploy the project on time, we needed to aggressively pursue all stages of development.

The first step was to upgrade Jonathan Hedstrom's Video Upload module from Drupal 5.x to 6.x, while partially abstracting out YouTube-specifics in order to make the module available to other providers in the future (vimeo, blip.tv, etc.). Hedstrom, OpenSourcery's lead Drupal developer, envisioned a site with “one view to rule them all”: the front page tab section, feature content, recent comments, related content, and taxonomy pages are all sub-views of a singe view that filters out video that hasn't finished processing. The result is a unified look and feel for all video listings. No clunky, half-complete content finding its way to the front page.

We also had to confront the challenge of providing difference ways for users to add a video, depending on that user's role. The Linux Foundation needed a way to distinguish between user-generated videos and content uploaded by site administrators. Our solution was four-fold:

  • Direct upload, which sends the file to YouTube. This is permissible for all users, and allows the Linux Foundation to carry a lighter load. In effect, YouTube hosts the video, which plays seamlessly on the Linux Foundation site.
  • Long-form video, which is intended for videos that are too long for YouTube. Long-form video upload is accessible only to site administrators.
  • Remote video allows site administrators to enter a url that pulls from a high-bandwidth Linux Foundation server that already has a long-form video existing on it. This feature satisfied the Linux Foundation requirement that the site give visitors access to interviews and special content produced by the Linux Foundation. For example, we needed to account for an hour-long interview with Linus Torvalds that would have been too large a file for YouTube.
  • 3rd-party, non-YouTube (or existing YouTube) video. This last requirement was satisfied by using the emfield module.

linux_video_featured.pngOnce OpenSourcery integrated the four distinct upload options, we needed a way to simplify theming, since only one of the four types described above can be achieved in a single node. We solved this problem by routing all video through a single, custom CCK field formatter that determines what type of video it is and formats it appropriately. This solution greatly simplifies the user's experience, and reduces the complexity of the many different video displays.

After resolving the video uploading challenges inherent to the Linux Foundation's site needs, we turned our attention to social networking tools. The site is, after all, a fantastic platform for intra-community communication and idea sharing. Hedstrom implemented the flag module for favoriting content and alerting site administrators to objectionable content. He also installed Fivestar to enable users to rank videos. The use of these modules is a prime example of how OpenSourcery consulted the Linux Foundation on the best available modules and saved them the resources and time required to reinvent those wheels.

Technical Outcomes

  • Upgraded Video Upload module from 5.x to 6.x, partially abstracting out YouTube-specifics for future generalization to other providers.
  • Four video upload options
    • Direct upload - all users
    • Long-form video - site administrators only
    • Remote video - site administrators only, for high-bandwidth videos
    • 3rd-party, non-YouTube video
  • Social networking, with flag module for content favorites and admin alerts.
  • Video ranking functionality

Additional Modules of Note

  • Nodequeue - for featuring video to the front page, and several blocks scattered throughout the site
  • Service links - for sharing video to sites like digg and reddit
  • Flag - used both for favorites and flagging objecitonable content
  • Fivestar - video rating
  • Tagadelic - tag clouds
  • Imagecache/imageapi/imagefield - used for the various thumbnail sizes and user profile pictures
  • LDAP - for syncronizing users to the Linux Foundation's many web properties
  • Comment display - easily change location of comments
  • Hovertip - for video discription pop-ups