Engineering and Developers Blog
What's happening with engineering and developers at YouTube
YouTube for Developers on... YouTube!
Wednesday, March 13, 2013
For almost a year, we’ve been recording
weekly shows
for YouTube API developers as part of the
Google Developers Live
series, hosted on the
Google Developers
YouTube channel. Now, if you want to get just YouTube API-related videos, check out the new
YouTube for Developers channel
.
On our new channel, you’ll find an up to date
playlist
of all our YouTube Developers Live shows (which we’ve also embedded below), as well as
other playlists
with videos related to the API. We still recommend subscribing to Google Developers as well, especially if you plan to work with multiple Google APIs in your applications.
Not surprisingly, we’re using the YouTube Data API v3 to maintain the YouTube Developers Live playlist, and also to
post channel bulletins
whenever any video related to YouTube is added to the
Google Developers channel
. If you’re interested in doing this type of automatic curation in your own channels, you can take a look at the
open source Ruby script
that does the work for us.
Cheers,
—
Jeff Posnick
,
YouTube API Team
Keeping Up with YouTube API Updates
Wednesday, February 6, 2013
As the
YouTube API
s continue to evolve, release notes are a good place to keep track of improvements.
However, with a busy life, you may not remember checking regularly for updates.
Now, for the first time, you can subscri
be to RSS feeds to be notified as soon as new features are available.
The release notes for all of the YouTube APIs
and widgets
have their own corresponding RSS feed.
Feeds are available for:
YouTube Data API (v3
)
YouTube Analytics API
YouTube Android Player API
YouTube IFrame Player API
YouTube JavaScript Player API
YouTube Flash (AS3) Player API
YouTube Upload Widget
YouTube Data API (v2)
Going forward, we will be pushing updates via RSS for all of the
YouTube API
s. Follow our
YouTube for Developers Google+ page
, and subscribe to the RSS feeds to get the latest API updates!
Cheers,
—
Ibrahim Ulukaya
, YouTube API Team
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
Labels
.net
acceleration
access control
accessibility
actionscript
activities
activity
android
announcements
apis
app engine
appengine
apps script
as2
as3
atom
authentication
authorization
authsub
best practices
blackops
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
mashups
media:keywords keywords tags metadata
metadata
mobile
mozilla
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
survey
tdd
theme
tos
tutorials
updates
uploads
v2
v3
video
voting
watch history
watchlater
webvtt
youtube
youtube api
youtube developers live
youtube direct
ytd
Archive
2015
December
Chat it up, streamers! New Live Chat, Fan Funding ...
November
October
May
April
March
January
2014
October
September
August
May
March
2013
December
October
September
August
July
June
May
April
March
February
2012
December
November
September
August
July
June
May
April
March
February
January
2011
December
October
September
August
July
June
May
April
March
February
January
2010
December
November
October
September
July
June
May
April
March
February
January
2009
November
October
September
August
July
June
May
April
March
February
January
2008
December
November
October
September
August
July
June
May
April
March
February
2007
December
November
August
June
May
Feed
YouTube
on
Follow @youtubedev