youtube playlisti php ile ayrı ayrı video başlık ve linki şeklinde alma
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.
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (5)
/*
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
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
setting fonksiyonunu göremedim kod orada hata veriyor.
Fatal error: Uncaught Error: Call to undefined function setting() in dosya adı vs..
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?