<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Google Data &#187; YouTube Staff</title>
	<atom:link href="/author/youtube-staff/feed/" rel="self" type="application/rss+xml" />
	<link>https://googledata.org</link>
	<description>Everything Google: News, Products, Services, Content, Culture</description>
	<lastBuildDate>Thu, 19 Mar 2015 18:59:20 +0000</lastBuildDate>
	<language>en-US</language>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.7.5</generator>
	<item>
		<title>PLaylists: now with more PL</title>
		<link>https://googledata.org/youtube-api/playlists-now-with-more-pl/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=playlists-now-with-more-pl</link>
		<comments>https://googledata.org/youtube-api/playlists-now-with-more-pl/#comments</comments>
		<pubDate>Wed, 22 Aug 2012 14:51:00 +0000</pubDate>
		<dc:creator><![CDATA[YouTube Staff]]></dc:creator>
				<category><![CDATA[Youtube API]]></category>
		<category><![CDATA[youtube docs]]></category>
		<category><![CDATA[youtube integration]]></category>
		<category><![CDATA[youtube video]]></category>

		<guid isPermaLink="false">https://googledata.org/?guid=cf0992585df9b236ebfa92cf3ad21c07</guid>
		<description><![CDATA[<b><span>If you ever pay attention to your browser&#8217;s location bar, you may have noticed that, for a while now, the YouTube.com website has used playlist IDs that are prefixed with the characters &#8220;PL&#8221; when constructing the URLs for playlist pages. </span><a href="http://www.youtube.com/playlist?list=PL72CF07D200AA2AFA"><span>http://www.youtube.com/playlist?list=PL72CF07D200AA2AFA</span></a><span> is one example of that. This practice of prepended playlist IDs previously didn&#8217;t extend over to the Data API&#8212;</span><span>PL72CF07D200AA2AFA</span><span> would not have been recognized as a valid playlist ID, but </span><span>72CF07D200AA2AFA</span><span> would have.</span><br /><span></span><br /><span>Starting later today, Wednesday, August 22, the YouTube Data API will accept playlist IDs with the &#8220;PL&#8221; prefix whenever they&#8217;re used as metadata or in </span><a href="https://developers.google.com/youtube/2.0/developers_guide_protocol_playlists"><span>API request URLs</span></a><span>. In most </span><a href="https://stage.gdata.youtube.com/feeds/api/users/googledevelopers/playlists?v=2&#38;alt=json&#38;prettyprint=true"><span>responses</span></a><span>, the API will return playlist IDs with &#8220;PL&#8221; prefixes. The one exception is that for the next few days, </span><a href="https://developers.google.com/youtube/2.0/developers_guide_protocol_playlist_search"><span>searching for playlists</span></a><span> will return playlist ids without the &#8220;PL&#8221; prefix. This will change on Tuesday, August 28, at which point the &#8220;PL&#8221; prefix will be included in playlist search results as well.</span><br /><span></span><br /><span>While we will continue to support using unprefixed playlist IDs as metadata or in API request URLs for the time being, at some point in the future we may require the &#8220;PL&#8221; prefix to be used whenever a playlist ID is provided. We&#8217;ll provide additional guidance if we do decide to stop supporting requests with unprefixed playlist IDs.</span><br /><span></span><br /><span>This change should be backwards compatible, but if you&#8217;re currently manipulating or comparing the playlist IDs that are returned via the API in any way, or making any assumptions about the length of the ID (which you shouldn't be), please make sure that your code will handle IDs that contain the &#8220;PL&#8221; prefix.</span><br /><span></span><br /><span>If you have any questions about this changes, please let us know in our </span><a href="https://groups.google.com/forum/#!forum/youtube-api-gdata"><span>developer forum</span></a><span>.</span><br /><span></span><br /><span>Cheers,</span><br /><span>&#8212;</span><a href="https://plus.google.com/117780118136555864520"><span>Jeffrey Posnick</span></a><span>,</span><a href="https://plus.google.com/100270142261733078201"><span> </span><span>YouTube API Team</span></a></b>]]></description>
				<content:encoded><![CDATA[<b id="internal-source-marker_0.121969451662153" style="font-weight: normal;"><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">If you ever pay attention to your browser’s location bar, you may have noticed that, for a while now, the YouTube.com website has used playlist IDs that are prefixed with the characters “PL” when constructing the URLs for playlist pages. </span><a href="http://www.youtube.com/playlist?list=PL72CF07D200AA2AFA"><span style="color: #1155cc; font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">http://www.youtube.com/playlist?list=PL72CF07D200AA2AFA</span></a><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"> is one example of that. This practice of prepended playlist IDs previously didn’t extend over to the Data API—</span><span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">PL72CF07D200AA2AFA</span><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"> would not have been recognized as a valid playlist ID, but </span><span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">72CF07D200AA2AFA</span><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"> would have.</span><br /><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"></span><br /><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">Starting later today, Wednesday, August 22, the YouTube Data API will accept playlist IDs with the “PL” prefix whenever they’re used as metadata or in </span><a href="https://developers.google.com/youtube/2.0/developers_guide_protocol_playlists"><span style="color: #1155cc; font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">API request URLs</span></a><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">. In most </span><a href="https://stage.gdata.youtube.com/feeds/api/users/googledevelopers/playlists?v=2&amp;alt=json&amp;prettyprint=true"><span style="color: #1155cc; font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">responses</span></a><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">, the API will return playlist IDs with “PL” prefixes. The one exception is that for the next few days, </span><a href="https://developers.google.com/youtube/2.0/developers_guide_protocol_playlist_search"><span style="color: #1155cc; font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">searching for playlists</span></a><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"> will return playlist ids without the “PL” prefix. This will change on Tuesday, August 28, at which point the “PL” prefix will be included in playlist search results as well.</span><br /><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"></span><br /><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">While we will continue to support using unprefixed playlist IDs as metadata or in API request URLs for the time being, at some point in the future we may require the “PL” prefix to be used whenever a playlist ID is provided. We’ll provide additional guidance if we do decide to stop supporting requests with unprefixed playlist IDs.</span><br /><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"></span><br /><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">This change should be backwards compatible, but if you’re currently manipulating or comparing the playlist IDs that are returned via the API in any way, or making any assumptions about the length of the ID (which you shouldn't be), please make sure that your code will handle IDs that contain the “PL” prefix.</span><br /><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"></span><br /><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">If you have any questions about this changes, please let us know in our </span><a href="https://groups.google.com/forum/#!forum/youtube-api-gdata"><span style="color: #1155cc; font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">developer forum</span></a><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">.</span><br /><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"></span><br /><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">Cheers,</span><br /><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">—</span><a href="https://plus.google.com/117780118136555864520"><span style="color: #1155cc; font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">Jeffrey Posnick</span></a><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">,</span><a href="https://plus.google.com/100270142261733078201"><span style="color: black; font-family: Arial; font-size: 15px; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="color: #1155cc; font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">YouTube API Team</span></a></b>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/youtube-api/playlists-now-with-more-pl/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="" length="" type="" />
		</item>
		<item>
		<title>Build Compelling Experiences Using YouTube Embeds With The IFrame Player API</title>
		<link>https://googledata.org/youtube-api/build-compelling-experiences-using-youtube-embeds-with-the-iframe-player-api/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=build-compelling-experiences-using-youtube-embeds-with-the-iframe-player-api</link>
		<comments>https://googledata.org/youtube-api/build-compelling-experiences-using-youtube-embeds-with-the-iframe-player-api/#comments</comments>
		<pubDate>Fri, 27 Jul 2012 22:44:00 +0000</pubDate>
		<dc:creator><![CDATA[YouTube Staff]]></dc:creator>
				<category><![CDATA[Youtube API]]></category>
		<category><![CDATA[youtube docs]]></category>
		<category><![CDATA[youtube integration]]></category>
		<category><![CDATA[youtube video]]></category>

		<guid isPermaLink="false">https://googledata.org/?guid=782b7c1ad86c4f6af07da593bf05912b</guid>
		<description><![CDATA[<span>If you've hesitated to use the </span><span>&#60;iframe&#62;</span><span> player in your app due to the </span><a href="http://apiblog.youtube.com/2011/01/introducing-javascript-player-api-for.html">IFrame Player API's</a><span> experimental status, then wait no more. We've removed that API's 'experimental' tag, which means the API is production-ready and is covered by YouTube's </span><a href="http://apiblog.youtube.com/2012/04/update-to-our-deprecation-policy.html">deprecation policy</a><span>. Since the </span><a href="http://apiblog.youtube.com/2010/07/new-way-to-embed-youtube-videos.html"><span>&#60;iframe&#62; embed</span></a><span> is the default way of sharing YouTube videos on the Web, the IFrame Player API is now the recommended mechanism to control video playback behavior in your Web applications.</span><br /><br />To provide a consistent developer experience with the <a href="https://developers.google.com/youtube/youtube_upload_widget">YouTube Upload Widget</a>, we&#8217;ve changed the the URL for loading the IFrame Player API code to <a href="https://www.youtube.com/iframe_api"><span>https://www.youtube.com/iframe_api</span></a>. The old URL (<span>http://www.youtube.com/player_api</span>) is now deprecated, though it will continue to work. Similarly, the iframe API initialization callback name has been changed to <span>onYouTubeIframeAPIReady</span> from <span>onYouTubePlayerAPIReady</span>, also for consistency with the YouTube Upload Widget. The old callback name, <span>onYouTubePlayerAPIReady</span>, is now deprecated as well. If your app uses both the YouTube Upload Widget as well as the IFrame Player API, you only need to include the script once and handle a single initialization callback.<br /><br />Going forward, we'll continue making improvements to the IFrame API and make it work better with mobile platforms. As before, you can find the details about the API in our <a href="https://developers.google.com/youtube/iframe_api_reference">documentation</a> and ask questions about it on our <a href="https://developers.google.com/youtube/forum/discussion">developer forum</a>.<br /><br />Cheers,<br /><i>--Jarek Wilkiewicz, YouTube API Team</i>]]></description>
				<content:encoded><![CDATA[<span style="background-color: white;">If you've hesitated to use the </span><span style="background-color: white; font-family: 'Courier New', Courier, monospace;">&lt;iframe&gt;</span><span style="background-color: white;"> player in your app due to the </span><a href="http://apiblog.youtube.com/2011/01/introducing-javascript-player-api-for.html" style="background-color: white;">IFrame Player API's</a><span style="background-color: white;"> experimental status, then wait no more. We've removed that API's 'experimental' tag, which means the API is production-ready and is covered by YouTube's </span><a href="http://apiblog.youtube.com/2012/04/update-to-our-deprecation-policy.html" style="background-color: white;">deprecation policy</a><span style="background-color: white;">. Since the </span><a href="http://apiblog.youtube.com/2010/07/new-way-to-embed-youtube-videos.html" style="background-color: white;"><span style="font-family: 'Courier New', Courier, monospace;">&lt;iframe&gt; embed</span></a><span style="background-color: white;"> is the default way of sharing YouTube videos on the Web, the IFrame Player API is now the recommended mechanism to control video playback behavior in your Web applications.</span><br /><br />To provide a consistent developer experience with the <a href="https://developers.google.com/youtube/youtube_upload_widget">YouTube Upload Widget</a>, we’ve changed the the URL for loading the IFrame Player API code to <a href="https://www.youtube.com/iframe_api"><span style="font-family: 'Courier New', Courier, monospace;">https://www.youtube.com/iframe_api</span></a>. The old URL (<span style="font-family: 'Courier New', Courier, monospace;">http://www.youtube.com/player_api</span>) is now deprecated, though it will continue to work. Similarly, the iframe API initialization callback name has been changed to <span style="font-family: 'Courier New', Courier, monospace;">onYouTubeIframeAPIReady</span> from <span style="font-family: 'Courier New', Courier, monospace;">onYouTubePlayerAPIReady</span>, also for consistency with the YouTube Upload Widget. The old callback name, <span style="font-family: 'Courier New', Courier, monospace;">onYouTubePlayerAPIReady</span>, is now deprecated as well. If your app uses both the YouTube Upload Widget as well as the IFrame Player API, you only need to include the script once and handle a single initialization callback.<br /><br />Going forward, we'll continue making improvements to the IFrame API and make it work better with mobile platforms. As before, you can find the details about the API in our <a href="https://developers.google.com/youtube/iframe_api_reference">documentation</a> and ask questions about it on our <a href="https://developers.google.com/youtube/forum/discussion">developer forum</a>.<br /><br />Cheers,<br /><i>--Jarek Wilkiewicz, YouTube API Team</i>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/youtube-api/build-compelling-experiences-using-youtube-embeds-with-the-iframe-player-api/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="" length="" type="" />
		</item>
		<item>
		<title>Know What’s Loaded?</title>
		<link>https://googledata.org/youtube-api/know-whats-loaded/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=know-whats-loaded</link>
		<comments>https://googledata.org/youtube-api/know-whats-loaded/#comments</comments>
		<pubDate>Tue, 24 Jul 2012 20:00:00 +0000</pubDate>
		<dc:creator><![CDATA[YouTube Staff]]></dc:creator>
				<category><![CDATA[Youtube API]]></category>
		<category><![CDATA[youtube docs]]></category>
		<category><![CDATA[youtube integration]]></category>
		<category><![CDATA[youtube video]]></category>

		<guid isPermaLink="false">https://googledata.org/?guid=2ebe8f920c93843bcfaf4da4e03d9df7</guid>
		<description><![CDATA[<b><span>If you&#8217;ve ever developed a custom playback experience based on our </span><a href="https://developers.google.com/youtube/flash_api_reference"><span>Player API</span></a><span>, you&#8217;ve probably used the </span><a href="https://developers.google.com/youtube/flash_api_reference#Playback_status"><span>getVideoBytesLoaded()</span></a><span> and </span><a href="https://developers.google.com/youtube/flash_api_reference#Playback_status"><span>getVideoBytesTotal()</span></a><span> methods to determine how much the current video is locally buffered and the size of the entire video. After obtaining this information, the next logical step is to divide the number of bytes loaded by the total number of bytes to obtain the fraction of the video that&#8217;s been buffered, which you can then display in your custom user interface.</span><br /><span></span><br /><span>Instead of taking this two-step approach to calculate how much of a video has buffered, we encourage you to use the new </span><a href="https://developers.google.com/youtube/js_api_reference#Playback_status"><span>getVideoLoadedFraction()</span></a><span> method. It will return a numerical value between 0.0 and 1.0 that represents the same fraction obtained by dividing </span><span>getVideoBytesLoaded()</span><span> by </span><span>getVideoBytesTotal()</span><span>. While those two legacy methods still work today, they are now officially deprecated, as per the terms of our </span><a href="http://apiblog.youtube.com/2012/04/update-to-our-deprecation-policy.html"><span>deprecation policy</span></a><span>.</span><br /><span></span><br /><span>getVideoLoadedFraction()</span><span> allows us to expose more accurate information to your code about the state of the video that&#8217;s currently playing across a wider range of playback scenarios. When HTML5 </span><span>&#60;video&#62;</span><span> playback was used in the </span><span>&#60;iframe&#62;</span><span> Player, for instance, we previously had to </span><a href="https://developers.google.com/youtube/iframe_api_reference#Operations"><span>return &#8220;fake&#8221; values</span></a><span> for </span><span>getVideoBytesLoaded()</span><span> and </span><span>getVideoBytesTotal()</span><span>, as the true byte counts weren&#8217;t directly exposed via the </span><span>&#60;video&#62;</span><span> element. The value returned by </span><span><span>getVideoLoadedFraction()</span></span><span> should be correct for that and other playback scenarios that we roll out in the future.</span><br /><span></span><br /><span>If you have any questions about the new method or anything else related to the YouTube APIs, please let us know in the </span><a href="https://developers.google.com/youtube/forum/discussion"><span>developer forum</span></a><span>.</span><br /><span></span><br /><span>Cheers,</span><br /><span>&#8212;</span><a href="https://plus.google.com/117780118136555864520"><span>Jeffrey Posnick</span></a><span>, YouTube API Team</span></b>]]></description>
				<content:encoded><![CDATA[<b id="internal-source-marker_0.27633231645449996" style="font-weight: normal;"><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">If you’ve ever developed a custom playback experience based on our </span><a href="https://developers.google.com/youtube/flash_api_reference"><span style="color: #1155cc; font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">Player API</span></a><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">, you’ve probably used the </span><a href="https://developers.google.com/youtube/flash_api_reference#Playback_status"><span style="color: #1155cc; font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">getVideoBytesLoaded()</span></a><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"> and </span><a href="https://developers.google.com/youtube/flash_api_reference#Playback_status"><span style="color: #1155cc; font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">getVideoBytesTotal()</span></a><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"> methods to determine how much the current video is locally buffered and the size of the entire video. After obtaining this information, the next logical step is to divide the number of bytes loaded by the total number of bytes to obtain the fraction of the video that’s been buffered, which you can then display in your custom user interface.</span><br /><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"></span><br /><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">Instead of taking this two-step approach to calculate how much of a video has buffered, we encourage you to use the new </span><a href="https://developers.google.com/youtube/js_api_reference#Playback_status"><span style="color: #1155cc; font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">getVideoLoadedFraction()</span></a><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"> method. It will return a numerical value between 0.0 and 1.0 that represents the same fraction obtained by dividing </span><span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">getVideoBytesLoaded()</span><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"> by </span><span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">getVideoBytesTotal()</span><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">. While those two legacy methods still work today, they are now officially deprecated, as per the terms of our </span><a href="http://apiblog.youtube.com/2012/04/update-to-our-deprecation-policy.html"><span style="color: #1155cc; font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">deprecation policy</span></a><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">.</span><br /><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"></span><br /><span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">getVideoLoadedFraction()</span><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"> allows us to expose more accurate information to your code about the state of the video that’s currently playing across a wider range of playback scenarios. When HTML5 </span><span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">&lt;video&gt;</span><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"> playback was used in the </span><span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">&lt;iframe&gt;</span><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"> Player, for instance, we previously had to </span><a href="https://developers.google.com/youtube/iframe_api_reference#Operations"><span style="color: #1155cc; font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">return “fake” values</span></a><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"> for </span><span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">getVideoBytesLoaded()</span><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"> and </span><span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">getVideoBytesTotal()</span><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">, as the true byte counts weren’t directly exposed via the </span><span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">&lt;video&gt;</span><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"> element. The value returned by </span><span style="font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: 'Courier New', Courier, monospace;">getVideoLoadedFraction()</span></span><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"> should be correct for that and other playback scenarios that we roll out in the future.</span><br /><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"></span><br /><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">If you have any questions about the new method or anything else related to the YouTube APIs, please let us know in the </span><a href="https://developers.google.com/youtube/forum/discussion"><span style="color: #1155cc; font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">developer forum</span></a><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">.</span><br /><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"></span><br /><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">Cheers,</span><br /><span style="font-family: Arial; font-size: 15px; font-style: italic; vertical-align: baseline; white-space: pre-wrap;">—</span><a href="https://plus.google.com/117780118136555864520"><span style="color: #1155cc; font-family: Arial; font-size: 15px; font-style: italic; vertical-align: baseline; white-space: pre-wrap;">Jeffrey Posnick</span></a><span style="font-family: Arial; font-size: 15px; font-style: italic; vertical-align: baseline; white-space: pre-wrap;">, YouTube API Team</span></b>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/youtube-api/know-whats-loaded/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="" length="" type="" />
		</item>
		<item>
		<title>Let’s Hear It From Your Users!</title>
		<link>https://googledata.org/youtube-api/lets-hear-it-from-your-users/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=lets-hear-it-from-your-users</link>
		<comments>https://googledata.org/youtube-api/lets-hear-it-from-your-users/#comments</comments>
		<pubDate>Thu, 19 Jul 2012 16:09:00 +0000</pubDate>
		<dc:creator><![CDATA[YouTube Staff]]></dc:creator>
				<category><![CDATA[Youtube API]]></category>
		<category><![CDATA[youtube docs]]></category>
		<category><![CDATA[youtube integration]]></category>
		<category><![CDATA[youtube video]]></category>

		<guid isPermaLink="false">https://googledata.org/?guid=b0c147b0c11c3e05295a44bae726b9e1</guid>
		<description><![CDATA[<b><span>Over the past few years we&#8217;ve heard two specific pieces of feedback from the YouTube API community:</span></b><br /><ol><li><b><span>Developers have </span><a href="https://code.google.com/p/gdata-issues/issues/detail?id=358"><span>clamored for years</span></a><span> for a way of embedding a webcam YouTube upload widget on their web pages, similar to the webcam upload tool available at </span><a href="https://www.youtube.com/my_webcam"><span>youtube.com/my_webcam</span></a><span>.</span></b></li><li><b><span>Developers who have used </span><a href="https://developers.google.com/youtube/ytdirect"><span>YouTube Direct</span></a><span> in the past have asked for a simpler solution that doesn&#8217;t require the same level of technical expertise to set up and manage.</span></b></li></ol><b><span></span><br /><span>Knowing about this demand made us particularly excited for our </span><a href="http://www.youtube.com/watch?v=8eYliX47sVI"><span>Google I/O announcements</span></a><span> of the </span><a href="https://developers.google.com/youtube/youtube_upload_widget"><span>YouTube Upload Widget</span></a><span> that supports webcam uploads, and </span><a href="http://code.google.com/p/youtube-direct-lite/"><span>YouTube Direct Lite</span></a><span>, both of which are now available for public use.</span><br /><span></span><br /><span>YouTube Upload Widget</span><br /><span>Using the </span><a href="https://developers.google.com/youtube/youtube_upload_widget"><span>YouTube Upload Widget</span></a><span> on your site is as simple as </span><a href="https://developers.google.com/youtube/youtube_upload_widget#Loading_an_Upload_Widget"><span>adding an &#60;iframe&#62; to your HTML</span></a><span>, like so:</span><br /><span></span><br /><span>&#60;iframe id="widget" type="text/html" width="640" height="390" src="https://www.youtube.com/upload_embed" frameborder="0"&#62;</span><br /><span></span><br /><span>Developers who want more control over the uploads experience can use a full </span><a href="https://developers.google.com/youtube/youtube_upload_widget#Operations"><span>JavaScript API</span></a><span> to initiate the widget, and listen for events related to the upload.</span><br /><span></span><br /><span>YouTube Direct Lite</span><br /><a href="http://code.google.com/p/youtube-direct-lite/"><span>YouTube Direct Lite</span></a><span> is a complete rewrite of the existing </span><a href="https://developers.google.com/youtube/ytdirect"><span>YouTube Direct</span></a><span> platform. The goal of the project remains the same: make it possible to solicit videos from your users and then moderate those submissions into standard YouTube playlists for display. The difference is that YouTube Direct Lite is implemented purely in client-side HTML, JavaScript, and CSS, and unlike with YouTube Direct, no Java App Engine deployment is needed. You can download the YouTube Direct Lite code, customize it, and deploy it on your own web server along with the rest of your site&#8217;s content. To make things even easier, we&#8217;re hosting a canonical deployment of YouTube Direct Lite that you could include on your pages without having to deploy anything at all&#8212;just add the appropriate &#60;iframe&#62; tag to your page.</span><br /><span></span><br /><span>You can find a live example of YouTube Direct Lite integration, including the use of the YouTube Upload Widget, on </span><a href="http://ytdirectlite.appspot.com/static-min/submit.html"><span>this sample page</span></a><span>. Feel free to use that page to submit a video letting us know how you plan on using the new tools.</span><br /><span></span><br /><span>Bringing the </span><a href="https://developers.google.com/youtube/youtube_upload_widget"><span>YouTube Upload Widget</span></a><span> and </span><a href="http://code.google.com/p/youtube-direct-lite/"><span>YouTube Direct Lite</span></a><span> to web developers and community maintainers will give you new tools to hear from (and see!) your community, and who knows what great things will come from that!</span><br /><br /><br /><span></span><br /><span>Cheers,</span><br /><span>&#8212;Eric Lundberg, Jeff Posnick and Vladimir Vuskovic, YouTube API Team</span></b>]]></description>
				<content:encoded><![CDATA[<b id="internal-source-marker_0.113187275826931" style="font-weight: normal;"><span style="background-color: transparent; font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">Over the past few years we’ve heard two specific pieces of feedback from the YouTube API community:</span></b><br /><ol style="margin-bottom: 0pt; margin-top: 0pt;"><li style="background-color: transparent; font-family: Arial; font-size: 15px; list-style-type: decimal; vertical-align: baseline;"><b id="internal-source-marker_0.113187275826931" style="font-weight: normal;"><span style="background-color: transparent; vertical-align: baseline; white-space: pre-wrap;">Developers have </span><a href="https://code.google.com/p/gdata-issues/issues/detail?id=358"><span style="background-color: transparent; color: #1155cc; vertical-align: baseline; white-space: pre-wrap;">clamored for years</span></a><span style="background-color: transparent; vertical-align: baseline; white-space: pre-wrap;"> for a way of embedding a webcam YouTube upload widget on their web pages, similar to the webcam upload tool available at </span><a href="https://www.youtube.com/my_webcam"><span style="background-color: transparent; color: #1155cc; vertical-align: baseline; white-space: pre-wrap;">youtube.com/my_webcam</span></a><span style="background-color: transparent; vertical-align: baseline; white-space: pre-wrap;">.</span></b></li><li style="background-color: transparent; font-family: Arial; font-size: 15px; list-style-type: decimal; vertical-align: baseline;"><b id="internal-source-marker_0.113187275826931" style="font-weight: normal;"><span style="background-color: transparent; vertical-align: baseline; white-space: pre-wrap;">Developers who have used </span><a href="https://developers.google.com/youtube/ytdirect"><span style="background-color: transparent; color: #1155cc; vertical-align: baseline; white-space: pre-wrap;">YouTube Direct</span></a><span style="background-color: transparent; vertical-align: baseline; white-space: pre-wrap;"> in the past have asked for a simpler solution that doesn’t require the same level of technical expertise to set up and manage.</span></b></li></ol><b id="internal-source-marker_0.113187275826931" style="font-weight: normal;"><span style="background-color: transparent; font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"></span><br /><span style="background-color: transparent; font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">Knowing about this demand made us particularly excited for our </span><a href="http://www.youtube.com/watch?v=8eYliX47sVI"><span style="background-color: transparent; color: #1155cc; font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">Google I/O announcements</span></a><span style="background-color: transparent; font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"> of the </span><a href="https://developers.google.com/youtube/youtube_upload_widget"><span style="background-color: transparent; color: #1155cc; font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">YouTube Upload Widget</span></a><span style="background-color: transparent; font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"> that supports webcam uploads, and </span><a href="http://code.google.com/p/youtube-direct-lite/"><span style="background-color: transparent; color: #1155cc; font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">YouTube Direct Lite</span></a><span style="background-color: transparent; font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">, both of which are now available for public use.</span><br /><span style="background-color: transparent; font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"></span><br /><span style="background-color: transparent; font-family: Arial; font-size: 15px; font-weight: bold; vertical-align: baseline; white-space: pre-wrap;">YouTube Upload Widget</span><br /><span style="background-color: transparent; font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">Using the </span><a href="https://developers.google.com/youtube/youtube_upload_widget"><span style="background-color: transparent; color: #1155cc; font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">YouTube Upload Widget</span></a><span style="background-color: transparent; font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"> on your site is as simple as </span><a href="https://developers.google.com/youtube/youtube_upload_widget#Loading_an_Upload_Widget"><span style="background-color: transparent; color: #1155cc; font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">adding an &lt;iframe&gt; to your HTML</span></a><span style="background-color: transparent; font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">, like so:</span><br /><span style="background-color: transparent; font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"></span><br /><span style="background-color: transparent; font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">&lt;iframe id="widget" type="text/html" width="640" height="390" src="https://www.youtube.com/upload_embed" frameborder="0"&gt;</span><br /><span style="background-color: transparent; font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"></span><br /><span style="background-color: transparent; font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">Developers who want more control over the uploads experience can use a full </span><a href="https://developers.google.com/youtube/youtube_upload_widget#Operations"><span style="background-color: transparent; color: #1155cc; font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">JavaScript API</span></a><span style="background-color: transparent; font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"> to initiate the widget, and listen for events related to the upload.</span><br /><span style="background-color: transparent; font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"></span><br /><span style="background-color: transparent; font-family: Arial; font-size: 15px; font-weight: bold; vertical-align: baseline; white-space: pre-wrap;">YouTube Direct Lite</span><br /><a href="http://code.google.com/p/youtube-direct-lite/"><span style="background-color: transparent; color: #1155cc; font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">YouTube Direct Lite</span></a><span style="background-color: transparent; font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"> is a complete rewrite of the existing </span><a href="https://developers.google.com/youtube/ytdirect"><span style="background-color: transparent; color: #1155cc; font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">YouTube Direct</span></a><span style="background-color: transparent; font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"> platform. The goal of the project remains the same: make it possible to solicit videos from your users and then moderate those submissions into standard YouTube playlists for display. The difference is that YouTube Direct Lite is implemented purely in client-side HTML, JavaScript, and CSS, and unlike with YouTube Direct, no Java App Engine deployment is needed. You can download the YouTube Direct Lite code, customize it, and deploy it on your own web server along with the rest of your site’s content. To make things even easier, we’re hosting a canonical deployment of YouTube Direct Lite that you could include on your pages without having to deploy anything at all—just add the appropriate &lt;iframe&gt; tag to your page.</span><br /><span style="background-color: transparent; font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"></span><br /><span style="background-color: transparent; font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">You can find a live example of YouTube Direct Lite integration, including the use of the YouTube Upload Widget, on </span><a href="http://ytdirectlite.appspot.com/static-min/submit.html"><span style="background-color: transparent; color: #1155cc; font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">this sample page</span></a><span style="background-color: transparent; font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">. Feel free to use that page to submit a video letting us know how you plan on using the new tools.</span><br /><span style="background-color: transparent; font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"></span><br /><span style="background-color: transparent; font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">Bringing the </span><a href="https://developers.google.com/youtube/youtube_upload_widget"><span style="background-color: transparent; color: #1155cc; font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">YouTube Upload Widget</span></a><span style="background-color: transparent; font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"> and </span><a href="http://code.google.com/p/youtube-direct-lite/"><span style="background-color: transparent; color: #1155cc; font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">YouTube Direct Lite</span></a><span style="background-color: transparent; font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"> to web developers and community maintainers will give you new tools to hear from (and see!) your community, and who knows what great things will come from that!</span><br /><br /><iframe allowfullscreen="" frameborder="0" height="315" src="http://www.youtube.com/embed/8eYliX47sVI" width="560"></iframe><br /><span style="background-color: transparent; font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"></span><br /><span style="background-color: transparent; font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">Cheers,</span><br /><span style="background-color: transparent; font-family: Arial; font-size: 15px; font-style: italic; vertical-align: baseline; white-space: pre-wrap;">—Eric Lundberg, Jeff Posnick and Vladimir Vuskovic, YouTube API Team</span></b>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/youtube-api/lets-hear-it-from-your-users/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="" length="" type="" />
		</item>
		<item>
		<title>YouTube @ the Google Developers Academy</title>
		<link>https://googledata.org/youtube-api/youtube-the-google-developers-academy/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=youtube-the-google-developers-academy</link>
		<comments>https://googledata.org/youtube-api/youtube-the-google-developers-academy/#comments</comments>
		<pubDate>Thu, 12 Jul 2012 19:29:00 +0000</pubDate>
		<dc:creator><![CDATA[YouTube Staff]]></dc:creator>
				<category><![CDATA[Youtube API]]></category>
		<category><![CDATA[youtube docs]]></category>
		<category><![CDATA[youtube integration]]></category>
		<category><![CDATA[youtube video]]></category>

		<guid isPermaLink="false">https://googledata.org/?guid=f9eec2cb0830025bbdc7a2383ce9b20f</guid>
		<description><![CDATA[<b><span>Whether you&#8217;re a fledgling developer looking to get started with an API or a skilled developer who wants to learn some new tricks, you&#8217;ll find engaging material at the </span><a href="https://developers.google.com/academy/"><span>Google Developers Academy</span></a><span>. Of particular interest to readers of this blog is the </span><a href="https://developers.google.com/academy/apis/youtube/"><span>YouTube section</span></a><span>, which hosts courses specific to the YouTube APIs.</span><br /><span></span><br /><span>The </span><a href="https://developers.google.com/academy/apis/youtube/player/chapter-marker/"><span>first course</span></a><span> walks JavaScript developers through the steps needed to embed an &#60;iframe&#62; Player on their page along with a list of chapter titles. It&#8217;s perfect when you want to embed a lengthy video that consists of multiple sub-sections, since jumping from section to section is as easy as clicking on predefined links. Check out the </span><a href="http://gdata-samples.googlecode.com/svn/trunk/ytplayer/ChapterMarkerPlayer/index.html"><span>live demo</span></a><span> of a page with videos from last year&#8217;s Google I/O conference to see the player in action.</span><br /><span></span><br /><span>We will be gradually adding to the </span><a href="https://developers.google.com/academy/apis/youtube/"><span>YouTube section</span></a><span> of the Google Developers Academy, and we&#8217;ll announce the new courses on this blog and our </span><a href="https://plus.google.com/100270142261733078201"><span>YouTube for Developers Google+ page</span></a><span>. Stay tuned for more great resources!</span><br /><span></span><br /><span>Cheers,</span><br /><span>&#8212;</span><a href="https://plus.google.com/117780118136555864520"><span>Jeff Posnick</span></a><span>, YouTube API Team</span></b>]]></description>
				<content:encoded><![CDATA[<b id="internal-source-marker_0.5271700392477214" style="font-weight: normal;"><span style="background-color: transparent; font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">Whether you’re a fledgling developer looking to get started with an API or a skilled developer who wants to learn some new tricks, you’ll find engaging material at the </span><a href="https://developers.google.com/academy/"><span style="background-color: transparent; color: #1155cc; font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">Google Developers Academy</span></a><span style="background-color: transparent; font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">. Of particular interest to readers of this blog is the </span><a href="https://developers.google.com/academy/apis/youtube/"><span style="background-color: transparent; color: #1155cc; font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">YouTube section</span></a><span style="background-color: transparent; font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">, which hosts courses specific to the YouTube APIs.</span><br /><span style="background-color: transparent; font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"></span><br /><span style="background-color: transparent; font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">The </span><a href="https://developers.google.com/academy/apis/youtube/player/chapter-marker/"><span style="background-color: transparent; color: #1155cc; font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">first course</span></a><span style="background-color: transparent; font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"> walks JavaScript developers through the steps needed to embed an &lt;iframe&gt; Player on their page along with a list of chapter titles. It’s perfect when you want to embed a lengthy video that consists of multiple sub-sections, since jumping from section to section is as easy as clicking on predefined links. Check out the </span><a href="http://gdata-samples.googlecode.com/svn/trunk/ytplayer/ChapterMarkerPlayer/index.html"><span style="background-color: transparent; color: #1155cc; font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">live demo</span></a><span style="background-color: transparent; font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"> of a page with videos from last year’s Google I/O conference to see the player in action.</span><br /><span style="background-color: transparent; font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"></span><br /><span style="background-color: transparent; font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">We will be gradually adding to the </span><a href="https://developers.google.com/academy/apis/youtube/"><span style="background-color: transparent; color: #1155cc; font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">YouTube section</span></a><span style="background-color: transparent; font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"> of the Google Developers Academy, and we’ll announce the new courses on this blog and our </span><a href="https://plus.google.com/100270142261733078201"><span style="background-color: transparent; color: #1155cc; font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">YouTube for Developers Google+ page</span></a><span style="background-color: transparent; font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">. Stay tuned for more great resources!</span><br /><span style="background-color: transparent; font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"></span><br /><span style="background-color: transparent; font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">Cheers,</span><br /><span style="background-color: transparent; font-family: Arial; font-size: 15px; font-style: italic; vertical-align: baseline; white-space: pre-wrap;">—</span><a href="https://plus.google.com/117780118136555864520"><span style="background-color: transparent; color: #1155cc; font-family: Arial; font-size: 15px; font-style: italic; vertical-align: baseline; white-space: pre-wrap;">Jeff Posnick</span></a><span style="background-color: transparent; font-family: Arial; font-size: 15px; font-style: italic; vertical-align: baseline; white-space: pre-wrap;">, YouTube API Team</span></b>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/youtube-api/youtube-the-google-developers-academy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="" length="" type="" />
		</item>
		<item>
		<title>Unlocking JavaScript’s Potential with CORS</title>
		<link>https://googledata.org/youtube-api/unlocking-javascripts-potential-with-cors/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=unlocking-javascripts-potential-with-cors</link>
		<comments>https://googledata.org/youtube-api/unlocking-javascripts-potential-with-cors/#comments</comments>
		<pubDate>Fri, 18 May 2012 18:03:00 +0000</pubDate>
		<dc:creator><![CDATA[YouTube Staff]]></dc:creator>
				<category><![CDATA[Youtube API]]></category>
		<category><![CDATA[youtube docs]]></category>
		<category><![CDATA[youtube integration]]></category>
		<category><![CDATA[youtube video]]></category>

		<guid isPermaLink="false">https://googledata.org/?guid=f71a5a2770b04ec8cd9d25463de049b9</guid>
		<description><![CDATA[Web developers are accustomed to making magical user experiences with a few lines of elegant JavaScript, but when faced with talking to RESTful services like the YouTube API, the options have been anything but simple. The most common approach relies on...]]></description>
				<content:encoded><![CDATA[<b id="internal-source-marker_0.9355615002568811"><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">Web developers are accustomed to making magical user experiences with a few lines of elegant JavaScript, but when faced with talking to </span><a href="http://en.wikipedia.org/wiki/Restful"><span style="color: #1155cc; font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">RESTful</span></a><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"> services like the YouTube API, the options have been anything but simple. The most common approach relies on a technique known as </span><a href="http://en.wikipedia.org/wiki/JSONP"><span style="color: #1155cc; font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">JSONP</span></a><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">, which relied on dynamically inserting a </span><span style="font-family: 'Courier New'; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">&lt;script&gt;</span><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"> tag on a page and triggering a local callback function with response from an external service. The YouTube API has </span><a href="https://developers.google.com/youtube/2.0/reference#callbacksp"><span style="color: #1155cc; font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">supported</span></a><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"> JSONP for a while now, but developers using this approach are probably familiar with its drawbacks: request failures can lead to the JavaScript callback never being triggered, and JSONP can only be used for read-only API calls that don’t require HTTP request headers being set.</span><br /><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"></span><br /><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">A modern alternative to JSONP is </span><a href="http://en.wikipedia.org/wiki/Cross-origin_resource_sharing"><span style="color: #1155cc; font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">Cross-Origin Resource Sharing</span></a><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"> (CORS), which allows JavaScript developers to make arbitrary HTTP requests (</span><span style="font-family: 'Courier New'; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">GET</span><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">s, </span><span style="font-family: 'Courier New'; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">PUT</span><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">s, </span><span style="font-family: 'Courier New'; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">POST</span><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">s, etc.) via the standard </span><a href="http://en.wikipedia.org/wiki/XMLHttpRequest"><span style="color: #1155cc; font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">XMLHttpRequest</span></a><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"> interface. Not every browser supports the extensions to XMLHttpRequest that support CORS, but if you’re </span><a href="http://caniuse.com/cors"><span style="color: #1155cc; font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">using one that does</span></a><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"> we have some good news for you: the </span><span style="font-family: 'Courier New'; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">gdata.youtube.com</span><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"> web servers that host the YouTube Data API now are enabled for CORS support!</span><br /><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"></span><br /><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">This opens up a whole new class of web application integration with YouTube done purely in client-side JavaScript, without any need for running server-side code. To illustrate what’s now possible, take a look at this </span><a href="http://gdata-samples.googlecode.com/svn/trunk/gdata/youtube_upload_cors.html"><span style="color: #1155cc; font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">sample code</span></a><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">. When run in a </span><a href="http://caniuse.com/cors"><span style="color: #1155cc; font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">browser that supports CORS</span></a><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">, you can authenticate using OAuth 2 and then perform the entire browser-based upload flow entirely from JavaScript. Previously, the portion of the code that </span><span style="font-family: 'Courier New'; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">POST</span><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">ed metadata to the YouTube API needed to be run on a web server.</span><br /><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"></span><br /><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">We can’t wait to see what JavaScript developers will build now that the doors to CORS are open. Enjoy!</span><br /><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"></span><br /><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">Cheers,</span><br /><span style="font-family: Arial; font-size: 15px; font-style: italic; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">—Jeff Posnick, YouTube API Team</span></b>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/youtube-api/unlocking-javascripts-potential-with-cors/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>An Update to our Deprecation Policy</title>
		<link>https://googledata.org/youtube-api/an-update-to-our-deprecation-policy/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=an-update-to-our-deprecation-policy</link>
		<comments>https://googledata.org/youtube-api/an-update-to-our-deprecation-policy/#comments</comments>
		<pubDate>Fri, 20 Apr 2012 19:43:00 +0000</pubDate>
		<dc:creator><![CDATA[YouTube Staff]]></dc:creator>
				<category><![CDATA[Youtube API]]></category>
		<category><![CDATA[youtube docs]]></category>
		<category><![CDATA[youtube integration]]></category>
		<category><![CDATA[youtube video]]></category>

		<guid isPermaLink="false">https://googledata.org/?guid=a2905f3ad8c779cf1e18e821bd186779</guid>
		<description><![CDATA[As you might have seen announced 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.As of today, our YouTube API deprec...]]></description>
				<content:encoded><![CDATA[<span id="internal-source-marker_0.08693854347802699"><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">As you might have seen </span><a href="http://googledevelopers.blogspot.com/2012/04/changes-to-deprecation-policies-and-api.html" style="font-weight: bold;"><span style="color: #1155cc; font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">announced</span></a><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"> 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.</span><br /><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"></span><br /><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">As of today, our YouTube API deprecation policy states:</span><br /><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"></span></span><br /><div dir="ltr" style="font-weight: bold; margin-bottom: 0pt; margin-left: 36pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">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):</span></div><ul style="margin-bottom: 0pt; margin-top: 0pt;"><ul><li style="font-family: Arial; font-size: 15px; list-style-type: disc; vertical-align: baseline;"><span style="vertical-align: baseline; white-space: pre-wrap;">required by law or third party relationship (including if there is a change in applicable law or relationship), or</span></li><li style="font-family: Arial; font-size: 15px; list-style-type: disc; vertical-align: baseline;"><span style="vertical-align: baseline; white-space: pre-wrap;">doing so could create a security risk or substantial economic or material technical burden.</span></li></ul></ul><div dir="ltr" style="font-weight: bold; margin-bottom: 0pt; margin-left: 36pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">This Deprecation Policy doesn't apply to versions, features, and functionality labeled as "experimental."</span></div><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"></span><br /><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">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 </span><a href="https://developers.google.com/youtube/terms" style="font-weight: bold;"><span style="color: #1155cc; font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">Terms of Service</span></a><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">.</span><br /><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"></span><br /><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">Cheers,</span><br /><span style="font-family: Arial; font-size: 15px; font-style: italic; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">—Jeff Posnick, YouTube API Team</span><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2443724041307041823-673017349791171886?l=apiblog.youtube.com' alt='' /></div>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/youtube-api/an-update-to-our-deprecation-policy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Upgrading Old Embed Codes</title>
		<link>https://googledata.org/youtube-api/upgrading-old-embed-codes/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=upgrading-old-embed-codes</link>
		<comments>https://googledata.org/youtube-api/upgrading-old-embed-codes/#comments</comments>
		<pubDate>Tue, 17 Apr 2012 16:21:00 +0000</pubDate>
		<dc:creator><![CDATA[YouTube Staff]]></dc:creator>
				<category><![CDATA[Youtube API]]></category>
		<category><![CDATA[youtube docs]]></category>
		<category><![CDATA[youtube integration]]></category>
		<category><![CDATA[youtube video]]></category>

		<guid isPermaLink="false">https://googledata.org/?guid=bce1279347f0a313d40a98a6973668b5</guid>
		<description><![CDATA[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 http://www.youtube.com/v/VIDEO_ID would default to the ActionScript 2 ver...]]></description>
				<content:encoded><![CDATA[<b id="internal-source-marker_0.9375312288757414"><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">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 </span><span style="font-family: 'Courier New'; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">http://www.youtube.com/v/VIDEO_ID</span><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"> would default to the ActionScript 2 version of the Flash player, and it was necessary to explicitly add in the </span><a href="https://developers.google.com/youtube/player_parameters#Selecting_Content_to_Play"><span style="color: #1155cc; font-family: 'Courier New'; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">version=3</span></a><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"> 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.</span><br /><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"></span><br /><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">This change to the default version affects both the Embedded and Chromeless Flash players. Developers who are using the newer </span><a href="http://apiblog.youtube.com/2010/07/new-way-to-embed-youtube-videos.html"><span style="color: #1155cc; font-family: 'Courier New'; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">&lt;iframe&gt;</span></a><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"> embedded player will not see any change, as that already defaults to the ActionScript 3 player when Flash playback is needed.</span><br /><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"></span><br /><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">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 </span><span style="font-family: 'Courier New'; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">version=2</span><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"> 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.</span><br /><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"></span><br /><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">As we’ve </span><a href="http://apiblog.youtube.com/2010/10/actionscript-2-chromeless-player-and.html"><span style="color: #1155cc; font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">previously announced</span></a><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">, 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 </span><span style="font-family: 'Courier New'; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">version=2</span><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"> if they’re needed, our recommendation is that you do not continue to rely on the ActionScript 2 player in your code.</span><br /><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"></span><br /><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">Cheers,</span><br /><span style="font-family: Arial; font-size: 15px; font-style: italic; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">—Jeff Posnick, YouTube API Team</span></b><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2443724041307041823-7838804922738989313?l=apiblog.youtube.com' alt='' /></div>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/youtube-api/upgrading-old-embed-codes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New Player Options for Lists of Videos</title>
		<link>https://googledata.org/youtube-api/new-player-options-for-lists-of-videos/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=new-player-options-for-lists-of-videos</link>
		<comments>https://googledata.org/youtube-api/new-player-options-for-lists-of-videos/#comments</comments>
		<pubDate>Fri, 30 Mar 2012 20:42:00 +0000</pubDate>
		<dc:creator><![CDATA[YouTube Staff]]></dc:creator>
				<category><![CDATA[Youtube API]]></category>
		<category><![CDATA[youtube docs]]></category>
		<category><![CDATA[youtube integration]]></category>
		<category><![CDATA[youtube video]]></category>

		<guid isPermaLink="false">https://googledata.org/?guid=a737df04c856bad8e6f2e8a617d98a48</guid>
		<description><![CDATA[Update (May 2012): The showinfo=1 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.Most developers know that the You...]]></description>
				<content:encoded><![CDATA[<span style="font-size: 15px; white-space: pre-wrap;"><i><b style="font-family: Arial;">Update (May 2012):</b><span style="font-family: Arial;"> The </span><span style="font-family: 'Courier New', Courier, monospace;">showinfo=1</span><span style="font-family: Arial;"> 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.</span></i></span><br /><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"><br /></span><span id="internal-source-marker_0.23785904445685446"><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">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.</span><br /><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"></span><br /><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">The first change of note is the syntax for embedding the player in an HTML document. As for </span><a href="http://apiblog.youtube.com/2010/07/new-way-to-embed-youtube-videos.html" style="font-weight: bold;"><span style="color: #1155cc; font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">single-video playback</span></a><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">, you can use the </span><span style="font-family: 'Courier New'; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">&lt;iframe&gt;</span><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"> embed code to load a list of videos, and the IFrame embed supports HTML5 </span><span style="font-family: 'Courier New'; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">&lt;video&gt;</span><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"> playback in environments where Flash is not available.</span><br /><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"></span><br /><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">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 </span><span style="font-family: 'Courier New'; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">listType</span><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"> and </span><span style="font-family: 'Courier New'; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">list</span><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"> parameters control the list of videos that is loaded. The </span><span style="font-family: 'Courier New'; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">listType</span><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"> value can be either </span><span style="font-family: 'Courier New'; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">playlist</span><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"> (the default), </span><span style="font-family: 'Courier New'; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">user_uploads</span><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">, or </span><span style="font-family: 'Courier New'; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">search</span><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">. Depending on the </span><span style="font-family: 'Courier New'; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">listType</span><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"> value, the </span><span style="font-family: 'Courier New'; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">list</span><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"> 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:</span><br /><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"></span><br /><span style="font-family: 'Courier New'; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">&lt;iframe width="560" height="315" src="http://www.youtube.com/embed/?</span><span style="font-family: 'Courier New'; font-size: 15px; font-weight: bold; vertical-align: baseline; white-space: pre-wrap;">listType=user_uploads</span><span style="font-family: 'Courier New'; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">&amp;</span><span style="font-family: 'Courier New'; font-size: 15px; font-weight: bold; vertical-align: baseline; white-space: pre-wrap;">list=GoogleDevelopers</span><span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">&amp;showinfo=1</span><span style="font-family: 'Courier New'; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;</span><br /><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"></span><br /><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">The corresponding embedded player is shown below:</span><br /><br /><iframe allowfullscreen="" frameborder="0" height="315" src="http://www.youtube.com/embed/?listType=user_uploads&amp;list=GoogleDevelopers&amp;showinfo=1" width="560"></iframe><br /><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"></span><br /><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">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 </span><a href="https://developers.google.com/youtube/js_api_reference#Queueing_Functions" style="font-weight: bold;"><span style="color: #1155cc; font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">loading lists</span></a><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">, moving to the </span><a href="https://developers.google.com/youtube/js_api_reference#Playback_controls" style="font-weight: bold;"><span style="color: #1155cc; font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">next/previous video in a list</span></a><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">, and controlling whether playback is </span><a href="https://developers.google.com/youtube/js_api_reference#Playback_controls" style="font-weight: bold;"><span style="color: #1155cc; font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">shuffled or looped</span></a><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">. To give you an idea of how you can use this new JavaScript Player API functionality, we’ve put together </span><a href="https://gdata-samples.googlecode.com/svn/trunk/ytplayer/playlist/index.html" style="font-weight: bold;"><span style="color: #1155cc; font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">a sample page</span></a><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"> that you can experiment with and use as inspiration when developing your own code.</span><br /><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"></span><br /><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">Cheers,</span><br /><span style="font-family: Arial; font-size: 15px; font-style: italic; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">—Jeff Posnick, YouTube API Team</span></span><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2443724041307041823-6940744547843238905?l=apiblog.youtube.com' alt='' /></div>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/youtube-api/new-player-options-for-lists-of-videos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Keeping Things Fresh</title>
		<link>https://googledata.org/uncategorized/keeping-things-fresh/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=keeping-things-fresh</link>
		<comments>https://googledata.org/uncategorized/keeping-things-fresh/#comments</comments>
		<pubDate>Fri, 23 Mar 2012 14:36:00 +0000</pubDate>
		<dc:creator><![CDATA[YouTube Staff]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Youtube API]]></category>
		<category><![CDATA[youtube docs]]></category>
		<category><![CDATA[youtube integration]]></category>
		<category><![CDATA[youtube video]]></category>

		<guid isPermaLink="false">https://googledata.org/?guid=6a22f7bfca68f97c3a3483cd61f0657c</guid>
		<description><![CDATA[Pop quiz: what’s the difference between the following feed URLs?https://gdata.youtube.com/feeds/api/users/googledevelopers/uploads?v=2https://gdata.youtube.com/feeds/api/users/googledevelopers/uploads?v=2&#38;orderby=publishedhttps://gdata.youtube.co...]]></description>
				<content:encoded><![CDATA[<span id="internal-source-marker_0.47796220635063946"><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">Pop quiz: what’s the difference between the following feed URLs?</span><br /><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"></span></span><br /><ol style="font-weight: bold; margin-bottom: 0pt; margin-top: 0pt;"><li style="font-family: Arial; font-size: 15px; font-weight: normal; list-style-type: decimal; vertical-align: baseline;"><a href="https://gdata.youtube.com/feeds/api/users/googledevelopers/uploads"><span style="color: #1155cc; vertical-align: baseline; white-space: pre-wrap;">https://gdata.youtube.com/feeds/api/users/googledevelopers/uploads?v=2</span></a><span style="vertical-align: baseline; white-space: pre-wrap;"></span></li><li style="font-family: Arial; font-size: 15px; font-weight: normal; list-style-type: decimal; vertical-align: baseline;"><a href="https://gdata.youtube.com/feeds/api/users/googledevelopers/uploads?v=2&amp;orderby=published"><span style="color: #1155cc; vertical-align: baseline; white-space: pre-wrap;">https://gdata.youtube.com/feeds/api/users/googledevelopers/uploads?v=2&amp;orderby=published</span></a><span style="vertical-align: baseline; white-space: pre-wrap;"></span></li><li style="font-family: Arial; font-size: 15px; font-weight: normal; list-style-type: decimal; vertical-align: baseline;"><a href="https://gdata.youtube.com/feeds/api/videos?v=2&amp;author=googledevelopers&amp;orderby=published"><span style="color: #1155cc; vertical-align: baseline; white-space: pre-wrap;">https://gdata.youtube.com/feeds/api/videos?v=2&amp;author=googledevelopers&amp;orderby=published</span></a><span style="vertical-align: baseline; white-space: pre-wrap;"></span></li></ol><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"></span><br /><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">All three will return a list of videos uploaded in the </span><a href="http://www.youtube.com/googledevelopers" style="font-weight: bold;"><span style="color: #1155cc; font-family: 'Courier New'; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">GoogleDevelopers</span><span style="color: #1155cc; font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"> YouTube channel</span></a><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">, 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.</span><br /><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"></span><br /><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">The reason for this, as </span><a href="https://developers.google.com/youtube/2.0/reference#Latency_Information" style="font-weight: bold;"><span style="color: #1155cc; font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">explained in our documentation</span></a><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">, 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:</span><br /><span><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"></span></span><br /><ul style="font-weight: bold; margin-bottom: 0pt; margin-top: 0pt;"><li style="font-family: Arial; font-size: 15px; font-weight: normal; list-style-type: disc; vertical-align: baseline;"><span style="vertical-align: baseline; white-space: pre-wrap;">If your request only includes the </span><a href="https://developers.google.com/youtube/2.0/reference#max-resultssp"><span style="color: #1155cc; font-family: 'Courier New'; vertical-align: baseline; white-space: pre-wrap;">max-results</span></a><span style="vertical-align: baseline; white-space: pre-wrap;"> and/or </span><a href="https://developers.google.com/youtube/2.0/reference#start-indexsp"><span style="color: #1155cc; font-family: 'Courier New'; vertical-align: baseline; white-space: pre-wrap;">start-index</span></a><span style="vertical-align: baseline; white-space: pre-wrap;"> 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 </span><a href="https://developers.google.com/youtube/2.0/reference#prettyprintsp"><span style="color: #1155cc; font-family: 'Courier New'; vertical-align: baseline; white-space: pre-wrap;">prettyprint</span></a><span style="vertical-align: baseline; white-space: pre-wrap;">, </span><a href="https://developers.google.com/youtube/2.0/reference#callbacksp"><span style="color: #1155cc; font-family: 'Courier New'; vertical-align: baseline; white-space: pre-wrap;">callback</span></a><span style="vertical-align: baseline; white-space: pre-wrap;">, or </span><a href="https://developers.google.com/youtube/2.0/reference#altsp"><span style="color: #1155cc; font-family: 'Courier New'; vertical-align: baseline; white-space: pre-wrap;">alt</span></a><span style="vertical-align: baseline; white-space: pre-wrap;">, can also be used without triggering the search index. Although it does filter results out of the feed, the </span><a href="https://developers.google.com/youtube/2.0/reference#fieldssp"><span style="color: #1155cc; font-family: 'Courier New'; vertical-align: baseline; white-space: pre-wrap;">fields</span></a><span style="vertical-align: baseline; white-space: pre-wrap;"> 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.</span></li></ul><div><span style="font-family: Arial;"><span style="font-size: 15px; white-space: pre-wrap;"><br /></span></span></div><ul style="font-weight: bold; margin-bottom: 0pt; margin-top: 0pt;"><li style="font-family: Arial; font-size: 15px; font-weight: normal; list-style-type: disc; vertical-align: baseline;"><span style="vertical-align: baseline; white-space: pre-wrap;">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 </span><a href="https://developers.google.com/youtube/2.0/reference#qsp"><span style="color: #1155cc; font-family: 'Courier New'; vertical-align: baseline; white-space: pre-wrap;">q</span></a><span style="vertical-align: baseline; white-space: pre-wrap;"> and </span><a href="https://developers.google.com/youtube/2.0/reference#orderbysp"><span style="color: #1155cc; font-family: 'Courier New'; vertical-align: baseline; white-space: pre-wrap;">orderby</span></a><span style="vertical-align: baseline; white-space: pre-wrap;">.</span></li></ul><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"></span><br /><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">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.</span><br /><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"></span><br /><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">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?</span><br /><span><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"></span></span><br /><ol style="font-weight: bold; margin-bottom: 0pt; margin-top: 0pt;"><li style="font-family: Arial; font-size: 15px; font-weight: normal; list-style-type: decimal; vertical-align: baseline;"><a href="https://gdata.youtube.com/feeds/api/videos/sOEAD-gfJ_M"><span style="color: #1155cc; vertical-align: baseline; white-space: pre-wrap;">https://gdata.youtube.com/feeds/api/videos/sOEAD-gfJ_M?v=2</span></a><span style="vertical-align: baseline; white-space: pre-wrap;"></span></li><li style="font-family: Arial; font-size: 15px; font-weight: normal; list-style-type: decimal; vertical-align: baseline;"><a href="http://gdata.youtube.com/feeds/api/videos?q=sOEAD-gfJ_M"><span style="color: #1155cc; vertical-align: baseline; white-space: pre-wrap;">http://gdata.youtube.com/feeds/api/videos?q=sOEAD-gfJ_M?v=2</span></a><span style="vertical-align: baseline; white-space: pre-wrap;"></span></li></ol><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"></span><br /><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">As you’ve probably figured out, the first URL retrieves the entry for video ID </span><span style="font-family: 'Courier New'; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">sOEAD-gfJ_M</span><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"> directly from the backend database, while the second URL searches for all entries with metadata containing </span><span style="font-family: 'Courier New'; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">sOEAD-gfJ_M</span><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"> 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.</span><br /><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"></span><br /><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">Cheers,</span><br /><span style="font-family: Arial; font-size: 15px; font-style: italic; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">-Jeff Posnick, YouTube API Team</span><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2443724041307041823-2254208528281995220?l=apiblog.youtube.com' alt='' /></div>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/uncategorized/keeping-things-fresh/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>YouTube, Google+, the API, and You</title>
		<link>https://googledata.org/youtube-api/youtube-google-the-api-and-you/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=youtube-google-the-api-and-you</link>
		<comments>https://googledata.org/youtube-api/youtube-google-the-api-and-you/#comments</comments>
		<pubDate>Thu, 15 Mar 2012 16:25:00 +0000</pubDate>
		<dc:creator><![CDATA[YouTube Staff]]></dc:creator>
				<category><![CDATA[Youtube API]]></category>
		<category><![CDATA[youtube docs]]></category>
		<category><![CDATA[youtube integration]]></category>
		<category><![CDATA[youtube video]]></category>

		<guid isPermaLink="false">https://googledata.org/?guid=8a862306508f134b2604f40274365f2d</guid>
		<description><![CDATA[Update (April 2012): The last paragraph was changed to reflect the distinct yt:display and display attribute names, depending on whether the parent element is media:credit or yt:username.By now, you may have read about the recent launch of connecting a...]]></description>
				<content:encoded><![CDATA[<b><i><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">Update (April 2012):</span><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"> The last paragraph was changed to reflect the distinct </span><span style="font-family: 'Courier New', Courier, monospace; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">yt:display</span><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"> and </span><span style="font-family: 'Courier New', Courier, monospace; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">display</span><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"> attribute names, depending on whether the parent element is </span><span style="font-family: 'Courier New', Courier, monospace; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">media:credit</span><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"> or </span><span style="font-family: 'Courier New', Courier, monospace; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">yt:username</span><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">.</span></i></b><br /><b><i><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"><br /></span></i></b><br /><b id="internal-source-marker_0.3015626308042556"><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">By now, you may have read about the </span><a href="http://youtube-global.blogspot.com/2012/03/seeing-familiar-faces-on-youtube.html"><span style="color: #1155cc; font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">recent launch</span></a><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"> 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 </span><a href="https://developers.google.com/youtube/compatibility_guidelines#Best_Practices"><span style="color: #1155cc; font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">compatibility guidelines</span></a><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">.</span><br /><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"></span><br /><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">With that in mind, this post explains how to ensure that user names function properly in your application.</span></b><br /><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"></span><br /><ul style="font-weight: bold; margin-bottom: 0pt; margin-top: 0pt;"><li style="font-family: Arial; font-size: 15px; font-weight: normal; list-style-type: disc; vertical-align: baseline;"><span style="vertical-align: baseline; white-space: pre-wrap;">If your application uses authentication and refers to feeds belonging to the currently authenticated user, always use the string </span><span style="font-family: 'Courier New'; vertical-align: baseline; white-space: pre-wrap;">default</span><span style="vertical-align: baseline; white-space: pre-wrap;"> as the username in the feed URL. For example, the URL </span><a href="https://gdata.youtube.com/feeds/api/users/default?v=2&amp;prettyprint=true"><span style="color: #1155cc; vertical-align: baseline; white-space: pre-wrap;">https://gdata.youtube.com/feeds/api/users/default?v=2</span></a><span style="vertical-align: baseline; white-space: pre-wrap;"> retrieves the currently authenticated user's profile no matter what type of account she has, and </span><a href="https://uploads.gdata.youtube.com/resumable/feeds/api/users/default/uploads"><span style="color: #1155cc; vertical-align: baseline; white-space: pre-wrap;">https://uploads.gdata.youtube.com/resumable/feeds/api/users/default/uploads?v=2</span></a><span style="vertical-align: baseline; white-space: pre-wrap;"> is always the correct URL to POST to when performing a resumable upload into the current user’s account.</span></li></ul><div><span style="font-family: Arial;"><span style="font-size: 15px; white-space: pre-wrap;"><br /></span></span></div><ul style="font-weight: bold; margin-bottom: 0pt; margin-top: 0pt;"><li style="font-family: Arial; font-size: 15px; font-weight: normal; list-style-type: disc; vertical-align: baseline;"><span style="vertical-align: baseline; white-space: pre-wrap;">Avoid manually generating links to </span><a href="https://developers.google.com/youtube/2.0/developers_guide_protocol_identifying_related_feeds"><span style="color: #1155cc; vertical-align: baseline; white-space: pre-wrap;">related feeds</span></a><span style="vertical-align: baseline; white-space: pre-wrap;"> — instead, extract URLs for related feeds from </span><a href="https://developers.google.com/youtube/2.0/reference#youtube_data_api_tag_link"><span style="color: #1155cc; font-family: 'Courier New'; vertical-align: baseline; white-space: pre-wrap;">&lt;link&gt;</span></a><span style="vertical-align: baseline; white-space: pre-wrap;"> or </span><a href="https://developers.google.com/youtube/2.0/reference#youtube_data_api_tag_gd:feedLink"><span style="color: #1155cc; font-family: 'Courier New'; vertical-align: baseline; white-space: pre-wrap;">&lt;gd:feedLink&gt;</span></a><span style="vertical-align: baseline; white-space: pre-wrap;"> elements. For instance, the </span><a href="https://gdata.youtube.com/feeds/api/users/googledevelopers?v=2&amp;prettyprint=true"><span style="color: #1155cc; vertical-align: baseline; white-space: pre-wrap;">profile entry for a given account</span></a><span style="vertical-align: baseline; white-space: pre-wrap;"> contains a </span><span style="font-family: 'Courier New'; vertical-align: baseline; white-space: pre-wrap;">&lt;gd:feedLink&gt;</span><span style="vertical-align: baseline; white-space: pre-wrap;"> element with a </span><span style="font-family: 'Courier New'; vertical-align: baseline; white-space: pre-wrap;">rel</span><span style="vertical-align: baseline; white-space: pre-wrap;"> attribute of </span><span style="font-family: 'Courier New'; vertical-align: baseline; white-space: pre-wrap;">http://gdata.youtube.com/schemas/2007#user.playlists</span><span style="vertical-align: baseline; white-space: pre-wrap;">, and that element's </span><span style="font-family: 'Courier New'; vertical-align: baseline; white-space: pre-wrap;">href</span><span style="vertical-align: baseline; white-space: pre-wrap;"> attribute contains the URL for that account’s playlists.</span></li></ul><div><span style="font-family: Arial;"><span style="font-size: 15px; white-space: pre-wrap;"><br /></span></span></div><ul style="font-weight: bold; margin-bottom: 0pt; margin-top: 0pt;"><li style="font-family: Arial; font-size: 15px; font-weight: normal; list-style-type: disc; vertical-align: baseline;"><span style="vertical-align: baseline; white-space: pre-wrap;">If you do need to manually generate a feed URL that is not for the </span><span style="font-family: 'Courier New'; vertical-align: baseline; white-space: pre-wrap;">default</span><span style="vertical-align: baseline; white-space: pre-wrap;"> user, use the value in the </span><a href="https://developers.google.com/youtube/2.0/reference#youtube_data_api_tag_yt:username"><span style="color: #1155cc; font-family: 'Courier New'; vertical-align: baseline; white-space: pre-wrap;">&lt;yt:username&gt;</span></a><span style="vertical-align: baseline; white-space: pre-wrap;"> element as the username in the feed URL. Other fields, like </span><a href="https://developers.google.com/youtube/2.0/reference#youtube_data_api_tag_author"><span style="color: #1155cc; font-family: 'Courier New'; vertical-align: baseline; white-space: pre-wrap;">&lt;author&gt;</span></a><span style="vertical-align: baseline; white-space: pre-wrap;">, might contain a display name or a different identifier that is not appropriate for use in a feed URL.<br class="kix-line-break" /><br class="kix-line-break" />Note that for accounts that have connected a Google+ profile to a new YouTube channel and for </span><a href="http://apiblog.youtube.com/2011/10/introducing-google-account-support-and.html"><span style="color: #1155cc; vertical-align: baseline; white-space: pre-wrap;">Google Accounts without a linked YouTube account</span></a><span style="vertical-align: baseline; white-space: pre-wrap;">, the </span><span style="font-family: 'Courier New'; vertical-align: baseline; white-space: pre-wrap;">&lt;yt:username&gt;</span><span style="vertical-align: baseline; white-space: pre-wrap;"> 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, </span><span style="font-family: 'Courier New'; vertical-align: baseline; white-space: pre-wrap;">&lt;yt:userId&gt;</span><span style="vertical-align: baseline; white-space: pre-wrap;">, 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 </span><span style="font-family: 'Courier New'; vertical-align: baseline; white-space: pre-wrap;">&lt;yt:userId&gt;</span><span style="vertical-align: baseline; white-space: pre-wrap;">.</span></li></ul><div><span style="font-family: Arial;"><span style="font-size: 15px; white-space: pre-wrap;"><br /></span></span></div><ul style="font-weight: bold; margin-bottom: 0pt; margin-top: 0pt;"><li style="font-size: 15px; font-weight: normal; list-style: disc; vertical-align: baseline;"><span style="font-family: Arial; vertical-align: baseline; white-space: pre-wrap;">Any existing code that relies on displaying the </span><span style="font-family: 'Courier New', Courier, monospace; vertical-align: baseline; white-space: pre-wrap;">&lt;yt:username&gt;</span><span style="font-family: Arial; vertical-align: baseline; white-space: pre-wrap;"> or </span><a href="https://developers.google.com/youtube/2.0/reference#youtube_data_api_tag_media:credit" style="font-family: Arial;"><span style="color: #1155cc; font-family: 'Courier New'; vertical-align: baseline; white-space: pre-wrap;">&lt;media:credit&gt;</span></a><span style="font-family: Arial; vertical-align: baseline; white-space: pre-wrap;"> value to users should instead switch to using a value taken from one of that element's </span><span style="vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: Arial;">attributes. On the </span><span style="font-family: 'Courier New';">&lt;yt:username&gt;</span><span style="font-family: Arial;"> element, the relevant attribute is called </span><span style="font-family: 'Courier New', Courier, monospace;">display</span><span style="font-family: Arial;">. On the </span><span style="font-family: 'Courier New', Courier, monospace;">&lt;media:credit&gt;</span><span style="font-family: Arial;"> element, the corresponding attribute is called </span><span style="font-family: 'Courier New', Courier, monospace;">yt:display</span><span style="font-family: Arial;">. The </span><span style="font-family: 'Courier New', Courier, monospace;">display</span><span style="font-family: Arial;"> or </span></span><span style="font-family: 'Courier New', Courier, monospace; vertical-align: baseline; white-space: pre-wrap;">yt:display</span><span style="font-family: Arial; vertical-align: baseline; white-space: pre-wrap;"> 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.</span></li></ul><div><span style="font-family: Arial;"><span style="font-size: 15px; white-space: pre-wrap;"><br /></span></span></div><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"></span><br /><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">Cheers,</span><br /><span style="font-family: Arial; font-size: 15px; font-style: italic; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">–Jeff Posnick, YouTube API Team</span><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2443724041307041823-6406485459410023823?l=apiblog.youtube.com' alt='' /></div>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/youtube-api/youtube-google-the-api-and-you/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Video Uploads from Your Site’s Community</title>
		<link>https://googledata.org/youtube-api/video-uploads-from-your-sites-community/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=video-uploads-from-your-sites-community</link>
		<comments>https://googledata.org/youtube-api/video-uploads-from-your-sites-community/#comments</comments>
		<pubDate>Wed, 15 Feb 2012 15:22:00 +0000</pubDate>
		<dc:creator><![CDATA[YouTube Staff]]></dc:creator>
				<category><![CDATA[Youtube API]]></category>
		<category><![CDATA[youtube docs]]></category>
		<category><![CDATA[youtube integration]]></category>
		<category><![CDATA[youtube video]]></category>

		<guid isPermaLink="false">https://googledata.org/?guid=d46fa65d72669d164427c8bf06d9d4c0</guid>
		<description><![CDATA[Update (August 2012): We now suggest YouTube Direct Lite rather than YouTube Direct for most new integrations.The following scenario comes up all the time when we talk to developers: a website with an active readership is interested in soliciting video...]]></description>
				<content:encoded><![CDATA[<span style="font-family: Arial;"><span style="font-size: 15px; white-space: pre-wrap;"><i><b>Update (August 2012): </b>We now suggest <a href="https://code.google.com/p/youtube-direct-lite/">YouTube Direct Lite</a> rather than YouTube Direct for most new integrations.</i></span></span><br /><b><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"><br /></span></b><b id="internal-source-marker_0.7219735255930573"><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">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.</span><br /><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"></span><br /><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">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 </span><a href="http://apiblog.youtube.com/2010/02/best-practices-for-avoiding-quota.html"><span style="color: #1155cc; font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">quota system</span></a><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">. 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.</span><br /><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"></span><br /><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">The approach we recommend instead is using </span><a href="http://code.google.com/apis/youtube/2.0/developers_guide_protocol_authsub.html"><span style="color: #1155cc; font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">AuthSub</span></a><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"> or </span><a href="http://code.google.com/apis/youtube/2.0/developers_guide_protocol_oauth2.html"><span style="color: #1155cc; font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">OAuth 2</span></a><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"> (please don’t use </span><a href="http://apiblog.youtube.com/2011/03/clientlogin-fail.html"><span style="color: #1155cc; font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">ClientLogin</span></a><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">!) to authenticate users and allow users to access their YouTube accounts. Then, you can use the </span><a href="http://code.google.com/apis/youtube/2.0/developers_guide_protocol_browser_based_uploading.html"><span style="color: #1155cc; font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">browser-based upload flow</span></a><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"> 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.</span><br /><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"></span><br /><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">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 </span><a href="http://code.google.com/apis/youtube/2.0/developers_guide_protocol_uploading_videos.html#Assigning_Developer_Tags"><span style="color: #1155cc; font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">developer tags</span></a><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">; 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, </span><a href="http://code.google.com/apis/youtube/2.0/developers_guide_protocol_playlists.html"><span style="color: #1155cc; font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">add them to a playlist</span></a><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"> and </span><a href="http://support.google.com/youtube/bin/answer.py?hl=en&amp;answer=171780"><span style="color: #1155cc; font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">embed that playlist</span></a><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"> on your site, or feature the playlist on the channel page of your own YouTube account.</span><br /><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"></span><br /><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">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 </span><a href="http://code.google.com/p/youtube-direct/"><span style="color: #1155cc; font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">YouTube Direct project</span></a><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">. 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.</span><br /><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"></span><br /><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">Cheers,</span><br /><span style="font-family: Arial; font-size: 15px; font-style: italic; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">—Jeff Posnick, YouTube API Team</span></b><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2443724041307041823-3797198900202632251?l=apiblog.youtube.com' alt='' /></div>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/youtube-api/video-uploads-from-your-sites-community/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Watch History Comes to the API</title>
		<link>https://googledata.org/youtube-api/watch-history-comes-to-the-api/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=watch-history-comes-to-the-api</link>
		<comments>https://googledata.org/youtube-api/watch-history-comes-to-the-api/#comments</comments>
		<pubDate>Tue, 24 Jan 2012 21:50:00 +0000</pubDate>
		<dc:creator><![CDATA[YouTube Staff]]></dc:creator>
				<category><![CDATA[Youtube API]]></category>
		<category><![CDATA[youtube docs]]></category>
		<category><![CDATA[youtube integration]]></category>
		<category><![CDATA[youtube video]]></category>

		<guid isPermaLink="false">https://googledata.org/?guid=57276dba70e4f4dda9f522320a074feb</guid>
		<description><![CDATA[There’s a new entry in the growing list of video feeds supported by the YouTube Data API: the watch history feed. This feed allows authenticated API users to retrieve their own YouTube viewing histories—retrieving the watch history of any other use...]]></description>
				<content:encoded><![CDATA[<b id="internal-source-marker_0.25578132132068276"><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">There’s a new entry in the </span><a href="http://code.google.com/apis/youtube/2.0/developers_guide_protocol_video_feeds.html"><span style="color: #000099; font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">growing list</span></a><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"> of video feeds supported by the YouTube Data API: the </span><a href="https://developers.google.com/youtube/2.0/developers_guide_protocol_watch_history"><span style="color: #000099; font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">watch history feed</span></a><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">. 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 </span><a href="http://support.google.com/youtube/bin/answer.py?hl=en&amp;answer=95725"><span style="color: #000099; font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">viewing history exposed on the YouTube website</span></a><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">.</span><br /><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"></span><br /><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">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 </span><a href="http://code.google.com/apis/youtube/2.0/developers_guide_protocol_video_feeds.html#Related_Feeds"><span style="color: #000099; font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">algorithmically suggest</span></a><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"> other videos that might interest your users.</span><br /><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"></span><br /><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">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 </span><a href="http://code.google.com/apis/youtube/forum/"><span style="color: #000099; font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">developer forum</span></a><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">.</span><br /><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"></span><br /><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">Cheers,</span><br /><span style="font-family: Arial; font-size: 15px; font-style: italic; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">—Jeff Posnick, YouTube API Team</span></b><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2443724041307041823-3168212921653900498?l=apiblog.youtube.com' alt='' /></div>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/youtube-api/watch-history-comes-to-the-api/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>YouTube Direct Keeps Growing</title>
		<link>https://googledata.org/uncategorized/youtube-direct-keeps-growing/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=youtube-direct-keeps-growing</link>
		<comments>https://googledata.org/uncategorized/youtube-direct-keeps-growing/#comments</comments>
		<pubDate>Fri, 16 Dec 2011 22:45:00 +0000</pubDate>
		<dc:creator><![CDATA[YouTube Staff]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Youtube API]]></category>
		<category><![CDATA[youtube docs]]></category>
		<category><![CDATA[youtube integration]]></category>
		<category><![CDATA[youtube video]]></category>

		<guid isPermaLink="false">https://googledata.org/?guid=a2b7b62c485ef330c30b1e9863f9379c</guid>
		<description><![CDATA[YouTube Direct, our open source platform for obtaining and moderating user-generated videos (and photos!), was first announced over two years ago. Since that time, the project has continued to grow, and we’re happy to announce the latest round of add...]]></description>
				<content:encoded><![CDATA[<b id="internal-source-marker_0.03971776179969311"><a href="http://code.google.com/p/youtube-direct/"><span style="color: #000099; font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">YouTube Direct</span></a><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">, our open source platform for obtaining and moderating user-generated videos (and photos!), was </span><a href="http://apiblog.youtube.com/2009/11/enrich-your-site-with-youtube-direct.html"><span style="color: #000099; font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">first announced</span></a><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"> over two years ago. Since that time, the project has </span><a href="http://apiblog.youtube.com/2010/03/youtube-direct-for-mobile-and-other.html"><span style="color: #000099; font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">continued</span></a><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"> to </span><a href="http://apiblog.youtube.com/2010/04/new-features-in-youtube-direct-v20.html"><span style="color: #000099; font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">grow</span></a><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">, and we’re happy to announce the latest round of additional features.</span><br /><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"></span><br /><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">Most notably, we’ve released a completely rewritten YouTube Direct upload client for iOS devices (seen below). You can find it in its own </span><a href="http://code.google.com/p/ytd-iphone/"><span style="color: #000099; font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">open source project</span></a><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">, and it complements the existing </span><a href="http://code.google.com/p/ytd-android/"><span style="color: #000099; font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">upload client for Android devices</span></a><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">. 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.</span></b><br /><b><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"><br /></span></b><br /><div class="separator" style="clear: both; text-align: center;"><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;"><img border="0" height="320" src="http://3.bp.blogspot.com/-i6F7dCKmSqk/TuvJxE70GEI/AAAAAAAAA2A/8s3uKXQ_tLU/s320/ytd-screenshot.png" width="213" /></a></div><b><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"><br /></span></b><br /><b id="internal-source-marker_0.03971776179969311"><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">The biggest change in the 3.0 release of the YouTube Direct server code has to do with multitenancy. As explained in </span><a href="http://code.google.com/p/youtube-direct/wiki/MultipleInstances"><span style="color: #000099; font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">this guide</span></a><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">, 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.</span><br /><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"></span><br /><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">YouTube Direct powers a wide variety of video submission initiatives: sites as diverse as the New York Times’ </span><a href="http://www.youtube.com/user/September11"><span style="color: #000099; font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">Reflections on 9/11</span></a><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"> project, DrugFree.org’s “</span><a href="http://www.drugfree.org/give-get-involved/you-are-not-alone"><span style="color: #000099; font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">You are not alone</span></a><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">” and Google Developers</span></b><b id="internal-source-marker_0.03971776179969311"><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">’</span></b><b><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"> own “</span><a href="https://developers.google.com/go/stories/"><span style="color: #000099; font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">Share your story</span></a><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">” page are running by YouTube Direct behind the scenes.</span></b><br /><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"></span><br /><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">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 </span><a href="http://code.google.com/apis/youtube/forum/" style="font-weight: bold;"><span style="color: #000099; font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">developer’s forum</span></a><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">.</span><br /><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"></span><br /><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">Cheers,</span><br /><span style="font-family: Arial; font-size: 15px; font-style: italic; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">—Jeff Posnick, YouTube API Team</span><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2443724041307041823-404956769334711027?l=apiblog.youtube.com' alt='' /></div>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/uncategorized/youtube-direct-keeps-growing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="" length="" type="" />
		</item>
		<item>
		<title>A Friendly Update</title>
		<link>https://googledata.org/youtube-api/a-friendly-update/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=a-friendly-update</link>
		<comments>https://googledata.org/youtube-api/a-friendly-update/#comments</comments>
		<pubDate>Wed, 07 Dec 2011 22:19:00 +0000</pubDate>
		<dc:creator><![CDATA[YouTube Staff]]></dc:creator>
				<category><![CDATA[Youtube API]]></category>
		<category><![CDATA[youtube docs]]></category>
		<category><![CDATA[youtube integration]]></category>
		<category><![CDATA[youtube video]]></category>

		<guid isPermaLink="false">https://googledata.org/?guid=d0146cd8b1345e0f2da27f49aa5d9562</guid>
		<description><![CDATA[As you might have recently read, 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 whe...]]></description>
				<content:encoded><![CDATA[<span id="internal-source-marker_0.8223732302431017" style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">As you might have recently </span><a href="http://www.google.com/support/forum/p/youtube/thread?tid=5336e41c0fd5ea48"><span style="color: #000099; font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">read</span></a><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">, 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.</span><br /><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"></span><br /><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">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 </span><a href="http://code.google.com/apis/youtube/2.0/developers_guide_protocol_activity_feeds.html#Friend_activity_feeds"><span style="color: #000099; font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">friends activity feed</span></a><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">. 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 </span><a href="http://apiblog.youtube.com/2008/11/all-worlds-stage.html"><span style="color: #000099; font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">staging environment</span></a><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"> that contains activity updates from the accounts you’re subscribed to:</span><br /><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"></span><br /><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"> &nbsp;</span><span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">https://gdata.youtube.com/feeds/api/users/default/subtivity</span><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"></span><br /><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"></span><br /><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">As of right now on our </span><a href="http://apiblog.youtube.com/2008/11/all-worlds-stage.html"><span style="color: #000099; font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">staging server</span></a><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">, 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.</span><br /><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"></span><br /><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">There are also API calls related to YouTube </span><a href="http://code.google.com/apis/youtube/2.0/developers_guide_protocol_contacts.html"><span style="color: #000099; font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">contact management</span></a><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"> that would accept either an email address (in a </span><span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">&lt;gd:email&gt;</span><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"> element) or a YouTube username (in a </span><span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">&lt;yt:username&gt;</span><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"> element). As a side effect of this migration, you can only use </span><span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">&lt;yt:username&gt;</span><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"> for these calls, which is what the API’s documentation has recommended doing all along. An attempt to use </span><span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">&lt;gd:email&gt;</span><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"> will lead to a HTTP 400 error response.</span><br /><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"></span><br /><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">Thanks for bearing with us through these changes. If you have any questions or concerns, please let us know in our </span><a href="http://code.google.com/apis/youtube/forum/"><span style="color: #000099; font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">developer forum</span></a><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">.</span><br /><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"></span><br /><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">Cheers,</span><br /><span style="font-family: Arial; font-size: 15px; font-style: italic; vertical-align: baseline; white-space: pre-wrap;">—Jeff Posnick, YouTube API Team</span><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2443724041307041823-5415264827755806484?l=apiblog.youtube.com' alt='' /></div>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/youtube-api/a-friendly-update/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Support for the Watch Later List</title>
		<link>https://googledata.org/youtube-api/support-for-the-watch-later-list/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=support-for-the-watch-later-list</link>
		<comments>https://googledata.org/youtube-api/support-for-the-watch-later-list/#comments</comments>
		<pubDate>Wed, 05 Oct 2011 18:44:00 +0000</pubDate>
		<dc:creator><![CDATA[YouTube Staff]]></dc:creator>
				<category><![CDATA[Youtube API]]></category>
		<category><![CDATA[youtube docs]]></category>
		<category><![CDATA[youtube integration]]></category>
		<category><![CDATA[youtube video]]></category>

		<guid isPermaLink="false">https://googledata.org/?guid=bed36849f258175b473ff249458aa08d</guid>
		<description><![CDATA[YouTube’s Watch Later 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 askin...]]></description>
				<content:encoded><![CDATA[<br /><div style="background-color: transparent;"><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;">YouTube’s </span><a href="http://www.google.com/support/youtube/bin/answer.py?answer=1290556"><span style="background-color: transparent; color: #000099; font-family: Arial; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">Watch Later</span></a><span style="background-color: transparent; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> 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.</span><br /><span style="background-color: transparent; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"></span><br /><span style="background-color: transparent; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">As explained in our </span><a href="http://code.google.com/apis/youtube/2.0/developers_guide_protocol_playlists.html#Retrieving_watch_later_playlist"><span style="background-color: transparent; color: #000099; font-family: Arial; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">documentation</span></a><span style="background-color: transparent; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">, 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 </span><a href="http://code.google.com/apis/youtube/2.0/developers_guide_protocol_authentication.html"><span style="background-color: transparent; color: #000099; font-family: Arial; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">authenticated</span></a><span style="background-color: transparent; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> request as the list’s owner.</span><br /><span style="background-color: transparent; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"></span><br /><span style="background-color: transparent; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">If you have any questions about using the Data API to work with the Watch Later list, please let us know in our </span><a href="http://code.google.com/apis/youtube/forum/discussion.html"><span style="background-color: transparent; color: #000099; font-family: Arial; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">developer forum</span></a><span style="background-color: transparent; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span><br /><span style="background-color: transparent; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"></span><br /><span style="background-color: transparent; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Cheers,</span><br /><span style="background-color: transparent; font-family: Arial; font-size: 11pt; font-style: italic; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">—Jeff Posnick, YouTube API Team</span></div><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2443724041307041823-5240321965697864165?l=apiblog.youtube.com' alt='' /></div>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/youtube-api/support-for-the-watch-later-list/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Auth Tokens &amp; Unlinked YouTube Accounts</title>
		<link>https://googledata.org/youtube-api/auth-tokens-unlinked-youtube-accounts/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=auth-tokens-unlinked-youtube-accounts</link>
		<comments>https://googledata.org/youtube-api/auth-tokens-unlinked-youtube-accounts/#comments</comments>
		<pubDate>Thu, 25 Aug 2011 19:46:00 +0000</pubDate>
		<dc:creator><![CDATA[YouTube Staff]]></dc:creator>
				<category><![CDATA[Youtube API]]></category>
		<category><![CDATA[youtube docs]]></category>
		<category><![CDATA[youtube integration]]></category>
		<category><![CDATA[youtube video]]></category>

		<guid isPermaLink="false">https://googledata.org/?guid=619485960cbd693fba6c15e540f91c43</guid>
		<description><![CDATA[Dedicated readers of this blog will remember our post from a few months back entitled “ClientLogin #FAIL”. In it, we laid out a number of scenarios in which attempts to use ClientLogin authentication would result in an error (and urged developers t...]]></description>
				<content:encoded><![CDATA[<br /><div style="background-color: transparent;"><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;">Dedicated readers of this blog will remember our post from a few months back entitled “</span><a href="http://apiblog.youtube.com/2011/03/clientlogin-fail.html"><span style="background-color: transparent; color: #000099; font-family: Arial; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">ClientLogin #FAIL</span></a><span style="background-color: transparent; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">”. 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 </span><a href="http://youtube-global.blogspot.com/2010/07/connecting-google-account-to-your-older.html"><span style="background-color: transparent; color: #000099; font-family: Arial; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">linked to a Google Account</span></a><span style="background-color: transparent; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">. 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.</span><br /><span style="background-color: transparent; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"></span><br /><span style="background-color: transparent; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">There’s another related failure scenario that we want to bring to everyone’s attention, this time involving both </span><a href="http://code.google.com/apis/youtube/2.0/developers_guide_protocol_authsub.html"><span style="background-color: transparent; color: #000099; font-family: Arial; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">AuthSub</span></a><span style="background-color: transparent; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> and </span><a href="http://code.google.com/apis/youtube/2.0/developers_guide_protocol_oauth.html"><span style="background-color: transparent; color: #000099; font-family: Arial; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">OAuth</span></a><span style="background-color: transparent; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> (collectively referred to here as “auth”) tokens. </span><span style="background-color: transparent; font-family: Arial; font-size: 11pt; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Starting on Wednesday, August 31</span><span style="background-color: transparent; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">, if your code attempts to use an auth token that was generated for an unlinked YouTube account, your request will fail with an </span><span style="background-color: transparent; font-family: Arial; font-size: 11pt; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">HTTP 401 response code</span><span style="background-color: transparent; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> indicating that the token is invalid.</span><br /><span style="background-color: transparent; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"></span><br /><span style="background-color: transparent; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">It’s important to note that what determines when the token is invalid is whether the YouTube account was linked </span><span style="background-color: transparent; font-family: Arial; font-size: 11pt; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">at the time the initial auth token was generated</span><span style="background-color: transparent; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">. 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.</span><br /><span style="background-color: transparent; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"></span><br /><span style="background-color: transparent; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">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.</span><br /><span style="background-color: transparent; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"></span><br /><span style="background-color: transparent; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">While auth tokens normally don’t expire, users have the option of </span><a href="https://www.google.com/accounts/IssuedAuthSubTokens"><span style="background-color: transparent; color: #000099; font-family: Arial; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">manually revoking them</span></a><span style="background-color: transparent; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">. If your code uses a revoked token, you’ll also get back an HTTP 401 response. If you’re using a </span><a href="http://code.google.com/apis/youtube/code.html"><span style="background-color: transparent; color: #000099; font-family: Arial; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">client library</span></a><span style="background-color: transparent; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">, 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.</span><br /><span style="background-color: transparent; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"></span><br /><span style="background-color: transparent; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">If you have any questions about YouTube API authentication, please let us know in our </span><a href="http://code.google.com/apis/youtube/forum/discussion.html"><span style="background-color: transparent; color: #000099; font-family: Arial; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">developer forum</span></a><span style="background-color: transparent; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span><br /><span style="background-color: transparent; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"></span><br /><span style="background-color: transparent; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Cheers,</span><br /><span style="background-color: transparent; font-family: Arial; font-size: 11pt; font-style: italic; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">—Jeff Posnick, YouTube API Team</span></div><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2443724041307041823-814251531769638654?l=apiblog.youtube.com' alt='' /></div>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/youtube-api/auth-tokens-unlinked-youtube-accounts/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The New CodeIgniter PHP Client Library</title>
		<link>https://googledata.org/youtube-api/the-new-codeigniter-php-client-library/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=the-new-codeigniter-php-client-library</link>
		<comments>https://googledata.org/youtube-api/the-new-codeigniter-php-client-library/#comments</comments>
		<pubDate>Tue, 23 Aug 2011 14:04:00 +0000</pubDate>
		<dc:creator><![CDATA[YouTube Staff]]></dc:creator>
				<category><![CDATA[Youtube API]]></category>
		<category><![CDATA[youtube docs]]></category>
		<category><![CDATA[youtube integration]]></category>
		<category><![CDATA[youtube video]]></category>

		<guid isPermaLink="false">https://googledata.org/?guid=2ae0461e3fb59896bb8bf5142f2385bf</guid>
		<description><![CDATA[While the YouTube Data API’s RESTful nature means that talking to YouTube is as easy as making an HTTP request, using a client library is a great way to improve your YouTube Data API productivity and write code using your preferred language’s nativ...]]></description>
				<content:encoded><![CDATA[<br /><div style="background-color: transparent;"><span style="font-family: inherit;"><span id="internal-source-marker_0.7227627334650606" style="background-color: transparent; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">While the YouTube Data API’s </span><a href="http://en.wikipedia.org/wiki/Representational_State_Transfer"><span style="background-color: transparent; color: #000099; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">RESTful</span></a><span style="background-color: transparent; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> nature means that talking to YouTube is as easy as making an HTTP request, using a </span><a href="http://code.google.com/apis/youtube/code.html"><span style="background-color: transparent; color: #000099; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">client library</span></a><span style="background-color: transparent; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> 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 </span><a href="http://www.zend.com/"><span style="background-color: transparent; color: #000099; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">Zend framework</span></a><span style="background-color: transparent; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> have had access to a </span><a href="http://code.google.com/apis/youtube/2.0/developers_guide_php.html"><span style="background-color: transparent; color: #000099; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">client library</span></a><span style="background-color: transparent; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> 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 </span><a href="http://codeigniter.com/"><span style="background-color: transparent; color: #000099; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">CodeIgniter framework</span></a><span style="background-color: transparent; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">, you’ll be happy to hear that there’s now an alternative client library available just for you.</span><br /><span style="background-color: transparent; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"></span><br /><span style="background-color: transparent; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">A third-party developer, </span><a href="http://twitter.com/jimdoescode"><span style="background-color: transparent; color: #000099; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">Jim Saunders</span></a><span style="background-color: transparent; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">, has developed a YouTube Data API library specifically for the CodeIgniter framework. You download the library on </span><a href="https://github.com/jimdoescode/CodeIgniter-YouTube-API-Library"><span style="background-color: transparent; color: #000099; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">GitHub</span></a><span style="background-color: transparent; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">, and read </span><a href="http://code.google.com/apis/youtube/articles/codeigniter_library.html"><span style="background-color: transparent; color: #000099; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">the article</span></a><span style="background-color: transparent; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> he’s written to find out how to get started with some sample code.</span><br /><span style="background-color: transparent; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"></span><br /><span style="background-color: transparent; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">While Jim wrote and still maintains the library, please feel free to ask any questions about the YouTube API in general in our </span><a href="http://groups.google.com/group/youtube-api-gdata"><span style="background-color: transparent; color: #000099; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">developer forum</span></a><span style="background-color: transparent; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">!</span><br /><span style="background-color: transparent; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"></span><br /><span style="background-color: transparent; font-size: 11pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Cheers,</span><br /><span style="background-color: transparent; font-size: 11pt; font-style: italic; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">—Jeff Posnick, YouTube API Team</span></span></div><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2443724041307041823-8395004044795156678?l=apiblog.youtube.com' alt='' /></div>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/youtube-api/the-new-codeigniter-php-client-library/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Coming Soon: The Dark Player for Embeds</title>
		<link>https://googledata.org/youtube-api/coming-soon-the-dark-player-for-embeds/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=coming-soon-the-dark-player-for-embeds</link>
		<comments>https://googledata.org/youtube-api/coming-soon-the-dark-player-for-embeds/#comments</comments>
		<pubDate>Sat, 06 Aug 2011 05:04:00 +0000</pubDate>
		<dc:creator><![CDATA[YouTube Staff]]></dc:creator>
				<category><![CDATA[Youtube API]]></category>
		<category><![CDATA[youtube docs]]></category>
		<category><![CDATA[youtube integration]]></category>
		<category><![CDATA[youtube video]]></category>

		<guid isPermaLink="false">https://googledata.org/?guid=e0dfab5f198c1edd3e28e15a10ddd497</guid>
		<description><![CDATA[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 t...]]></description>
				<content:encoded><![CDATA[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":<br /><br /><iframe width="560" height="349" src="http://www.youtube.com/embed/9h1swNWgP8Q?theme=dark&color=red" frameborder="0" allowfullscreen=""></iframe><br /><br />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 <a href="http://apiblog.youtube.com/2011/06/next-step-in-embedded-videos-hd-preview.html">modestbranding</a> option.)<br /><br />To pick an alternate theme, pass in values for the "theme" and "color" <a href="http://code.google.com/apis/youtube/player_parameters.html">player parameters</a>.  For instance, if you’d like to keep the traditional colors, you can pass parameters such as:<pre>&lt;iframe width="560" height="349"<br />  src="http://www.youtube.com/embed/9h1swNWgP8Q?theme=light&color=red"<br />  frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;</pre>Here are all the new themes, including the new default:<br /><br /><img src="https://lh3.googleusercontent.com/_Cvntm1ZghG-qoiXL-boVbTgkpBcgHFXKv7Ai-feWCTSO7ZlEFpKfc4OiBlIvIAJ5j6g6_4pzhzTjPkD_rcFi1xN0S7m4od2TV-UM7lnJYmrIsduLfE" width="691" height="245" /><br /><br />If you have any questions about this change, you can ask them on our <a href="http://code.google.com/apis/youtube/forum/">forum</a>.<br /><br />Cheers,<br />&mdash;Shannon -jj Behrens, YouTube API Team<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2443724041307041823-7623946431243296305?l=apiblog.youtube.com' alt='' /></div>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/youtube-api/coming-soon-the-dark-player-for-embeds/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="" length="" type="" />
		</item>
		<item>
		<title>Introducing YouTube.com/create</title>
		<link>https://googledata.org/youtube-api/introducing-youtube-comcreate/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=introducing-youtube-comcreate</link>
		<comments>https://googledata.org/youtube-api/introducing-youtube-comcreate/#comments</comments>
		<pubDate>Fri, 01 Jul 2011 17:42:00 +0000</pubDate>
		<dc:creator><![CDATA[YouTube Staff]]></dc:creator>
				<category><![CDATA[Youtube API]]></category>
		<category><![CDATA[youtube docs]]></category>
		<category><![CDATA[youtube integration]]></category>
		<category><![CDATA[youtube video]]></category>

		<guid isPermaLink="false">https://googledata.org/?guid=bdcf7a66bef76ad6a80faab69495cdb2</guid>
		<description><![CDATA[YouTube.com/create is a platform for third-party applications that enable users to create videos. The idea is simple. The third-party application runs in an HTML iframe on YouTube. The user creates a video with the application, and then the application...]]></description>
				<content:encoded><![CDATA[<a href="http://youtube.com/create"g>YouTube.com/create</a> is a platform for third-party applications that enable users to create videos. The idea is simple. The third-party application runs in an HTML iframe on YouTube. The user creates a video with the application, and then the application uploads the video to YouTube for the user to watch and share.<br /><br />Many different types of applications are already listed at YouTube.com/create. One True Media is a simple video editor. GoAnimate lets you create custom animations. Stupeflix lets you mix pictures, videos, maps, text, and music into a story. Xtranormal lets you turn anything you type into a fully-animated CG movie. Who knows what other developers have in store for YouTube.com/create?<br /><br />Here’s one example of a company that decided to integrate with YouTube.com/create and experienced a signficant growth in traffic:<br /><br /><iframe width="560" height="349" src="http://www.youtube.com/embed/m-t4pcO99gI" frameborder="0" allowfullscreen></iframe><br /><br />To list your application on YouTube.com/create, you’ll need the following:<ul><li>The name of your application (max 60 characters).</li><li>A description of your application (max 50 words).</li><li>A 120x120 icon. The icon will display with rounded corners.</li><li>A tutorial video (hosted on YouTube).</li></ul>The application itself must meet the following requirements:<ul><li>It must support <a href="http://code.google.com/apis/accounts/docs/OpenID.html">Google federated login using OpenID</a>.</li><li>It must post the resulting video to YouTube. The application should <a href="http://code.google.com/apis/youtube/2.0/developers_guide_protocol_uploading_videos.html">upload the video</a> on behalf of the user using <a href="http://code.google.com/apis/youtube/2.0/developers_guide_protocol_authentication.html">OAuth2 or AuthSub</a>.</li><li>It must provide branding within the user interface if the user is required to upload assets (to make it clear that the upload is going to the third-party application, not to YouTube).</li><li>It must not show ads within the iframe. However, the freemium model is acceptable, providing the base level of functionality is useful.</li></ul>The application must run within the context of a 960px-wide iframe that will display on YouTube. The iframe does not limit the vertical space that your application occupies. For best appearance, your application should have a white background.<br /><br />When you are ready to submit your application for inclusion on <a href="http://youtube.com/create">YouTube.com/create</a>, submit it to the <a href="http://youtube-gallery.appspot.com/submit">YouTube Project Gallery</a> using the hashtag #create, and YouTube will contact you via email.<br /><br />For more information about integrating with YouTube’s API, check out our <a href="http://code.google.com/apis/youtube/getting_started.html">developer documentation</a> and join us on our <a href="https://groups.google.com/group/youtube-api-gdata">mailing list</a>!<br /><br />Cheers,<br /><i>—Shannon -jj Behrens, YouTube API Team</i><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2443724041307041823-6884638060460989373?l=apiblog.youtube.com' alt='' /></div>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/youtube-api/introducing-youtube-comcreate/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="" length="" type="" />
		</item>
	</channel>
</rss>
