<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;A0AHRnY6eSp7ImA9WhVUEUs.&quot;"><id>tag:blogger.com,1999:blog-2443724041307041823</id><updated>2012-05-16T05:02:17.811-07:00</updated><category term="mobile" /><category term="flash" /><category term="quota" /><category term="blackops" /><category term="googlegamedev" /><category term="html5" /><category term="news" /><category term="uploads" /><category term="as3" /><category term="friendactivity" /><category term="knight" /><category term="partial response" /><category term="events" /><category term="updates" /><category term="open source" /><category term="webvtt" /><category term="chrome" /><category term="partial update" /><category term="insight" /><category term="channels" /><category term="responses" /><category term="partial" /><category term="iphone" /><category term="accessibility" /><category term="bootcamp" /><category term="push" /><category term="direct" /><category term="player" /><category term="extension" /><category term="video" /><category term=".net" /><category term="chromeless" /><category term="clientlogin" /><category term="actionscript" /><category term="dotnet" /><category term="announcements" /><category term="client library" /><category term="patch" /><category term="voting" /><category term="googleio" /><category term="reports" /><category term="java" /><category term="authentication" /><category term="theme" /><category term="curation" /><category term="best practices" /><category term="policy" /><category term="resumable" /><category term="storyful" /><category term="format" /><category term="samples" /><category term="youtube direct" /><category term="clientlibraries" /><category term="io2011" /><category term="devs" /><category term="access control" /><category term="gears" /><category term="subscription" /><category term="android" /><category term="tutorials" /><category term="captions" /><category term="color" /><category term="pubsubhubbub" /><category term="sup" /><category term="atom" /><category term="fun" /><category term="decommission" /><category term="json" /><category term="feeds" /><category term="sandbox" /><category term="activity" /><category term="shortform" /><category term="ytd" /><category term="deprecation" /><category term="acceleration" /><category term="iframe" /><category term="legacy" /><category term="custom player" /><category term="mashups" /><category term="logo" /><category term="ios" /><category term="v2" /><category term="survey" /><category term="python" /><category term="watch history" /><category term="irc" /><category term="oauth" /><category term="staging" /><category term="playlists" /><category term="code" /><category term="tos" /><category term="app engine" /><category term="embed" /><category term="default" /><category term="comments" /><category term="friends" /><category term="authsub" /><category term="jsonc" /><category term="docs" /><category term="releases" /><category term="php" /><category term="json-c" /><category term="embedding" /><category term="create" /><category term="watchlater" /><category term="appengine" /><category term="as2" /><category term="https" /><category term="previews" /><category term="stage video" /><category term="mozilla" /><category term="office hours" /><category term="metadata" /><category term="discovery" /><title type="text">YouTube API Blog</title><subtitle type="html">Your official source for information on the YouTube API.</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://apiblog.youtube.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://apiblog.youtube.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/2443724041307041823/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>Molly Graham</name><uri>http://www.blogger.com/profile/14622034276288473028</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>138</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/YoutubeApiBlog" /><feedburner:info uri="youtubeapiblog" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:emailServiceId>YoutubeApiBlog</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><entry gd:etag="W/&quot;C0cER3k5eSp7ImA9WhVXGUg.&quot;"><id>tag:blogger.com,1999:blog-2443724041307041823.post-673017349791171886</id><published>2012-04-20T12:43:00.000-07:00</published><updated>2012-04-20T12:43:26.721-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-04-20T12:43:26.721-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="policy" /><category scheme="http://www.blogger.com/atom/ns#" term="tos" /><category scheme="http://www.blogger.com/atom/ns#" term="deprecation" /><title>An Update to our Deprecation Policy</title><content type="html">&lt;span id="internal-source-marker_0.08693854347802699"&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;As you might have seen &lt;/span&gt;&lt;a href="http://googledevelopers.blogspot.com/2012/04/changes-to-deprecation-policies-and-api.html" style="font-weight: bold;"&gt;&lt;span style="color: #1155cc; font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;announced&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt; on our Google Developers blog, the deprecation policies associated with many of Google’s APIs are changing. We want to highlight the specific way this affects YouTube API developers.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;As of today, our YouTube API deprecation policy states:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div dir="ltr" style="font-weight: bold; margin-bottom: 0pt; margin-left: 36pt; margin-top: 0pt;"&gt;
&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;Google will announce if we intend to discontinue or make backwards incompatible changes to this API or Service. We will use commercially reasonable efforts to continue to operate the YouTube API without these changes until the later of: (i) one year after the announcement or (ii) April 20, 2015, unless (as Google determines in its reasonable good faith judgment):&lt;/span&gt;&lt;/div&gt;
&lt;ul style="margin-bottom: 0pt; margin-top: 0pt;"&gt;&lt;ul&gt;
&lt;li style="font-family: Arial; font-size: 15px; list-style-type: disc; vertical-align: baseline;"&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt;required by law or third party relationship (including if there is a change in applicable law or relationship), or&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-family: Arial; font-size: 15px; list-style-type: disc; vertical-align: baseline;"&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt;doing so could create a security risk or substantial economic or material technical burden.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;div dir="ltr" style="font-weight: bold; margin-bottom: 0pt; margin-left: 36pt; margin-top: 0pt;"&gt;
&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;This Deprecation Policy doesn't apply to versions, features, and functionality labeled as "experimental."&lt;/span&gt;&lt;/div&gt;
&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;Please note that while the deprecation policy listed above is current as of the date of this blog post, the definitive version of the policy can always be found in our &lt;/span&gt;&lt;a href="https://developers.google.com/youtube/terms" style="font-weight: bold;"&gt;&lt;span style="color: #1155cc; font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;Terms of Service&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;Cheers,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; font-style: italic; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;—Jeff Posnick, YouTube API Team&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2443724041307041823-673017349791171886?l=apiblog.youtube.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/YoutubeApiBlog/~4/tig9PjnN7Gk" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2443724041307041823/posts/default/673017349791171886?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2443724041307041823/posts/default/673017349791171886?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/YoutubeApiBlog/~3/tig9PjnN7Gk/update-to-our-deprecation-policy.html" title="An Update to our Deprecation Policy" /><author><name>YouTube Staff</name><uri>http://www.blogger.com/profile/01201862738371775953</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><feedburner:origLink>http://apiblog.youtube.com/2012/04/update-to-our-deprecation-policy.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0AERn47eSp7ImA9WhVXFko.&quot;"><id>tag:blogger.com,1999:blog-2443724041307041823.post-7838804922738989313</id><published>2012-04-17T09:21:00.002-07:00</published><updated>2012-04-17T09:21:47.001-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-04-17T09:21:47.001-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="as3" /><category scheme="http://www.blogger.com/atom/ns#" term="as2" /><category scheme="http://www.blogger.com/atom/ns#" term="embed" /><title>Upgrading Old Embed Codes</title><content type="html">&lt;b id="internal-source-marker_0.9375312288757414"&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;We’d like to let the community know about an upcoming change that will affect some developers using Flash-only players in their webpages or applications. Previously, a URL like &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;http://www.youtube.com/v/VIDEO_ID&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt; would default to the ActionScript 2 version of the Flash player, and it was necessary to explicitly add in the &lt;/span&gt;&lt;a href="https://developers.google.com/youtube/player_parameters#Selecting_Content_to_Play"&gt;&lt;span style="color: #1155cc; font-family: 'Courier New'; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;version=3&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt; URL parameter to request the newer, ActionScript 3-based player. Starting on Wednesday, May 2, we will be changing the default behavior so that the ActionScript 3 player will be loaded in those scenarios.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;This change to the default version affects both the Embedded and Chromeless Flash players. Developers who are using the newer &lt;/span&gt;&lt;a href="http://apiblog.youtube.com/2010/07/new-way-to-embed-youtube-videos.html"&gt;&lt;span style="color: #1155cc; font-family: 'Courier New'; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;&amp;lt;iframe&amp;gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt; embedded player will not see any change, as that already defaults to the ActionScript 3 player when Flash playback is needed.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;If for some reason you explicitly need the ActionScript 2 version of the player, perhaps because you’re hosting it from within a parent Flash container that was written in ActionScript 2, then you should change your code to explicitly add in the &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;version=2&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt; URL parameter to the player URL. Most developers will not need to do this, though, and they’ll automatically get the benefits of the modern ActionScript 3 playback experience without having to change their code.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;As we’ve &lt;/span&gt;&lt;a href="http://apiblog.youtube.com/2010/10/actionscript-2-chromeless-player-and.html"&gt;&lt;span style="color: #1155cc; font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;previously announced&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;, the ActionScript 2 players are all officially deprecated, and have been for several years now. Our plan is to shut them down completely starting in October of this year, so while it is still possible to explicitly request them with &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;version=2&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt; if they’re needed, our recommendation is that you do not continue to rely on the ActionScript 2 player in your code.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;Cheers,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; font-style: italic; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;—Jeff Posnick, YouTube API Team&lt;/span&gt;&lt;/b&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2443724041307041823-7838804922738989313?l=apiblog.youtube.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/YoutubeApiBlog/~4/YLt6NxQgg60" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2443724041307041823/posts/default/7838804922738989313?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2443724041307041823/posts/default/7838804922738989313?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/YoutubeApiBlog/~3/YLt6NxQgg60/upgrading-old-embed-codes.html" title="Upgrading Old Embed Codes" /><author><name>YouTube Staff</name><uri>http://www.blogger.com/profile/01201862738371775953</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><feedburner:origLink>http://apiblog.youtube.com/2012/04/upgrading-old-embed-codes.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DE8MRHo4fip7ImA9WhVVFks.&quot;"><id>tag:blogger.com,1999:blog-2443724041307041823.post-6940744547843238905</id><published>2012-03-30T13:42:00.000-07:00</published><updated>2012-05-10T09:21:25.436-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-05-10T09:21:25.436-07:00</app:edited><title>New Player Options for Lists of Videos</title><content type="html">&lt;span style="font-size: 15px; white-space: pre-wrap;"&gt;&lt;i&gt;&lt;b style="font-family: Arial;"&gt;Update (May 2010):&lt;/b&gt;&lt;span style="font-family: Arial;"&gt; The &lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;showinfo=1&lt;/span&gt;&lt;span style="font-family: Arial;"&gt; parameter can now be included in the player's URL to indicate that the list of video thumbnails should be initially visible. The example below has been updated to illustrate this usage.&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span id="internal-source-marker_0.23785904445685446"&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;Most developers know that the YouTube embedded player can display a single video, but did you know that it can be used to display a list of videos as well? There have been a number of recent enhancements around list playback functionality, and if you’re not already taking advantage of those new features, we wanted to let you know what you’re missing out on.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;The first change of note is the syntax for embedding the player in an HTML document. As for &lt;/span&gt;&lt;a href="http://apiblog.youtube.com/2010/07/new-way-to-embed-youtube-videos.html" style="font-weight: bold;"&gt;&lt;span style="color: #1155cc; font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;single-video playback&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;, you can use the &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;&amp;lt;iframe&amp;gt;&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt; embed code to load a list of videos, and the IFrame embed supports HTML5 &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;&amp;lt;video&amp;gt;&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt; playback in environments where Flash is not available.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;Another exciting change relates to the lists of videos that you can load. The player is no longer limited to just displaying videos from an actual YouTube playlist. You can also load a user's uploaded videos, a user's favorite videos, or videos matching a specific search term. In the embed URL, the &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;listType&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt; and &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;list&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt; parameters control the list of videos that is loaded. The &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;listType&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt; value can be either &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;playlist&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt; (the default), &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;user_uploads&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;, or &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;search&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;. Depending on the &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;listType&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt; value, the &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;list&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt; parameter value should be set to the desired playlist id, YouTube user ID, or search term. For example, the following embed code displays the most recent videos uploaded in the “GoogleDevelopers” YouTube channel:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;&amp;lt;iframe width="560" height="315" src="http://www.youtube.com/embed/?&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; font-weight: bold; vertical-align: baseline; white-space: pre-wrap;"&gt;listType=user_uploads&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;&amp;amp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; font-weight: bold; vertical-align: baseline; white-space: pre-wrap;"&gt;list=GoogleDevelopers&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;&amp;amp;showinfo=1&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;" frameborder="0" allowfullscreen&amp;gt;&amp;lt;/iframe&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;The corresponding embedded player is shown below:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;iframe allowfullscreen="" frameborder="0" height="315" src="http://www.youtube.com/embed/?listType=user_uploads&amp;amp;list=GoogleDevelopers&amp;amp;showinfo=1" width="560"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;Finally, for developers who want more control over their player than what a simple embed code offers, a full YouTube JavaScript API is available for use. There are methods for &lt;/span&gt;&lt;a href="https://developers.google.com/youtube/js_api_reference#Queueing_Functions" style="font-weight: bold;"&gt;&lt;span style="color: #1155cc; font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;loading lists&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;, moving to the &lt;/span&gt;&lt;a href="https://developers.google.com/youtube/js_api_reference#Playback_controls" style="font-weight: bold;"&gt;&lt;span style="color: #1155cc; font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;next/previous video in a list&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;, and controlling whether playback is &lt;/span&gt;&lt;a href="https://developers.google.com/youtube/js_api_reference#Playback_controls" style="font-weight: bold;"&gt;&lt;span style="color: #1155cc; font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;shuffled or looped&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;. To give you an idea of how you can use this new JavaScript Player API functionality, we’ve put together &lt;/span&gt;&lt;a href="https://gdata-samples.googlecode.com/svn/trunk/ytplayer/playlist/index.html" style="font-weight: bold;"&gt;&lt;span style="color: #1155cc; font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;a sample page&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt; that you can experiment with and use as inspiration when developing your own code.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;Cheers,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; font-style: italic; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;—Jeff Posnick, YouTube API Team&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2443724041307041823-6940744547843238905?l=apiblog.youtube.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/YoutubeApiBlog/~4/hz7OYN9O3sw" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2443724041307041823/posts/default/6940744547843238905?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2443724041307041823/posts/default/6940744547843238905?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/YoutubeApiBlog/~3/hz7OYN9O3sw/new-player-options-for-lists-of-videos.html" title="New Player Options for Lists of Videos" /><author><name>YouTube Staff</name><uri>http://www.blogger.com/profile/01201862738371775953</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><feedburner:origLink>http://apiblog.youtube.com/2012/03/new-player-options-for-lists-of-videos.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUAHSHg8eSp7ImA9WhVQEE4.&quot;"><id>tag:blogger.com,1999:blog-2443724041307041823.post-8978047010204014280</id><published>2012-03-29T09:15:00.000-07:00</published><updated>2012-03-29T09:15:39.671-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-03-29T09:15:39.671-07:00</app:edited><title>Minimum embeds: 200px x 200px</title><content type="html">&lt;div&gt;
If you're a careful reader of the YouTube API &lt;a href="https://developers.google.com/youtube/terms"&gt;Terms of Service&lt;/a&gt; as well as the &lt;a href="https://developers.google.com/youtube/getting_started#player_apis"&gt;YouTube Player documentation&lt;/a&gt;, you may have noticed that while embedded players smaller than the minimum size might not support all player features, we haven’t defined what that size is.&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
As a part of our spring cleaning, we've tidied up our documentation to specify a &lt;a href="https://developers.google.com/youtube/js_api_reference#Requirements"&gt;minimum player size&lt;/a&gt;, which is &lt;b&gt;200px by 200px.&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
This change will take effect beginning late April 2012, so please check your application to avoid surprises. If you have any questions or comments about this, or any other YouTube API feature, please let us know on the &lt;a href="http://code.google.com/apis/youtube/forum/"&gt;API forum&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
Cheers,&lt;/div&gt;
&lt;div&gt;
&lt;i&gt;-Jarek Wilkiewicz, YouTube API Team&lt;/i&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2443724041307041823-8978047010204014280?l=apiblog.youtube.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/YoutubeApiBlog/~4/ES4X7J0IRHs" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2443724041307041823/posts/default/8978047010204014280?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2443724041307041823/posts/default/8978047010204014280?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/YoutubeApiBlog/~3/ES4X7J0IRHs/minimum-embeds-200px-x-200px.html" title="Minimum embeds: 200px x 200px" /><author><name>Jarek Wilkiewicz</name><uri>http://www.blogger.com/profile/01311495604558955987</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://1.bp.blogspot.com/_ethn5tD__dY/TAV-hCJd8NI/AAAAAAAAABQ/lmiVxe8TIZk/S220/jarek.jpg" /></author><feedburner:origLink>http://apiblog.youtube.com/2012/03/minimum-embeds-200px-x-200px.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUMFRnsyfSp7ImA9WhVRFUw.&quot;"><id>tag:blogger.com,1999:blog-2443724041307041823.post-2254208528281995220</id><published>2012-03-23T07:36:00.000-07:00</published><updated>2012-03-23T07:36:57.595-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-03-23T07:36:57.595-07:00</app:edited><title>Keeping Things Fresh</title><content type="html">&lt;span id="internal-source-marker_0.47796220635063946"&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;Pop quiz: what’s the difference between the following feed URLs?&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;ol style="font-weight: bold; margin-bottom: 0pt; margin-top: 0pt;"&gt;
&lt;li style="font-family: Arial; font-size: 15px; font-weight: normal; list-style-type: decimal; vertical-align: baseline;"&gt;&lt;a href="https://gdata.youtube.com/feeds/api/users/googledevelopers/uploads?v=2"&gt;&lt;span style="color: #1155cc; vertical-align: baseline; white-space: pre-wrap;"&gt;https://gdata.youtube.com/feeds/api/users/googledevelopers/uploads?v=2&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-family: Arial; font-size: 15px; font-weight: normal; list-style-type: decimal; vertical-align: baseline;"&gt;&lt;a href="https://gdata.youtube.com/feeds/api/users/googledevelopers/uploads?v=2&amp;amp;orderby=published"&gt;&lt;span style="color: #1155cc; vertical-align: baseline; white-space: pre-wrap;"&gt;https://gdata.youtube.com/feeds/api/users/googledevelopers/uploads?v=2&amp;amp;orderby=published&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-family: Arial; font-size: 15px; font-weight: normal; list-style-type: decimal; vertical-align: baseline;"&gt;&lt;a href="https://gdata.youtube.com/feeds/api/videos?v=2&amp;amp;author=googledevelopers&amp;amp;orderby=published"&gt;&lt;span style="color: #1155cc; vertical-align: baseline; white-space: pre-wrap;"&gt;https://gdata.youtube.com/feeds/api/videos?v=2&amp;amp;author=googledevelopers&amp;amp;orderby=published&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;All three will return a list of videos uploaded in the &lt;/span&gt;&lt;a href="http://www.youtube.com/googledevelopers" style="font-weight: bold;"&gt;&lt;span style="color: #1155cc; font-family: 'Courier New'; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;GoogleDevelopers&lt;/span&gt;&lt;span style="color: #1155cc; font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt; YouTube channel&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;, with the most recent uploads listed first. However, only the first URL will return the freshest results available — the second or third feeds could both be missing videos that were uploaded within the past few hours. In addition, even if the videos are listed in the second and third feeds, the metadata returned for those videos might not reflect any recent updates.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;The reason for this, as &lt;/span&gt;&lt;a href="https://developers.google.com/youtube/2.0/reference#Latency_Information" style="font-weight: bold;"&gt;&lt;span style="color: #1155cc; font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;explained in our documentation&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;, is that some requests go against our search index, which has cached data, while other requests retrieve data directly from our backend databases, which always contain the most up-to-date data. To determine whether a request will query the search index or the backend database, you can use the following rules of thumb:&lt;/span&gt;&lt;br /&gt;
&lt;span&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;ul style="font-weight: bold; margin-bottom: 0pt; margin-top: 0pt;"&gt;
&lt;li style="font-family: Arial; font-size: 15px; font-weight: normal; list-style-type: disc; vertical-align: baseline;"&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt;If your request only includes the &lt;/span&gt;&lt;a href="https://developers.google.com/youtube/2.0/reference#max-resultssp"&gt;&lt;span style="color: #1155cc; font-family: 'Courier New'; vertical-align: baseline; white-space: pre-wrap;"&gt;max-results&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt; and/or &lt;/span&gt;&lt;a href="https://developers.google.com/youtube/2.0/reference#start-indexsp"&gt;&lt;span style="color: #1155cc; font-family: 'Courier New'; vertical-align: baseline; white-space: pre-wrap;"&gt;start-index&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt; query parameters, then it should go against the backend database and the results will be fresh. A few other parameters that change the way the feed is formatted, like &lt;/span&gt;&lt;a href="https://developers.google.com/youtube/2.0/reference#prettyprintsp"&gt;&lt;span style="color: #1155cc; font-family: 'Courier New'; vertical-align: baseline; white-space: pre-wrap;"&gt;prettyprint&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt;, &lt;/span&gt;&lt;a href="https://developers.google.com/youtube/2.0/reference#callbacksp"&gt;&lt;span style="color: #1155cc; font-family: 'Courier New'; vertical-align: baseline; white-space: pre-wrap;"&gt;callback&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt;, or &lt;/span&gt;&lt;a href="https://developers.google.com/youtube/2.0/reference#altsp"&gt;&lt;span style="color: #1155cc; font-family: 'Courier New'; vertical-align: baseline; white-space: pre-wrap;"&gt;alt&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt;, can also be used without triggering the search index. Although it does filter results out of the feed, the &lt;/span&gt;&lt;a href="https://developers.google.com/youtube/2.0/reference#fieldssp"&gt;&lt;span style="color: #1155cc; font-family: 'Courier New'; vertical-align: baseline; white-space: pre-wrap;"&gt;fields&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt; parameter can also be used while still going against the backend database, because the filtering is performed server-side after the data has been retrieved.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;span style="font-family: Arial;"&gt;&lt;span style="font-size: 15px; white-space: pre-wrap;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;ul style="font-weight: bold; margin-bottom: 0pt; margin-top: 0pt;"&gt;
&lt;li style="font-family: Arial; font-size: 15px; font-weight: normal; list-style-type: disc; vertical-align: baseline;"&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt;If your request contains other parameters, there’s a good chance it will end up against the search index. Some common parameters that will always trigger a search are &lt;/span&gt;&lt;a href="https://developers.google.com/youtube/2.0/reference#qsp"&gt;&lt;span style="color: #1155cc; font-family: 'Courier New'; vertical-align: baseline; white-space: pre-wrap;"&gt;q&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt; and &lt;/span&gt;&lt;a href="https://developers.google.com/youtube/2.0/reference#orderbysp"&gt;&lt;span style="color: #1155cc; font-family: 'Courier New'; vertical-align: baseline; white-space: pre-wrap;"&gt;orderby&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt;.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;Going against the search index isn’t inherently a bad thing. Using the search index is an incredibly efficient way of returning all the videos that match an arbitrary keyword, or ordering a feed of videos so that they’re sorted by view count. The important thing to realize is that the search index doesn’t need to be used for tasks that the backend database can handle, and you’ll get fresher results from the backend database.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;Until now we’ve been focusing on retrieving a feed of videos uploaded in a specific account, but these same principles apply to looking up a single video with a given ID as well. Using the information above, can you determine which of these URLs will request a video entry from the backend database, and which will go against the search index?&lt;/span&gt;&lt;br /&gt;
&lt;span&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;ol style="font-weight: bold; margin-bottom: 0pt; margin-top: 0pt;"&gt;
&lt;li style="font-family: Arial; font-size: 15px; font-weight: normal; list-style-type: decimal; vertical-align: baseline;"&gt;&lt;a href="https://gdata.youtube.com/feeds/api/videos/sOEAD-gfJ_M?v=2"&gt;&lt;span style="color: #1155cc; vertical-align: baseline; white-space: pre-wrap;"&gt;https://gdata.youtube.com/feeds/api/videos/sOEAD-gfJ_M?v=2&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-family: Arial; font-size: 15px; font-weight: normal; list-style-type: decimal; vertical-align: baseline;"&gt;&lt;a href="http://gdata.youtube.com/feeds/api/videos?q=sOEAD-gfJ_M?v=2"&gt;&lt;span style="color: #1155cc; vertical-align: baseline; white-space: pre-wrap;"&gt;http://gdata.youtube.com/feeds/api/videos?q=sOEAD-gfJ_M?v=2&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;As you’ve probably figured out, the first URL retrieves the entry for video ID &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;sOEAD-gfJ_M&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt; directly from the backend database, while the second URL searches for all entries with metadata containing &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;sOEAD-gfJ_M&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt; and then returns the one matching result. The results look similar, but only the first URL will give you the complete, up-to-date video metadata. As such, we recommend always using that syntax when retrieving the entry for a video whose ID you know.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;Cheers,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; font-style: italic; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;-Jeff Posnick, YouTube API Team&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2443724041307041823-2254208528281995220?l=apiblog.youtube.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/YoutubeApiBlog/~4/yFdmJSbOQ_k" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2443724041307041823/posts/default/2254208528281995220?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2443724041307041823/posts/default/2254208528281995220?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/YoutubeApiBlog/~3/yFdmJSbOQ_k/keeping-things-fresh.html" title="Keeping Things Fresh" /><author><name>YouTube Staff</name><uri>http://www.blogger.com/profile/01201862738371775953</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><feedburner:origLink>http://apiblog.youtube.com/2012/03/keeping-things-fresh.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0EEQnozeyp7ImA9WhVQE0o.&quot;"><id>tag:blogger.com,1999:blog-2443724041307041823.post-6406485459410023823</id><published>2012-03-15T09:25:00.000-07:00</published><updated>2012-04-02T08:13:23.483-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-04-02T08:13:23.483-07:00</app:edited><title>YouTube, Google+, the API, and You</title><content type="html">&lt;b&gt;&lt;i&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;Update (April 2012):&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt; The last paragraph was changed to reflect the distinct &lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;yt:display&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt; and &lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;display&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt; attribute names, depending on whether the parent element is &lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;media:credit&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt; or &lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;yt:username&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;.&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;i&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b id="internal-source-marker_0.3015626308042556"&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;By now, you may have read about the &lt;/span&gt;&lt;a href="http://youtube-global.blogspot.com/2012/03/seeing-familiar-faces-on-youtube.html"&gt;&lt;span style="color: #1155cc; font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;recent launch&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt; of connecting a Google+ profile with a new YouTube channel and questioned whether the change will affect YouTube Data API responses and, consequently, your application. The API does have a couple of changes that affect the way account names are returned, and these changes are designed to be backward compatible with applications that follow the best practices defined in our &lt;/span&gt;&lt;a href="https://developers.google.com/youtube/compatibility_guidelines#Best_Practices"&gt;&lt;span style="color: #1155cc; font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;compatibility guidelines&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;With that in mind, this post explains how to ensure that user names function properly in your application.&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;ul style="font-weight: bold; margin-bottom: 0pt; margin-top: 0pt;"&gt;
&lt;li style="font-family: Arial; font-size: 15px; font-weight: normal; list-style-type: disc; vertical-align: baseline;"&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt;If your application uses authentication and refers to feeds belonging to the currently authenticated user, always use the string &lt;/span&gt;&lt;span style="font-family: 'Courier New'; vertical-align: baseline; white-space: pre-wrap;"&gt;default&lt;/span&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt; as the username in the feed URL. For example, the URL &lt;/span&gt;&lt;a href="https://gdata.youtube.com/feeds/api/users/default?v=2&amp;amp;prettyprint=true"&gt;&lt;span style="color: #1155cc; vertical-align: baseline; white-space: pre-wrap;"&gt;https://gdata.youtube.com/feeds/api/users/default?v=2&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt; retrieves the currently authenticated user's profile no matter what type of account she has, and &lt;/span&gt;&lt;a href="https://uploads.gdata.youtube.com/resumable/feeds/api/users/default/uploads?v=2"&gt;&lt;span style="color: #1155cc; vertical-align: baseline; white-space: pre-wrap;"&gt;https://uploads.gdata.youtube.com/resumable/feeds/api/users/default/uploads?v=2&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt; is always the correct URL to POST to when performing a resumable upload into the current user’s account.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;span style="font-family: Arial;"&gt;&lt;span style="font-size: 15px; white-space: pre-wrap;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;ul style="font-weight: bold; margin-bottom: 0pt; margin-top: 0pt;"&gt;
&lt;li style="font-family: Arial; font-size: 15px; font-weight: normal; list-style-type: disc; vertical-align: baseline;"&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt;Avoid manually generating links to &lt;/span&gt;&lt;a href="https://developers.google.com/youtube/2.0/developers_guide_protocol_identifying_related_feeds"&gt;&lt;span style="color: #1155cc; vertical-align: baseline; white-space: pre-wrap;"&gt;related feeds&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt; — instead, extract URLs for related feeds from &lt;/span&gt;&lt;a href="https://developers.google.com/youtube/2.0/reference#youtube_data_api_tag_link"&gt;&lt;span style="color: #1155cc; font-family: 'Courier New'; vertical-align: baseline; white-space: pre-wrap;"&gt;&amp;lt;link&amp;gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt; or &lt;/span&gt;&lt;a href="https://developers.google.com/youtube/2.0/reference#youtube_data_api_tag_gd:feedLink"&gt;&lt;span style="color: #1155cc; font-family: 'Courier New'; vertical-align: baseline; white-space: pre-wrap;"&gt;&amp;lt;gd:feedLink&amp;gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt; elements. For instance, the &lt;/span&gt;&lt;a href="https://gdata.youtube.com/feeds/api/users/googledevelopers?v=2&amp;amp;prettyprint=true"&gt;&lt;span style="color: #1155cc; vertical-align: baseline; white-space: pre-wrap;"&gt;profile entry for a given account&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt; contains a &lt;/span&gt;&lt;span style="font-family: 'Courier New'; vertical-align: baseline; white-space: pre-wrap;"&gt;&amp;lt;gd:feedLink&amp;gt;&lt;/span&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt; element with a &lt;/span&gt;&lt;span style="font-family: 'Courier New'; vertical-align: baseline; white-space: pre-wrap;"&gt;rel&lt;/span&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt; attribute of &lt;/span&gt;&lt;span style="font-family: 'Courier New'; vertical-align: baseline; white-space: pre-wrap;"&gt;http://gdata.youtube.com/schemas/2007#user.playlists&lt;/span&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt;, and that element's &lt;/span&gt;&lt;span style="font-family: 'Courier New'; vertical-align: baseline; white-space: pre-wrap;"&gt;href&lt;/span&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt; attribute contains the URL for that account’s playlists.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;span style="font-family: Arial;"&gt;&lt;span style="font-size: 15px; white-space: pre-wrap;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;ul style="font-weight: bold; margin-bottom: 0pt; margin-top: 0pt;"&gt;
&lt;li style="font-family: Arial; font-size: 15px; font-weight: normal; list-style-type: disc; vertical-align: baseline;"&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt;If you do need to manually generate a feed URL that is not for the &lt;/span&gt;&lt;span style="font-family: 'Courier New'; vertical-align: baseline; white-space: pre-wrap;"&gt;default&lt;/span&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt; user, use the value in the &lt;/span&gt;&lt;a href="https://developers.google.com/youtube/2.0/reference#youtube_data_api_tag_yt:username"&gt;&lt;span style="color: #1155cc; font-family: 'Courier New'; vertical-align: baseline; white-space: pre-wrap;"&gt;&amp;lt;yt:username&amp;gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt; element as the username in the feed URL. Other fields, like &lt;/span&gt;&lt;a href="https://developers.google.com/youtube/2.0/reference#youtube_data_api_tag_author"&gt;&lt;span style="color: #1155cc; font-family: 'Courier New'; vertical-align: baseline; white-space: pre-wrap;"&gt;&amp;lt;author&amp;gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt;, might contain a display name or a different identifier that is not appropriate for use in a feed URL.&lt;br class="kix-line-break" /&gt;&lt;br class="kix-line-break" /&gt;Note that for accounts that have connected a Google+ profile to a new YouTube channel and for &lt;/span&gt;&lt;a href="http://apiblog.youtube.com/2011/10/introducing-google-account-support-and.html"&gt;&lt;span style="color: #1155cc; vertical-align: baseline; white-space: pre-wrap;"&gt;Google Accounts without a linked YouTube account&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt;, the &lt;/span&gt;&lt;span style="font-family: 'Courier New'; vertical-align: baseline; white-space: pre-wrap;"&gt;&amp;lt;yt:username&amp;gt;&lt;/span&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt; field will not be a traditional YouTube username. Instead, it will be a globally unique identifier that isn't intended for display in a user interface. A new field, &lt;/span&gt;&lt;span style="font-family: 'Courier New'; vertical-align: baseline; white-space: pre-wrap;"&gt;&amp;lt;yt:userId&amp;gt;&lt;/span&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt;, will always contain this globally unique identifier regardless of the account type, and if you are writing new code to specifically deal with that identifier, we recommend reading it from &lt;/span&gt;&lt;span style="font-family: 'Courier New'; vertical-align: baseline; white-space: pre-wrap;"&gt;&amp;lt;yt:userId&amp;gt;&lt;/span&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt;.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;span style="font-family: Arial;"&gt;&lt;span style="font-size: 15px; white-space: pre-wrap;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;ul style="font-weight: bold; margin-bottom: 0pt; margin-top: 0pt;"&gt;
&lt;li style="font-size: 15px; font-weight: normal; list-style: disc; vertical-align: baseline;"&gt;&lt;span style="font-family: Arial; vertical-align: baseline; white-space: pre-wrap;"&gt;Any existing code that relies on displaying the &lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace; vertical-align: baseline; white-space: pre-wrap;"&gt;&amp;lt;yt:username&amp;gt;&lt;/span&gt;&lt;span style="font-family: Arial; vertical-align: baseline; white-space: pre-wrap;"&gt; or &lt;/span&gt;&lt;a href="https://developers.google.com/youtube/2.0/reference#youtube_data_api_tag_media:credit" style="font-family: Arial;"&gt;&lt;span style="color: #1155cc; font-family: 'Courier New'; vertical-align: baseline; white-space: pre-wrap;"&gt;&amp;lt;media:credit&amp;gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Arial; vertical-align: baseline; white-space: pre-wrap;"&gt; value to users should instead switch to using a value taken from one of that element's &lt;/span&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;span style="font-family: Arial;"&gt;attributes. On the &lt;/span&gt;&lt;span style="font-family: 'Courier New';"&gt;&amp;lt;yt:username&amp;gt;&lt;/span&gt;&lt;span style="font-family: Arial;"&gt; element, the relevant attribute is called &lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;display&lt;/span&gt;&lt;span style="font-family: Arial;"&gt;. On the &lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;lt;media:credit&amp;gt;&lt;/span&gt;&lt;span style="font-family: Arial;"&gt; element, the corresponding attribute is called &lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;yt:display&lt;/span&gt;&lt;span style="font-family: Arial;"&gt;. The &lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;display&lt;/span&gt;&lt;span style="font-family: Arial;"&gt; or &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace; vertical-align: baseline; white-space: pre-wrap;"&gt;yt:display&lt;/span&gt;&lt;span style="font-family: Arial; vertical-align: baseline; white-space: pre-wrap;"&gt; attribute value will always be a meaningful value suitable for display. For accounts connected to Google+, it will be set to the full public display name. For full YouTube accounts that aren’t connected to Google+, it will be set to the YouTube account name.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;span style="font-family: Arial;"&gt;&lt;span style="font-size: 15px; white-space: pre-wrap;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;Cheers,&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial; font-size: 15px; font-style: italic; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;–Jeff Posnick, YouTube API Team&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2443724041307041823-6406485459410023823?l=apiblog.youtube.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/YoutubeApiBlog/~4/tiRJGmNaJRs" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2443724041307041823/posts/default/6406485459410023823?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2443724041307041823/posts/default/6406485459410023823?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/YoutubeApiBlog/~3/tiRJGmNaJRs/youtube-google-api-and-you.html" title="YouTube, Google+, the API, and You" /><author><name>YouTube Staff</name><uri>http://www.blogger.com/profile/01201862738371775953</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><feedburner:origLink>http://apiblog.youtube.com/2012/03/youtube-google-api-and-you.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A04HSHs8cCp7ImA9WhVTGUU.&quot;"><id>tag:blogger.com,1999:blog-2443724041307041823.post-5247301543194416934</id><published>2012-03-05T15:25:00.000-08:00</published><updated>2012-03-05T15:25:39.578-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-03-05T15:25:39.578-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="mobile" /><category scheme="http://www.blogger.com/atom/ns#" term="youtube direct" /><category scheme="http://www.blogger.com/atom/ns#" term="ios" /><category scheme="http://www.blogger.com/atom/ns#" term="storyful" /><category scheme="http://www.blogger.com/atom/ns#" term="android" /><title>“Super Tuesday” Reporting, Powered by YouTube Direct</title><content type="html">&lt;b id="internal-source-marker_0.12607926363125443"&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;It’s Presidential election season in the United States, and YouTube’s News and Politics team is partnering with &lt;/span&gt;&lt;a href="http://storyful.com/"&gt;&lt;span style="color: #1155cc; font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;Storyful&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt; to highlight &lt;/span&gt;&lt;a href="http://www.google.com/elections/ed/us/ontheground"&gt;&lt;span style="color: #1155cc; font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;timely political videos&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt; from across the country. With that in mind, we’re excited to announce that citizen journalists can now submit videos documenting the election process by using the new &lt;/span&gt;&lt;a href="https://market.android.com/details?id=com.storyful.ytd"&gt;&lt;span style="color: #1155cc; font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;Android&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt; and &lt;/span&gt;&lt;a href="http://itunes.apple.com/us/app/storyfuldirect/id505190824"&gt;&lt;span style="color: #1155cc; font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;iOS&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt; mobile applications powered by &lt;/span&gt;&lt;a href="http://code.google.com/p/youtube-direct/"&gt;&lt;span style="color: #1155cc; font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;YouTube Direct&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt; and released by Storyful. Both applications are based on the open source code examples we’ve released for &lt;/span&gt;&lt;a href="http://code.google.com/p/ytd-android/"&gt;&lt;span style="color: #1155cc; font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;Android&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt; and &lt;/span&gt;&lt;a href="http://code.google.com/p/ytd-iphone/"&gt;&lt;span style="color: #1155cc; font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;iOS&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;, and submit videos to the instance of YouTube Direct that Storyful curates.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;Tomorrow is “Super Tuesday,” when 10 states will hold their primary elections. If you live in one of the Super Tuesday states, we encourage you to install the Storyful Direct mobile application and shoot some footage documenting your political experience—a selection of videos will appear on YouTube and &lt;/span&gt;&lt;a href="http://google.com/elections"&gt;&lt;span style="color: #1155cc; font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;google.com/elections&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt; throughout the day. Even if you don’t live in a state that’s holding a primary tomorrow, the Storyful Direct apps can be used to document your experience during the runup to the Presidential election in November.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;And if you’re a developer who isn’t yet familiar with the YouTube Direct platform, you can find all the information you need to get started with the web and mobile platforms at the &lt;/span&gt;&lt;a href="http://code.google.com/p/youtube-direct/"&gt;&lt;span style="color: #1155cc; font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;Google Code project page&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;Cheers,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; font-style: italic; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;—Jeffrey Posnick, YouTube API Team&lt;/span&gt;&lt;/b&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2443724041307041823-5247301543194416934?l=apiblog.youtube.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/YoutubeApiBlog/~4/iahq2cBhEh8" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2443724041307041823/posts/default/5247301543194416934?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2443724041307041823/posts/default/5247301543194416934?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/YoutubeApiBlog/~3/iahq2cBhEh8/super-tuesday-reporting-powered-by.html" title="“Super Tuesday” Reporting, Powered by YouTube Direct" /><author><name>Jeffrey Posnick</name><uri>http://www.blogger.com/profile/14165634394288897683</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><feedburner:origLink>http://apiblog.youtube.com/2012/03/super-tuesday-reporting-powered-by.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkIBSXk6fCp7ImA9WhVTFk8.&quot;"><id>tag:blogger.com,1999:blog-2443724041307041823.post-4555341356468653395</id><published>2012-03-01T10:55:00.002-08:00</published><updated>2012-03-01T11:02:38.714-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-03-01T11:02:38.714-08:00</app:edited><title>See you at GDC, PyCon and SXSW</title><content type="html">&lt;span id="internal-source-marker_0.40067263739183545" style="text-align: -webkit-auto; "&gt;&lt;span style="font-size: 15px; font-family: Arial; font-weight: normal; vertical-align: baseline; white-space: pre-wrap; "&gt;YouTube Developer Advocates and Engineers will be presenting next week at GDC, PyCon and SXSW. If you’re coming to any of those conferences, we’d love to meet you. Here is what’s in store at each conference:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 15px; font-family: Arial; font-weight: normal; vertical-align: baseline; white-space: pre-wrap; "&gt;&lt;/span&gt;&lt;br /&gt;&lt;a href="http://www.gdconf.com/" style="font-family: 'Times New Roman'; font-size: medium; font-weight: bold; "&gt;&lt;span style="font-size: 15px; font-family: Arial; color: rgb(17, 85, 204); vertical-align: baseline; white-space: pre-wrap; "&gt;Games Developers Conference, San Francisco, March 5-9&lt;/span&gt;&lt;/a&gt;&lt;b style="font-family: 'Times New Roman'; font-size: medium; font-weight: normal; "&gt;&lt;span style="font-size: 15px; font-family: Arial; vertical-align: baseline; white-space: pre-wrap; "&gt;&lt;/span&gt;&lt;/b&gt;&lt;ul style="font-family: 'Times New Roman'; font-size: medium; font-weight: bold; "&gt;&lt;li style="list-style-type: disc; font-size: 15px; font-family: Arial; font-weight: normal; vertical-align: baseline; "&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap; "&gt;Session: &lt;/span&gt;&lt;a href="http://www.google.com/events/gdc/sessions.html#youtube-mobile-gamers"&gt;&lt;span style="color: rgb(17, 85, 204); vertical-align: baseline; white-space: pre-wrap; "&gt;YouTube API + Cloud Rendering = Happy Mobile Gamers&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap; "&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="list-style-type: disc; font-size: 15px; font-family: Arial; font-weight: normal; vertical-align: baseline; "&gt;&lt;a href="http://www.google.com/events/gdc/"&gt;&lt;span style="color: rgb(17, 85, 204); vertical-align: baseline; white-space: pre-wrap; "&gt;Demo booth #1901 on the show floor&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap; "&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-size: 15px; font-family: Arial; font-weight: normal; vertical-align: baseline; white-space: pre-wrap; "&gt;&lt;/span&gt;&lt;br /&gt;&lt;a href="https://us.pycon.org/2012/" style="font-family: 'Times New Roman'; font-size: medium; font-weight: bold; "&gt;&lt;span style="font-size: 15px; font-family: Arial; color: rgb(17, 85, 204); vertical-align: baseline; white-space: pre-wrap; "&gt;PYCON 2012, Santa Clara, March 7-15&lt;/span&gt;&lt;/a&gt;&lt;b style="font-family: 'Times New Roman'; font-size: medium; font-weight: normal; "&gt;&lt;span style="font-size: 15px; font-family: Arial; vertical-align: baseline; white-space: pre-wrap; "&gt;&lt;/span&gt;&lt;/b&gt;&lt;ul style="font-family: 'Times New Roman'; font-size: medium; font-weight: bold; "&gt;&lt;li style="list-style-type: disc; font-size: 15px; font-family: Arial; font-weight: normal; vertical-align: baseline; "&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap; "&gt;Session: &lt;/span&gt;&lt;a href="https://us.pycon.org/2012/schedule/presentation/128/"&gt;&lt;span style="color: rgb(17, 85, 204); vertical-align: baseline; white-space: pre-wrap; "&gt;Scalability at YouTube&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap; "&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-size: 15px; font-family: Arial; font-weight: normal; vertical-align: baseline; white-space: pre-wrap; "&gt;&lt;/span&gt;&lt;br /&gt;&lt;a href="http://sxsw.com/interactive" style="font-family: 'Times New Roman'; font-size: medium; font-weight: bold; "&gt;&lt;span style="font-size: 15px; font-family: Arial; color: rgb(17, 85, 204); vertical-align: baseline; white-space: pre-wrap; "&gt;SXSW Interactive, Austin, March 9-13&lt;/span&gt;&lt;/a&gt;&lt;b style="font-family: 'Times New Roman'; font-size: medium; font-weight: normal; "&gt;&lt;span style="font-size: 15px; font-family: Arial; vertical-align: baseline; white-space: pre-wrap; "&gt;&lt;/span&gt;&lt;/b&gt;&lt;ul style="font-family: 'Times New Roman'; font-size: medium; font-weight: bold; "&gt;&lt;li style="list-style-type: disc; font-size: 15px; font-family: Arial; font-weight: normal; vertical-align: baseline; "&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap; "&gt;Lightning Talk: &lt;/span&gt;&lt;a href="http://www.google.com/events/sxsw/interactive/developers/"&gt;&lt;span style="color: rgb(17, 85, 204); vertical-align: baseline; white-space: pre-wrap; "&gt;The VJ in Your Pocket: Mobile YouTube API Apps for Content Creators, Curators and Consumers&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap; "&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="list-style-type: disc; font-size: 15px; font-family: Arial; font-weight: normal; vertical-align: baseline; "&gt;&lt;a href="https://docs.google.com/spreadsheet/viewform?formkey=dGZfdThkUlI2aVQyVFQwTDgwZUN1WXc6MA"&gt;&lt;span style="color: rgb(17, 85, 204); vertical-align: baseline; white-space: pre-wrap; "&gt;YouTube Mobile/Google TV code lab for Android developers&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap; "&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="list-style-type: disc; font-size: 15px; font-family: Arial; font-weight: normal; vertical-align: baseline; "&gt;&lt;span style="color: rgb(17, 85, 204); vertical-align: baseline; white-space: pre-wrap; "&gt;&lt;a href="http://www.wejoinin.com/sheets/tmems"&gt;Developer Hangouts&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;span &gt;&lt;span style="font-size: 15px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span &gt;&lt;span style="font-size: 15px;"&gt;Cheers,&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span &gt;&lt;span style="font-size: 15px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span &gt;&lt;span style="font-size: 15px;"&gt;Amanda Surya, YouTube Developer Relations Team&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span &gt;&lt;span style="font-size: 15px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2443724041307041823-4555341356468653395?l=apiblog.youtube.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/YoutubeApiBlog/~4/tfr5G6j5b2s" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2443724041307041823/posts/default/4555341356468653395?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2443724041307041823/posts/default/4555341356468653395?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/YoutubeApiBlog/~3/tfr5G6j5b2s/see-you-at-gdc-pycon-and-sxsw.html" title="See you at GDC, PyCon and SXSW" /><author><name>Amanda Surya</name><uri>http://www.blogger.com/profile/17519710863001070323</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><feedburner:origLink>http://apiblog.youtube.com/2012/03/see-you-at-gdc-pycon-and-sxsw.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0QCQ3wzeip7ImA9WhRaE0w.&quot;"><id>tag:blogger.com,1999:blog-2443724041307041823.post-3797198900202632251</id><published>2012-02-15T07:22:00.002-08:00</published><updated>2012-02-15T07:22:42.282-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-02-15T07:22:42.282-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="best practices" /><category scheme="http://www.blogger.com/atom/ns#" term="youtube direct" /><category scheme="http://www.blogger.com/atom/ns#" term="uploads" /><category scheme="http://www.blogger.com/atom/ns#" term="authentication" /><title>Video Uploads from Your Site’s Community</title><content type="html">&lt;b id="internal-source-marker_0.7219735255930573"&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;The following scenario comes up all the time when we talk to developers: a website with an active readership is interested in soliciting videos from its community. While YouTube is a great place to host these videos, it takes some forethought to design a system that makes uploading as straightforward as possible while still adhering to YouTube API Terms of Service and best practices.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;One crucial consideration is which account the videos will be uploaded to on YouTube. It’s tempting to design a system in which all videos are uploaded to a single “master” YouTube account, but this is always the wrong approach. While using a master account means that each uploader doesn’t need to register for their own YouTube account, a high rate of uploads into a single YouTube account is a good way to run afoul of the YouTube API’s &lt;/span&gt;&lt;a href="http://apiblog.youtube.com/2010/02/best-practices-for-avoiding-quota.html"&gt;&lt;span style="color: #1155cc; font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;quota system&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;. Additionally, each uploader to YouTube agrees to YouTube’s Terms of Service, which says that they have the right to upload that content, and that the content does not violate our Community Guidelines. By taking responsibility for other users’ content, you are essentially putting your own account and YouTube standing at risk.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;The approach we recommend instead is using &lt;/span&gt;&lt;a href="http://code.google.com/apis/youtube/2.0/developers_guide_protocol_authsub.html"&gt;&lt;span style="color: #1155cc; font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;AuthSub&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt; or &lt;/span&gt;&lt;a href="http://code.google.com/apis/youtube/2.0/developers_guide_protocol_oauth2.html"&gt;&lt;span style="color: #1155cc; font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;OAuth 2&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt; (please don’t use &lt;/span&gt;&lt;a href="http://apiblog.youtube.com/2011/03/clientlogin-fail.html"&gt;&lt;span style="color: #1155cc; font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;ClientLogin&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;!) to authenticate users and allow users to access their YouTube accounts. Then, you can use the &lt;/span&gt;&lt;a href="http://code.google.com/apis/youtube/2.0/developers_guide_protocol_browser_based_uploading.html"&gt;&lt;span style="color: #1155cc; font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;browser-based upload flow&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt; to transmit the video from users’ local drives to YouTube’s servers. Uploads spread across end users’ accounts are less likely to trigger quota errors. And since videos end up in individual accounts, each account owner takes responsibility for ensuring that their uploads comply with YouTube’s community guidelines. Videos uploaded via your site will show up in a user’s channel just like any of their other videos.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;After a video’s been uploaded, you will almost certainly want to display it on your own site or on a YouTube channel page, which raises the question of how to keep track of videos that have been uploaded through your site but which end up in users’ own accounts. One option for doing this programmatically is via the use of &lt;/span&gt;&lt;a href="http://code.google.com/apis/youtube/2.0/developers_guide_protocol_uploading_videos.html#Assigning_Developer_Tags"&gt;&lt;span style="color: #1155cc; font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;developer tags&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;; another approach is to make use of a local database and keep track of the YouTube video id returned by the API following each upload. Once you’ve identified uploaded videos that you’d like to feature, you could, for instance, &lt;/span&gt;&lt;a href="http://code.google.com/apis/youtube/2.0/developers_guide_protocol_playlists.html"&gt;&lt;span style="color: #1155cc; font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;add them to a playlist&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt; and &lt;/span&gt;&lt;a href="http://support.google.com/youtube/bin/answer.py?hl=en&amp;amp;answer=171780"&gt;&lt;span style="color: #1155cc; font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;embed that playlist&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt; on your site, or feature the playlist on the channel page of your own YouTube account.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;Designing a system that adheres to these best practices takes a little work, but avoiding the common pitfalls will pay off in the long run. For existing code that you could use as-is or adapt on your own site, take a look at the &lt;/span&gt;&lt;a href="http://code.google.com/p/youtube-direct/"&gt;&lt;span style="color: #1155cc; font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;YouTube Direct project&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;. It consists of code that uses AuthSub, browser-based uploads, developer tags, and playlists to allow the users of any website to contribute video uploads.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;Cheers,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; font-style: italic; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;—Jeff Posnick, YouTube API Team&lt;/span&gt;&lt;/b&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2443724041307041823-3797198900202632251?l=apiblog.youtube.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/YoutubeApiBlog/~4/_AOpliGXHXk" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2443724041307041823/posts/default/3797198900202632251?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2443724041307041823/posts/default/3797198900202632251?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/YoutubeApiBlog/~3/_AOpliGXHXk/video-uploads-from-your-sites-community.html" title="Video Uploads from Your Site’s Community" /><author><name>YouTube Staff</name><uri>http://www.blogger.com/profile/01201862738371775953</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><feedburner:origLink>http://apiblog.youtube.com/2012/02/video-uploads-from-your-sites-community.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEQGSXczeip7ImA9WhVXEEk.&quot;"><id>tag:blogger.com,1999:blog-2443724041307041823.post-3168212921653900498</id><published>2012-01-24T13:50:00.000-08:00</published><updated>2012-04-10T01:25:28.982-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-04-10T01:25:28.982-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="watch history" /><category scheme="http://www.blogger.com/atom/ns#" term="feeds" /><title>Watch History Comes to the API</title><content type="html">&lt;b id="internal-source-marker_0.25578132132068276"&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;There’s a new entry in the &lt;/span&gt;&lt;a href="http://code.google.com/apis/youtube/2.0/developers_guide_protocol_video_feeds.html"&gt;&lt;span style="color: #000099; font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;growing list&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt; of video feeds supported by the YouTube Data API: the &lt;/span&gt;&lt;a href="https://developers.google.com/youtube/2.0/developers_guide_protocol_watch_history"&gt;&lt;span style="color: #000099; font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;watch history feed&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;. This feed allows authenticated API users to retrieve their own YouTube viewing histories—retrieving the watch history of any other user is not allowed. The information in this new feed corresponds to the &lt;/span&gt;&lt;a href="http://support.google.com/youtube/bin/answer.py?hl=en&amp;amp;answer=95725"&gt;&lt;span style="color: #000099; font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;viewing history exposed on the YouTube website&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;The feed could enable interesting new functionality in your applications. If your site displays a list of recommended videos for an authenticated user to watch, you might consider excluding those videos that have been already viewed, for instance. Or you might want to include a video that you discover the user has been watching over and over again. Knowing the sorts of videos that a user watches makes it easier for your application to &lt;/span&gt;&lt;a href="http://code.google.com/apis/youtube/2.0/developers_guide_protocol_video_feeds.html#Related_Feeds"&gt;&lt;span style="color: #000099; font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;algorithmically suggest&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt; other videos that might interest your users.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;As with any functionality related to the YouTube API, the best place to ask questions about the new watch history feed is the YouTube API &lt;/span&gt;&lt;a href="http://code.google.com/apis/youtube/forum/"&gt;&lt;span style="color: #000099; font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;developer forum&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;Cheers,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; font-style: italic; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;—Jeff Posnick, YouTube API Team&lt;/span&gt;&lt;/b&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2443724041307041823-3168212921653900498?l=apiblog.youtube.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/YoutubeApiBlog/~4/8ihH6RJXW0k" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2443724041307041823/posts/default/3168212921653900498?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2443724041307041823/posts/default/3168212921653900498?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/YoutubeApiBlog/~3/8ihH6RJXW0k/watch-history-comes-to-api.html" title="Watch History Comes to the API" /><author><name>YouTube Staff</name><uri>http://www.blogger.com/profile/01201862738371775953</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><feedburner:origLink>http://apiblog.youtube.com/2012/01/watch-history-comes-to-api.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkQCRX8-eCp7ImA9WhRWEk0.&quot;"><id>tag:blogger.com,1999:blog-2443724041307041823.post-8784413846831356503</id><published>2011-12-29T14:57:00.000-08:00</published><updated>2011-12-29T15:12:44.150-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-29T15:12:44.150-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="sup" /><category scheme="http://www.blogger.com/atom/ns#" term="embedding" /><category scheme="http://www.blogger.com/atom/ns#" term="oauth" /><title>Building Professional Video Sites with YouTube APIs</title><content type="html">Using video on your website can add greater depth and richness for your audience. However, to do encoding, hosting and streaming right it takes some time and skill. If you’re lacking in either, here are some suggestions for sites that make it easy to help you setup video-based websites.&lt;div&gt;&lt;br /&gt;&lt;img src="https://lh3.googleusercontent.com/7Kpbtwoc7NzQijjdtZqlKjvADuRzfCu6iOQO3OO4hX_IynocAAtOIcqD9-bpHWgMMNobeImpqttaF1nRjTRc73lUS8lafWQk71YLW-WlTIgXnWS4O4g" width="190px;" height="52px;" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.vidcaster.com/"&gt;VidCaster&lt;/a&gt; is a video content management system, whose goal is to make building a website with video as easy as possible.&lt;br /&gt;&lt;br /&gt;VidCaster makes use of custom URLs, &lt;a href="http://www.google.com/webmasters/videositemaps/"&gt;video sitemaps&lt;/a&gt;, metadata, and thumbnails to integrate well with search engines. They provide lots of features to customize your video site, like uploading a logo, picking a theme and choosing custom colors, and you can even upload custom CSS. Using their video management interface, you can publish, unpublish and delete videos. VidCaster can even distribute the videos from your video site to third-party sites such as YouTube and Twitter, and they can also integrate analytics from third-party sources.&lt;br /&gt;&lt;br /&gt;VidCaster uses &lt;a href="http://code.google.com/apis/youtube/2.0/developers_guide_protocol_oauth2.html"&gt;OAuth2 with the YouTube API&lt;/a&gt; to manage the user’s YouTube account, using both &lt;a href="http://code.google.com/apis/youtube/2.0/developers_guide_protocol_sup.html"&gt;SUP&lt;/a&gt; (Simple Update Protocol) and polling to make sure a user’s video site is always in sync with their YouTube channel. Companies that use VidCaster include &lt;a href="http://tv.airbnb.com/"&gt;AirBnB&lt;/a&gt;, &lt;a href="http://hackersandfounders.tv/"&gt;Hackers and Founders&lt;/a&gt;, and &lt;a href="http://www.dirtcast.com/"&gt;Dirtcast&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;img src="https://lh4.googleusercontent.com/0nbfWS1Asa8RBRv3kZqC4WMz3fK7o_QjrRBjzm19zhZmp-BjrLpXzP-F1Bvm_BSswOgxLwjFMrRW8lTOufjLG_-kBITKLBgevhIyN9gB848dKQl-ju4" width="550px;" height="485px;" /&gt;&lt;br /&gt;&lt;br /&gt;By integrating closely with &lt;a href="http://code.google.com/apis/youtube/getting_started.html#data_api"&gt;YouTube’s data API&lt;/a&gt;, VidCaster makes it easy for users to take advantage of YouTube’s video service from within their own custom video site.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;img src="https://lh5.googleusercontent.com/6E6Ary_2yJhABawjHMSe6oW9f3PuaOXI1F1RaFkLfQOxSXDtx8uQyb7iFiaAtOrqSext0Ib8yM_ssRJF5KiMRaKUAQ8z15-Dp39YAL8-sEK6dvzPglU" width="231px;" height="74px;" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.moviecom.tv/"&gt;Moviecom.tv&lt;/a&gt; tries to make it easy for businesses to build video sites about their company.&lt;br /&gt;&lt;br /&gt;Like VidCaster, Moviecom.tv provides users with a variety of features to customize their video site. They too show videos hosted on YouTube, but their integration with YouTube doesn’t yet include all the features that VidCaster does — for instance, Moviecom.tv can show YouTube videos using the &lt;a href="http://apiblog.youtube.com/2010/07/new-way-to-embed-youtube-videos.html"&gt;iframe player&lt;/a&gt;, but they haven’t yet integrated with YouTube’s &lt;a href="http://code.google.com/apis/youtube/getting_started.html#data_api"&gt;data API&lt;/a&gt;. This is something they plan on doing early in 2012. Moviecom.tv also touts their mobile application which takes the friction out of recording and uploading video to the right place.&lt;br /&gt;&lt;br /&gt;And they’re doing well at it — they were recently named a &lt;a href="http://www.redherring.com/"&gt;Red Herring Global 100 Winner&lt;/a&gt;. &lt;a href="http://www.moviecom.tv/internetworld?videoid=4032"&gt;Internet World&lt;/a&gt;, &lt;a href="http://www.moviecom.tv/cityindex"&gt;City Index&lt;/a&gt;, and &lt;a href="http://www.moviecom.tv/staplesevents"&gt;Staples&lt;/a&gt; are all example sites created using their platform:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;img src="https://lh3.googleusercontent.com/8wy-Tx8PQApEOtH5ofJJZv-t7C6WXBfensnw8Y5bjfGLBnPnR28MRDd-tDiM3JZgzKA9E561g3pQG11YgvBsqYjQKSIihWbVePuflU1lCkdh64GUqz8" width="550px;" height="382px;" /&gt;&lt;br /&gt;&lt;br /&gt;Companies like VidCaster and Moviecom.tv are a welcome part of the online video ecosystem. As Moviecom.tv CEO Gillian O'Neil once noted, Moviecom.tv isn’t competing with YouTube. By enabling third-party video sites to embed YouTube videos, YouTube isn’t trying to get a bigger piece of the pie. They’re making the pie bigger.&lt;br /&gt;&lt;br /&gt;Cheers,&lt;br /&gt;—Shannon -jj Behrens, YouTube API Team&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2443724041307041823-8784413846831356503?l=apiblog.youtube.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/YoutubeApiBlog/~4/4bAw9M9B37c" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2443724041307041823/posts/default/8784413846831356503?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2443724041307041823/posts/default/8784413846831356503?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/YoutubeApiBlog/~3/4bAw9M9B37c/building-professional-video-sites-with.html" title="Building Professional Video Sites with YouTube APIs" /><author><name>Shannon -jj Behrens</name><uri>http://www.blogger.com/profile/07100156106838185932</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><feedburner:origLink>http://apiblog.youtube.com/2011/12/building-professional-video-sites-with.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Dk4CSXo8cCp7ImA9WhRWFk8.&quot;"><id>tag:blogger.com,1999:blog-2443724041307041823.post-2349097856236925668</id><published>2011-12-28T13:30:00.000-08:00</published><updated>2012-01-03T13:09:28.478-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-03T13:09:28.478-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="mobile" /><category scheme="http://www.blogger.com/atom/ns#" term="embedding" /><category scheme="http://www.blogger.com/atom/ns#" term="player" /><title>Understanding Playback Restrictions</title><content type="html">Have you ever tried to show a user a YouTube video embedded on your site only to find out that they don’t have access to view it? For instance, if you try to play the video below, it’ll say “This video contains content from test_yt_owner, who has blocked it on copyright grounds.” There are many reasons why video playback can be restricted. The user might be in a country where the video is blocked, or the video’s content owner might have decided to block access to the video from all mobile applications.&lt;br /&gt;&lt;br /&gt;&lt;iframe width="420" height="315" src="http://www.youtube.com/embed/1kIsylLeHHU" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;While we strive to make YouTube content available everywhere, we believe it's important to give YouTube content owners the ability to control where their videos are viewed, which sometimes means you can't view videos in a certain country or on a certain device.&lt;br /&gt;&lt;br /&gt;With enhanced content controls comes increased complexity. The only foolproof way to determine if a user has access to watch a video is to ask them to try watching it. So, if you’re writing an application and you’d like to prevent users from seeing videos that they don’t have the ability to watch, here are a list of things to check:&lt;br /&gt;&lt;br /&gt;1. &lt;a href="http://code.google.com/apis/youtube/2.0/reference.html#youtube_data_api_tag_yt:accessControl"&gt;&lt;code&gt;yt:accessControl&lt;/code&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Videos that are available for embedding on third-party applications will have the following:&lt;pre&gt;&amp;lt;yt:accesscontrol action='embed' permission='allowed' /&amp;gt;&lt;/pre&gt;If you’d like to only search for videos that are embeddable, add &lt;a href="http://code.google.com/apis/youtube/2.0/reference.html#formatsp"&gt;&lt;code&gt;format=5&lt;/code&gt;&lt;/a&gt; to your query.&lt;br /&gt;&lt;br /&gt;Just as a video can be embeddable or not, it can also be syndicatable or not:&lt;pre&gt;&amp;lt;yt:accesscontrol action='syndicate' permission='allowed' /&amp;gt;&lt;/pre&gt;A &lt;a href="http://gdata.youtube.com/feeds/api/videos/AfuHSJqqgAo?v=2&amp;amp;prettyprint=true"&gt;video&lt;/a&gt; that is embeddable but not syndicatable will play on YouTube.com or on other sites that embed the YouTube player, but may not play on devices such as mobile phones or TVs. If you’d like to learn more about retrieving videos suitable for playback on mobile devices, see the &lt;a href="http://code.google.com/apis/youtube/2.0/developers_guide_protocol_partial.html#Retrieving_Videos_for_Mobile_Playback"&gt;developer’s guide&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;2. &lt;a href="http://code.google.com/apis/youtube/2.0/reference.html#restrictionsp"&gt;Geo Restrictions&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Some videos may be restricted in certain countries. This restriction applies to where the viewer is located, not where your third-party server is located. For instance, if a video is blocked in the US, it will have the following:&lt;pre&gt;&amp;lt;media:restriction type='country'&lt;br /&gt;  relationship='deny'&amp;gt;US&amp;lt;/media:restriction&amp;gt;&lt;/pre&gt;When you make a query, you can add a &lt;a href="http://code.google.com/apis/youtube/2.0/reference.html#restrictionsp"&gt;restriction&lt;/a&gt; parameter to filter videos that will not be playable by a client with a specific IP or from a specific country.&lt;br /&gt;&lt;br /&gt;3. &lt;a href="http://code.google.com/apis/youtube/2.0/reference.html#youtube_data_api_tag_yt:state"&gt;&lt;code&gt;yt:state&lt;/code&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;It’s also important to check the &lt;code&gt;yt:state&lt;/code&gt; of the video in the API response. Even if &lt;code&gt;yt:accessControl&lt;/code&gt; indicates that syndication is allowed, &lt;code&gt;yt:state&lt;/code&gt; might override it. For example, a video that has limited syndication would have the following:&lt;pre&gt;&amp;lt;app:control&amp;gt;&lt;br /&gt;  &amp;lt;yt:state name='restricted' reasoncode='limitedSyndication'&amp;gt;&lt;br /&gt;    Syndication of this video was restricted by its owner.&lt;br /&gt;  &amp;lt;/yt:state&amp;gt;&lt;br /&gt;&amp;lt;/app:control&amp;gt;&lt;/pre&gt;You might also &lt;a href="http://gdata.youtube.com/feeds/api/videos/d2smz_1L2_0?v=2&amp;amp;prettyprint=true"&gt;see the message&lt;/a&gt;, “Syndication of this video was restricted by the content owner.” Hence, even if the uploader allows syndication, the content owner could override that and disallow syndication. For example, this could happen if someone uploads a video that contains a soundtrack that is owned by another content owner.&lt;br /&gt;&lt;br /&gt;4. Rentals&lt;br /&gt;&lt;br /&gt;Some YouTube videos are rentals. You can tell that they are rentals because they have a &lt;a href="http://code.google.com/apis/youtube/2.0/reference.html#youtube_data_api_tag_media:price"&gt;&lt;code&gt;media:price&lt;/code&gt;&lt;/a&gt; tag:&lt;pre&gt;&amp;lt;media:price type='rent' price='1.99' currency='USD' yt:duration='PT2592000S' /&amp;gt;&lt;/pre&gt;Note that the &lt;code&gt;media:price&lt;/code&gt; tag is only included in the response if you use a &lt;a href="http://code.google.com/apis/youtube/dashboard/"&gt;developer key&lt;/a&gt; in the query. If you are building a non-browser based YouTube application where it would be impossible for the user to rent a video, you might want to filter out the rentals. You can do that by passing the parameter &lt;a href="http://code.google.com/apis/youtube/2.0/developers_guide_protocol_api_query_parameters.html#paid-contentsp"&gt;&lt;code&gt;paid-content=false&lt;/code&gt;&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;5. Other Restrictions not Currently Exposed via the API&lt;br /&gt;&lt;br /&gt;There are even more subtle restrictions that occasionally come into play. Not all of these are currently queryable via the API. For instance, some videos are only playable on a certain set of domains. As I mentioned above, the only foolproof way to know if a user has access to watch a video is to have them try watching it.&lt;br /&gt;&lt;br /&gt;Going back to the video above, you might be wondering why it won’t play. If you look at its video entry:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://gdata.youtube.com/feeds/api/videos/1kIsylLeHHU?v=2&amp;amp;prettyprint=true"&gt;http://gdata.youtube.com/feeds/api/videos/1kIsylLeHHU?v=2&amp;amp;prettyprint=true&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;you’ll see that it’s blocked in all countries:&lt;pre&gt;&amp;lt;media:restriction type='country' relationship='deny'&amp;gt;&lt;br /&gt;  BD BE BF...&lt;br /&gt;&amp;lt;/media:restriction&amp;gt;&lt;/pre&gt;Furthermore, both syndication and embedding are disallowed:&lt;pre&gt;&amp;lt;yt:accesscontrol action='embed' permission='denied' /&amp;gt;&lt;br /&gt;&amp;lt;yt:accesscontrol action='syndicate' permission='denied' /&amp;gt;&lt;/pre&gt;Hopefully this short blog post on video playback restrictions will help you write applications that have a better understanding of what videos users can and can’t watch. If you have any questions, you can ask them on our &lt;a href="http://code.google.com/apis/youtube/forum/"&gt;forum&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Cheers,&lt;br /&gt;—Shannon -jj Behrens, YouTube API Team&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2443724041307041823-2349097856236925668?l=apiblog.youtube.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/YoutubeApiBlog/~4/l11gLptZ9To" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2443724041307041823/posts/default/2349097856236925668?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2443724041307041823/posts/default/2349097856236925668?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/YoutubeApiBlog/~3/l11gLptZ9To/understanding-playback-restrictions.html" title="Understanding Playback Restrictions" /><author><name>Shannon -jj Behrens</name><uri>http://www.blogger.com/profile/07100156106838185932</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://img.youtube.com/vi/1kIsylLeHHU/default.jpg" height="72" width="72" /><feedburner:origLink>http://apiblog.youtube.com/2011/12/understanding-playback-restrictions.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0IGRnk-cCp7ImA9WhRXEEo.&quot;"><id>tag:blogger.com,1999:blog-2443724041307041823.post-404956769334711027</id><published>2011-12-16T14:45:00.000-08:00</published><updated>2011-12-16T14:45:27.758-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-16T14:45:27.758-08:00</app:edited><title>YouTube Direct Keeps Growing</title><content type="html">&lt;b id="internal-source-marker_0.03971776179969311"&gt;&lt;a href="http://code.google.com/p/youtube-direct/"&gt;&lt;span style="color: #000099; font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;YouTube Direct&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;, our open source platform for obtaining and moderating user-generated videos (and photos!), was &lt;/span&gt;&lt;a href="http://apiblog.youtube.com/2009/11/enrich-your-site-with-youtube-direct.html"&gt;&lt;span style="color: #000099; font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;first announced&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt; over two years ago. Since that time, the project has &lt;/span&gt;&lt;a href="http://apiblog.youtube.com/2010/03/youtube-direct-for-mobile-and-other.html"&gt;&lt;span style="color: #000099; font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;continued&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt; to &lt;/span&gt;&lt;a href="http://apiblog.youtube.com/2010/04/new-features-in-youtube-direct-v20.html"&gt;&lt;span style="color: #000099; font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;grow&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;, and we’re happy to announce the latest round of additional features.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;Most notably, we’ve released a completely rewritten YouTube Direct upload client for iOS devices (seen below). You can find it in its own &lt;/span&gt;&lt;a href="http://code.google.com/p/ytd-iphone/"&gt;&lt;span style="color: #000099; font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;open source project&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;, and it complements the existing &lt;/span&gt;&lt;a href="http://code.google.com/p/ytd-android/"&gt;&lt;span style="color: #000099; font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;upload client for Android devices&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;. As with the Android client, we see the iOS code as a reference implementation and a starting point for developers who want to build their own branded applications that submit video or photos that could be moderated using YouTube Direct.&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-i6F7dCKmSqk/TuvJxE70GEI/AAAAAAAAA2A/8s3uKXQ_tLU/s1600/ytd-screenshot.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://3.bp.blogspot.com/-i6F7dCKmSqk/TuvJxE70GEI/AAAAAAAAA2A/8s3uKXQ_tLU/s320/ytd-screenshot.png" width="213" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;b&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b id="internal-source-marker_0.03971776179969311"&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;The biggest change in the 3.0 release of the YouTube Direct server code has to do with multitenancy. As explained in &lt;/span&gt;&lt;a href="http://code.google.com/p/youtube-direct/wiki/MultipleInstances"&gt;&lt;span style="color: #000099; font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;this guide&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;, YouTube Direct administrators can now deploy their code to App Engine once, and have App Engine serve many different logical instances of YouTube Direct, each with their own submission queues and moderators. While not every YouTube Direct deployment will benefit from this new functionality, we see it being particularly useful for agencies and other organizations that might have multiple individual clients, each interested in keeping track of their own YouTube Direct submissions.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;YouTube Direct powers a wide variety of video submission initiatives: sites as diverse as the New York Times’ &lt;/span&gt;&lt;a href="http://www.youtube.com/user/September11"&gt;&lt;span style="color: #000099; font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;Reflections on 9/11&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt; project, DrugFree.org’s “&lt;/span&gt;&lt;a href="http://www.drugfree.org/give-get-involved/you-are-not-alone"&gt;&lt;span style="color: #000099; font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;You are not alone&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;” and Google Developers&lt;/span&gt;&lt;/b&gt;&lt;b id="internal-source-marker_0.03971776179969311"&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;’&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt; own “&lt;/span&gt;&lt;a href="https://developers.google.com/go/stories/"&gt;&lt;span style="color: #000099; font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;Share your story&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;” page are running by YouTube Direct behind the scenes.&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;As always, please let us know about any specific issues you encounter with YouTube Direct or either of the mobile clients in the issue trackers associated with each open source project. If you have any general questions about YouTube Direct, we’d be happy to answer them in our YouTube API &lt;/span&gt;&lt;a href="http://code.google.com/apis/youtube/forum/" style="font-weight: bold;"&gt;&lt;span style="color: #000099; font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;developer’s forum&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;Cheers,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; font-style: italic; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;—Jeff Posnick, YouTube API Team&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2443724041307041823-404956769334711027?l=apiblog.youtube.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/YoutubeApiBlog/~4/VX4Qwtw-O_Q" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2443724041307041823/posts/default/404956769334711027?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2443724041307041823/posts/default/404956769334711027?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/YoutubeApiBlog/~3/VX4Qwtw-O_Q/youtube-direct-keeps-growing.html" title="YouTube Direct Keeps Growing" /><author><name>YouTube Staff</name><uri>http://www.blogger.com/profile/01201862738371775953</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-i6F7dCKmSqk/TuvJxE70GEI/AAAAAAAAA2A/8s3uKXQ_tLU/s72-c/ytd-screenshot.png" height="72" width="72" /><feedburner:origLink>http://apiblog.youtube.com/2011/12/youtube-direct-keeps-growing.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEMAQ3c7fSp7ImA9WhRQEkQ.&quot;"><id>tag:blogger.com,1999:blog-2443724041307041823.post-5415264827755806484</id><published>2011-12-07T14:19:00.001-08:00</published><updated>2011-12-07T14:20:42.905-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-07T14:20:42.905-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="subscription" /><category scheme="http://www.blogger.com/atom/ns#" term="friendactivity" /><category scheme="http://www.blogger.com/atom/ns#" term="friends" /><title>A Friendly Update</title><content type="html">&lt;span id="internal-source-marker_0.8223732302431017" style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;As you might have recently &lt;/span&gt;&lt;a href="http://www.google.com/support/forum/p/youtube/thread?tid=5336e41c0fd5ea48"&gt;&lt;span style="color: #000099; font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;read&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;, there’s an upcoming change that affects any “friends” you might have associated with your YouTube account. Your existing “friend” connections will be automatically converted into Address Book contacts, and when you visit YouTube.com you will be given the option of creating subscriptions to any or all of those accounts.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;If you’re a developer, you might ask yourself how this impacts your existing code that uses the YouTube Data API. One specific feed that’s exposed via the API is no longer relevant: the &lt;/span&gt;&lt;a href="http://code.google.com/apis/youtube/2.0/developers_guide_protocol_activity_feeds.html#Friend_activity_feeds"&gt;&lt;span style="color: #000099; font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;friends activity feed&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;. The users of your application may have converted their old friends to corresponding subscriptions, and in that case you can make use of a new feed in our &lt;/span&gt;&lt;a href="http://apiblog.youtube.com/2008/11/all-worlds-stage.html"&gt;&lt;span style="color: #000099; font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;staging environment&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt; that contains activity updates from the accounts you’re subscribed to:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt; &amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;https://gdata.youtube.com/feeds/api/users/default/subtivity&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;As of right now on our &lt;/span&gt;&lt;a href="http://apiblog.youtube.com/2008/11/all-worlds-stage.html"&gt;&lt;span style="color: #000099; font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;staging server&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;, and around December 14 in production, we will automatically translate requests to the existing friends activity feed’s URL into requests to the new subscriptions activity feed, rather than just returning an empty friends activity feed. While this translation will take place transparently behind the scenes, we encourage all developers who are using the friends activity feed to explicitly update their code to point to the new subscription activity feed as a best practice.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;There are also API calls related to YouTube &lt;/span&gt;&lt;a href="http://code.google.com/apis/youtube/2.0/developers_guide_protocol_contacts.html"&gt;&lt;span style="color: #000099; font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;contact management&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt; that would accept either an email address (in a &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;&amp;lt;gd:email&amp;gt;&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt; element) or a YouTube username (in a &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;&amp;lt;yt:username&amp;gt;&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt; element). As a side effect of this migration, you can only use &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;&amp;lt;yt:username&amp;gt;&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt; for these calls, which is what the API’s documentation has recommended doing all along. An attempt to use &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;&amp;lt;gd:email&amp;gt;&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt; will lead to a HTTP 400 error response.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;Thanks for bearing with us through these changes. If you have any questions or concerns, please let us know in our &lt;/span&gt;&lt;a href="http://code.google.com/apis/youtube/forum/"&gt;&lt;span style="color: #000099; font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;developer forum&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;Cheers,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; font-style: italic; vertical-align: baseline; white-space: pre-wrap;"&gt;—Jeff Posnick, YouTube API Team&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2443724041307041823-5415264827755806484?l=apiblog.youtube.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/YoutubeApiBlog/~4/gMmJu67mmO4" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2443724041307041823/posts/default/5415264827755806484?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2443724041307041823/posts/default/5415264827755806484?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/YoutubeApiBlog/~3/gMmJu67mmO4/friendly-update.html" title="A Friendly Update" /><author><name>YouTube Staff</name><uri>http://www.blogger.com/profile/01201862738371775953</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><feedburner:origLink>http://apiblog.youtube.com/2011/12/friendly-update.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUEFQnk8eCp7ImA9WhRTEEQ.&quot;"><id>tag:blogger.com,1999:blog-2443724041307041823.post-4535607992838633397</id><published>2011-10-31T13:40:00.000-07:00</published><updated>2011-10-31T13:40:13.770-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-31T13:40:13.770-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="insight" /><category scheme="http://www.blogger.com/atom/ns#" term="reports" /><title>Insight Report Enhancements</title><content type="html">&lt;br /&gt;
&lt;div style="background-color: transparent;"&gt;
&lt;a href="http://www.google.com/support/youtube/bin/static.py?page=guide.cs&amp;amp;guide=1254429" id="internal-source-marker_0.25932192569598556"&gt;&lt;span style="background-color: transparent; color: #000099; font-family: Arial; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"&gt;YouTube Insight reports&lt;/span&gt;&lt;/a&gt;&lt;span style="background-color: transparent; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt; provide video owners with statistics about their viewership above and beyond public view count information. They’re a crucial tool when you want to find out more about the demographic or regional breakdown of your videos’ viewership, or what sites are embedding your videos. The YouTube API has provided a way for developers to retrieve YouTube Insight reports in a comma-separated value format for some time now, but there are some recent additions to the Insight retrieval process that we wanted to highlight.&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;First, we wanted to mention that the API allows developers to access Insight reports for an entire channel’s worth of videos, not just a single video. The appropriate base URL to use for downloading a channel report can be found when requesting the &lt;/span&gt;&lt;a href="http://code.google.com/apis/youtube/2.0/developers_guide_protocol_profiles.html"&gt;&lt;span style="background-color: transparent; color: #000099; font-family: Arial; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"&gt;profile&lt;/span&gt;&lt;/a&gt;&lt;span style="background-color: transparent; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt; corresponding to the user who’s &lt;/span&gt;&lt;a href="http://code.google.com/apis/youtube/2.0/developers_guide_protocol_authentication.html"&gt;&lt;span style="background-color: transparent; color: #000099; font-family: Arial; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"&gt;authenticated&lt;/span&gt;&lt;/a&gt;&lt;span style="background-color: transparent; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt; with the YouTube API, as described in our &lt;/span&gt;&lt;a href="http://code.google.com/apis/youtube/2.0/developers_guide_protocol_insight.html"&gt;&lt;span style="background-color: transparent; color: #000099; font-family: Arial; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"&gt;developer’s guide&lt;/span&gt;&lt;/a&gt;&lt;span style="background-color: transparent; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;. The element looks something like:&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; font-family: 'Courier New'; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div dir="ltr" style="margin-bottom: 0pt; margin-left: 36pt; margin-top: 0pt;"&gt;
&lt;span style="background-color: transparent; font-family: 'Courier New'; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&amp;lt;link rel='http://gdata.youtube.com/schemas/2007#insight.views' type='text/html' href='http://insight.youtube.com/video-analytics/csvreports?query=PlVJ88-zqkI&amp;amp;type=...'/&amp;gt;&lt;/span&gt;&lt;span style="background-color: transparent; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span style="background-color: transparent; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;It can be identified by the &lt;/span&gt;&lt;span style="background-color: transparent; font-family: 'Courier New'; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;rel='http://gdata.youtube.com/schemas/2007#insight.views'&lt;/span&gt;&lt;span style="background-color: transparent; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt; attribute. As with single-video Insight retrieval, these reports are only available to the corresponding owner, so authenticating as the correct user is a must.&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;Current users of the Insight API know that we previously supported a rather restrictive set of custom date ranges for reports. We’re happy to announce that these restrictions have been relaxed—we now support date ranges that span 31 days (up from 28) and, more significantly, you can specify any arbitrary start date for your report going back to March 1, 2009. Please see &lt;/span&gt;&lt;a href="http://code.google.com/apis/youtube/2.0/developers_guide_protocol_insight.html"&gt;&lt;span style="background-color: transparent; color: #000099; font-family: Arial; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"&gt;our documentation&lt;/span&gt;&lt;/a&gt;&lt;span style="background-color: transparent; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt; for more information on formatting your custom date range parameters to take advantage of this historical data.&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;As always, we’re waiting to hear from you in our &lt;/span&gt;&lt;a href="http://code.google.com/apis/youtube/forum/discussion.html"&gt;&lt;span style="background-color: transparent; color: #000099; font-family: Arial; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"&gt;developer forum&lt;/span&gt;&lt;/a&gt;&lt;span style="background-color: transparent; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt; with any questions or comments.&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;Cheers,&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; font-family: Arial; font-size: 11pt; font-style: italic; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;—Jeffrey Posnick, YouTube API Team&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2443724041307041823-4535607992838633397?l=apiblog.youtube.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/YoutubeApiBlog/~4/lapDBRSuuRE" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2443724041307041823/posts/default/4535607992838633397?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2443724041307041823/posts/default/4535607992838633397?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/YoutubeApiBlog/~3/lapDBRSuuRE/insight-report-enhancements.html" title="Insight Report Enhancements" /><author><name>Jeffrey Posnick</name><uri>http://www.blogger.com/profile/14165634394288897683</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><feedburner:origLink>http://apiblog.youtube.com/2011/10/insight-report-enhancements.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0UNR3o7fip7ImA9WhdaF0o.&quot;"><id>tag:blogger.com,1999:blog-2443724041307041823.post-7464892740000794381</id><published>2011-10-27T21:14:00.000-07:00</published><updated>2011-10-27T21:14:56.406-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-27T21:14:56.406-07:00</app:edited><title>Upcoming YouTube API Events</title><content type="html">&lt;div&gt;
It was a pleasure meeting YouTube developers at the recent &lt;a href="http://www.google.com/events/developerday/2011/"&gt;&lt;span&gt;GDD&lt;/span&gt;&lt;/a&gt;, &lt;a href="http://code.google.com/events/devfests/2011/index.html"&gt;&lt;span&gt;DevFest&lt;/span&gt;&lt;/a&gt; and &lt;a href="http://www.gtugs.org/"&gt;&lt;span&gt;GTUG&lt;/span&gt;&lt;/a&gt; sessions in São Paulo, Buenos Aires, Moscow, Prague, Paris and Warsaw. We would like to let you know that our around-the-world API tour continues and we hope to meet you at one of our upcoming YouTube API presentations. Here is the list of currently planned YouTube sessions:&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span&gt;GDD Tokyo, Nov 1&lt;sup&gt;st&lt;/sup&gt;: &lt;a href="http://www.google.com/events/developerday/2011/tokyo/agenda/session_6001.html"&gt;&lt;span&gt;“HTML5, Flash and the Battle for Faster YouTube Cat Videos”&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;GDD Sydney, Nov 8&lt;sup&gt;th&lt;/sup&gt;: &lt;a href="http://www.google.com/events/developerday/2011/sydney/agenda/session_6000.html"&gt;&lt;span&gt;“Take a sneak peek at YouTube Live Streaming APIs”&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;DevFest Singapore, Nov 12&lt;sup&gt;th&lt;/sup&gt;: &lt;a href="http://code.google.com/events/devfests/2011/seasia.html#singapore"&gt;&lt;span&gt;"Create Magical Apps and Engage Your Audience Using YouTube APIs"&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;GDD Tel Aviv, Nov 13&lt;sup&gt;th&lt;/sup&gt;: &lt;a href="http://www.google.com/events/developerday/2011/tel-aviv/agenda/session_6001.html"&gt;&lt;span&gt;“HTML5, Flash and the Battle for Faster YouTube Cat Videos”&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;GDD Berlin, Nov 19&lt;sup&gt;th&lt;/sup&gt;: &lt;a href="http://www.google.com/events/developerday/2011/berlin/agenda/session_6001.html"&gt;&lt;span&gt;“HTML5, Flash and the Battle for Faster YouTube Cat Videos”&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
We will also be speaking at local GTUGs; for the most up to date information please check the event schedule of a &lt;a href="http://www.gtugs.org/directory.jsp"&gt;&lt;span&gt;GTUG near you&lt;/span&gt;&lt;/a&gt;. As always, upcoming event information can be found on our Google Developer Events Calendar available at &lt;a href="http://code.google.com/events/"&gt;&lt;span&gt;http://code.google.com/events/&lt;/span&gt;&lt;/a&gt;.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Cheers,&lt;/div&gt;
&lt;div&gt;
&lt;i&gt;--Jarek Wilkiewicz, YouTube API Team&lt;/i&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2443724041307041823-7464892740000794381?l=apiblog.youtube.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/YoutubeApiBlog/~4/slEIZm18zQ8" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2443724041307041823/posts/default/7464892740000794381?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2443724041307041823/posts/default/7464892740000794381?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/YoutubeApiBlog/~3/slEIZm18zQ8/upcoming-youtube-api-events.html" title="Upcoming YouTube API Events" /><author><name>Jarek Wilkiewicz</name><uri>http://www.blogger.com/profile/01311495604558955987</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://1.bp.blogspot.com/_ethn5tD__dY/TAV-hCJd8NI/AAAAAAAAABQ/lmiVxe8TIZk/S220/jarek.jpg" /></author><feedburner:origLink>http://apiblog.youtube.com/2011/10/upcoming-youtube-api-events.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0UBR3g-cCp7ImA9WhdbFUg.&quot;"><id>tag:blogger.com,1999:blog-2443724041307041823.post-8962093565836277555</id><published>2011-10-13T19:27:00.000-07:00</published><updated>2011-10-13T19:27:36.658-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-13T19:27:36.658-07:00</app:edited><title>More Ways to Find What You’re Looking For</title><content type="html">&lt;br /&gt;
&lt;div style="background-color: transparent;"&gt;
&lt;span id="internal-source-marker_0.7500893790274858" style="background-color: transparent; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;We’ve got some exciting additions to the list of supported &lt;/span&gt;&lt;a href="http://code.google.com/apis/youtube/2.0/developers_guide_protocol_api_query_parameters.html#Custom_parameters"&gt;&lt;span style="background-color: transparent; color: #000099; font-family: Arial; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"&gt;search parameters&lt;/span&gt;&lt;/a&gt;&lt;span style="background-color: transparent; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt; for YouTube feeds that should make it easier to narrow down your search results to exactly the videos you’re looking for. Each of these search parameters has an accompanying element in a &lt;/span&gt;&lt;a href="http://code.google.com/apis/youtube/2.0/reference.html#youtube_data_api_tag_entry"&gt;&lt;span style="background-color: transparent; color: #000099; font-family: Arial; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"&gt;video entry’s&lt;/span&gt;&lt;/a&gt;&lt;span style="background-color: transparent; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt; metadata, which we’ll cover as well. Here's a quick rundown:&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; font-family: Arial; font-size: 11pt; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;ul&gt;
&lt;li style="background-color: transparent; font-family: Arial; font-size: 11pt; font-weight: bold; list-style-type: disc; text-decoration: none; vertical-align: baseline;"&gt;&lt;a href="http://code.google.com/apis/youtube/2.0/developers_guide_protocol_api_query_parameters.html#licensesp"&gt;&lt;span style="background-color: transparent; color: #000099; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"&gt;license&lt;/span&gt;&lt;/a&gt;&lt;span style="background-color: transparent; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt; &lt;/span&gt;&lt;span style="background-color: transparent; font-size: 11pt; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;- This parameter lets you filter search results based on whether they're &lt;/span&gt;&lt;a href="http://www.youtube.com/t/creative_commons"&gt;&lt;span style="background-color: transparent; color: #000099; font-size: 11pt; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;Creative Commons licensed&lt;/span&gt;&lt;/a&gt;&lt;span style="background-color: transparent; font-size: 11pt; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt; (&lt;/span&gt;&lt;span style="background-color: transparent; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;license=cc&lt;/span&gt;&lt;span style="background-color: transparent; font-size: 11pt; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;) or use the standard YouTube license (&lt;/span&gt;&lt;span style="background-color: transparent; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;license=youtube&lt;/span&gt;&lt;span style="background-color: transparent; font-size: 11pt; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;). The default behavior is to return videos regardless of their license in search results. The license for a given video entry is reflected in its &lt;/span&gt;&lt;a href="http://code.google.com/apis/youtube/2.0/reference.html#youtube_data_api_tag_media:license"&gt;&lt;span style="background-color: transparent; color: #000099; font-size: 11pt; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;&amp;lt;media:license&amp;gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="background-color: transparent; font-size: 11pt; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt; element.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li style="background-color: transparent; font-family: Arial; font-size: 11pt; list-style-type: disc; text-decoration: none; vertical-align: baseline;"&gt;&lt;a href="http://code.google.com/apis/youtube/2.0/developers_guide_protocol_api_query_parameters.html#hdsp"&gt;&lt;span style="background-color: transparent; color: #000099; font-size: 11pt; font-weight: bold; vertical-align: baseline; white-space: pre-wrap;"&gt;hd&lt;/span&gt;&lt;/a&gt;&lt;span style="background-color: transparent; font-size: 11pt; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt; &lt;/span&gt;&lt;span style="background-color: transparent; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;- This one lets you request videos that have high-resolution versions available. If you specify &lt;/span&gt;&lt;span style="background-color: transparent; font-size: 11pt; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;hd&lt;/span&gt;&lt;span style="background-color: transparent; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt; (no value is needed), all the videos in your search results will be available for playback in at least 720p, and higher resolutions, like 1080p, might be available, too. If you leave the parameter out, then search results won't be filtered at all based on resolution. The &lt;/span&gt;&lt;a href="http://code.google.com/apis/youtube/2.0/reference.html#youtube_data_api_tag_yt:hd"&gt;&lt;span style="background-color: transparent; color: #000099; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"&gt;&amp;lt;yt:hd&amp;gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="background-color: transparent; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt; element corresponds to this search parameter.&lt;/span&gt;&lt;/li&gt;
&lt;li style="background-color: transparent; font-family: Arial; font-size: 11pt; list-style-type: disc; text-decoration: none; vertical-align: baseline;"&gt;&lt;a href="http://code.google.com/apis/youtube/2.0/developers_guide_protocol_api_query_parameters.html#durationsp"&gt;&lt;span style="background-color: transparent; color: #000099; font-size: 11pt; font-weight: bold; vertical-align: baseline; white-space: pre-wrap;"&gt;duration&lt;/span&gt;&lt;/a&gt;&lt;span style="background-color: transparent; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt; - If you cater to an audience with a short attention span, then this parameter is for you. This parameter lets you filter search results based on video length. To find videos less than 4 minutes long, use &lt;/span&gt;&lt;span style="background-color: transparent; font-size: 11pt; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;duration=short&lt;/span&gt;&lt;span style="background-color: transparent; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;. To find videos that are between 4 and 20 minutes long (inclusive), use &lt;/span&gt;&lt;span style="background-color: transparent; font-size: 11pt; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;duration=medium&lt;/span&gt;&lt;span style="background-color: transparent; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;. Only videos that are longer than 20 minutes will be returning when requesting &lt;/span&gt;&lt;span style="background-color: transparent; font-size: 11pt; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;duration=long&lt;/span&gt;&lt;span style="background-color: transparent; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;. The &lt;/span&gt;&lt;a href="http://code.google.com/apis/youtube/2.0/reference.html#youtube_data_api_tag_yt:duration"&gt;&lt;span style="background-color: transparent; color: #000099; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"&gt;&amp;lt;yt:duration&amp;gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="background-color: transparent; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt; element in a video entry provides a video’s exact runtime.&lt;/span&gt;&lt;/li&gt;
&lt;li style="background-color: transparent; font-family: Arial; font-size: 11pt; list-style-type: disc; text-decoration: none; vertical-align: baseline;"&gt;&lt;a href="http://code.google.com/apis/youtube/2.0/developers_guide_protocol_api_query_parameters.html#3dsp"&gt;&lt;span style="background-color: transparent; color: #000099; font-size: 11pt; font-weight: bold; vertical-align: baseline; white-space: pre-wrap;"&gt;3d&lt;/span&gt;&lt;/a&gt;&lt;span style="background-color: transparent; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt; - Finally, for those of you living in the future who want to find &lt;/span&gt;&lt;a href="http://www.google.com/support/youtube/bin/answer.py?answer=157640"&gt;&lt;span style="background-color: transparent; color: #000099; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"&gt;3D content&lt;/span&gt;&lt;/a&gt;&lt;span style="background-color: transparent; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt; on YouTube, this aptly-named parameter is for you. Adding &lt;/span&gt;&lt;span style="background-color: transparent; font-size: 11pt; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;3d&lt;/span&gt;&lt;span style="background-color: transparent; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt; (no value is needed) to your searches will ensure that all videos you get back are available for viewing in 3D. Videos that are available in 3D will have a &lt;/span&gt;&lt;a href="http://code.google.com/apis/youtube/2.0/reference.html#youtube_data_api_tag_yt:threed"&gt;&lt;span style="background-color: transparent; color: #000099; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"&gt;&amp;lt;yt:threed&amp;gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="background-color: transparent; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt; element in them, and that element will contain more detail about the nature of the 3D content in the given video.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;span style="background-color: transparent; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;Putting it all together, let’s say you want to use the API to find Creative Commons-licensed 3D YouTube videos that are available in resolutions of 720p and above and are longer than 20 minutes.The following request URL will return a feed of such videos:&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;a href="https://gdata.youtube.com/feeds/api/videos?prettyprint=true&amp;amp;v=2&amp;amp;license=cc&amp;amp;hd&amp;amp;duration=long&amp;amp;3d"&gt;&lt;span style="background-color: transparent; color: #000099; font-family: Arial; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"&gt;https://gdata.youtube.com/feeds/api/videos?prettyprint=true&amp;amp;v=2&amp;amp;license=cc&amp;amp;hd&amp;amp;duration=long&amp;amp;3d&lt;/span&gt;&lt;/a&gt;&lt;span style="background-color: transparent; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;As always, if you have any questions or comments, please let us know in our &lt;/span&gt;&lt;a href="http://code.google.com/apis/youtube/forum/discussion.html"&gt;&lt;span style="background-color: transparent; color: #000099; font-family: Arial; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"&gt;developer forum&lt;/span&gt;&lt;/a&gt;&lt;span style="background-color: transparent; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;.&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;Cheers,&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; font-family: Arial; font-size: 11pt; font-style: italic; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;—Jeff Posnick, YouTube API Team&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2443724041307041823-8962093565836277555?l=apiblog.youtube.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/YoutubeApiBlog/~4/HsLXC6CQfVI" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2443724041307041823/posts/default/8962093565836277555?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2443724041307041823/posts/default/8962093565836277555?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/YoutubeApiBlog/~3/HsLXC6CQfVI/more-ways-to-find-what-youre-looking.html" title="More Ways to Find What You’re Looking For" /><author><name>Jeffrey Posnick</name><uri>http://www.blogger.com/profile/14165634394288897683</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><feedburner:origLink>http://apiblog.youtube.com/2011/10/more-ways-to-find-what-youre-looking.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUAERXw5fip7ImA9WhRWEUU.&quot;"><id>tag:blogger.com,1999:blog-2443724041307041823.post-6584573185779666308</id><published>2011-10-07T15:46:00.000-07:00</published><updated>2011-12-29T11:41:44.226-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-29T11:41:44.226-08:00</app:edited><title>Introducing Google Account support and YouTube API v2.1</title><content type="html">&lt;div&gt;
&lt;b&gt;&lt;i&gt;Update (December 2011)&lt;/i&gt;&lt;/b&gt;&lt;i&gt;: The YouTube API now &lt;/i&gt;&lt;a href="http://code.google.com/apis/youtube/2.0/developers_guide_protocol_profiles.html#Upgrading_an_Unlinked_Google_Account"&gt;&lt;i&gt;supports&lt;/i&gt;&lt;/a&gt;&lt;i&gt; associating an unlinked Google Account with a YouTube channel as well as providing username suggestions.&amp;nbsp;&lt;/i&gt;&lt;/div&gt;
&lt;br /&gt;
Authenticated access to YouTube APIs lets your app offer many features that are unavailable to logged-out users. By authenticating user actions, your app can allow users to manage subscriptions, create playlists, and upload videos. Until recently, users could only perform any of these operations if they had YouTube accounts. (A YouTube account provides a user with a YouTube channel.)&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
We are pleased to announce that we have also started to give &lt;a href="http://www.google.com/support/accounts/bin/answer.py?hl=en&amp;amp;answer=27439"&gt;Google Account&lt;/a&gt; holders who don’t already have YouTube channels &lt;a href="http://youtube-global.blogspot.com/2011/10/get-more-out-of-youtube-through-your.html"&gt;access to certain YouTube features on YouTube.com&lt;/a&gt; and in the YouTube API. We call these unlinked Google Accounts since they haven’t already been linked to a YouTube channel. For example, a user with a Gmail account or an Android device is certain to have a Google Account but may not have already linked that account to a YouTube channel.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
What this means for your application is that with a few relatively simple changes, you should be able to allow &lt;a href="http://code.google.com/apis/youtube/2.0/developers_guide_protocol_authentication.html"&gt;authenticated access&lt;/a&gt; for users who have unlinked Google Accounts. Thus, those users will be able to log in to YouTube without having to create a YouTube username.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
In a moment, we’ll dive into the details of how to use the API with unlinked Google Accounts and also offer a few user experience recommendations for your YouTube API application. First, though, a quick note about the new minor YouTube API revision that we’re introducing.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;Say "Hello!" to YouTube API v2.1&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
When designing this feature, we decided to take a conservative approach toward backward compatibility. The set of &lt;i&gt;write&lt;/i&gt; operations supported for Google Accounts is currently a &lt;a href="http://code.google.com/apis/youtube/2.0/developers_guide_protocol_audience.html#Comparing_API_Versions_2_and_2.1"&gt;subset&lt;/a&gt; of API operations available to YouTube account holders. Rather than expose existing applications to accounts with potentially restricted functionality, we’re explicitly requiring that an application prepared to handle unlinked Google Accounts tells us so by using the API version 2.1, a new, minor version of the API. Our &lt;a href="http://code.google.com/apis/youtube/2.0/developers_guide_protocol_audience.html#Comparing_API_Versions_2_and_2.1"&gt;documentation&lt;/a&gt; explains that you can specify an API version by appending &lt;code&gt;v=2.1&lt;/code&gt; to the API request URI or by using the &lt;code&gt;GData-Version: 2.1&lt;/code&gt; request header.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;HTTP response codes for authenticated operations&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
API v2.0 supports all authenticated operations for users with YouTube accounts, which could also be called linked Google Accounts, but doesn’t support any authenticated operations for unlinked Google Accounts. If the authentication token for a v2.0 API request identifies an unlinked Google Account, the API will return a &lt;code&gt;401 NoLinkedYouTubeAccount&lt;/code&gt; error.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
In API v2.1, however, a number of operations that require authentication are supported for users with unlinked Google Accounts, and the API will return a &lt;span class="s2"&gt;200&lt;/span&gt; response code for those operations. For operations that aren’t supported for unlinked Google Accounts in v2.1, the API will return an &lt;code&gt;HTTP 403 Forbidden&lt;/code&gt; error with a &lt;code&gt;youtube_signup_required&lt;/code&gt; error code.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
The table below shows how API v2.1 changes response codes when different types of users try to execute operations that require authentication:&lt;/div&gt;
&lt;br /&gt;
&lt;style type="text/css"&gt;
    table {
        border-spacing: 0;
        width:80%;        
    }

    table tr td {
        border: 1px solid black;

    }

    table .cell-left {
        border-left: 0;
        border-top: 0;
    }
    
    table .cell-top {
      text-align: center;
      background-color: #95B9C7; 
      color: black;
    }
    
    table .cell-hdr {
      text-align: center;
      border-left: 0;
      border-top: 0;
    }

    table .cell-data {
      text-align: center;
      font-family: "Courier New", Courier, monospace
    }

    table .cell-data-top {
      text-align: center;
      background-color: #95B9C7; 
      color: black;
    }
    
    table .cell-row-hdr {
      text-align: center;
      background-color: #95B9C7; color: black;
    }

    
