deeveloper api pt. 1

2,938 views
2,795 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
2,938
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
3
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

deeveloper api pt. 1

  1. 1. https://docs.google.com/Doc? docid=0ATnhWp1czE60ZGM5NGN3OWNfMWZzZ3ZuNWdx&hl=en&authk ey=CPDc36oL Registered Products cynophagie AI39si5wUGAI2d3oxYtfl-VthVYk1Jx9lIM3PMxAON1gxL4nxpQEXiwAadX9jiKZ- gIXpDYDtq1yA6Nfl86B1IQqQTCWNadpFg Product Docs Dashboard FAQ : Articles cynophagi Blog e Group Terms Registered Products Product Details cynophagie Name* Website New Product Description Edit Developer Key About 25 results (0.29 seconds) Search Results
  2. 2. Heidi en español 1 min - May 24, 2006 - Uploaded by igloows Intro de Heidi en español ... heidi español cartoons dibujos animados ... Intro de Heidi en español youtube.com - Related videos PAPIEL De Heidi Por Curi 4 min - Oct 22, 2008 Aquà tenéis el papiel de Heidi , lo he hecho con toda mi nostalgia de mi niñez , este papiel se lo he dedicad metacafe.com - Related videos Heidi cap 02 En Casa del Abuelo 25 min - Oct 3, 2007 capitulo dos en casa del abuelo ... capitulo dos en casa del abuelo video.google.com - Related videos Heidi 42.2 Clara kommt 8 min - Mar 28, 2008 trickserie ... Alte-Mangas Kinder Kinderserie Manga. Tv trickfilm zeichentrick Heidi Alte-Mangas Kinder Kinders myvideo.de - Related videos tema de heidi video techno remix 2009 3 min - Jan 19, 2009 - Uploaded by juanjotamps el remix lo pueden bajar de www.4shared.com agradezco calificacion,dj juanjo-ce ... heidi video remix 2009 ... youtube.com - Related videos
  3. 3. Hello! Sandybell Opening Español Apr 5, 2008 Sinopsis Sandy Bell vive en un hermoso pueblo de Escocia rodeada de castillos, flores y muchos amigos; pront livevideo.com - Related videos La verdadera historia de Heidi y sus amigos... 2 min - Mar 21, 2008 Hubo tiempos de guerras, tiempos de paz, hubo tiempo en que era ilegal. Pero hermano nuestra mente cambió video.google.com - Related videos El pastel de Heidi 1 min - Feb 13, 2009 El abuelo de Heidi ha preparado un delicioso pastel y todos quieren probarlo. ... El abuelo de Heidi ha preparad video.msn.com - Related videos CANCION DE HEIDI CON LETRA 2 min - Jul 25, 2008 - Uploaded by hassan101089 TEMA DE LA CARICATURA HEIDI CON LETRA EN ESPAÑOL ... HEIDI LA NIÑA DE LAS MONTAÑAS VIDEO CON L youtube.com - Related videos Mensaje del abuelo de heidi al niñato del metro 20 sec - Jan 21, 2007 - Uploaded by MrCoucou Sabias palabras ... Abuelo heidi niñato metro valencia ... Sabias palabras youtube.com - Related videos Stay up to date on these results: • Create an email alert for Heidi Censurada • Subscribe to a video search feed for Heidi Censurada in Google Reader
  4. 4. • RSS • Everything • Images • Videos More Search Options o Any duration o Short (0–4 min.) o Medium (4–20 min.) o Long (20+ min.) o Any time o Past hour o Past 24 hours o Past week o Past month o Past year o Custom range... o Sorted by relevance o Sorted by date o Any quality o High quality o All videos o Closed captioned o Any source o youtube.com o livevideo.com o google.com o myvideo.de o metacafe.com o msn.com 12 • heidi. - Shinda sekai • heidi. - Kane no naru oka • Heidi. - Loop 「Full PV」 by kireichocho | 71 videos • PLAYLIST Results for: heidi 1:28
  5. 5. Heidi en español Intro de Heidi en español by igloows | 4 years ago | 4,145,691 views 1:48:51 Heidi The classic children's tale of a young orphan girl in the Swiss Alps.. Movie | by ampopfilms | 305,035 views 1:19 Translate Heidi Theme in German One of the best animation series Heidi. by levisk1212 | 2 years ago | 810,267 views 1:16
  6. 6. heidi 1e orginele Nederlandse, Dutch versie heidi, de real version of the intro in Netherlandic, Dutch. It is reel copied from the orginal German song. This is a rare song becose we got only ... by JWPemperor | 3 years ago | 615,754 views 1:21 heidi intro heidi intro by Svendasschaaf | 2 years ago | 69,606 views 2:08 Translate abuelito dime tu es la rola de la caricatura hayde en las montañas es la rola de la caricatura hayde en las montañas es la rola de la caricatura hayde en las ... by oradsd | 4 years ago | 7,145,749 views 3:05 Heidi Shirley Temple in 'Heidi' by obituarymambo | 4 years ago | 107,708 views
  7. 7. 7:43 Walk Thru Heidi Montag's Surgeries "The Hills" star Heidi Montag joined Ryan's radio show on April 5, 2010 to talk about her recent 10 cosmetic surgeries and to update us on the ... by ryanseacrest | 5 months ago | 244,958 views 4:04 Heidi - Opening (multilanguage) Heidi - multilanguage Opening Version 1: German Dutch French Portuguese German Italian Opening Versinon 2: Japanese Portuguese Spanish other ... by Hana1989 | 2 years ago | 154,181 views 4:05 The Heidi game n American football, the Heidi Game refers to a famous American Football League (AFL) game between the New York Jets and the Oakland Raiders ... by yarnellwill | 2 years ago | 67,307 views 1:20 Heidi - German Opening Heidi which has been shown with the same name at IRIB. This 52 episodes animation is vintage of 1974. This video is the German opening.
  8. 8. by saeeddaneshgar | 3 years ago | 347,815 views Product Docs Dashboard FAQ : Articles cynophagi Blog e Group Terms
  9. 9. Registered Products Product Details cynophagie Name* Website New Product Description Edit Developer Key The Deve Learn more Note that you no longer Product Reports Daily Series Hourly Series Download
  10. 10. <a href="http://www.youtube.com/user/cynophagie"><img src="path-to-image-file" alt="Find us on YouTube." style="border: 0px none;"></a How do I add a "Subscribe to my YouTube Channel" button to add to my website? Report abuse joshuabowlus Level 1 2/17/10 I have a website as a musician, and want to provide a button (similar to a "follow me on twitter" button) on the site so that when someone clicks on it, it takes them to my YouTube channel. I know how to make a simple link in html, so that is not what I'm talking about. I would like an actual button, because it tends to be more noticeable. Best answers faberoptime Level 4 2/19/10 Popular answer Go to this answer Okey dokey, not too big a problem. 1. You say you know how to make a simple link in HTML. Something like this aye: Go to my YouTube channel Obviously replacing youchannelname with the name of your channel. 2. Take a look here: http://www.youtube.com/t/creators_downloads Decide which image you'd like to use and take note of it's URL. It'll be something like: http://www.youtube.com/img/creators_corner/iheart_yt.png 3. To make a clickable "button" you'll amend your link code to show the selected image and make that the link instead. If you'd chosen the example I cited in (2), you'd change it to: Note that both the links above will open in the same window/tab as the page it's included in. This may not be desirable. If you want the link to open in a new tab/window, amend the link code as follows: That should do the trick. :-) Hope that helps and happy YouTubing! 11 of 14 people found this answer helpful. Did you? Report abuse Replies 1 - 3 of 3 faberoptime Level 4 2/19/10 Popular answer Okey dokey, not too big a problem. 1. You say you know how to make a simple link in HTML. Something like this aye: Go to my YouTube channel Obviously replacing youchannelname with the name of your channel. 2. Take a look here: http://www.youtube.com/t/ creators_downloads Decide which image you'd like to use and take note of it's URL. It'll be something like: http://www.youtube.com/img/creators_corner/iheart_yt.png 3. To make a clickable "button" you'll amend your link code to show the selected image and make that the link
  11. 11. instead. If you'd chosen the example I cited in (2), you'd change it to: Note that both the links above will open in the same window/tab as the page it's included in. This may not be desirable. If you want the link to open in a new tab/window, amend the link code as follows: How do I add a "Subscrib e to my YouTube Report abuse Channel" button to add to my website? joshuabowlu Level 1 2/17/10 I have a website as a musician, and want to provide a button (similar to a "follow me on twitter" button) on the site so that when someone clicks on it, it takes them to my YouTube channel. I know how to make a simple link in html, so that is not what I'm talking about. I would like an actual button, because it tends to be more noticeable. Best answers faberoptime Level 4 2/19/10 Popular answer Go to this answer Okey dokey, not too big a problem. 1. You say you know how to make a simple link in HTML.
  12. 12. Something like this aye: <a href="http://www.youtube.com/yourchannelname">Go to my YouTube channel</a> Obviously replacing youchannelname with the name of your channel. 2. Take a look here: http://www.youtube.com/t/creators_downloads Decide which image you'd like to use and take note of it's URL. It'll be something like: http://www.youtube.com/img/creators_corner/iheart_yt.png 3. To make a clickable "button" you'll amend your link code to show the selected image and make that the link instead. If you'd chosen the example I cited in (2), you'd change it to: <a href="http://www.youtube.com/yourchannelname"><img border="0" src="http://www.youtube.com/img/creators_corner/iheart_yt.png"></a> Note that both the links above will open in the same window/tab as the page it's included in. This may not be desirable. If you want the link to open in a new tab/window, amend the link code as follows: <a target="_blank" href="http://www.youtube.com/yourchannelname"><img border="0" src="http://www.youtube.com/img/creators_corner/iheart_yt.png"></a> That should do the trick. :-) Hope that helps and happy YouTubing! 11 of 14 people found this answer helpful. Did you? Report abuse Replies 1 - 3 of 3 faberoptime Level 4 2/19/10 Popular answer Okey dokey, not too big a problem.
  13. 13. 1. You say you know how to make a simple link in HTML. Something like this aye: <a href="http://www.youtube.com/yourchannelname">Go to my YouTube channel</a> Obviously replacing youchannelname with the name of your channel. 2. Take a look here: http://www.youtube.com/t/creators_downloads Decide which image you'd like to use and take note of it's URL. It'll be something like: http://www.youtube.com/img/creators_corner/iheart_yt.png 3. To make a clickable "button" you'll amend your link code to show the selected image and make that the link instead. If you'd chosen the example I cited in (2), you'd change it to: <a href="http://www.youtube.com/yourchannelname"><img border="0" src="http://www.youtube.com/img/creators_corner/iheart_yt.png"></a> Note that both the links above will open in the same window/tab as the page it's included in. This may not be desirable. If you want the link to open in a new tab/window, amend the link code as follows: <a target="_blank" href="http://www.youtube.com/yourchannelname"><img border="0" src="http://www.youtube.com/img/creators_corner/iheart_yt.png"></a> Developer's Guide: Data API Protocol The YouTube Data API allows applications to perform functions normally executed on the YouTube website. The API enables your application to search for YouTube videos and to retrieve standard video feeds, comments and video responses. In addition, the API lets your application upload videos to YouTube or update existing videos. Your application can also retrieve playlists, subscriptions, user profiles and more. Finally, your application can submit authenticated requests to enable users to create playlists, subscriptions, contacts and other account-specific entities. Contents 1. Audience
  14. 14. a. About this documentation b. API versioning 2. Authentication a. Using a developer key b. AuthSub for web applications OAuth for web applications c. ClientLogin for installed applications d. Authenticating requests from Flash applications 3. Understanding video feeds and entries a. Displaying a list of videos b. Identifying feeds related to a feed entry c. Displaying information about a video 4. Retrieving and searching for videos a. Standard video feeds b. Videos uploaded by a specific user c. Related videos d. Browsing with categories and keywords Searching for videos e. Retrieving information about a single video 5. Searching for channels 6. Searching for playlists 7. Uploading videos Process flow diagrams a. Technical requirements for uploaded videos b. Setting access controls for a video c. Assigning developer tags Browser-based uploading Direct uploading Resumable uploads d. Checking the status of an uploaded video 8. Updating and deleting videos Updating a video entry a. Deleting a video Providing captions for a video 9. Using community features a. Ratings Comments Video responses b. Adding a complaint 1. Saving and collecting videos Favorite videos Playlists Subscriptions a. Video Recommendations 2. Enabling user interaction User profiles Contacts Messages and video sharing Activity feeds 3. Monitoring activity feeds with SUP a. Understanding the SUP feed format b. Retrieving YouTube's SUP feed c. Discovering hash keys for activity feeds d. SUP in action 4. Using batch processing with the YouTube Data API
  15. 15. Submitting a batch processing request Handling the API response for a batch processing request 5. Retrieving a partial response (Experimental ) a. Submitting a request for a partial feed response b. Handling a partial feed response 6. Submitting partial update (PATCH) requests (Experimental ) Submitting a partial update request Handling the response to a partial feed update 7. Testing and troubleshooting a. Using the Interactive API Demo b. Using the staging server Troubleshooting common API challenges 8. Retrieving Insight data for a video 9. Understanding API error responses a. Validation errors b. Quota errors c. Authentication errors d. Service errors 10. Revision History Audience This documentation is intended for programmers who are writing client applications that interact with YouTube. It provides examples of basic API operations using raw HTTP and XML. Java , .NET, PHP and Python developers may prefer to read the language-specific developer guides that explain how to use the client libraries for those languages to perform similar functions. This documentation assumes that you understand the general principles behind the Google Data APIs protocol. Google Data APIs provide a simple, standard protocol for reading and writing data on the web. Google Data APIs are based on the Atom 1.0 and RSS 2.0 syndication formats as well as the Atom Publishing Protocol. About this documentation This documentation contains the following sections: The Authentication section describes the two different authentication methods available for associating API operations with a specific user account. This section also outlines the differences between authentication for the YouTube Data API and other Google Data APIs. Throughout this documentation, explanations of specific API functions will clearly indicate whether the function requires user authentication. The Understanding video feeds and entries section provides a sample API response and explains how to extract information about a single video from a list of videos or a set of search results. This section also illustrates how the XML elements in a YouTube Data API response correspond to the video information typically displayed on YouTube's website. This section also explains the API request format for updating an individual video entry. The Retrieving and searching for videos section explains how to fetch a list of videos. The YouTube Data API defines several types of standard feeds, such as top-rated or most-viewed videos. This section also explains how also to retrieve a list of videos uploaded by a specific user or a list of related videos, which are videos that YouTube has determined are similar to a particular video. Finally, this section explains how to use the API to let users search through YouTube's video library for videos matching specific search terms or categories.
  16. 16. The Uploading videos section briefly explains two ways that you can allow users to upload videos to YouTube from your application. This section also presents process flow diagrams for each upload method and explains how those methods work in conjunction with the authentication scheme that you are using. You may need to let users upload videos to use certain other API functions. For example, the API provides a function for adding a video response to a video. However, if the user is uploading a new video as a video response, then your client will need to follow the video uploading instructions to add the video to YouTube before identifying the new video as a response to an existing video. The Updating and deleting videos section explains how to enable a user to update or delete his videos. The Using community features section describes API functions that allow your users to interact with YouTube videos. These functions explain requests for posting a rating, comment, video response or complaint to an existing video. You can also use the API to retrieve lists of video comments or video responses or to delete a video response. The Saving and collecting videos section explains how to use the API to access, create and update favorite videos, video playlists and subscriptions to YouTube channels. The Enabling user interaction section explains how to use the API to retrieve and update user profiles. This section also explains how to retrieve, add, update and delete user contacts. API versioning API requests can specify the version of the API that YouTube should use to handle the request. Your request can specify an API version using either the v parameter or the GData-Version HTTP request header. The current version of the API is 2, and you must use either the v parameter or the GData-Version HTTP request header to specify this version. Using the most current version of the API may allow your application to access API features that are not available in older versions of the API. For example, captions, partial responses, and partial updates are all supported in version 2 of the API but are not supported in version 1. If a request does not specify an API version, then YouTube will use the oldest supported version of the API to handle that request. The oldest supported version is currently 1. Note: All of the sample requests in this documentation use the GData-Version HTTP request header and demonstrate how to use version 2 of the API. Please note the following characteristics of API version numbers: YouTube may release updates to a specific API version for which the release is not assigned a new version number. These backward-compatible updates can include optional API features, bug fixes or both. An increment of the API version number identifies a release that contains changes that are incompatible with previous API versions. For more information, see the Backward Compatibility Guidelines, which identify API behaviors that may change even if you do not modify the API version that should be used to handle your API requests. The guidelines also define API behaviors that YouTube does not intend to change for a particular API version.
  17. 17. Authentication Authentication allows a user to access YouTube features that link content or information to a particular YouTube account. These features require the user or your application to provide the YouTube username and password for that account. For example, a user must log in to YouTube to upload a video or to add a comment to an existing video. This documentation describes a number of API functions that require user authentication, including all of the API functions for creating, updating or deleting content require user authentication. Please note that if you implement any functionality that does require authentication, we recommend that you include the proper authentication headers in all of your requests even if those requests do not explicitly require authentication. To properly authenticate, a request must include the Authorization header and either the X- GData-Key header or the key parameter. The X-GData-Key header (or the key parameter) specifies your developer key, a value that uniquely identifies your application(s). The Authorization header specifies a token that you obtain for each user using one of three authentication schemes – AuthSub, OAuth or ClientLogin – that are available to enable users to access account-specific YouTube features. The following list will help you to select the authentication scheme that is appropriate for your application. AuthSub proxy authentication enables web applications to authenticate users to their YouTube accounts without having to access the user's YouTube username and password. You should use AuthSub authentication if you are building a web application that will let users link videos, comments, ratings, contacts or other information to their own YouTube accounts. The OAuth protocol provides a standard way to access protected data on different websites. Whereas the AuthSub and ClientLogin methods are Google-specific, OAuth is an open protocol that may be implemented on other websites. Like AuthSub, OAuth is useful if you are building a web application that will let users link videos, comments, ratings, contacts or other information to their own YouTube accounts. OAuth may be particularly appealing to you if your application also integrates with other APIs besides the YouTube API, and those APIs also support the OAuth protocol. See http://oauth.net to learn more about Oauth. ClientLogin authentication lets you associate all API actions with a single YouTube account. You should use ClientLogin if you are building a standalone, single-user, installed client, such as a desktop application. In this case, your application will ask the user to enter his YouTube username and password and will then use those values to request a ClientLogin authentication token. Note: You should never build a web application that implements ClientLogin authentication and requires users to enter their usernames and passwords. If you are building a web application that allows people to associate actions with their YouTube accounts, use AuthSub or OAuth authentication. Using a developer key A developer key uniquely identifies a product that is submitting an API request. Please visit http:// code.google.com/apis/youtube/dashboard/ to obtain a developer key. YouTube provides two ways to specify your developer key in an API request: When you make an API request, use the X-GData-Key request header to specify your developer key as shown in the following example: X-GData-Key: key=<developer_key>
  18. 18. Include the key query parameter in the request URL. http://gdata.youtube.com/feeds/ api/videos?q=SEARCH_TERM&key=DEVELOPER_KEY Note: Specifying your developer key is very simple if you are using one of our client libraries. In the client libraries, you provide your developer key when initializing the YouTube service object, and all subsequent requests sent using that object will contain the key. AuthSub for web applications The AuthSub process is documented in more detail at http://code.google.com/apis/accounts/docs/ AuthSub.html. In addition, please note that the base URL and scope of service for YouTube AuthSub authentication – http://gdata.youtube.com – are different than the URL and scope specified in that document. To obtain an authentication token, submit an HTTP POST request to the following URL: https://www.google.com/accounts/AuthSubRequest? next=http%3A%2F%2Fwww.example.com%2Fupload.html &scope=http%3A%2F%2Fgdata.youtube.com &session=0 &secure=0 The POST request contains the following parameters: The next parameter contains the URL to which the user will be redirected after logging in to YouTube. The scope parameter identifies the service that the user is enabling your site to access on his behalf. The value of this parameter must be http://gdata.youtube.com. The secure parameter contains a boolean value (0 or 1) that indicates whether the authentication service will return a secure or nonsecure token. Secure tokens are issued only to websites that have registered with Google, and video upload requests that use a secure token must be digitally signed. Please see the Google AuthSub documentation for more details about secure tokens. The session parameter contains a boolean value (0 or 1) that indicates whether the single-use authentication token that the authentication service returns can be exchanged for a session token, which can be used multiple times. Set this variable to 1 to indicate that the single-use token can be exchanged for a session token. Please see the Google AuthSub documentation for an explanation of how to request a session token. After the user logs in via YouTube's authentication service, YouTube will redirect the user back to the URL identified in the next parameter in your AuthSub request. The redirect contains a single- use authentication token, which is identified by the token parameter in the URL as shown in the following example. If the value of the session parameter in your AuthSub request was 1, then you can exchange the single-use token for a session token by submitting an AuthSubSessionToken request. The following URL shows how the token parameter will appear in the redirect to your site. Note that the URL for the redirect would have been provided as the value of the next parameter in the AuthSub request. http://www.example.com/upload.html? token=CKF50YzIHxCT85KMAg
  19. 19. When you make an authenticated API request using an AuthSub authentication token, your request needs to specify the Authorization HTTP request header as shown in the example below. Note: Throughout this documentation, sample requests use AuthSub syntax unless otherwise specified. Authorization: AuthSub token="<authentication_token>" X-GData-Key: key=<developer_key> OAuth for web applications The OAuth protocol provides a standard way to access protected data on different websites. Whereas the AuthSub and ClientLogin methods are Google-specific, OAuth is an open protocol that can be implemented on other websites. Like AuthSub, OAuth is useful if you are building a web application that will let users link videos, comments, ratings, contacts or other information to their own YouTube accounts. Understanding OAuth Tokens OAuth authentication uses two types of tokens: • A request token ensures that an end user authorizes your application to submit API operations on the user's behalf. YouTube also uses the request token to verify that you have registered your application with Google. • An access token enables your application to execute YouTube Data API operations on a particular user's behalf. Note: Your application must obtain unique request and access tokens for each user. In addition, your application needs a mechanism to store access tokens for future use. The authentication process has three stages: Your application retrieves an unauthorized request token. Google verifies that you have registered your application before returning the token. Request tokens are only valid for one hour. Your application redirects the user to a Google login page. The redirect URL specifies the unauthorized request token value retrieved in step 1 as well as a callback URL. After the user logs in to her YouTube account, Google displays a page that lets the user choose whether to allow your application to perform YouTube API operations on her behalf. If the user grants your application this access, the unauthorized token will become an authorized token. (The token value does not change.) The user will also be redirected to the callback URL that you specified. Your application exchanges the authorized request token for an access token. Only authorized tokens can be exchanged, and each request token can only be exchanged one time. The access token is associated with a single user account, and your application should use that token to submit authenticated API requests on that user's behalf. Setting up OAuth authentication You must complete the following steps to enable your web application to authenticate users with the OAuth protocol: Register your web application with Google.
  20. 20. Please see the Registration for Web-Based Applications page for an explanation of the registration process and the requirements for registration. Note: All requests to obtain or use an OAuth token must be signed. Google supports the RSA- SHA1 and HMAC-SHA1 signature algorithms. o If your application uses the RSA-SHA1 signature algorithm, you will need to upload a security certificate to Google during the registration process. o If your application uses the HMAC-SHA1 signature algorithm, leave the certificate field blank when completing your registration. Google will generate an OAuth consumer secret value, which will display on your domain's registration page after you have completed the registration process. You will then use this value to sign requests. Set up a mechanism to manage OAuth tokens. After your application obtains an OAuth access token from YouTube, your application will use that token for YouTube API requests it makes on behalf of the user associated with that token. As such, your application will need to store tokens and track the user for whom each token is valid. Your application should not try to retrieve a new access token each time the application needs to interact with YouTube on a particular user's behalf. In fact, tokens should be treated as securely as any other sensitive user information that your application stores. Using OAuth As described in the Understanding OAuth tokens section, the OAuth authentication process has three steps. These steps are explained in the following sections: Obtaining a request token Authorizing a request token Obtaining an access token Step 1: Obtaining a request token To obtain a request token, send a signed request to https://www.google.com/accounts/OAuthGetRequestToken. Include the following parameters in your request. Note that the only optional parameter is oauth_version; all other parameters are required. Parameter Description This value specifies the domain associated with your application and oauth_consumer_key must be the same as the domain that you registered with Google. oauth_signature_metho This value specifies the signature algorithm used to sign the request. d Supported values for this parameter are RSA-SHA1 and HMAC-SHA1. This value specifies the string (signature) generated using the oauth_signature referenced signature method. See the Signing requests that use OAuth authentication section for more information. This value specifies the time that the request was sent. The timestamp oauth_timestamp should be expressed in number of seconds after January 1, 1970 00:00:00 GMT. This value is a random, 64-bit, unsigned number encoded as an ASCII oauth_nonce string in decimal format. The nonce/timestamp pair should always be unique to prevent replay attacks.
  21. 21. This value specifies the OAuth version that Google should use to oauth_version handle your request. The default value is 1.0. If your request includes this parameter, the parameter's value must be 1.0. This value identifies the service that you are trying to access to make authenticated requests. This parameter is Google-specific and is not scope defined in the OAuth standards. Set the parameter value to http://gdata.youtube.com. There are three ways to specify these parameters: Include them in the Authorization header of a GET or POST request. The sample request below demonstrates how to specify these values in the Authorization header. Note that the scope parameter cannot be specified in the header. The scope can be specified as a query parameter in the request URL or in the body of a POST request. Specify them in the body of a POST request. If you choose this method, you must set the value of the Content-Type request header to application/x-www-form-urlencoded. Include them as query parameters in the request URL of a GET request. For more details, see the OAuth specification, (section 5.2). Sample Request The example asks for a request token to access a user's Calendar and Picasa accounts. POST /accounts/OAuthGetRequestToken HTTP/1.1 Host: https://www.google.com Content-Type: application/x-www-form-urlencoded Authorization: OAuth oauth_consumer_key="example.com", oauth_signature_method="RSA-SHA1", oauth_signature="wOJIO9A2W5mFwDgiDvZbTSMK%2FPY%3D", oauth_timestamp="137131200", oauth_nonce="4572616e48616d6d65724c61686176", oauth_version="1.0" scope=http://gdata.youtube.com About the response If the request is successful, Google responds with an HTTP 200 message containing a request token and a token secret. Your application needs to parse the token from the response. If the request is unsuccessful, Google responses with an HTTP 400 message (Bad Request). This response may indicate that the request is poorly formed, meaning it may have an unsupported or
  22. 22. missing parameter, unsupported signature method or other error in the request format. This response may also indicate that Google has reason to believe the requester is not acting in good faith. The following example shows a response to a successful request for a request token: oauth_token=ab3cd9j4ks73hf7g&oauth_token_secret=ZXhhbXBsZS5jb20 Step 2: Authorizing a request token After you retrieve a request token, redirect the user to https://www.google.com/accounts/OAuthAuthorizeToken. Add the following query parameters to the URL: Parameter Description This required parameter specifies the request token obtained from oauth_token Google. This optional parameter specifies the URL to which the user will be redirected after granting your application access to the user's YouTube account. The URL can include query parameters. If you do oauth_callbac not specify a callback URL, Google displays a page confirming that the k user's token has been authorized. Note that providing a callback URL may create a more seamless user experience by automatically redirecting the user back to your application after the user completes the login process. Sample Request The following example shows a request to authorize an unauthorized token: https://www.google.com/accounts/OAuthAuthorizeToken? oauth_token=ab3cd9j4ks73hf7g&oauth_callback=http%3A%2F%2Fwww.example.com About the response If Google accepts the request, the user will be redirected to a YouTube login page. After the user logs in, the Authentication service displays a page to inform the user that your application wants to access the user's YouTube account. The page prompts the user to confirm that your application can access the user's account. If the user grants access to your application, she will be redirected to the callback URL specified in your request to authorize the request token. If the user denies access, she will be redirected to a page that displays a link back to your site and a link to YouTube. The following URL shows the format of a redirect back to the callback URL with an authorized request token. The authorized token has the same value as the unauthorized token sent in the request. The value is a text string, up to 256 bytes. http://www.example.com/ytapi.html?oauth_token=CKF50YzIHxCT85KMAg Step 3: Exchanging a request token for an access token After authorizing the request token for a user, your application can exchange that token for an access token. An access token lets you submit authenticated YouTube API requests on a specific user's behalf. Access tokens do not expire, effectively functioning like AuthSub session tokens.
  23. 23. To exchange an authorized request token for an access token, send a signed HTTP request to https://www.google.com/accounts/OAuthGetAccessToken with the following query parameters. Note that all of these parameters except for the oauth_token parameter are also used (and used in the same context) in the request to obtain a request token. In addition, the only optional parameter is oauth_version; all other parameters are required. Parameter Description This value specifies the domain associated with your application and must be the same as the domain that you oauth_consumer_key registered with Google. This value must be the same as the one provided in the request to obtain the request token. oauth_token This value specifies the authorized request token. This value specifies the signature algorithm used to sign the oauth_signature_metho request. Supported values for this parameter are RSA-SHA1 d and HMAC-SHA1. This value specifies the string (signature) generated using oauth_signature the referenced signature method. This value specifies the time that the request was sent. The oauth_timestamp timestamp should be expressed in number of seconds after January 1, 1970 00:00:00 GMT. This value is a random, 64-bit, unsigned number encoded oauth_nonce as an ASCII string in decimal format. The nonce/timestamp pair should always be unique to prevent replay attacks. This value specifies the OAuth version that Google should use to handle your request. The default value is 1.0. If your oauth_version request includes this parameter, the parameter's value must be 1.0. Your application can use the same three mechanisms to specify these parameters as it can use to specify parameters when obtaining a request token. Sample Request The following example exchanges a request token for an access token: POST /accounts/OAuthGetAccessToken HTTP/1.1 Host: https://www.google.com Content-Type: application/x-www-form-urlencoded Authorization: OAuth oauth_consumer_key="example.com", oauth_token="CKF50YzIHxCT85KMAg", oauth_signature_method="RSA-SHA1", oauth_signature="wOJIO9A2W5mFwDgiDvZbTSMK%2FPY%3D", oauth_timestamp="137131200", oauth_nonce="4572616e48616d6d65724c61686176",
  24. 24. oauth_version="1.0" About the response Google responds to a successful request for an access token with an HTTP 200 message that contains an access token and a token secret. The following example shows a sample response containing an OAuth access token: oauth_token=ab3cd9j4ks73hf7g&oauth_token_secret=ZXhhbXBsZS5jb20 Google may reject a token request if it is poorly formed or if Google has reason to believe the requester is not acting in good faith. If the request is not successful, Google will return an HTTP 400 (Bad Request) response code. Signing requests that use OAuth authentication You must sign all API requests that retrieve or use an OAuth token. This requirement applies to calls to obtain a request token or an access token as well as to any YouTube Data API requests that require authentication, such as uploading a video or adding a rating to a video. The following steps explain how to generate a signature for requests that use OAuth authentication: Use the oauth_signature_method parameter to specify the signature algorithm that the request uses. Google supports the RSA-SHA1 and HMAC-SHA1 signature algorithms. Construct a signature base string, which consists of three request elements that are concatenated using ampersand (&) characters. Note that all parameter names and values must be encoded as described in the OAuth Specification (section 5.1). The first element specifies the HTTP request method (GET, POST, etc.). The second element specifies the base URL for the request. The URL must not include any query parameters. For example, if the request URL is http://gdata.youtube.com/feeds/api/videos? q=football&orderby=published&v=2, then the base URL is http://gdata.youtube.com/feeds/api/videos. The third element contains a normalized string of the parameter and parameter values in the request. The string should include any query parameters specified in the request URL as well as all of the OAuth parameters except for the oauth_signature parameter. The OAuth Specification (section 9.1.1), explains how to normalize the string. Generate an oauth_signature using the specified oauth_signature_method. o If you are using RSA-SHA1, generate the signature using the private key that corresponds to the certificate that you uploaded to Google during the registration process. o If you are using HMAC-SHA1, generate the signature using the "consumer secret" value generated during the registration process. (The value is displayed on your domain's registration page. The OAuth Specification (appendix A.5) provides a sample request that can be used to test HMAC- SHA1 signatures. The example includes a signature base string and HMAC-SHA1 key as well as the generated HMAC-SHA1 digest (signature). Note: For more detailed information about signing an OAuth request, please see the OAuth Specification (section 9).
  25. 25. ClientLogin for installed applications To make an authenticated API request using YouTube's ClientLogin system for single-user authentication, you must identify the YouTube user account associated with the request. By providing the username and password for the user's YouTube user account, you are verifying that the user is authorized to perform operations associated with that account. The authenticated actions will then be associated with that account. Please note that the following instructions vary slightly from the standard ClientLogin instructions. To obtain an authentication token, submit an HTTP POST request to the following URL: https://www.google.com/youtube/accounts/ClientLogin The following guidelines apply to the request: The POST request must specify the value application/x-www-form-urlencoded for the Content-Type header. The POST body must include a string in the following format: Email=<username>&Passwd=<password> &service=youtube&source=<source> You need to make the following changes to this string: Replace the <username> and <password> strings with one of the following combinations of values: i. If the user's YouTube account is linked to a Google Account, specify either the YouTube account name or the email address associated with the Google Account as the <username> and specify the Google Account password as the <password>. ii. If the user's YouTube account is not linked to a Google Account, specify the user's YouTube account name as the <username> and the user's YouTube account password as the <password>. Replace the string <source> with a short string that identifies your application for logging purposes. The <username>, <password> and <source> values must all be URL-encoded. Google will return a response that contains the authentication token that you will need to execute API operations associated with the specified user's YouTube account. The authentication token will be the Auth value on that page. In addition, the YouTubeUser value on the page will be the user's YouTube account username. You must extract the authentication token and username from the page and then submit those values in API requests. Please note that authentication tokens expire periodically. As such, your application may need to repeat this authentication process and update the value of the authentication token when the token is rejected as expired. Note: The Google ClientLogin documentation explains how to also incorporate a CAPTCHA challenge into an application using ClientLogin authentication. Authentication Example For example, suppose you want to authenticate a YouTube account for which the username and password are testuser and testpassword, respectively. You can simulate the HTTP POST request using the Linux 'curl' command, as shown in the following example: curl --location https://www.google.com/youtube/accounts/ClientLogin
  26. 26. --data 'Email=testuser&Passwd=testpw&service=youtube&source=Test' --header 'Content-Type:application/x-www-form-urlencoded' If your authentication request is successful, the response to your request will have the following format. (Please note that the Auth token value has been shortened in the example.) Auth=AIwbFARksypDdUSGGYRI_5v7Z9TaijoPQqpIfCEjTFPAikn_--- OC-I1VJtQ YouTubeUser=testuser When you make an authenticated API request using a ClientLogin authentication token, your request needs to specify the Authorization HTTP request header as shown in the example below: Authorization: GoogleLogin auth=<authentication_token> X-GData-Key: key=<developer_key> Authenticating requests from Flash applications As shown in the examples throughout this documentation, different API operations are executed using either HTTP GET, POST, PUT or DELETE requests. However, Flash applications must send an HTTP POST request in order to set an Authorization header. To submit an authenticated HTTP GET, PUT or DELETE request from a Flash application, set the X-HTTP-Method-Override header in the request to either GET, PUT or DELETE. If your application is submitting a GET request, it should set the body of the request to the query parameters associated with that request as shown in the following example: POST /feeds/api/videos HTTP/1.1 X-HTTP-Method-Override: GET Host: gdata.youtube.com Content-Type: application/atom+xml Content-Length: CONTENT_LENGTH Authorization: AuthSub token="<authentication_token>" GData-Version: 2 X-GData-Key: key=<DEVELOPER_KEY> vq=jesse+ventura&category=News If your application is submitting a POST or PUT request, it should set the body of the request to an XML document. The XML formats for different types of requests are defined later in this document.
  27. 27. Understanding video feeds and entries When you retrieve a video feed or list of search results, YouTube returns an Atom feed that contains one <entry> tag for each video in the result set. The root XML tag in the response will be the <feed> tag. In addition to the information about the individual videos in the result set, the feed will also contain the total number of results in the list, the index of the first item in the list, the number of items in the list and other metadata about the feed. The following XML shows the format of a YouTube Data API response containing a video feed: <?xml version='1.0' encoding='UTF-8'?> <feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearch/1.1/' xmlns:gml='http://www.opengis.net/gml' xmlns:georss='http://www.georss.org/georss' xmlns:media='http://search.yahoo.com/mrss/' xmlns:batch='http://schemas.google.com/gdata/batch' xmlns:yt='http://gdata.youtube.com/schemas/2007' xmlns:gd='http://schemas.google.com/g/2005' gd:etag='W/&quot;CE4EQH47eCp7ImA9WxRQGEQ.&quot;'> <id>tag:youtube,2008:standardfeed:us:top_rated</id> <updated>2008-07-18T05:00:49.000-07:00</updated> <category scheme='http://schemas.google.com/g/2005#kind' term='http://gdata.youtube.com/schemas/2007#video'/> <title>Top Rated</title> <logo>http://www.youtube.com/img/pic_youtubelogo_123x63.gif</logo> <link rel='alternate' type='text/html'
  28. 28. href='http://www.youtube.com/browse?s=tr'/> <link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://gdata.youtube.com/feeds/api/standardfeeds/top_rated?v=2'/> <link rel='http://schemas.google.com/g/2005#batch' type='application/atom+xml' href='http://gdata.youtube.com/feeds/api/standardfeeds/top_rated/batch?v=2'/> <link rel='self' type='application/atom+xml' href='http://gdata.youtube.com/feeds/api/standardfeeds/top_rated?...'/> <link rel='service' type='application/atomsvc+xml' href='http://gdata.youtube.com/feeds/api/standardfeeds/top_rated?...'/> <link rel='next' type='application/atom+xml' href='http://gdata.youtube.com/feeds/api/standardfeeds/top_rated?...'/> <author> <name>YouTube</name> <uri>http://www.youtube.com/</uri> </author> <generator version='2.0' uri='http://gdata.youtube.com/'>YouTube data API</generator> <openSearch:totalResults>100</openSearch:totalResults> <openSearch:startIndex>1</openSearch:startIndex>
  29. 29. <openSearch:itemsPerPage>25</openSearch:itemsPerPage> <entry gd:etag='W/&quot;C0AMRn47eCp7ImA9WxRQGUw.&quot;'> <id>tag:youtube,2008:video:ZTUVgYoeN_b</id> <published>2008-07-05T19:56:35.000-07:00</published> <updated>2008-07-18T07:21:59.000-07:00</updated> <category scheme='http://schemas.google.com/g/2005#kind' term='http://gdata.youtube.com/schemas/2007#video'/> <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat' term='Shopping'/> <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat' term='parkas'/> <category scheme='http://gdata.youtube.com/schemas/2007/categories.cat' term='People' label='People'/> <title>Shopping for Coats</title> <content type='application/x-shockwave-flash' src='http://www.youtube.com/v/ZTUVgYoeN_b?f=gdata_standard...'/> <link rel='alternate' type='text/html' href='http://www.youtube.com/watch?v=ZTUVgYoeN_b'/> <link rel='http://gdata.youtube.com/schemas/2007#video.responses'
  30. 30. type='application/atom+xml' href='http://gdata.youtube.com/feeds/api/videos/ZTUVgYoeN_b/responses?v=2'/> <link rel='http://gdata.youtube.com/schemas/2007#video.ratings' type='application/atom+xml' href='http://gdata.youtube.com/feeds/api/videos/ZTUVgYoeN_b/ratings?v=2'/> <link rel='http://gdata.youtube.com/schemas/2007#video.complaints' type='application/atom+xml' href='http://gdata.youtube.com/feeds/api/videos/ZTUVgYoeN_b/complaints?v=2'/> <link rel='http://gdata.youtube.com/schemas/2007#video.related' type='application/atom+xml' href='http://gdata.youtube.com/feeds/api/videos/ZTUVgYoeN_b/related?v=2'/> <link rel='http://gdata.youtube.com/schemas/2007#mobile' type='text/html' href='http://m.youtube.com/details?v=ZTUVgYoeN_b'/> <link rel='self' type='application/atom+xml' href='http://gdata.youtube.com/feeds/api/standardfeeds/top_rated/v/ZTUVgYoeN_b? v=2'/> <author> <name>andyland74</name> <uri>http://gdata.youtube.com/feeds/api/users/andyland74</uri> </author> <media:group> <media:title type='plain'>Shopping for Coats</media:title> <media:description type='plain'>
  31. 31. What could make for more exciting video? </media:description> <media:keywords>Shopping, parkas</media:keywords> <yt:duration seconds='79'/> <yt:videoid>ZTUVgYoeN_b</yt:videoid> <media:player url='http://www.youtube.com/watch?v=ZTUVgYoeN_b'/> <media:credit role='uploader' scheme='urn:youtube'>andyland74</media:credit> <media:category label='People' scheme='http://gdata.youtube.com/schemas/2007/categories.cat'>People </media:category> <media:content url='http://www.youtube.com/v/ZTUVgYoeN_b?f=gdata_standard...' type='application/x-shockwave-flash' medium='video' isDefault='true' expression='full' duration='215' yt:format='5'/> <media:content url='rtsp://rtsp2.youtube.com/ChoLENy73bIAEQ1kgGDA==/0/0/0/video.3gp' type='video/3gpp' medium='video' expression='full' duration='215' yt:format='1'/> <media:content url='rtsp://rtsp2.youtube.com/ChoLENy73bIDRQ1kgGDA==/0/0/0/video.3gp' type='video/3gpp' medium='video' expression='full' duration='215' yt:format='6'/>
  32. 32. <media:thumbnail url='http://img.youtube.com/vi/ZTUVgYoeN_b/2.jpg' height='97' width='130' time='00:00:03.500'/> <media:thumbnail url='http://img.youtube.com/vi/ZTUVgYoeN_b/1.jpg' height='97' width='130' time='00:00:01.750'/> <media:thumbnail url='http://img.youtube.com/vi/ZTUVgYoeN_b/3.jpg' height='97' width='130' time='00:00:05.250'/> <media:thumbnail url='http://img.youtube.com/vi/ZTUVgYoeN_b/0.jpg' height='240' width='320' time='00:00:03.500'/> </media:group> <yt:statistics viewCount='383290' favoriteCount='7022'/> <gd:rating min='1' max='5' numRaters='14763' average='4.93'/> <georss:where> <gml:Point> <gml:pos>21.37124437061831 -157.87353515625</gml:pos> </gml:Point> </georss:where> <gd:comments> <gd:feedLink href='http://gdata.youtube.com/feeds/api/videos/ZTUVgYoeN_b/comments' countHint='9416'/> </gd:comments> </entry> </feed>
  33. 33. Displaying a list of videos The following screenshot demonstrates how YouTube displays information in a video list. The screenshot is annotated, and the list following the screenshot explains how the display elements correspond to the information in an API response. The screenshot displays the Account Optimization: Optimization Overview Share Comment Print Next: Optimizing Your Brand Channel Post High Quality & Original Content Post High Quality & Original Content Make videos that appeal to all kinds of audiences. Create original Quality videos which comply with our Community Guidelines and for which you own 100% of the copyrights. Try to upload 1-2 new videos per week. Be consistent with the Freshness day/time you upload new videos. Keep videos short and simple (we recommend under 5 minutes).
  34. 34. Engage your audience through shoutouts, comments, Engagement subscriptions, and by asking questions or soliciting ideas. Encourage contests. Use eye-catching titles. Utilize YouTube Features Utilize YouTube Features Use the partner branding options available to you. Upload catchy Branding and engaging banners and profile images. Utilize the 'featured video' option by featuring your latest video Navigation or one of your most popular. Put related videos in playlists. Use a Video Log to highlight priority content. Use the partner Performer Info available for your channel type. Channel For example, musicians can enter band details, album cover art type and event dates. Search Use relevant and accurate tags, titles and video descriptions. Increase Networking Increase Networking Encourage comments. Post replies. Comment on other content. Connect Create Video Responses. Encourage others to subscribe to, rate and share your videos. Join groups, forums and contests. The "Other Channel Links" tool in Branding Options lets you list Channel up to 16 destination channels. Link to your other Links channels/websites or to friends' channels/websites. Subscribe to your favorite channels. Highlight affiliate content Subscribe the Ratings Box. Display your favorite videos in the Favorites Box. Enable the Recent Activity box. Cross-promote Your Content Cross-promote Your Content Promote your videos. Publicize your videos and your channel on the radio, TV, websites, forums, newsletters, other social Promote networking platforms. Call out your YouTube channel in as many places as you can. Use our YouTube APIs to create YouTube badges for your Badges website that display your YouTube presence and link to your YouTube channel. Allow embedding so others can distribute for you. Use the embed URL that comes with each video to embed your videos on Embed your website. Send the links to blogs which may want to display your content.
  35. 35. Andrew Bossom Translator, language teacher, web designer Lower Franconia, Germany • About me Born in England, studied languages and now living in Germany. Working freelance as an English teacher and translator, with additional experience in web design. Active on YouTube since December 2006 and moderately well known in the German YouTube community; among the first of the German YouTube partners and making videos in both German and English. Where I grew upGlastonbury, Somerset, EnglandPlaces I've livedHerrenberg, Germany; Wolverhampton, England; Berlin, Germany; St Petersburg, Russia Next: Optimizing Your Brand Channel Help forum > YouTube > rewboss rewboss's discussions Translator, language teacher, web designer Top Contributo Lower Franconia, Germany r About rewboss Joined Google Born in England, studied languages and now living in Germany. Help on Working freelance as an English teacher and translator, with 11/27/08 additional experience in web design. Questions: Active on YouTube since December 2006 and moderately well 245 | known in the German YouTube community; among the first of Answers: the German YouTube partners and making videos in both 9475 German and English. View full profile Display questions sorted by Asked Topic Replies By How do I UNsubscribe to a video? There's no Edit Subscription button anymore in How do 12:01 3
  36. 36. I...? PM 10/7/1 Parodies or usage of copyrighted media in Creator's Corner 6 0 Limit viewing of videos to specific channels or content? in How do I...? 9/30/1 10 0 Answered I would like to upload a video from youtube to biz website. It is a theme song to an old tv 12:48 1 show. Do I need permission? in Creator's Corner PM i surprised that this user (swedilund)had stolen my video which i made edited in How do 12:19 2 I...? PM I reported Shane Dawson by mistake, while I was checking his honours.. what can I do?? in 12:13 1 How do I...? PM 9/22/1 I cannot add annotations to one of my videos. in Bug Reports & Technical Issues 3 0 10/7/1 What is going on with the official Youtube channel? in Partner Forum 9 0 10/7/1 Sex Offenders YouTube Partners? in Partner Forum 8 0 Every time you get permission to use something in your video, do you have to get letter? in Partner Forum 10/7/1 5 0 Answered Is it possible to put in too many tags? in Creator's Corner 10/7/1 3 0 Answered Whenever I click the trim icon on edit video it says "error on page" at the bottom left of my 10/7/1 6 browser does nothing. in Bug Reports & Technical Issues 0 Video stuck at 304 views yet the like thes and comments are being added can this be fixed? 10/7/1 6 in Bug Reports & Technical Issues 0 7/17/1 I'm a Youtube Partner, confused!!! How do I activate inAD Video option? in Partner Forum 7 0 10/4/1 Check out my Videos, tell me what you think! in Creator's Corner 5 0 I downloaded video from YouTube and wanted to send to Facebook but posted it back to 10/6/1 3 YouTube by mistake. in Creator's Corner 0 How do I get my account back.Why was it suspended. I had 23 friends requests in my 10/7/1 3 mailbox to answer. in How do I...? 0 Username Squatting Suspected...preventing youtube account activation in Bug Reports & 10/7/1 3 Technical Issues 0 10/7/1 (Friend) Can't access site. in Bug Reports & Technical Issues 2 0 10/5/1 Can't Upload Videos in Partner Forum 7 0 1 2 3 4 5 6 7 8 9 10 11 ... | Next >

×