PHP ile Youtube Video Resmini Çekme

0

Video sitesi yaparken doğal olarak videoları Youtube’den çekiyoruz resimleride ordan çekmek isteyebiliriz, yada farklı bir amaç için video resmi gerekebilir. Youtube’de video ile resim id’si aynı ve resim kaliteside seçebiliyorsunuz.

Video’ya ait küçük resimler (thumbnails);

  • http://img.youtube.com/vi/video-id/0.jpg
  • http://img.youtube.com/vi/video-id/1.jpg
  • http://img.youtube.com/vi/video-id/2.jpg
  • http://img.youtube.com/vi/video-id/3.jpg

Video HD küçük resim (thumbnail);

  • http://img.youtube.com/vi/video-id/hqdefault.jpg

En yüksek kalite küçük resim (thumbnail)

  • http://img.youtube.com/vi/video-id/maxresdefault.jpg (sadece HD videolarda çalışır.)

Örnek;

Örnek youtube linki: https://www.youtube.com/watch?v=9XGBbzS8j-U

Video ID : 9XGBbzS8j-U

Örnek resim linki : http://img.youtube.com/vi/9XGBbzS8j-U/0.jpg

PHP ile Youtube Linkini Parçalama

Yukarıda ID ile resmin nasıl alındığını gördük ancak her seferinde id’yi kopyalayıp yapıştırmaya gerek yok işi dahada basitleştirelim.

<?php
$youtubevideo = https://www.youtube.com/watch?v=9XGBbzS8j-U;
$videokalite = "mqdefault"; //maxresdefault, sddefault, hqdefault, default, 3, 2, 1, 0
if($youtubevideo) : ?>
<?php
if (preg_match('%(?:youtube(?:-nocookie)?.com/(?:[^/]+/.+/|(?:v|e(?:mbed)?)/|.*[?&]v=)|youtu.be/)([^"&?/ ]{11})%i', $youtubevideo, $match)) {
$video_id = $match[1];
}
?>

Yukarıdaki işlemde $youtubevideo değişkenine linki atadık siz hangi yönetim panelini kullanıyorsanız örneğin WordPress kullanıyorsanız özel alan oluşturup oradaki linki $youtubevideo değişkenine atayacaksınız. Daha sonra preg_match ile linki parçalayıp $video_id içinede onu depoluyoruz artık $video_id içerisinde sadece id yer alıyor.

Gelelim bunu yazdırmaya;

<img alt="<?php the_permalink(); ?>" src="http://img.youtube.com/vi/<?php echo $video_id ?>/<?php echo $videokalite ?>.jpg" alt=""/>

$videokalite içerisinede text olarak mqdefault‘ı depoladım ama siz diğerlerini yazarsanız ona göre kaliteyi belirlemiş olursunuz.