&lt;/style&gt;

  &lt;br /&gt;
&lt;table align="center"&gt;
      &lt;tbody&gt;
&lt;tr&gt;
          &lt;td class="cell-hdr"&gt;&lt;/td&gt;
          &lt;td class="cell-data-top"&gt;API v2&lt;/td&gt;
          &lt;td class="cell-data-top"&gt;API v2.1&lt;/td&gt;
      &lt;/tr&gt;
&lt;tr&gt;
          &lt;td class="cell-row-hdr"&gt;YouTube Account&lt;/td&gt;
          &lt;td class="cell-data"&gt;200 OK&lt;/td&gt;
          &lt;td class="cell-data"&gt;200 OK&lt;/td&gt;
      &lt;/tr&gt;
&lt;tr&gt;
          &lt;td class="cell-row-hdr"&gt;Unlinked Google Account&lt;/td&gt;
          &lt;td class="cell-data"&gt;401 NoLinkedYouTubeAccount&lt;/td&gt;
          &lt;td class="cell-data"&gt;200 OK or 403 Forbidden youtube_signup_required&lt;/td&gt;
      &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="p3"&gt;
&lt;span class="s3"&gt;&lt;b&gt;Handling the &lt;/b&gt;&lt;/span&gt;&lt;b&gt;&lt;code&gt;youtube_signup_required&lt;/code&gt;&lt;/b&gt;&lt;span class="s3"&gt;&lt;b&gt; error&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
We do not recommend that you try to modify your application to provide a different experience for users with YouTube accounts than for unlinked Google Accounts. That approach would require you to constantly update your application as YouTube expands the list of features that we support for unlinked Google Accounts.&lt;/div&gt;
&lt;br/&gt;
&lt;div&gt;
Instead, we recommend that you prepare your application to gracefully handle the &lt;code&gt;youtube_signup_required&lt;/code&gt; error, preferably by associating the unlinked Google Account with a YouTube channel &lt;a href="http://code.google.com/apis/youtube/2.0/developers_guide_protocol_profiles.html#Upgrading_an_Unlinked_Google_Account"&gt;using the API&lt;/a&gt;, or presenting an option for the user to navigate to &lt;a href="https://www.youtube.com/create_channel"&gt;&lt;span class="s2"&gt;https://www.youtube.com/create_channel&lt;/span&gt;&lt;/a&gt;. If you are building a mobile application, you can bypass a redirect by using &lt;a href="https://m.youtube.com/create_channel"&gt;&lt;span class="s2"&gt;https://m.youtube.com/create_channel&lt;/span&gt;&lt;/a&gt; instead. The &lt;a href="http://code.google.com/apis/youtube/2.0/developers_guide_protocol_audience.html#Comparing_API_Versions_2_and_2.1"&gt;&lt;span class="s2"&gt;API documentation&lt;/span&gt;&lt;/a&gt; lists the operations that are and are not currently supported for unlinked Google Account holders.&lt;/div&gt;
&lt;div&gt;
&lt;br/&gt;
The XML below shows a sample &lt;code&gt;youtube_signup_required&lt;/code&gt; error:&lt;/div&gt;
&lt;pre&gt;&amp;lt;errors&amp;gt;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;lt;error&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;domain&amp;gt;yt:service&amp;lt;/domain&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;code&amp;gt;youtube_signup_required&amp;lt;/code&amp;gt;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;lt;/error&amp;gt;
&amp;lt;/errors&amp;gt;
&lt;/pre&gt;
&lt;div&gt;
&lt;b&gt;User profiles for unlinked Google Account holders&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
A &lt;a href="http://code.google.com/apis/youtube/2.0/developers_guide_protocol_profiles.html"&gt;user profile entry&lt;/a&gt; for a user with an unlinked Google Account differs from a user profile entry for a user with a YouTube account in two ways:&lt;/div&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li1"&gt;An entry for an unlinked Google Account holder contains a &lt;code&gt;&amp;lt;yt:incomplete&amp;gt;&lt;/code&gt; tag. (This tag is not present if the user already has a YouTube channel.) It is useful if you choose to disregard our advice about the &lt;code&gt;youtube_signup_required&lt;/code&gt; error and modify your application to provide a different user experience for users with unlinked Google Accounts.&lt;/li&gt;
&lt;li class="li1"&gt;An entry for an unlinked Google Account holder contains only a few tags as those users can not customize their profile data without first creating a YouTube channel. The &lt;a href="http://code.google.com/apis/youtube/2.0/reference.html#youtube_data_api_tag_entry"&gt;&lt;span class="s4"&gt;&amp;lt;entry&amp;gt;&lt;/span&gt;&lt;/a&gt; tag definition lists the different tags that may appear in a profile entry depending on whether the user has a YouTube account or an unlinked Google Account.&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;div&gt;
&lt;b&gt;Displaying an email address for unlinked Google Account holders&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
In addition to handling the &lt;code&gt;youtube_signup_required&lt;/code&gt; error, your application should also be prepared to display an email address for users with unlinked Google Accounts.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;In Closing&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
If you have reached this point in the blog post, thanks for being a dedicated reader. We recognize that unlinked Google Accounts do introduce a certain level of complexity, but, at the same time, they can also open your application to a much larger audience of users who use Google services but haven’t created YouTube channels yet.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
We also want to note that v2.1 does not deprecate v2.0 since it is a minor revision. Going forward, new features unrelated to unlinked Google Accounts will be added to both v2.0 and v2.1 but not to the (deprecated) v1.0 of the API.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Version 2.1 of the API is now available for testing on &lt;a href="http://apiblog.youtube.com/2008/11/all-worlds-stage.html"&gt;stage.gdata.youtube.com&lt;/a&gt;, and will be released to production in mid-October.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Cheers,&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;i&gt;—Jarek Wilkiewicz, YouTube API Team&lt;/i&gt;&lt;/div&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2443724041307041823-6584573185779666308?l=apiblog.youtube.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/YoutubeApiBlog/~4/UWM7WJtILgU" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2443724041307041823/posts/default/6584573185779666308?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2443724041307041823/posts/default/6584573185779666308?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/YoutubeApiBlog/~3/UWM7WJtILgU/introducing-google-account-support-and.html" title="Introducing Google Account support and YouTube API v2.1" /><author><name>Jarek Wilkiewicz</name><uri>http://www.blogger.com/profile/01311495604558955987</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://1.bp.blogspot.com/_ethn5tD__dY/TAV-hCJd8NI/AAAAAAAAABQ/lmiVxe8TIZk/S220/jarek.jpg" /></author><feedburner:origLink>http://apiblog.youtube.com/2011/10/introducing-google-account-support-and.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkUDRnszfip7ImA9WhdUGEk.&quot;"><id>tag:blogger.com,1999:blog-2443724041307041823.post-5240321965697864165</id><published>2011-10-05T11:44:00.000-07:00</published><updated>2011-10-05T11:44:37.586-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-05T11:44:37.586-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="playlists" /><category scheme="http://www.blogger.com/atom/ns#" term="watchlater" /><title>Support for the Watch Later List</title><content type="html">&lt;br /&gt;
&lt;div style="background-color: transparent;"&gt;
&lt;span id="internal-source-marker_0.619357643648982" style="background-color: transparent; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;YouTube’s &lt;/span&gt;&lt;a href="http://www.google.com/support/youtube/bin/answer.py?answer=1290556"&gt;&lt;span style="background-color: transparent; color: #000099; font-family: Arial; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"&gt;Watch Later&lt;/span&gt;&lt;/a&gt;&lt;span style="background-color: transparent; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt; list is the perfect way to keep track of interesting videos you come across but don’t have time to watch at the moment. Since rolling out that feature on the YouTube website and the embedded players, developers have been asking for ways to interact with the Watch Later list via the YouTube Data API. We’re happy to announce that this is now possible.&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;As explained in our &lt;/span&gt;&lt;a href="http://code.google.com/apis/youtube/2.0/developers_guide_protocol_playlists.html#Retrieving_watch_later_playlist"&gt;&lt;span style="background-color: transparent; color: #000099; font-family: Arial; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"&gt;documentation&lt;/span&gt;&lt;/a&gt;&lt;span style="background-color: transparent; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;, the YouTube Data API treats the Watch Later list like a playlist, and the normal playlist operations (additions, retrievals, modifications) can all be performed on the Watch Later list. While every YouTube user has their own Watch Later list, it’s important to keep in mind that by default it’s a private playlist, so it will not normally be accessible unless you’re making an &lt;/span&gt;&lt;a href="http://code.google.com/apis/youtube/2.0/developers_guide_protocol_authentication.html"&gt;&lt;span style="background-color: transparent; color: #000099; font-family: Arial; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"&gt;authenticated&lt;/span&gt;&lt;/a&gt;&lt;span style="background-color: transparent; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt; request as the list’s owner.&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;If you have any questions about using the Data API to work with the Watch Later list, please let us know in our &lt;/span&gt;&lt;a href="http://code.google.com/apis/youtube/forum/discussion.html"&gt;&lt;span style="background-color: transparent; color: #000099; font-family: Arial; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"&gt;developer forum&lt;/span&gt;&lt;/a&gt;&lt;span style="background-color: transparent; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;.&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;Cheers,&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; font-family: Arial; font-size: 11pt; font-style: italic; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;—Jeff Posnick, YouTube API Team&lt;/span&gt;&lt;/div&gt;
&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2443724041307041823-5240321965697864165?l=apiblog.youtube.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/YoutubeApiBlog/~4/0o53gpsgwkg" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2443724041307041823/posts/default/5240321965697864165?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2443724041307041823/posts/default/5240321965697864165?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/YoutubeApiBlog/~3/0o53gpsgwkg/support-for-watch-later-list.html" title="Support for the Watch Later List" /><author><name>YouTube Staff</name><uri>http://www.blogger.com/profile/01201862738371775953</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><feedburner:origLink>http://apiblog.youtube.com/2011/10/support-for-watch-later-list.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DU8GQHsyfip7ImA9WhdUEk4.&quot;"><id>tag:blogger.com,1999:blog-2443724041307041823.post-9004109167934148341</id><published>2011-09-28T12:23:00.000-07:00</published><updated>2011-09-28T12:23:41.596-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-09-28T12:23:41.596-07:00</app:edited><title>YouTube API and the News</title><content type="html">&lt;div&gt;
If you love to follow the news as much as you love to code, then &lt;a href="http://hackshackers.com/"&gt;&lt;span class="s1"&gt;Hacks/Hackers&lt;/span&gt;&lt;/a&gt;, an international organization that sits at the nexus of journalism and technology, is for you. Its mission is to create a network of journalists (“hacks”) and technologists (“hackers”) to rethink the future of news and information. Recently, YouTube and &lt;a href="http://www.linktv.org/"&gt;&lt;span class="s1"&gt;LinkTV&lt;/span&gt;&lt;/a&gt; hosted a Hacks/Hackers meetup at Google’s San Francisco office. Together with four developer partners, we demoed web applications used by reporters and built using the YouTube API. &amp;nbsp;The presentation started with a YouTube API overview, followed by demos of the following:&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.youtube.com/direct"&gt;&lt;span class="s3"&gt;YouTube Direct&lt;/span&gt;&lt;/a&gt; is an open source, user-generated content video submission and moderation platform.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.storyful.com/"&gt;&lt;span class="s3"&gt;Storyful&lt;/span&gt;&lt;/a&gt; was founded by journalists to discover the smartest conversations about world events and raise up the authentic voices on the big stories.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.storify.com/"&gt;&lt;span class="s3"&gt;Storify&lt;/span&gt;&lt;/a&gt; lets users make stories using social media. With Storify you can drag-and-drop tweets, YouTube videos, Flickr images, Facebook updates, etc. and add your own narrative to tell a story.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.shortform.com/"&gt;&lt;span class="s3"&gt;Shortform&lt;/span&gt;&lt;/a&gt; is a new social entertainment medium, delivering continuous channels containing the best videos from anywhere on the web, curated by our community of video DJs (VJs).&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.goanimate.com/"&gt;&lt;span class="s3"&gt;GoAnimate&lt;/span&gt;&lt;/a&gt; was founded to provide an outlet for everyone's creative ideas. In just 10 minutes, you can make fun animated videos without having to draw.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://linktv.org/"&gt;&lt;span class="s3"&gt;Link TV&lt;/span&gt;&lt;/a&gt; recently launched &lt;a href="http://news.linktv.org/"&gt;&lt;span class="s1"&gt;Link News&lt;/span&gt;&lt;/a&gt;, an international news website that sifts through YouTube's library of news content to deliver breaking news and hidden stories to a wider audience.&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
We would like to share the &lt;a href="http://www.youtube.com/watch?v=lVQ1EKR1v1I"&gt;&lt;span class="s1"&gt;video&lt;/span&gt;&lt;/a&gt; recording of the event with you so that you can learn more. If you want to discover more about Hacks/Hackers, you can find the list of local chapters &lt;a href="http://hackshackers.com/chapters/"&gt;&lt;span class="s1"&gt;here&lt;/span&gt;&lt;/a&gt;. &amp;nbsp;&lt;/div&gt;
&lt;br /&gt;
&lt;iframe allowfullscreen="" frameborder="0" height="390" src="http://www.youtube.com/embed/lVQ1EKR1v1I" width="640"&gt;&lt;/iframe&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;
Cheers, &lt;br/&gt;
&lt;i&gt;
—Jarek Wilkiewicz, YouTube API Team
&lt;/i&gt;
&lt;/div&gt;
&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2443724041307041823-9004109167934148341?l=apiblog.youtube.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/YoutubeApiBlog/~4/aPmEkdjsQEs" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2443724041307041823/posts/default/9004109167934148341?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2443724041307041823/posts/default/9004109167934148341?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/YoutubeApiBlog/~3/aPmEkdjsQEs/youtube-api-and-news.html" title="YouTube API and the News" /><author><name>Jarek Wilkiewicz</name><uri>http://www.blogger.com/profile/01311495604558955987</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://1.bp.blogspot.com/_ethn5tD__dY/TAV-hCJd8NI/AAAAAAAAABQ/lmiVxe8TIZk/S220/jarek.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://img.youtube.com/vi/lVQ1EKR1v1I/default.jpg" height="72" width="72" /><feedburner:origLink>http://apiblog.youtube.com/2011/09/youtube-api-and-news.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUUMQHo9cSp7ImA9WhdWFUk.&quot;"><id>tag:blogger.com,1999:blog-2443724041307041823.post-5908568031137942133</id><published>2011-09-08T22:47:00.000-07:00</published><updated>2011-09-08T22:48:01.469-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-09-08T22:48:01.469-07:00</app:edited><title>Getting 3D Content on YouTube</title><content type="html">
&lt;div&gt;
Over the last few months, we've been steadily rolling out features for &lt;a href="http://www.youtube.com/3d"&gt;YouTube 3D&lt;/a&gt;. Early this year, we announced support for the &lt;a href="http://www.lgnewsroom.com/newsroom/products/61026"&gt;LG Optimus 3D&lt;/a&gt; and &lt;a href="http://pressroom.nvidia.com/easyir/customrel.do?easyirid=a0d622ce9f579f09&amp;amp;version=live&amp;amp;releasejsp=release_157&amp;amp;xhtml=true&amp;amp;prid=760926"&gt;NVIDIA 3D Vision&lt;/a&gt;, and this month we announced support for Samsung 3D TVs. And we'll keep rolling out to more platforms to make it easier for everyone to get access to user-generated 3D content.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Many readers have been asking how to upload content. 3D uploads to YouTube will work across all supported devices, from &lt;a href="http://www.googlestore.com/You+Tube/Accessories/YouTube+3D+Paper+Glasses+-+Pack+of+10.axd"&gt;red/blue&lt;/a&gt; glasses to the latest 3D televisions.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
There are two ways to upload content to YouTube in 3D. If you're just uploading one or two videos, upload content in any &lt;a href="http://www.google.com/support/youtube/bin/answer.py?answer=55744"&gt;supported format&lt;/a&gt; and then edit the video settings to tell us that it's 3D. From a video's watch page, select "edit info", then "3D Video". This will only work on videos you've uploaded yourself.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
If you're using the API to upload 3D videos, you'll want to format your video in a certain way. YouTube supports automatic detection of 3D content with certain file formats. If you upload with a format that supports automatic detection, we'll automatically set the correct settings so that your video shows up automatically in 3D and shows up properly on phones, TVs, and PCs.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
In both cases, YouTube requires that content be uploaded in&lt;a href="http://www.google.com/support/youtube/bin/answer.py?answer=157640"&gt; Side by Side L/R with each frame squashed 50% and preferably with a 16:9 aspect ratio&lt;/a&gt;. The following formats are automatically detected when uploaded:&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.webmproject.org/"&gt;WebM&lt;/a&gt; with the StereoMode setting set to &lt;code&gt;STEREOMODE_TYPE_LEFT_RIGHT&lt;/code&gt;.
Note that other modes, including alternate track, are not supported.&lt;/li&gt;
&lt;li&gt;H264 AVC with Supplementary Enhancement Information, Frame Packing Arrangement set.
If you are using &lt;a href="http://www.videolan.org/developers/x264.html"&gt;x264&lt;/a&gt;, the argument &lt;code&gt;--frame-packing=3&lt;/code&gt; will set this correctly. In &lt;a href="http://handbrake.fr/"&gt;Handbrake&lt;/a&gt; you can set this in "x264 Advanced Option String".
&lt;/li&gt;
&lt;/ul&gt;
Be sure to get the squashing and positioning exactly correct. 3D content won't look right if video formatting is off by even a pixel or two.&lt;/div&gt;
&lt;div&gt;
We're excited to see what you'll show us! Here's an &lt;a href="http://xkcd.com/941/"&gt;idea&lt;/a&gt; from a favorite webcomic of ours.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Cheers,&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;i&gt;—Jonathan Huang, YouTube 3D Product Manager&lt;/i&gt;&lt;/div&gt;
&lt;div&gt;
&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/div&gt;
&lt;div&gt;
P.S.—We recently worked with some folks to help them get 3D Mars footage from 1979 restored from the Viking landers. Check it out!&lt;/div&gt;
&lt;br/&gt;
&lt;iframe width="640" height="390" src="http://www.youtube.com/embed/ubRHSg5daMs" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;

