Mert Sarac

Developer, Entrepreneur, Geek

C# ile YouTube API üzerinden kanaldaki videoları çekmek

Merhaba,

Diyelim ki bir web siteniz var. Burada videolarınızı da yayınlıyorsunuz ancak hem trafik yükünü devretmek hem de sağlam bir playerda çalışması adına bunları YouTube’da barındırmaya karar verdiniz. Bu aşamada kanalınızdaki videoları sitenizde listelemek için YouTube API’dan yararlanabilirsiniz.

Aslında paylaşacağım kodun kullanımı son derece kolay. Herhangi bir yere kayıt olup API key dahi almanız gerekmiyor. Sadece aşağıdaki kodun username parametresini değiştirin ve foreach içinde kendi HTML kodunuzu üretin. Aynı zamanda Index parametresi sayesinde sayfalama da yapabilirsiniz.


string YouTubeUsername = "KULLANICI_ADINIZ_BURAYA_GELECEK";
int Index = 1;

var feed = XElement.Load(String.Format("https://gdata.youtube.com/feeds/api/users/{1}/uploads?start-index={0}&max-results=8&orderby=published", Index, YouTubeUsername));

                    XNamespace ns = "http://www.w3.org/2005/Atom";
                    XNamespace media = "http://search.yahoo.com/mrss/";
                    if (feed != null)
                    {
                        var entries = from entry in feed.Descendants(ns + "entry")
                                      select new
                                      {
                                          Title = entry.Element(ns + "title").Value,
                                          Id = entry.Element(ns + "id").Value,
                                          PostedDate = DateTime.Parse(entry.Element(ns + "published").Value),
                                          Description = entry.Element(ns + "content").Value,
                                          MovieUrl = (from el in entry.Elements(media + "group").Elements(media + "content")
                                                      where el.Attribute("type").Value == "application/x-shockwave-flash"
                                                      select el.Attribute("url").Value).First(),
                                          ThumbnailUrl = (from el in entry.Elements(media + "group").Elements(media + "thumbnail")
                                                          select el.Attribute("url").Value).First()
                                      };
                        foreach (var node in entries)
                        {
                            string VideoId = node.Id.Split('/')[node.Id.Split('/').Length - 1];

                            // HTML Kodunuzu burada üretebilirsiniz.
                        }
                    }