Engineering and Developers Blog
What's happening with engineering and developers at YouTube
No WebView required, with native YouTube Player API for Android
Friday, December 21, 2012
Adding a high-quality video experience to your Android application just got a whole lot easier. Starting today, you can embed and play YouTube videos in your app using the new
YouTube Android Player API
.
The API, which was
pre-announced
at Google I/O 2012, offers these benefits:
High-quality video playback supported on Android 2.2 (Froyo) or newer
Easy integration
with your Android application (no
WebView
required)
Fullscreen
and orientation change support
Closed captions
display
Support for YouTube ads
Programmatic access, similar to existing
Player APIs
, to most aspects of the
YouTube video playback experience
Integration with the Android YouTube app using a standard set of YouTube
Intents
We are launching the API as
experimental
, though we do not expect major interface changes going forward.
The Only Limit Now is Your Imagination
(and
ToS
)
These
instructions
explain how to include the
YouTubeAndroidPlayerApi.jar
client library in your Android application. The library is supported on Android devices running version
4.2.16
or newer of the Android YouTube app.
You can use the
YouTubeApiServiceUtil
class'
isYouTubeApiServiceAvailable
method to confirm that a device is compatible.
For a simple embed, use the
YouTubeStandalonePlayer
. To build a more sophisticated user interface, try the
YouTubePlayerView
or the
YouTubePlayerFragment
.
Fragments
can help create an engaging experience as shown in the Video Wall app
example
.
Play With These Apps
Here are a few interesting apps available for you to explore:
See everything on
Flipboard
, all your news and life’s great moments in one place. Now you can watch YouTube videos from wherever you are in Flipboard without leaving the application, providing a more integrated and seamless experience.
BuzzFeed
delivers original reporting, scoops, and the hottest social content on the web. Android users can now view their favorite BuzzFeed content featuring YouTube videos in the BuzzFeed app and share with their friends.
9x9.tv
enables users to discover and watch curated, topical videos that are organized into TV-like channels. Their
blog
describes their experience developing with the API.
SoundTracking
lets people use their mobile phone or tablet to share their music moments and favorite jams with friends and family. Users can now discover and play YouTube music videos of the songs within their music timeline.
Fitness Flow by
Skimble
helps you get in shape with high-quality exercise videos led by professional trainers. Skimble uses YouTube to stream workout content on your Android phone and tablets.
Check out a few screen shots below or download the apps from
Google Play
today!
Flipboard
BuzzFeed
Fitness Flow by Skimble
Learn More
If you would like to learn more about the YouTube Android Player API, the
documentation
is a great place to start. In addition, we have curated useful videos in this
playlist
. Please subscribe to the
YouTube for Developers'
channel to keep up on the latest.
Check Out The Sample Code
We’ve prepared several code examples to make it easy for you to get started with the new API. You will find them on
code.google.com
. The description of the examples is available in our
documentation
. If you need additional help with the API feel free to use our
support resources
.
Cheers,
-- Ross McIlroy, Anton Hansson, and Horia Ciurdar, YouTube Mobile Team
The Simpler, Yet More Powerful New YouTube Data API
Friday, December 14, 2012
Since its initial
launch
in 2007, the YouTube Data API has become one of Google’s most popular APIs by request volume, thanks to the
awesome apps
from developers like you. To help you make better integrated video experiences, you can now use the YouTube API version
3.0
. The new API is easy to use thanks to rich client library support, improved tooling, reference documentation and integration with Google’s common API infrastructure. Version 3.0 only returns what you ask for and is using JSON rather than XML encoding for greater efficiency. The API introduces new core functionality including
Freebase
integration via topics, and universal search. If you develop social media management apps, you’ll love channel bulletin post and full subscriber list management, also new in this release. Version 3.0 of the API constitutes the API's biggest overhaul to date and we’re eager for you to
try it today
!
New Functionality: Topics, Universal Search, and Audience Engagement Support
Have you ever tried to search for YouTube videos only to find out that keyword search can produce ambiguous results? With the new Topics API, thanks to the power of
Freebase
, you can find exactly what you’re looking for by specifying Freebase topic IDs rather than search keywords.
For example, if you’re reading this post from outside of the US and would like to search for content related to football,
/m/02vx4
is probably the topic ID you're after. The API's
universal search
feature lets you retrieve channels, playlists and videos matching the topic with just one request like
this one
. Find out more in our Topics
API Guide
.
Version 3.0 introduces better tools to engage and interact with one’s YouTube audience. Social media management apps can now help content creators communicate with their
channel subscribers
using buletin
posts
.
Efficiency, Client Libraries, Better Tooling and More!
To help you reduce your app’s bandwidth requirements version 3.0 only returns the information you ask for as specified by the “
part
” parameter.
While the default JSON encoding in version 3.0 is more efficient than XML in version 2.0, if parsing JSON isn’t your thing, check out the
client libraries
for .NET, Dart, Go, Java, JavaScript, Objective-C, PHP, Python and Ruby. The libraries use OAuth 2.0 authorization and work with the YouTube API as well as other modern
Google APIs
thus simplifying your application.
The familiar Google API tools such as the
API console
work with YouTube API version 3.0 without any extra hassles. Additionally, our API reference documentation now allows you to scroll down to the
bottom of any reference page
to try the API. You can also or visit the standalone
API Explorer
to browse a list of supported methods.
App Examples
Even though version 3.0 is still
experimental
, a number of exciting new apps are already using it. Let’s look at a few examples:
Showyou
, an app that makes it easy to watch the Internet,
integrated
the Topics API to enable users to discover related videos after tapping on topics associated with the Showyou feed.
Argentina-based
Interesante
integrated
the Topics API to determine the Freebase topic of videos being shared. Interesante used this to serve interest-based video recommendations.
FanBridge
, a company specializing in growing and managing one’s fan base, recently introduced channel
bulletin post
functionality with
scheduled posts
support.
Tubular Labs
, which focuses on YouTube audience development, uses
subscriber list
to help content creators develop a better understanding of their audiences.
Pixability
, a company specializing in YouTube marketing software, was able to quickly port their
Online Video Grader
to the YouTube API version 3.0 thanks to the new Python client
library
.
Learn More
If you would like to learn more about the YouTube API version 3.0, in addition to the API
documentation
, the material curated in
this playlist
is a great place to start. Please subscribe to the
YouTube for Developers' channel
to keep up on the latest.
Use The Source, Luke!
Since the most fun way to work with it is to try it, we’ve prepared a few code examples in
Python
and
JavaScript
to get you started. For a more comprehensive client-side app using the Topics API, try the
Topics Explorer
. You can find its source code on
code.google.com
.
Cheers,
--
Raul Furnică
,
Vladimir Vuskovic
and
Pepijn Crouzen
, YouTube API Team
ClientLogin using Google Accounts
Tuesday, December 11, 2012
Long-time readers might remember a blog post from a while back entitled “
ClientLogin #FAIL
”, in which we covered the myriad ways in which your
ClientLogin
authorization attempts might result in an error. Even though ClientLogin has been officially
deprecated
since April 2012, and even though we’ve been recommending that developers switch to
OAuth 2
for longer than that, we know there are still a good number of legacy applications out there that still rely on ClientLogin.
If you are a developer of such an application, there’s another thing that you (and your users) will need to start watching out for: at some point in the future, we will start requiring that the username parameter passed to ClientLogin (i.e. what’s referred to as the
Email=
value in the
ClientLogin request
) correspond to the full email address of the
Google Account
that’s associated with an underlying YouTube channel. We’ve supported using Google Account email addresses with ClientLogin for many years now, ever since we started
linking
Google Accounts to YouTube channels, but old habits die hard, and many users still use YouTube usernames.
We haven’t yet determined a date for when we still stop supporting ClientLogin with YouTube usernames and will provide additional details when we know more about when it will take place. However, if you use ClientLogin, it’s not too early to start encouraging your application’s users to start providing their Google Account email addresses instead of their YouTube usernames when logging in. If you have the ability to update your existing application’s user interface, we recommend doing so to indicate that the username field should take a Google Account email address. If you have any online help materials or technical support for your software, update them to ensure that users know to provide their Google Account email address.
Users who log in via the YouTube.com web interface, or who go through the AuthSub, OAuth 1, or OAuth 2 web authorization flows will soon be required to use their Google Account email address instead of their YouTube username as well. This web-based transition will take place well before we deprecate YouTube usernames for ClientLogin, and it should be transparent to developers since Google controls the user interface for these flows. For more information, see this
help center article
.
As mentioned, we’ll have a follow-up post in coming months with more details about exactly when we’ll stop supporting YouTube usernames with ClientLogin. That post will also communicate the exact error message that ClientLogin will return when a YouTube username is used.
We’d like to close with one more plea: ClientLogin is deprecated, and is technically inferior to OAuth 2 in a number of important ways. Our new Google APIs client libraries provide first-class OAuth 2 integration that developers can take advantage of in their new code, or back port to their existing code. You will be doing your users a service and making their accounts more secure by transitioning from ClientLogin to OAuth 2.
Update (June 2013)
: The change mentioned in this blog post is now in effect. Attempts to use ClientLogin with a YouTube username will result in
HTTP 403 Forbidden
responses, with
Error=BadAuthentication
in the response body.
Cheers,
—
Jeff Posnick
,
YouTube API Team
Using WebM to power the YouTube app for Nintendo Wii
Thursday, November 15, 2012
When we began building the new
YouTube app for Nintendo Wii
, we wanted to make video playback smooth and beautiful. This meant squeezing the most available power from the console CPU and fitting the video decoding process within the tight bounds of available memory. After trying out several video encoding formats on Wii, we found that
360p WebM
encoding performed the best. With the largest install base of current generation consoles, YouTube on Wii is the largest deployment of WebM video in the world today.
WebM is particularly well-suited to devices where available memory is limited, because of its technical approach to video encoding. VP8, the video codec in WebM, uses reference frames (called alternative reference frames, or "alt-ref") from which adjacent video frames are derived and compressed. This type of compression is commonly used in modern video encoding schemes, but VP8
uses the technique with particular efficiency
, which results in a smaller memory footprint and smoother video playback on Wii.
We went one step further and performed low-level optimization of the VP8 decoder specifically tuned to the Wii’s processor. This included: using paired-single floating point operations to perform
motion compensation
,
loop filtering
, and
idct
; using the GPU to do color conversion and scaling; and dcbz instructions to copy buffers. This kind of
optimization
is available to anyone, as the VP8 code is open source under a
BSD license
.
We’ll keep looking into other ways we can use WebM, so stay tuned on this blog to learn more.
Fritz Koenig, Engineer, recently watched
Phantogram - "Don't Move"
, and Matt Darby, Product Manager, recently watched “
JP Auclair Street Segment
.”
Upcoming HTTPS Certificate Change
Tuesday, November 13, 2012
If you’re a developer who uses the YouTube API, and if you make your requests to the API using HTTPS, there’s an upcoming change that you should be aware of. Sometime in early August 2013, Google will be changing the certificates used for establishing secure HTTPS connections to
all
of our servers, in what we anticipate will be a backwards-compatible manner. Still, since there are so many slight differences in HTTPS client implementations, we encourage you to test your existing code in advance of this change and to
report any issues
that you do encounter.
The new certificates are currently active on
https://cert-test.sandbox.google.com/
, and we recommend testing your HTTPS client implementation against that URL.
If you’re using HTTP instead of HTTPS to access the YouTube Data API then you also won’t be affected by the new security certificates—but you really should start using HTTPS!
This post
on the Google Online Security Blog has more information about the upcoming change, which roll out in early
August, 2013
.
Cheers,
—
Jeff Posnick
,
YouTube API Team
Cool YouTube apps from Google I/O 2012
Friday, September 28, 2012
We're constantly amazed at the innovative ways that developers incorporate YouTube into their applications. At
Google I/O
this year, 12 partners (over 30% from outside the U.S.) demonstrated their apps in the YouTube section of the
Developer Sandbox
, a demo area highlighting applications based on technologies and products featured at I/O.
Google's own
Daniel Sieberg
, an Emmy-nominated journalist, interviewed some of our partners about their use of the YouTube APIs.
With Daniel’s hectic schedule, he only had time to interview a handful of our great partners. With that in mind, we highlighted all the awesome apps showcased by our partners at the YouTube API Developer Sandbox.
Business.me
(YouTube Data API and YouTube Player API)
Overview
Business.me, headquartered in Singapore, is the place to share and discover videos about business. They have created a video-sharing site to help producers of business videos reach their audience. The site also helps business professionals discover relevant business information in video format.
Fun Fact
Oscar Moreno, CEO, not only holds Business and Law degrees, he helped launch several startups (Business.me, Netjuice, Keldoo, and Tuenti).
Code Hero
(YouTube Data API)
Overview
Code Hero teaches you to code through a fun, 3D game. Become a code hero and shape the future!
Fun Fact
The Code Hero Team implemented the recording mechanism in the game that exports to YouTube at a 3 day hackathon!
Bonus: The game has
sharks with lasers
attached to their heads!
Flipboard
(YouTube Data API and YouTube Player API)
Overview
See everything on Flipboard, all your news and life’s great moments in one place. Using the YouTube Data API, Flipboard lets users discover, rate, share, and comment on top videos from YouTube. In addition, users can access their own videos and subscriptions, and subscribe to other YouTube users.
Fun Fact
Flipboard launched an Android app one week before I/O with a YouTube and Google+ integration!
LOOT Entertainment
by Sony DADC (YouTube Data API)
Overview
Gather your friends and set up your own production crew inside PlayStation®Home! What will you be? Director? Actor? Cinematographer? Extra? Try them all! Check out the
amazing Machinima tools
to help you record, light and build your film or television sets! What will you make?
Fun Fact
LOOT gives you tons of sets to make your own movies (
machinima
) on the
PS3
, including a
Ghostbusters Firehouse Stage Set
!
Moviecom.tv
(YouTube Data API and YouTube Player API)
Overview
A simple and easy online video platform for businesses. Record, centralize and share instantly. Moviecom.tv also allows you to link directly to your YouTube account through the YouTube APIs.
Fun Fact
The founders flew all the way from Glasgow to attend Google I/O!
Parrot
(YouTube Data API and YouTube Player API)
Overview
The Parrot AR.Drone is a quadricopter that can be controlled by a smartphone or tablet. Get more out of your AR.Drone with the AR.Drone Academy. Keep track of all your flights on the Academy map. Watch your best videos with added statistical feedback and directly share online with pilots from all over the world!
Fun Fact
Parrot makes
remote controlled flying devices
that can record and track their flights!
PicoTube - Vettl, Inc.
(YouTube Data API and YouTube Player API)
Overview
Picotube uses content from YouTube and allows users to create avatars, watch clips together, create playlists, and rate videos selected by other video jockeys.
Fun Fact
Picotube was the Grand Prix
winner of TechCrunch Tokyo 2011
!
Skimble
(YouTube Data API and YouTube Player API, and new Android Player API)
Overview
Here to power the mobile fitness movement, Skimble offers fun, dynamic and social applications for everyone. Available now are Skimble's Workout Trainer and GPS Sports Tracker apps that help motivate people to get and stay active. Skimble uses the YouTube Player API to display fitness videos.
Fun Fact
Co-founder
Maria Ly
got the
crowd moving
at one of YouTube’s Google I/O Sessions!
Squrl
(YouTube Data API and YouTube Player API)
Overview
Squrl is a great place to watch and discover video. Know what videos are trending, receive recommendations on what to watch and see what your friends are watching.
Fun Fact
Co-founders Mark Gray and Michael Hoydich also founded the successful software development company
IndustryNext
together in 2004!
Telestream
(YouTube Data API and YouTube Player API)
Overview
Telestream demonstrated Wirecast for YouTube, a live video production and streaming product, which was developed specifically for Google YouTube partners. Telestream specializes in products that make it possible to get video content to any audience regardless of how the content is created, distributed or viewed (entire process).
Fun Fact
Telestream’s NASCAR Project won the
IBC2012 Innovation Award
!
Vidcaster
(YouTube Data API and YouTube Player API)
Overview
VidCaster is a video site creation platform that allows you to create a video portal instantly from your existing video library on YouTube or other video hosts. Choose from a beautiful set of designer themes and customize to your heart's content using VidCaster's powerful template language.
Fun Fact
Kieran Farr
, CEO and co-founder, used to drive a taxi full-time in San Francisco before becoming a successful entrepreneur!
WeVideo
(YouTube Data API)
Overview
WeVideo is a cloud-based video editing suite that allows easy, full-featured, collaborative HD video editing across Google Drive, Chromebooks, and Android devices.
Fun Fact
WeVideo partnered with Marvel and YouTube to allow fans to create their own
trailers
!
YouTube Channels: Get with the Program!
Monday, September 24, 2012
It's never been easier to create compelling videos and build a social presence on YouTube. At this year's Google I/O, YouTube product managers and channel gurus Dror and A.J. presented tips and tricks for making great content centered around raising brand awareness, raising money, and obtaining feedback about your products and services.
Don't worry if you missed their talk, we recorded it! So, sit back, grab some popcorn, and get ready to learn how to showcase your brand in front of YouTube's 800 million unique visitors per month!
Click
here
to view the slides from the video above.
Not sold yet? Well, have a sneak peek at some of the great material they cover below, and remember Dror and A.J.’s number one recommendation:
make content, not commercials
!
Sneak Peek
Tips and Tricks
Hook the user in the first 15 seconds (or they'll leave)
Brand your channel!
Make the most of your budget
Review
YouTube’s Trends
for ideas
Camera shy?
Consider animation.
(It might actually be cheaper than video.)
Several successful channels focus on curating videos from their community
Enhance your videos without fancy software/hardware using the
YouTube Editor
or
other integrated web editors
Many, many more...
What's your goal?
Raising awareness
Master your PR via video (include all your features and make bloggers’ lives easier)
Provide product/service demo videos to promote your company
Tell backstories about clients using your products/services
Raising money
Add video to your crowdfunding pitch to increase funds raised by 114% (
source: Indiegogo
)
Researching and supporting users
Record tutorials to promote and educate (see which features are the most popular using
YouTube’s Analytics
... you might be surprised)
Use
Google Hangouts
for scalable office hours and virtual focus groups
Figure out what features customers like/dislike via the world’s largest focus group
Resources to learn more
Creator Hub
Creator Playbook
(what you wish you knew about YouTube)
Trends Dashboard
YouTube for Developers
(that’s us)
Wow, you made it this far without
watching the video
? Did we tell you they fill the presentation with awesome videos that showcase their points (including
Chuck Testa
)?
Nope!?
Well, now you know, and you will definitely want to
watch the whole thing!
-Jeremy Walker, YouTube API Team
The YouTube API on Stack Overflow
Friday, September 14, 2012
Many of you are already familiar with the terrific
Stack Overflow
website, which has become the
de facto
resource on the web for all types of programming questions. And many of you have been asking
YouTube API questions on Stack Overflow
for some time now, but haven’t received any official responses from the YouTube API Developer Relations team. That’s because, for the past five years or so, our focus has been on providing developer support via our dedicated
Google Group
. We’ve decided that instead of continuing to maintain a dedicated Google Group for YouTube API questions, it would help more users if we focused on responding to Stack Overflow posts.
We encourage all developers who have questions about the YouTube API to start posting on Stack Overflow today using the tag
youtube-api
. You can use this
new question template
to pre-populate the tag for you so that you don’t forget. While we’ll do our best to find and answer relevant questions that aren’t tagged with
youtube-api
, you’d be making our job easier (and you’d get a quicker answer) if you tag things correctly from the get-go.
Here are a few tips for folks new to Stack Overflow:
Before posting, search to make sure your question hasn't been asked before. To do this, put
[youtube-api]
as the first part of your search, then type in some keywords that describe your problem or question.
If you need to ask a question, make sure you apply the
youtube-api
tag, as well as the tag that indicates the language that you're using. If you're using PHP to access the API, your question should be tagged
youtube-api
as well as
php
.
Make sure you watch your question after posting it, as experts that can provide you with an answer might leave comments to ask you for clarification.
Stack Overflow prides itself in being a destination for questions and answers, and not a place to file bug reports or feature requests. We ask that developers
do not post on Stack Overflow
for those sorts of things, and instead make use of the templates we have for
filing a bug
or
filing a feature request
in our existing public issue tracker. (Be sure to check the
list of existing open issues
before filing a duplicate.)
On
October 15
, we’ll be switching the existing
discussion Google Group
into archive-only mode, meaning that it will no longer accept any new posts. You don’t have to wait until October 15 to
start asking questions on Stack Overflow
or to file reports in the issue tracker, though.
For those developers who mainly “lurked” in the discussion Google Group and used it as a way of getting official announcements about the YouTube API, we have a number of other communication channels to recommend. Subscribing to this blog’s
RSS feed
is a great idea, for instance. You can also follow us on Google+ at
http://google.com/+YouTubeDev
. If you’d like to submit a question to one of our weekly YouTube Developers Live broadcasts, you can do that for the next
upcoming scheduled show
. Finally, for those who prefer to get updates via email, we will be keeping the
announce-only Google Group
active, and we’ll continue to post important messages there.
Cheers,
—
Jeff Posnick
,
YouTube API Team
Video Tags: Just for Uploaders
Tuesday, August 28, 2012
Update
: This change also applies to
<category scheme="http://gdata.youtube.com/schemas/2007/keywords.cat">
tags, which were not mentioned in the original announcement.
If you follow the YouTube Creator Blog, you might have recently seen
a post
announcing that video tags (also known as keywords) would no longer be displayed to viewers of a video on YouTube’s website. They aren’t going away from the video itself, though—the owner of the video can still create tags for new videos and edit tags for existing videos, and video tags will still provide an important signal used to surface relevant results when searching for videos.
We’re going to be making some corresponding changes to all versions of the YouTube Data API to mimic this behavior in API responses. Starting later today, August 28, on the
staging server
and September 4 on the production server, any time you get a video entry back from any API method, it will have an empty
<media:keywords/>
element. This is a valid response from the API that your application should already handle gracefully, since videos are not required to have any keywords to begin with.
The exception to this rule is when you make authenticated requests to the API, and you request a video entry that’s owned by the currently authorized user. In that scenario, you will get back a
<media:keywords>
element that contains the full list of tags for the video, and you can read, update, or remove those video tags using the standard API operations.
Important
: If your application allows video owners to update the metadata of their videos, please ensure that you include the proper
Authorization
header for both read and write operations. Otherwise, you could accidentally return an empty list of video tags when retrieving an existing video, and end up
overwriting
the video’s tags if you update the metadata. Video tags continue to play an important role in helping viewers discover your videos when searching on YouTube.com or via the API, so if your application does support metadata editing, please make sure you allow owners to tag their videos properly.
Cheers,
—
Jeffrey Posnick
,
YouTube API Team
Labels
.net
360
acceleration
access control
accessibility
actionscript
activities
activity
android
announcements
apis
app engine
appengine
apps script
as2
as3
atom
authentication
authorization
authsub
best practices
blackops
blur faces
bootcamp
captions
categories
channels
charts
chrome
chromeless
client library
clientlibraries
clientlogin
code
color
comments
compositing
create
curation
custom player
decommission
default
deprecation
devs
direct
discovery
docs
Documentation RSS
dotnet
education
embed
embedding
events
extension
feeds
flash
format
friendactivity
friends
fun
gears
google developers live
google group
googlegamedev
googleio
html5
https
iframe
insight
io12
io2011
ios
iphone
irc
issue tracker
java
javascript
json
json-c
jsonc
knight
legacy
Live Streaming API
LiveBroadcasts API
logo
machine learning
mashups
media:keywords keywords tags metadata
metadata
mobile
mozilla
NAB 2016
news
oauth
oauth2
office hours
open source
partial
partial response
partial update
partners
patch
php
player
playlists
policy
previews
pubsubhubbub
push
python
quota
rails
releases
rendering
reports
responses
resumable
ruby
samples
sandbox
shortform
ssl https certificate staging stage
stack overflow
stage video
staging
standard feeds
storify
storyful
subscription
sup
Super Chat API
survey
tdd
theme
tos
tutorials
updates
uploads
v2
v3
video
video files
video transcoding
virtual reality
voting
VR
watch history
watchlater
webvtt
youtube
youtube api
YouTube Data API
youtube developers live
youtube direct
YouTube IFrame Player API
YouTube live
YouTube Reporting API
ytd
Archive
2019
Apr
2018
Dec
Aug
Apr
2017
Nov
Sep
Aug
Mar
Jan
2016
Nov
Oct
Aug
May
Apr
2015
Dec
Nov
Oct
May
Apr
Mar
Jan
2014
Oct
Sep
Aug
May
Mar
2013
Dec
Oct
Sep
Aug
Jul
Jun
May
Apr
Mar
Feb
2012
Dec
Nov
Sep
Aug
Jul
Jun
May
Apr
Mar
Feb
Jan
2011
Dec
Oct
Sep
Aug
Jul
Jun
May
Apr
Mar
Feb
Jan
2010
Dec
Nov
Oct
Sep
Jul
Jun
May
Apr
Mar
Feb
Jan
2009
Nov
Oct
Sep
Aug
Jul
Jun
May
Apr
Mar
Feb
Jan
2008
Dec
Nov
Oct
Sep
Aug
Jul
Jun
May
Apr
Mar
Feb
2007
Dec
Nov
Aug
Jun
May
Feed
Follow @youtubedev