YouTube and Picasa Web API Hackathon

Last week I had the pleasure of attending the YouTube / Picasa Web API Hackathon at Googleplex. Google is always a great host and they provided food, t-shirts, and even raffled a pass to Google I/O.

The hackathon started out with presentations by folks on the Google Data (GData) team. All of Google application make their data available through the GData API. GData is available in different formats including RSS or Atom. Every data point of Google’s applications are made available through GData, for example YouTube user profiles, video data, play lists, subscriptions, and video views can be accessed via GData feeds. The GData API does allow application developers to read and write data to Google Applications, but write operations require authentication. For example, uploading a new video, modifying video metadata, or writing comments requires authentication. For web applications or services that need to be authenticated by GData API they need to use AuthSub. AuthSub redirects the end user to a Google site for the end user to log into Google and then Google forwards back to the requesting site with a valid authenticated token. The GData team strongly discourages (or disallows depending on who you ask) for third party application, services, or developer from collecting Google user credentials. Since AuthSub requires the user to login at a Google site, third-party applications don’t need to collect Google credentials.

As I mentioned earlier, GData can be delivered via RSS or Atom. Because YouTube and Picasa describe media files such as videos and images, those APIs also use Media RSS.

Geoff Stearns, Flash hacker on the YouTube team, talked about the YouTube Player API. The embeddable YouTube player can be customized and configured with parameters in the video url. Parameters include rel, autoplay, loop, border, and others. Rel is a boolean value that indicates if you want related videos to be displayed in the ‘genie menu’. Autoplay indicates is a boolean value that indicates if the video should play once loaded. In addition to player parameters, the YouTube player can be manipulated via JavaScript. The YouTube player can be made to play, pause, stop, mute/unmute, get/get volume, and seek ahead in the player. It is incredible easy to manipulate a video through the YouTube Player API, you can build your own video controls with JavaScript. Since the YouTube player can be manipulated entirely via JavaScipt, developer have an option to building their own video player with their own custom controls with the YouTube Chromeless Player.

Geoff has a kewl mashup example between YouTube JavaScript API and Google Maps. The mashup is a on board video of a race in San Francisco. As the video proceeds it updates the Google map as of the location of the camera, in essence you get a street view of the race and a aerial view of the race track.

Technorati Tags: , , , , , , , , , , , ,