&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2443724041307041823-5908568031137942133?l=apiblog.youtube.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/YoutubeApiBlog/~4/FSOTUWuthP0" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2443724041307041823/posts/default/5908568031137942133?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2443724041307041823/posts/default/5908568031137942133?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/YoutubeApiBlog/~3/FSOTUWuthP0/getting-3d-content-on-youtube.html" title="Getting 3D Content on YouTube" /><author><name>Jarek Wilkiewicz</name><uri>http://www.blogger.com/profile/01311495604558955987</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://1.bp.blogspot.com/_ethn5tD__dY/TAV-hCJd8NI/AAAAAAAAABQ/lmiVxe8TIZk/S220/jarek.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://img.youtube.com/vi/ubRHSg5daMs/default.jpg" height="72" width="72" /><feedburner:origLink>http://apiblog.youtube.com/2011/09/getting-3d-content-on-youtube.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0IDRXs_fCp7ImA9WhdXE00.&quot;"><id>tag:blogger.com,1999:blog-2443724041307041823.post-814251531769638654</id><published>2011-08-25T12:46:00.000-07:00</published><updated>2011-08-25T12:46:14.544-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-08-25T12:46:14.544-07:00</app:edited><title>Auth Tokens &amp; Unlinked YouTube Accounts</title><content type="html">&lt;br /&gt;
&lt;div style="background-color: transparent;"&gt;
&lt;span id="internal-source-marker_0.9764357751701027" style="background-color: transparent; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;Dedicated readers of this blog will remember our post from a few months back entitled “&lt;/span&gt;&lt;a href="http://apiblog.youtube.com/2011/03/clientlogin-fail.html"&gt;&lt;span style="background-color: transparent; color: #000099; font-family: Arial; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"&gt;ClientLogin #FAIL&lt;/span&gt;&lt;/a&gt;&lt;span style="background-color: transparent; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;”. In it, we laid out a number of scenarios in which attempts to use ClientLogin authentication would result in an error (and urged developers to move off of ClientLogin in general). The first failure scenario involved users whose YouTube account is not &lt;/span&gt;&lt;a href="http://youtube-global.blogspot.com/2010/07/connecting-google-account-to-your-older.html"&gt;&lt;span style="background-color: transparent; color: #000099; font-family: Arial; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"&gt;linked to a Google Account&lt;/span&gt;&lt;/a&gt;&lt;span style="background-color: transparent; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;. Fortunately, the number of YouTube accounts in that unlinked state has decreased greatly over the past few months, so failures of that sort with ClientLogin are not as common now.&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;There’s another related failure scenario that we want to bring to everyone’s attention, this time involving both &lt;/span&gt;&lt;a href="http://code.google.com/apis/youtube/2.0/developers_guide_protocol_authsub.html"&gt;&lt;span style="background-color: transparent; color: #000099; font-family: Arial; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"&gt;AuthSub&lt;/span&gt;&lt;/a&gt;&lt;span style="background-color: transparent; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt; and &lt;/span&gt;&lt;a href="http://code.google.com/apis/youtube/2.0/developers_guide_protocol_oauth.html"&gt;&lt;span style="background-color: transparent; color: #000099; font-family: Arial; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"&gt;OAuth&lt;/span&gt;&lt;/a&gt;&lt;span style="background-color: transparent; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt; (collectively referred to here as “auth”) tokens. &lt;/span&gt;&lt;span style="background-color: transparent; font-family: Arial; font-size: 11pt; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;Starting on Wednesday, August 31&lt;/span&gt;&lt;span style="background-color: transparent; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;, if your code attempts to use an auth token that was generated for an unlinked YouTube account, your request will fail with an &lt;/span&gt;&lt;span style="background-color: transparent; font-family: Arial; font-size: 11pt; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;HTTP 401 response code&lt;/span&gt;&lt;span style="background-color: transparent; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt; indicating that the token is invalid.&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;It’s important to note that what determines when the token is invalid is whether the YouTube account was linked &lt;/span&gt;&lt;span style="background-color: transparent; font-family: Arial; font-size: 11pt; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;at the time the initial auth token was generated&lt;/span&gt;&lt;span style="background-color: transparent; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;. For example, if your code generated the auth token for an unlinked YouTube account on March 1, and then the user linked their YouTube and Google accounts on March 2, the auth token will still be considered invalid.&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;On March 31 we started to enforce the need to have a linked Google Account as part of the AuthSub and OAuth login flow, meaning that it was impossible to generate an auth token for an unlinked YouTube account after that date. So this change can only affect auth tokens generated before March 31 of this year.&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;While auth tokens normally don’t expire, users have the option of &lt;/span&gt;&lt;a href="https://www.google.com/accounts/IssuedAuthSubTokens"&gt;&lt;span style="background-color: transparent; color: #000099; font-family: Arial; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"&gt;manually revoking them&lt;/span&gt;&lt;/a&gt;&lt;span style="background-color: transparent; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;. If your code uses a revoked token, you’ll also get back an HTTP 401 response. If you’re using a &lt;/span&gt;&lt;a href="http://code.google.com/apis/youtube/code.html"&gt;&lt;span style="background-color: transparent; color: #000099; font-family: Arial; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"&gt;client library&lt;/span&gt;&lt;/a&gt;&lt;span style="background-color: transparent; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;, it will generate an exception to indicate the failure. It’s a best practice to make sure that your code handles invalid token errors by asking your user to go through the AuthSub or OAuth login flow again, storing the new token value and discarding the old one in the process.&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;If you have any questions about YouTube API authentication, please let us know in our &lt;/span&gt;&lt;a href="http://code.google.com/apis/youtube/forum/discussion.html"&gt;&lt;span style="background-color: transparent; color: #000099; font-family: Arial; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"&gt;developer forum&lt;/span&gt;&lt;/a&gt;&lt;span style="background-color: transparent; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;.&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;Cheers,&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; font-family: Arial; font-size: 11pt; font-style: italic; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;—Jeff Posnick, YouTube API Team&lt;/span&gt;&lt;/div&gt;
&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2443724041307041823-814251531769638654?l=apiblog.youtube.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/YoutubeApiBlog/~4/5ibnT5ofAj0" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2443724041307041823/posts/default/814251531769638654?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2443724041307041823/posts/default/814251531769638654?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/YoutubeApiBlog/~3/5ibnT5ofAj0/auth-tokens-unlinked-youtube-accounts.html" title="Auth Tokens &amp; Unlinked YouTube Accounts" /><author><name>YouTube Staff</name><uri>http://www.blogger.com/profile/01201862738371775953</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><feedburner:origLink>http://apiblog.youtube.com/2011/08/auth-tokens-unlinked-youtube-accounts.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkUDQ3o8cCp7ImA9WhdXEU0.&quot;"><id>tag:blogger.com,1999:blog-2443724041307041823.post-8395004044795156678</id><published>2011-08-23T07:04:00.000-07:00</published><updated>2011-08-23T07:04:32.478-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-08-23T07:04:32.478-07:00</app:edited><title>The New CodeIgniter PHP Client Library</title><content type="html">&lt;br /&gt;
&lt;div style="background-color: transparent;"&gt;
&lt;span style="font-family: inherit;"&gt;&lt;span id="internal-source-marker_0.7227627334650606" style="background-color: transparent; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;While the YouTube Data API’s &lt;/span&gt;&lt;a href="http://en.wikipedia.org/wiki/Representational_State_Transfer"&gt;&lt;span style="background-color: transparent; color: #000099; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"&gt;RESTful&lt;/span&gt;&lt;/a&gt;&lt;span style="background-color: transparent; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt; nature means that talking to YouTube is as easy as making an HTTP request, using a &lt;/span&gt;&lt;a href="http://code.google.com/apis/youtube/code.html"&gt;&lt;span style="background-color: transparent; color: #000099; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"&gt;client library&lt;/span&gt;&lt;/a&gt;&lt;span style="background-color: transparent; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt; is a great way to improve your YouTube Data API productivity and write code using your preferred language’s native features. PHP developers using the &lt;/span&gt;&lt;a href="http://www.zend.com/"&gt;&lt;span style="background-color: transparent; color: #000099; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"&gt;Zend framework&lt;/span&gt;&lt;/a&gt;&lt;span style="background-color: transparent; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt; have had access to a &lt;/span&gt;&lt;a href="http://code.google.com/apis/youtube/2.0/developers_guide_php.html"&gt;&lt;span style="background-color: transparent; color: #000099; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"&gt;client library&lt;/span&gt;&lt;/a&gt;&lt;span style="background-color: transparent; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt; for a while now, and that library continues to be a supported way of using the YouTube API. But if you’re a PHP developer using the &lt;/span&gt;&lt;a href="http://codeigniter.com/"&gt;&lt;span style="background-color: transparent; color: #000099; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"&gt;CodeIgniter framework&lt;/span&gt;&lt;/a&gt;&lt;span style="background-color: transparent; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;, you’ll be happy to hear that there’s now an alternative client library available just for you.&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;A third-party developer, &lt;/span&gt;&lt;a href="http://twitter.com/jimdoescode"&gt;&lt;span style="background-color: transparent; color: #000099; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"&gt;Jim Saunders&lt;/span&gt;&lt;/a&gt;&lt;span style="background-color: transparent; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;, has developed a YouTube Data API library specifically for the CodeIgniter framework. You download the library on &lt;/span&gt;&lt;a href="https://github.com/jimdoescode/CodeIgniter-YouTube-API-Library"&gt;&lt;span style="background-color: transparent; color: #000099; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"&gt;GitHub&lt;/span&gt;&lt;/a&gt;&lt;span style="background-color: transparent; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;, and read &lt;/span&gt;&lt;a href="http://code.google.com/apis/youtube/articles/codeigniter_library.html"&gt;&lt;span style="background-color: transparent; color: #000099; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"&gt;the article&lt;/span&gt;&lt;/a&gt;&lt;span style="background-color: transparent; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt; he’s written to find out how to get started with some sample code.&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;While Jim wrote and still maintains the library, please feel free to ask any questions about the YouTube API in general in our &lt;/span&gt;&lt;a href="http://groups.google.com/group/youtube-api-gdata"&gt;&lt;span style="background-color: transparent; color: #000099; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"&gt;developer forum&lt;/span&gt;&lt;/a&gt;&lt;span style="background-color: transparent; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;!&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;Cheers,&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; font-size: 11pt; font-style: italic; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;—Jeff Posnick, YouTube API Team&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2443724041307041823-8395004044795156678?l=apiblog.youtube.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/YoutubeApiBlog/~4/XUBiES5f04k" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2443724041307041823/posts/default/8395004044795156678?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2443724041307041823/posts/default/8395004044795156678?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/YoutubeApiBlog/~3/XUBiES5f04k/new-codeigniter-php-client-library.html" title="The New CodeIgniter PHP Client Library" /><author><name>YouTube Staff</name><uri>http://www.blogger.com/profile/01201862738371775953</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><feedburner:origLink>http://apiblog.youtube.com/2011/08/new-codeigniter-php-client-library.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkUHQXo7eCp7ImA9WhdRFk0.&quot;"><id>tag:blogger.com,1999:blog-2443724041307041823.post-7623946431243296305</id><published>2011-08-05T22:04:00.000-07:00</published><updated>2011-08-05T22:23:50.400-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-08-05T22:23:50.400-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="theme" /><category scheme="http://www.blogger.com/atom/ns#" term="embedding" /><category scheme="http://www.blogger.com/atom/ns#" term="color" /><category scheme="http://www.blogger.com/atom/ns#" term="player" /><category scheme="http://www.blogger.com/atom/ns#" term="embed" /><title>Coming Soon: The Dark Player for Embeds</title><content type="html">You may have noticed that we’ve changed the look of the player on YouTube. You may even have noticed that we’ve been experimenting with changing the look of embedded players too. Coming up on August 10, all embeds will automatically be updated to the new "dark player":&lt;br /&gt;&lt;br /&gt;&lt;iframe width="560" height="349" src="http://www.youtube.com/embed/9h1swNWgP8Q?theme=dark&amp;color=red" frameborder="0" allowfullscreen=""&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;Although we’re very excited about this change, which comes after months of design, research, and experimentation, we realize that some embedders would prefer a lighter color to match a lighter webpage, so we’re also announcing a few other themes that we’ll be making available. We also realize that some embedders would prefer something more mild than our use of red, so we’re happy to introduce a "desaturated" color option without any bright colors at all.  (Note: Using the desaturated color disables the &lt;a href="http://apiblog.youtube.com/2011/06/next-step-in-embedded-videos-hd-preview.html"&gt;modestbranding&lt;/a&gt; option.)&lt;br /&gt;&lt;br /&gt;To pick an alternate theme, pass in values for the "theme" and "color" &lt;a href="http://code.google.com/apis/youtube/player_parameters.html"&gt;player parameters&lt;/a&gt;.  For instance, if you’d like to keep the traditional colors, you can pass parameters such as:&lt;pre&gt;&amp;lt;iframe width="560" height="349"&lt;br /&gt;  src="http://www.youtube.com/embed/9h1swNWgP8Q?theme=light&amp;color=red"&lt;br /&gt;  frameborder="0" allowfullscreen&amp;gt;&amp;lt;/iframe&amp;gt;&lt;/pre&gt;Here are all the new themes, including the new default:&lt;br /&gt;&lt;br /&gt;&lt;img src="https://lh3.googleusercontent.com/_Cvntm1ZghG-qoiXL-boVbTgkpBcgHFXKv7Ai-feWCTSO7ZlEFpKfc4OiBlIvIAJ5j6g6_4pzhzTjPkD_rcFi1xN0S7m4od2TV-UM7lnJYmrIsduLfE" width="691" height="245" /&gt;&lt;br /&gt;&lt;br /&gt;If you have any questions about this change, you can ask them on our &lt;a href="http://code.google.com/apis/youtube/forum/"&gt;forum&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Cheers,&lt;br /&gt;&amp;mdash;Shannon -jj Behrens, YouTube API Team&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2443724041307041823-7623946431243296305?l=apiblog.youtube.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/YoutubeApiBlog/~4/on_r2tBbBYs" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2443724041307041823/posts/default/7623946431243296305?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2443724041307041823/posts/default/7623946431243296305?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/YoutubeApiBlog/~3/on_r2tBbBYs/coming-soon-dark-player-for-embeds.html" title="Coming Soon: The Dark Player for Embeds" /><author><name>YouTube Staff</name><uri>http://www.blogger.com/profile/01201862738371775953</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://img.youtube.com/vi/9h1swNWgP8Q/default.jpg" height="72" width="72" /><feedburner:origLink>http://apiblog.youtube.com/2011/08/coming-soon-dark-player-for-embeds.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Dk4NR38zeSp7ImA9WhdSGEU.&quot;"><id>tag:blogger.com,1999:blog-2443724041307041823.post-6541852110949904691</id><published>2011-07-28T13:01:00.001-07:00</published><updated>2011-07-28T13:29:56.181-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-07-28T13:29:56.181-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="blackops" /><category scheme="http://www.blogger.com/atom/ns#" term="googleio" /><category scheme="http://www.blogger.com/atom/ns#" term="io2011" /><category scheme="http://www.blogger.com/atom/ns#" term="googlegamedev" /><category scheme="http://www.blogger.com/atom/ns#" term="oauth" /><title>YouTube @ Google I/O: Your Game + YouTube = Instant Community</title><content type="html">If you have ever wondered how to generate excitement around your video game using YouTube, we would like to share a few hints from the makers of &lt;a href="http://www.callofduty.com/blackops"&gt;Call of Duty: Black Ops&lt;/a&gt;. They included the ability to upload gameplay video clips directly from the game to YouTube using the YouTube &lt;a href="http://code.google.com/apis/youtube/2.0/developers_guide_protocol_uploading_videos.html"&gt;upload APIs&lt;/a&gt;. This fourth, and final installment of &lt;a href="http://www.google.com/events/io/2011"&gt;Google I/O 2011&lt;/a&gt; session videos covers a game-focused presentation entitled &lt;a href="http://www.google.com/events/io/2011/sessions/your-game-youtube-instant-community.html"&gt;“Your Game + YouTube = Instant Community”&lt;/a&gt; by Jarek Wilkiewicz from the YouTube Developer Relations team, Doug Muir, Technical Director from &lt;a href="http://www.treyarch.com/"&gt;Activision&lt;/a&gt;, Cliff Samaniego and Kenji Arai from the YouTube Strategic Partner Management team. &lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;The presentation gives an overview of YouTube platform features relevant to the gaming audience and highlights the benefits that integrating gameplay video uploads can bring into your title. The session also covers the good, the bad and the ugly of the integration project that &lt;a href="http://www.callofduty.com/blackops"&gt;Black Ops&lt;/a&gt; team had undertaken on a compressed timeframe. Finally, we show a couple of examples of user-generated gameplay video clips from Blacks Ops. &lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;Since hindsight is 20/20, especially as it relates to software projects, the presentation also features a small demo of &lt;a href="http://code.google.com/apis/accounts/docs/OAuth2ForDevices.html"&gt;OAuth 2.0 for Devices&lt;/a&gt; authorization flow. OAuth 2.0 for Devices streamlines authorization process for embedded devices such as gaming consoles. While the technology was not yet released at the time of Activision’s integration, it is now in Beta. Another example of technology not initially introduced in the integration is &lt;a href="http://www.webmproject.org/"&gt;WebM/VP8&lt;/a&gt; encoding. If you watch the video you will learn about why the video clips were restricted in size and how WebM helps with solving this issue. &lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;The full video of the session is embedded below, and you can find the slides &lt;a href="http://www.google.com/events/io/2011/static/presofiles/gamedev_your_game_plus_youtube_equals_instant_community.pdf"&gt;here&lt;/a&gt;.&lt;br /&gt; &lt;br /&gt;&lt;iframe height="390" width="640" src="http://www.youtube.com/embed/9cBBHyZWADo"&gt;&lt;/iframe&gt;&lt;br /&gt; &lt;br /&gt;&lt;/p&gt;&lt;p&gt;Cheers,&lt;/p&gt;&lt;p&gt;—Jarek Wilkiewicz, YouTube API Team&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2443724041307041823-6541852110949904691?l=apiblog.youtube.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/YoutubeApiBlog/~4/-rxcLxsOzw4" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2443724041307041823/posts/default/6541852110949904691?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2443724041307041823/posts/default/6541852110949904691?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/YoutubeApiBlog/~3/-rxcLxsOzw4/youtube-google-io-your-game-youtube.html" title="YouTube @ Google I/O: Your Game + YouTube = Instant Community" /><author><name>Jarek Wilkiewicz</name><uri>http://www.blogger.com/profile/01311495604558955987</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://1.bp.blogspot.com/_ethn5tD__dY/TAV-hCJd8NI/AAAAAAAAABQ/lmiVxe8TIZk/S220/jarek.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://img.youtube.com/vi/9cBBHyZWADo/default.jpg" height="72" width="72" /><feedburner:origLink>http://apiblog.youtube.com/2011/07/youtube-google-io-your-game-youtube.html</feedburner:origLink></entry></feed>

