PHP Dersleri

PHP İle Youtube Videolarını Listeleme

Bu dersimizde Youtube XML api ile kanalda yer alan belirli videoların listelenmesinin nasıl yapıldığını anlatacağım. Daha doğrusu api yerine kanal Feel (besleme) linki üzerinden bu işlemi gerçekleştirmiş olacağız.

https://www.youtube.com/feeds/videos.xml?channel_id=KANALID

Yukarıdaki link yapısını kullanarak kanala ait videoları listelemiş olacağız. Video linki dışında da belirli bilgileri de almış olacağız. Kendi kanalınıza ait ID bilgisini öğrenmek için BURAYI TIKLATIP öğrenebilirsiniz.

URL’de yer alan kanalID bölümünü doldurduktan sonra tarayıcının adres çubuğuna yazdığımızda aşağıdaki gibi bir listeleme gelecektir.

<feed xmlns:yt="http://www.youtube.com/xml/schemas/2015" xmlns:media="http://search.yahoo.com/mrss/" xmlns="http://www.w3.org/2005/Atom">
   <link rel="self" href="http://www.youtube.com/feeds/videos.xml?channel_id=UC-N1FtaVBFT5_ZOGOhq1qiQ"/>
   <id>yt:channel:UC-N1FtaVBFT5_ZOGOhq1qiQ</id>
   <yt:channelId>UC-N1FtaVBFT5_ZOGOhq1qiQ</yt:channelId>
   <title>Php Dersleri - ibrahim Çevrük</title>
   <link rel="alternate" href="https://www.youtube.com/channel/UC-N1FtaVBFT5_ZOGOhq1qiQ"/>
   <author>
      <name>Php Dersleri - ibrahim Çevrük</name>
      <uri>https://www.youtube.com/channel/UC-N1FtaVBFT5_ZOGOhq1qiQ</uri>
   </author>
   <published>2013-03-12T12:29:34+00:00</published>
   <entry>
      <id>yt:video:qZesuD2B9V0</id>
      <yt:videoId>qZesuD2B9V0</yt:videoId>
      <yt:channelId>UC-N1FtaVBFT5_ZOGOhq1qiQ</yt:channelId>
      <title>Php Dersleri 106 - Php Nesne Yönelimli Programlamada Sihirbaz Metotlar | __construct ve __destruct</title>
      <link rel="alternate" href="https://www.youtube.com/watch?v=qZesuD2B9V0"/>
      <author>
         <name>Php Dersleri - ibrahim Çevrük</name>
         <uri>https://www.youtube.com/channel/UC-N1FtaVBFT5_ZOGOhq1qiQ</uri>
      </author>
      <published>2018-08-03T20:31:16+00:00</published>
      <updated>2019-05-12T08:16:22+00:00</updated>
      <media:group>
         <media:title>Php Dersleri 106 - Php Nesne Yönelimli Programlamada Sihirbaz Metotlar | __construct ve __destruct</media:title>
         <media:content url="https://www.youtube.com/v/qZesuD2B9V0?version=3" type="application/x-shockwave-flash" width="640" height="390"/>
         <media:thumbnail url="https://i2.ytimg.com/vi/qZesuD2B9V0/hqdefault.jpg" width="480" height="360"/>
         <media:description>Php Nesne Yönelimli Programlamada Sihirbaz Metotlarından __construct ve __destruct kullanımını işleyeceğiz. Detaylı bilgi için: https://www.ibrahimcevruk.com/ https://www.ibrahimcevruk.com/kategori/php-dersleri/</media:description>
         <media:community>
            <media:starRating count="8" average="5.00" min="1" max="5"/>
            <media:statistics views="812"/>
         </media:community>
      </media:group>
</entry>
<entry>
...
</entry>
</feed>

Yukarıdaki gibi entry etiketleri arasında videoya ait bir takım bilgiler döndürülecektir. Döndürülen bu değerleri PHP ile alıp listelendirmiş olacağız. XML çıktısından veirleri almak ve listelemek için simplexml_load_string() fonksiyonunu kullanacağız. Tabi bu fonksiyona değerleri aktarmak için file_get_contents() ile hazırladığımız linke bağlanmış olmamız gerekecek.

<?php
$kanalID	= "UC-N1FtaVBFT5_ZOGOhq1qiQ";
$URL 		= file_get_contents('https://www.youtube.com/feeds/videos.xml?channel_id='.$kanalID);
$XML 		= simplexml_load_string($URL);
foreach ($XML->entry as $icerik){
	## Media Bölümünü alıyoruz.
	$media = $icerik->children( 'media', true );
	## Video başlığı
	echo $media->group->title."<br>";
	## Video URL
	echo $media->group->content->attributes()['url']."<br>";
	## Video Küçük Resim URL
	echo $media->group->thumbnail->attributes()['url']."<br>";
	## Video Açıkalaması
	echo $media->group->description."<br>";
	## Video İzlenme Sayısı
	echo $media->group->community->statistics->attributes()["views"]."<br>";
	## Oy Sayısı
	echo $media->group->community->starRating->attributes()["count"]."<br>";
	## Oy Ortalaması
	echo $media->group->community->starRating->attributes()["average"];
	echo "<hr>";
}
?>

Yukarıda yer alan PHP kodlarında ilk olarak $kanalID değişkeni ile youtube kanal ID değeri yazılmaktadır. Sonrasında $URL ile link oluşturulup file_fet_contents() ile bağlantı sağlanır. Sağlanan bağlantıdaki XML kodları da simpleexml_load_string() fonksiyonu ile alınır. Alınan veriler foreack döngüsü ile döndürülür.

Döndürülmesi istenilen veriler entry bölümü olduğu için foreach döngüsünde $XML->entry olarak tanımlanır. Dönecek olan değerler sadece entry bölümü olacaktır. Dönen değerlere de yukarıdaki gibi ulaşılmaktadır.

Bu örnekle birlikte herhangi bir Youtube kanalının beslemesini alabilirsiniz. Aynı şekilde kendi youtube kanalınızdaki videoları alıp sitenizde yayınlayabilirsiniz. Videoları yayınlamakla birlikte başlık, açıklama, resim, izlenmes sayısı, oy sayısı ve oy ortalaması gibi değerleri de çıktı olarak alabiliriniz.

Daha Fazla Göster

İlgili Makaleler

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Kapalı