August 29, 2007

YouTube Launches New API

YouTube migrated its API from REST/XML-RPC to Google Data so you can use the same package for accessing different Google services. The new API provides read-only access to user profiles, videos uploaded or bookmarked by a user, subscriptions, video comments, related videos, playlists, search results. And because the default output is Atom feeds, you can use the API to subscribe to a lot interesting data. Here are some examples of feeds that help you track a user's activity:

http://gdata.youtube.com/feeds/users/username/uploads - videos uploaded by username

http://gdata.youtube.com/feeds/users/username/favorites - videos bookmarked by username

http://gdata.youtube.com/feeds/users/username/playlists - playlists created by username

http://gdata.youtube.com/feeds/users/username/subscriptions - username's subscriptions

Some useful parameters for the feeds:

?max-results=50: the maximum number of items from a feed (by default, a feed includes only 25 items).

?alt=rss or ?alt=json: change the output format to RSS feeds or to JavaScript code (JSON) that can be easily used from web applications.

?vq=query: use this parameter to create a filter for a feed. Obtain only the videos that contain your query in the metadata (title, tags, description).

?orderby={updated, viewCount, rating, relevance}: sort the items from feed by upload date, number of views, rating or relevance.

Example of a feed:

http://gdata.youtube.com/feeds/users/google/uploads?
vq="google+maps"&orderby=viewCount
(the videos about Google Maps uploaded by Google, sorted by popularity)

These feeds can also be used in applications like Miro to export your videos from YouTube.

{via YouTube API Blog}

11 comments:

  1. Very cool :-)
    What is the link to obtain a feed of a specific search or a specific tag ?

    ReplyDelete
  2. For search results:
    http://gdata.youtube.com/feeds/videos?vq=nba

    For tags:
    http://gdata.youtube.com/feeds/videos/-/nba

    ReplyDelete
  3. Thank you very much, Alex :-)

    ReplyDelete
  4. Don't forget to add &orderby=updated to get the most recent videos.

    ReplyDelete
  5. Would be nice if the tags were indented. :S

    ReplyDelete
  6. i want to upload the videos and stream video on my asp.net website using YouTube APIs.is it possible?is there any sample codes?

    ReplyDelete
  7. How do you get the search tags and VideoID associated to a specific video? I have looked through the api and cannot find it. I am guessing the terminology has changed.

    Thanks in advance.

    ReplyDelete
  8. very good documentation

    ReplyDelete
  9. orderby=updated is deprecated. Use orderby=published instead:

    http://code.google.com/apis/gdata/javadoc/com/google/gdata/client/youtube/YouTubeQuery.OrderBy.html

    ReplyDelete
  10. I trying to access the title and description via json:
    ...
    for (var i = 0; i < entries.length; i++) {
    var entry = entries[i];
    var vid = entry.id.$t;
    var title = entry.title.$t;
    var desc = entry.media$group.media$description.$t;

    ...

    It works fine but the title and description are not being updated immediately when changes occur on Youtube. Can anyone help and tell me how to "force" an update of this information? Am I doing something wrong?

    Many thanx!

    ReplyDelete
  11. After implementing this i have faced this error, but its working fine in localhost i faced this in live domain.... please anyone help me

    Warning: fopen(http://gdata.youtube.com/feeds/api/videos?vq=sachin tendulkar&start-index=1&max-results=10) [function.fopen]: failed to open stream: HTTP request failed! HTTP/1.0 400 Bad Request in /home/abcdefg/public_html/testing/youtube-app/YouTubeAPI.inc.php on line 37

    ReplyDelete

Note: Only a member of this blog may post a comment.