v2.5.2
Giriş yap

youtube playlisti php ile ayrı ayrı video başlık ve linki şeklinde alma

hasaneryilmaz
1,067 defa görüntülendi

youtubeda yer alan playlistteki videoları teker teker başlık ve link şeklinde almak istiyorum.

youtube playlistteki videoların tek tek başlığını ve video linki nasıl alabilirim.

Cevap yaz
Cevaplar (5)
umityatarkalkmaz
1467 gün önce
/*
    Ben kendi siteme iframe ile attığım için videoları bu işimi görüyor fazlasını istersen video idsini kullanarak biraz parçalama yapınca işine yarayacak bilgileri alabilirsin
    Url kısmında ben sadece bir kanalın videolar kısmını test ettim playlist verirsen url olarak fazladan video idsi çekebilir 
*/
$url = ''
 $ch = curl_init();
 //curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); Burası localde deneyeceksen yorum satırını kaldır ssl doğrulamayı kapatıyor wamp ve xamp da hata alıyordum ben o yüzden ekledim hata almıyorsan bir şeyi değiştirmene gerek yok
 curl_setopt($ch, CURLOPT_URL,$url);
 curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
 $html = curl_exec($ch);
 curl_close($ch);

$links = [];
$param = explode('{"videoId":"',$html);
$count = count($param);
for ($i=1; $i<=$count ; $i++) {
  if(isset($param[$i])){
  $explode = explode('"',$param[$i]);}
  if(isset($explode)){
  array_push($links,$explode[0]);
  }
}

$links=array_values(array_unique($links));
if (count($links)>setting('video_count')) {
  do{
    array_pop($links);
  }while(isset($links[setting('video_count')]));
}
// setting('video_count') gösterilecek video sayısını belirtmek için son kısmı istersen kullanmayabilirsin tüm videolar için işlem yapacaksan
hasaneryilmaz
1466 gün önce

tamamdır hocam sağolasın çözdüm.

umityatarkalkmaz
1467 gün önce

Setting fonksiyonu çekilecek video sayısı için setting('video_count') kısımlarını 10-20 ile değiştirebilirsin

$links=array_values(array_unique($links));
if (count($links)>setting('video_count')) {
  do{
    array_pop($links);
  }while(isset($links[setting('video_count')]));
}

Burayı tamamen silersende hiçbir sınırlama olmadan tüm çektiği idleri $links değişkeninden ala bilirsin

hasaneryilmaz
1467 gün önce

setting fonksiyonunu göremedim kod orada hata veriyor.

Fatal error: Uncaught Error: Call to undefined function setting() in dosya adı vs..

zafer
1468 gün önce

Bunun için en doğru çözüm youtube tafarından sağlanan bir API üzerinden bu bilgilerin alınması olabilir. (Youtube API saglıyor mu bilmiyorum?)

İkinci ve biraz daha dolayı bir çözüm bir crawler (https://www.webtures.com/tr/blog/sozluk/crawler-nedir) geliştirmek olabilir.

Üçüncü bir çözüm hazır bir crawler projesi bulup kodlarını kendi işinize göre özelleştirmek olabilir.

Görüldüğü üzere seçenek çok sizin seçiminiz hangisi olur?