<?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; Shannon -jj Behrens</title>
	<atom:link href="/author/shannon-jj-behrens/feed/" rel="self" type="application/rss+xml" />
	<link>https://googledata.org</link>
	<description>Everything Google: News, Products, Services, Content, Culture</description>
	<lastBuildDate>Fri, 27 Mar 2015 22:49:36 +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>Party Playlist Picker: An experimental project written in Python</title>
		<link>https://googledata.org/youtube-api/party-playlist-picker-an-experimental-project-written-in-python/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=party-playlist-picker-an-experimental-project-written-in-python</link>
		<comments>https://googledata.org/youtube-api/party-playlist-picker-an-experimental-project-written-in-python/#comments</comments>
		<pubDate>Tue, 14 Aug 2012 20:39:00 +0000</pubDate>
		<dc:creator><![CDATA[Shannon -jj Behrens]]></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=eeb736633ef6b74b62c57b8e01871648</guid>
		<description><![CDATA[<div dir="ltr">When Google+ first came out, we were really excited about the idea of writing some open source code to showcase how you could integrate YouTube with Google+. After some brainstorming, we came up with the idea of letting people collaboratively edit a playlist in realtime, and we started hacking!<br /><br />We started working on Party Playlist Picker in early 2011. We&#8217;ve always wanted to release our experiment as an open source project, and you can now <a href="http://code.google.com/p/party-playlist-picker/">download the code</a> to see one example of integrating Google+ functionality to enrich a YouTube application.<br /><br />Party Playlist Picker is a <a href="https://developers.google.com/appengine/docs/python/overview">Google App Engine application written in Python</a>. It uses a <a href="https://developers.google.com/+/plugins/share/">Google+ share button</a> so that partygoers can invite their friends to come edit a playlist in realtime. That feature is based on the Google App Engine <a href="https://developers.google.com/appengine/docs/python/channel/overview">channel API</a>. It makes use of the <a href="http://code.google.com/p/gdata-python-client/">gdata-python-client library</a> to talk to <a href="http://www.youtube.com/dev">YouTube</a> and the <a href="http://code.google.com/p/google-api-python-client/">google-api-python-client library</a> to talk to <a href="https://developers.google.com/+/api/">Google+</a>. It&#8217;s currently using version 1 of the YouTube API (because that&#8217;s what gdata-python-client uses), and we used <a href="https://developers.google.com/youtube/2.0/developers_guide_protocol_oauth2">OAuth 2</a> for authentication. In fact, we made good use of the Python client library to manage the OAuth 2 tokens for us automatically.<br /><br />There&#8217;s also a lot of <a href="http://jquery.com/">jQuery</a>-based JavaScript goodness. For instance, you can search for videos without reloading the page, and you can simply drag them to add them to the playlist. If multiple people edit the page at the same time, the list of videos is updated in realtime whenever a change is made. You can also watch videos right on the page. Last of all, it keeps track of who&#8217;s edited the playlist, and whether they&#8217;re currently editing it.<br /><br />There are a bunch of subtle HTML5 tricks thrown in as well. For instance, the application supports voice search, and we made a clever use of gradients to fade overflow text in the video descriptions.<br /><br />Here&#8217;s a screenshot of the application:<br /><div><a href="http://3.bp.blogspot.com/-hVI4bfrUuXM/UCqyoRpFg6I/AAAAAAAAAaY/o9WEoJvBRjM/s1600/Party%2BPlaylist%2BPicker%2BScreenshot.png"><img border="0" height="256" src="http://3.bp.blogspot.com/-hVI4bfrUuXM/UCqyoRpFg6I/AAAAAAAAAaY/o9WEoJvBRjM/s320/Party%2BPlaylist%2BPicker%2BScreenshot.png" width="320"></a></div>If you&#8217;re interested in learning more, you can play around with a <a href="http://party-playlist-picker.appspot.com/">running version</a> of it, or you can download the <a href="http://code.google.com/p/party-playlist-picker/">source code</a>  and hack away! If you have any questions, post them to our <a href="https://developers.google.com/youtube/forum/discussion">developer forum</a>.<br /><br /><b>Update</b>: Watch JJ, Jeff, and Danny Hermes (from the App Engine Developer Relations team) talk about Party Playlist Picker as part of <a href="https://developers.google.com/live/youtube">YouTube Developers Live</a>:<br /><br /><br />Cheers,<br />--<i>Shannon -jj Behrens and Jeffrey Posnick, YouTube API Team</i></div>]]></description>
				<content:encoded><![CDATA[<div dir="ltr" style="text-align: left;" trbidi="on">When Google+ first came out, we were really excited about the idea of writing some open source code to showcase how you could integrate YouTube with Google+. After some brainstorming, we came up with the idea of letting people collaboratively edit a playlist in realtime, and we started hacking!<br /><br />We started working on Party Playlist Picker in early 2011. We’ve always wanted to release our experiment as an open source project, and you can now <a href="http://code.google.com/p/party-playlist-picker/">download the code</a> to see one example of integrating Google+ functionality to enrich a YouTube application.<br /><br />Party Playlist Picker is a <a href="https://developers.google.com/appengine/docs/python/overview">Google App Engine application written in Python</a>. It uses a <a href="https://developers.google.com/+/plugins/share/">Google+ share button</a> so that partygoers can invite their friends to come edit a playlist in realtime. That feature is based on the Google App Engine <a href="https://developers.google.com/appengine/docs/python/channel/overview">channel API</a>. It makes use of the <a href="http://code.google.com/p/gdata-python-client/">gdata-python-client library</a> to talk to <a href="http://www.youtube.com/dev">YouTube</a> and the <a href="http://code.google.com/p/google-api-python-client/">google-api-python-client library</a> to talk to <a href="https://developers.google.com/+/api/">Google+</a>. It’s currently using version 1 of the YouTube API (because that’s what gdata-python-client uses), and we used <a href="https://developers.google.com/youtube/2.0/developers_guide_protocol_oauth2">OAuth 2</a> for authentication. In fact, we made good use of the Python client library to manage the OAuth 2 tokens for us automatically.<br /><br />There’s also a lot of <a href="http://jquery.com/">jQuery</a>-based JavaScript goodness. For instance, you can search for videos without reloading the page, and you can simply drag them to add them to the playlist. If multiple people edit the page at the same time, the list of videos is updated in realtime whenever a change is made. You can also watch videos right on the page. Last of all, it keeps track of who’s edited the playlist, and whether they’re currently editing it.<br /><br />There are a bunch of subtle HTML5 tricks thrown in as well. For instance, the application supports voice search, and we made a clever use of gradients to fade overflow text in the video descriptions.<br /><br />Here’s a screenshot of the application:<br /><div class="separator" style="clear: both; text-align: center;"><a href="http://3.bp.blogspot.com/-hVI4bfrUuXM/UCqyoRpFg6I/AAAAAAAAAaY/o9WEoJvBRjM/s1600/Party%2BPlaylist%2BPicker%2BScreenshot.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="256" src="http://3.bp.blogspot.com/-hVI4bfrUuXM/UCqyoRpFg6I/AAAAAAAAAaY/o9WEoJvBRjM/s320/Party%2BPlaylist%2BPicker%2BScreenshot.png" width="320" /></a></div>If you’re interested in learning more, you can play around with a <a href="http://party-playlist-picker.appspot.com/">running version</a> of it, or you can download the <a href="http://code.google.com/p/party-playlist-picker/">source code</a>  and hack away! If you have any questions, post them to our <a href="https://developers.google.com/youtube/forum/discussion">developer forum</a>.<br /><br /><b>Update</b>: Watch JJ, Jeff, and Danny Hermes (from the App Engine Developer Relations team) talk about Party Playlist Picker as part of <a href="https://developers.google.com/live/youtube">YouTube Developers Live</a>:<br /><br /><iframe width="560" height="315" src="http://www.youtube.com/embed/vGWAiAfmrhc" frameborder="0" allowfullscreen></iframe><br />Cheers,<br />--<i>Shannon -jj Behrens and Jeffrey Posnick, YouTube API Team</i></div>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/youtube-api/party-playlist-picker-an-experimental-project-written-in-python/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="" length="" type="" />
		</item>
		<item>
		<title>Google I/O 101: YouTube for Your Business</title>
		<link>https://googledata.org/youtube-api/google-io-101-youtube-for-your-business/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=google-io-101-youtube-for-your-business</link>
		<comments>https://googledata.org/youtube-api/google-io-101-youtube-for-your-business/#comments</comments>
		<pubDate>Wed, 27 Jun 2012 01:15:00 +0000</pubDate>
		<dc:creator><![CDATA[Shannon -jj Behrens]]></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=58a9dd11c0cb1ff14103694256d69e80</guid>
		<description><![CDATA[<div dir="ltr"><p>In preparation for Google I/O, we've created a presentation for people who've never integrated with YouTube before.  This video tutorial is an introduction to YouTube and its APIs with an emphasis on how you can use them for your business. It includes examples for technical and nontechnical audiences.</p><br /><p></p><br /><p>Cheers,<br /><i>&#8212;Shannon -jj Behrens, YouTube API Team</i></p></div>]]></description>
				<content:encoded><![CDATA[<div dir="ltr" style="text-align: left;" trbidi="on"><p>In preparation for Google I/O, we've created a presentation for people who've never integrated with YouTube before.  This video tutorial is an introduction to YouTube and its APIs with an emphasis on how you can use them for your business. It includes examples for technical and nontechnical audiences.</p><br> <p><iframe width="560" height="315" src="http://www.youtube.com/embed/ch1LrOdKbWY" frameborder="0" allowfullscreen></iframe></p><br> <p>Cheers,<br><i>—Shannon -jj Behrens, YouTube API Team</i></p></div>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/youtube-api/google-io-101-youtube-for-your-business/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="" length="" type="" />
		</item>
		<item>
		<title>Google I/O 101: Using Ruby on Rails and YouTube for Education</title>
		<link>https://googledata.org/youtube-api/google-io-101-using-ruby-on-rails-and-youtube-for-education/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=google-io-101-using-ruby-on-rails-and-youtube-for-education</link>
		<comments>https://googledata.org/youtube-api/google-io-101-using-ruby-on-rails-and-youtube-for-education/#comments</comments>
		<pubDate>Tue, 26 Jun 2012 12:25:00 +0000</pubDate>
		<dc:creator><![CDATA[Shannon -jj Behrens]]></dc:creator>
				<category><![CDATA[Youtube API]]></category>
		<category><![CDATA[education]]></category>
		<category><![CDATA[youtube docs]]></category>
		<category><![CDATA[youtube integration]]></category>
		<category><![CDATA[youtube video]]></category>

		<guid isPermaLink="false">https://googledata.org/?guid=d84e61437e61c5fc9140c7b93d915024</guid>
		<description><![CDATA[Update (July 2012): The sample application demonstrated in this video, Quizzimoto, is now open source. As a reader of this blog, you already know that YouTube offers APIs, and you probably also know that video is one of the most powerful communication ...]]></description>
				<content:encoded><![CDATA[<div dir="ltr" style="text-align: left;" trbidi="on"><p><i><b>Update (July 2012):</b> The sample application demonstrated in this video, <a href="http://code.google.com/p/quizzimoto/">Quizzimoto</a>, is now open source.</i></p> <p>As a reader of this blog, you already know that YouTube offers APIs, and you probably also know that video is one of the most powerful communication mechanisms for instilling knowledge.  Now you can combine the two!  In this video tutorial, we'll show you that YouTube and Ruby on Rails are a great fit for building interesting educational apps.  Along the way, we'll also cover OAuth2, the various client libraries for Ruby, and using test-driven development with RESTful web APIs.</p><br> <p><iframe width="560" height="315" src="http://www.youtube.com/embed/XstD6_c3hj0" frameborder="0" allowfullscreen></iframe></p><br> <p>Cheers,<br><i>—Shannon -jj Behrens, YouTube API Team</i></p><br /></div>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/youtube-api/google-io-101-using-ruby-on-rails-and-youtube-for-education/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="" length="" type="" />
		</item>
		<item>
		<title>The YouTube Player: Now with 30% More Playlistiness!</title>
		<link>https://googledata.org/youtube-api/the-youtube-player-now-with-30-more-playlistiness/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=the-youtube-player-now-with-30-more-playlistiness</link>
		<comments>https://googledata.org/youtube-api/the-youtube-player-now-with-30-more-playlistiness/#comments</comments>
		<pubDate>Tue, 29 May 2012 17:08:00 +0000</pubDate>
		<dc:creator><![CDATA[Shannon -jj Behrens]]></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=fd5f2e9252f80fd7e7831600a03eeaa9</guid>
		<description><![CDATA[When we launched support for lists of videos in the YouTube player in March, it was greeted with a lot of enthusiasm. However, some developers pointed out that at first glance it didn’t look very much like a playlist. In particular, they wanted the l...]]></description>
				<content:encoded><![CDATA[<div dir="ltr" style="text-align: left;" trbidi="on"><p>When we launched support for lists of videos in the YouTube player in March, it was greeted with a lot of enthusiasm. However, some developers pointed out that at first glance it didn’t look very much like a playlist. In particular, they wanted the list of video thumbnails to be visible all the time.</p> <p>Well, you guys asked for it, and we listened. If you pass a parameter, <span style="font-family: 'Courier New'; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">showinfo=1</span>, when creating the player, the list of video thumbnails will be permanently visible. Here’s an example:</p> <p><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/?listType=user_uploads&amp;list=GoogleDevelopers&amp;<b>showinfo=1</b>" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt; </span></p> <p>The corresponding embedded player is shown below:</p> <iframe width="560" height="315" src="http://www.youtube.com/embed/?listType=user_uploads&list=GoogleDevelopers&showinfo=1" frameborder="0" allowfullscreen></iframe><br><br> <p>To see all of the parameters that the YouTube player supports, refer to the <a href="http://www.google.com/url?q=https%3A%2F%2Fdevelopers.google.com%2Fyoutube%2Fplayer_parameters">documentation</a>. If you have any questions, feel free to post them to the <a href="http://www.google.com/url?q=http%3A%2F%2Fgroups.google.com%2Fgroup%2Fyoutube-api-gdata">YouTube API Google Group</a>.</p> <p>Cheers,<br><i>—Shannon -jj Behrens, YouTube API Team</i></p></div>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/youtube-api/the-youtube-player-now-with-30-more-playlistiness/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Building Professional Video Sites with YouTube APIs</title>
		<link>https://googledata.org/uncategorized/building-professional-video-sites-with-youtube-apis/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=building-professional-video-sites-with-youtube-apis</link>
		<comments>https://googledata.org/uncategorized/building-professional-video-sites-with-youtube-apis/#comments</comments>
		<pubDate>Thu, 29 Dec 2011 22:57:00 +0000</pubDate>
		<dc:creator><![CDATA[Shannon -jj Behrens]]></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=4413bd982868cd86a317c7f33f461ea3</guid>
		<description><![CDATA[Using video on your website can add greater depth and richness for your audience. However, to do encoding, hosting and streaming right it takes some time and skill. If you’re lacking in either, here are some suggestions for sites that make it easy to...]]></description>
				<content:encoded><![CDATA[Using video on your website can add greater depth and richness for your audience. However, to do encoding, hosting and streaming right it takes some time and skill. If you’re lacking in either, here are some suggestions for sites that make it easy to help you setup video-based websites.<div><br /><img src="https://lh3.googleusercontent.com/7Kpbtwoc7NzQijjdtZqlKjvADuRzfCu6iOQO3OO4hX_IynocAAtOIcqD9-bpHWgMMNobeImpqttaF1nRjTRc73lUS8lafWQk71YLW-WlTIgXnWS4O4g" width="190px;" height="52px;" /><br /><br /><a href="http://www.vidcaster.com/">VidCaster</a> is a video content management system, whose goal is to make building a website with video as easy as possible.<br /><br />VidCaster makes use of custom URLs, <a href="http://www.google.com/webmasters/videositemaps/">video sitemaps</a>, metadata, and thumbnails to integrate well with search engines. They provide lots of features to customize your video site, like uploading a logo, picking a theme and choosing custom colors, and you can even upload custom CSS. Using their video management interface, you can publish, unpublish and delete videos. VidCaster can even distribute the videos from your video site to third-party sites such as YouTube and Twitter, and they can also integrate analytics from third-party sources.<br /><br />VidCaster uses <a href="http://code.google.com/apis/youtube/2.0/developers_guide_protocol_oauth2.html">OAuth2 with the YouTube API</a> to manage the user’s YouTube account, using both <a href="http://code.google.com/apis/youtube/2.0/developers_guide_protocol_sup.html">SUP</a> (Simple Update Protocol) and polling to make sure a user’s video site is always in sync with their YouTube channel. Companies that use VidCaster include <a href="http://tv.airbnb.com/">AirBnB</a>, <a href="http://hackersandfounders.tv/">Hackers and Founders</a>, and <a href="http://www.dirtcast.com/">Dirtcast</a>.</div><div><br /><img src="https://lh4.googleusercontent.com/0nbfWS1Asa8RBRv3kZqC4WMz3fK7o_QjrRBjzm19zhZmp-BjrLpXzP-F1Bvm_BSswOgxLwjFMrRW8lTOufjLG_-kBITKLBgevhIyN9gB848dKQl-ju4" width="550px;" height="485px;" /><br /><br />By integrating closely with <a href="http://code.google.com/apis/youtube/getting_started.html#data_api">YouTube’s data API</a>, VidCaster makes it easy for users to take advantage of YouTube’s video service from within their own custom video site.</div><div><br /><img src="https://lh5.googleusercontent.com/6E6Ary_2yJhABawjHMSe6oW9f3PuaOXI1F1RaFkLfQOxSXDtx8uQyb7iFiaAtOrqSext0Ib8yM_ssRJF5KiMRaKUAQ8z15-Dp39YAL8-sEK6dvzPglU" width="231px;" height="74px;" /><br /><br /><a href="http://www.moviecom.tv/">Moviecom.tv</a> tries to make it easy for businesses to build video sites about their company.<br /><br />Like VidCaster, Moviecom.tv provides users with a variety of features to customize their video site. They too show videos hosted on YouTube, but their integration with YouTube doesn’t yet include all the features that VidCaster does — for instance, Moviecom.tv can show YouTube videos using the <a href="http://apiblog.youtube.com/2010/07/new-way-to-embed-youtube-videos.html">iframe player</a>, but they haven’t yet integrated with YouTube’s <a href="http://code.google.com/apis/youtube/getting_started.html#data_api">data API</a>. This is something they plan on doing early in 2012. Moviecom.tv also touts their mobile application which takes the friction out of recording and uploading video to the right place.<br /><br />And they’re doing well at it — they were recently named a <a href="http://www.redherring.com/">Red Herring Global 100 Winner</a>. <a href="http://www.moviecom.tv/internetworld?videoid=4032">Internet World</a>, <a href="http://www.moviecom.tv/cityindex">City Index</a>, and <a href="http://www.moviecom.tv/staplesevents">Staples</a> are all example sites created using their platform:</div><div><br /><img src="https://lh3.googleusercontent.com/8wy-Tx8PQApEOtH5ofJJZv-t7C6WXBfensnw8Y5bjfGLBnPnR28MRDd-tDiM3JZgzKA9E561g3pQG11YgvBsqYjQKSIihWbVePuflU1lCkdh64GUqz8" width="550px;" height="382px;" /><br /><br />Companies like VidCaster and Moviecom.tv are a welcome part of the online video ecosystem. As Moviecom.tv CEO Gillian O'Neil once noted, Moviecom.tv isn’t competing with YouTube. By enabling third-party video sites to embed YouTube videos, YouTube isn’t trying to get a bigger piece of the pie. They’re making the pie bigger.<br /><br />Cheers,<br />—Shannon -jj Behrens, YouTube API Team<br /></div><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2443724041307041823-8784413846831356503?l=apiblog.youtube.com' alt='' /></div>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/uncategorized/building-professional-video-sites-with-youtube-apis/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Understanding Playback Restrictions</title>
		<link>https://googledata.org/youtube-api/understanding-playback-restrictions/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=understanding-playback-restrictions</link>
		<comments>https://googledata.org/youtube-api/understanding-playback-restrictions/#comments</comments>
		<pubDate>Wed, 28 Dec 2011 21:30:00 +0000</pubDate>
		<dc:creator><![CDATA[Shannon -jj Behrens]]></dc:creator>
				<category><![CDATA[Youtube API]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[youtube docs]]></category>
		<category><![CDATA[youtube integration]]></category>
		<category><![CDATA[youtube video]]></category>

		<guid isPermaLink="false">https://googledata.org/?guid=d4d96f9c54e1b843763c5ae15fc16628</guid>
		<description><![CDATA[Have you ever tried to show a user a YouTube video embedded on your site only to find out that they don’t have access to view it? For instance, if you try to play the video below, it’ll say “This video contains content from test_yt_owner, who has...]]></description>
				<content:encoded><![CDATA[Have you ever tried to show a user a YouTube video embedded on your site only to find out that they don’t have access to view it? For instance, if you try to play the video below, it’ll say “This video contains content from test_yt_owner, who has blocked it on copyright grounds.” There are many reasons why video playback can be restricted. The user might be in a country where the video is blocked, or the video’s content owner might have decided to block access to the video from all mobile applications.<br /><br /><iframe width="420" height="315" src="http://www.youtube.com/embed/1kIsylLeHHU" frameborder="0" allowfullscreen></iframe><br /><br />While we strive to make YouTube content available everywhere, we believe it's important to give YouTube content owners the ability to control where their videos are viewed, which sometimes means you can't view videos in a certain country or on a certain device.<br /><br />With enhanced content controls comes increased complexity. The only foolproof way to determine if a user has access to watch a video is to ask them to try watching it. So, if you’re writing an application and you’d like to prevent users from seeing videos that they don’t have the ability to watch, here are a list of things to check:<br /><br />1. <a href="http://code.google.com/apis/youtube/2.0/reference.html#youtube_data_api_tag_yt:accessControl"><code>yt:accessControl</code></a><br /><br />Videos that are available for embedding on third-party applications will have the following:<pre>&lt;yt:accesscontrol action='embed' permission='allowed' /&gt;</pre>If you’d like to only search for videos that are embeddable, add <a href="http://code.google.com/apis/youtube/2.0/reference.html#formatsp"><code>format=5</code></a> to your query.<br /><br />Just as a video can be embeddable or not, it can also be syndicatable or not:<pre>&lt;yt:accesscontrol action='syndicate' permission='allowed' /&gt;</pre>A <a href="http://gdata.youtube.com/feeds/api/videos/AfuHSJqqgAo?v=2&amp;prettyprint=true">video</a> that is embeddable but not syndicatable will play on YouTube.com or on other sites that embed the YouTube player, but may not play on devices such as mobile phones or TVs. If you’d like to learn more about retrieving videos suitable for playback on mobile devices, see the <a href="http://code.google.com/apis/youtube/2.0/developers_guide_protocol_partial.html#Retrieving_Videos_for_Mobile_Playback">developer’s guide</a>.<br /><br />2. <a href="http://code.google.com/apis/youtube/2.0/reference.html#restrictionsp">Geo Restrictions</a><br /><br />Some videos may be restricted in certain countries. This restriction applies to where the viewer is located, not where your third-party server is located. For instance, if a video is blocked in the US, it will have the following:<pre>&lt;media:restriction type='country'<br />  relationship='deny'&gt;US&lt;/media:restriction&gt;</pre>When you make a query, you can add a <a href="http://code.google.com/apis/youtube/2.0/reference.html#restrictionsp">restriction</a> parameter to filter videos that will not be playable by a client with a specific IP or from a specific country.<br /><br />3. <a href="http://code.google.com/apis/youtube/2.0/reference.html#youtube_data_api_tag_yt:state"><code>yt:state</code></a><br /><br />It’s also important to check the <code>yt:state</code> of the video in the API response. Even if <code>yt:accessControl</code> indicates that syndication is allowed, <code>yt:state</code> might override it. For example, a video that has limited syndication would have the following:<pre>&lt;app:control&gt;<br />  &lt;yt:state name='restricted' reasoncode='limitedSyndication'&gt;<br />    Syndication of this video was restricted by its owner.<br />  &lt;/yt:state&gt;<br />&lt;/app:control&gt;</pre>You might also <a href="http://gdata.youtube.com/feeds/api/videos/d2smz_1L2_0?v=2&amp;prettyprint=true">see the message</a>, “Syndication of this video was restricted by the content owner.” Hence, even if the uploader allows syndication, the content owner could override that and disallow syndication. For example, this could happen if someone uploads a video that contains a soundtrack that is owned by another content owner.<br /><br />4. Rentals<br /><br />Some YouTube videos are rentals. You can tell that they are rentals because they have a <a href="http://code.google.com/apis/youtube/2.0/reference.html#youtube_data_api_tag_media:price"><code>media:price</code></a> tag:<pre>&lt;media:price type='rent' price='1.99' currency='USD' yt:duration='PT2592000S' /&gt;</pre>Note that the <code>media:price</code> tag is only included in the response if you use a <a href="http://code.google.com/apis/youtube/dashboard/">developer key</a> in the query. If you are building a non-browser based YouTube application where it would be impossible for the user to rent a video, you might want to filter out the rentals. You can do that by passing the parameter <a href="http://code.google.com/apis/youtube/2.0/developers_guide_protocol_api_query_parameters.html#paid-contentsp"><code>paid-content=false</code></a>.<br /><br />5. Other Restrictions not Currently Exposed via the API<br /><br />There are even more subtle restrictions that occasionally come into play. Not all of these are currently queryable via the API. For instance, some videos are only playable on a certain set of domains. As I mentioned above, the only foolproof way to know if a user has access to watch a video is to have them try watching it.<br /><br />Going back to the video above, you might be wondering why it won’t play. If you look at its video entry:<br /><br /><a href="http://gdata.youtube.com/feeds/api/videos/1kIsylLeHHU?v=2&amp;prettyprint=true">http://gdata.youtube.com/feeds/api/videos/1kIsylLeHHU?v=2&amp;prettyprint=true</a><br /><br />you’ll see that it’s blocked in all countries:<pre>&lt;media:restriction type='country' relationship='deny'&gt;<br />  BD BE BF...<br />&lt;/media:restriction&gt;</pre>Furthermore, both syndication and embedding are disallowed:<pre>&lt;yt:accesscontrol action='embed' permission='denied' /&gt;<br />&lt;yt:accesscontrol action='syndicate' permission='denied' /&gt;</pre>Hopefully this short blog post on video playback restrictions will help you write applications that have a better understanding of what videos users can and can’t watch. If you have any questions, you can ask them on our <a href="http://code.google.com/apis/youtube/forum/">forum</a>.<br /><br />Cheers,<br />—Shannon -jj Behrens, YouTube API Team<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2443724041307041823-2349097856236925668?l=apiblog.youtube.com' alt='' /></div>]]></content:encoded>
			<wfw:commentRss>https://googledata.org/youtube-api/understanding-playback-restrictions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="" length="" type="" />
		</item>
	</channel>
</rss>
