This example shows how to use Google Data API to query and obtain videos from YouTube. There is also a downloadable zip file with the example in ASP.NET / C#.
- First of all, you need to download the Google Data APIs Client Libraries.
- Secondly, use the following namespaces:
using Google.GData.Client;
using Google.GData.Extensions;
- Use the service by querying by tag, or by search (you can also query related items, etc..):
//by tag
//feel free to change number of items, by there is a limit of 50, I believe.
//If you want to retreive more, you have to do a loop (retrieve 1-50, then 51 to 100, etc)
protected void btoGo_Click(object sender, EventArgs e)
{
string url = "http://gdata.youtube.com/feeds/videos/-/" + this.txtTag.Text;
AtomFeed myFeed = GetFeed(url, 1, 20);
DisplayFeed(myFeed);
}
//by search
//feel free to change number of items, by there is a limit of 50, I believe.
//If you want to retreive more, you have to do a loop (retrieve 1-50, then 51 to 100, etc)
protected void btoSearch_Click(object sender, EventArgs e)
{
string url = "http://gdata.youtube.com/feeds/videos?q=" + this.txtSearch.Text;
AtomFeed myFeed = GetFeed(url, 1, 15);
DisplayFeed(myFeed);
}
- Use the following methods, or similars to get and display the Feed:
///
/// Create and returns and Google.GData.Client.AtomFee from url with the specific start and number of items
///
///
///
///
///
private static AtomFeed GetFeed(string url, int start, int number)
{
System.Diagnostics.Trace.Write("Conectando youtube at " + url);
FeedQuery query = new FeedQuery("");
Service service = new Service("youtube", "exampleCo");
query.Uri = new Uri(url);
query.StartIndex = start;
query.NumberToRetrieve = number;
AtomFeed myFeed = service.Query(query);
return myFeed;
}
///
/// Renders feed in example aspx page
///
///
private void DisplayFeed(AtomFeed myFeed)
{
System.Text.StringBuilder sb = new System.Text.StringBuilder();
foreach (AtomEntry entry in myFeed.Entries)
{
#region render each
sb.Append("
Title: ");
sb.Append(entry.Title.Text);
sb.Append("
Categories: ");
foreach (AtomCategory cat in entry.Categories)
{
sb.Append(cat.Term);
sb.Append(",");
}
sb.Append(RenderVideoEmbedded(getIDSimple(entry.Id.AbsoluteUri)));
sb.Append("
Published on: ");
sb.Append(entry.Published);
#endregion
}
this.lblResults.Text = sb.ToString();
}
private string RenderVideoEmbedded(string idSimple)
{
return string.Format("", idSimple);
}
Related resources:Download example web site project in C#:youtubeAPIExample.zip (65,91 KB)