web-gelistirme-sc.com

YouTube API'sından bir YouTube videosu kük resmini nasıl alabilirim?

Bir YouTube video URL’m varsa, ilgili küçük resmi YouTube API’sından almak için PHP ve cURL kullanmanın bir yolu var mı?

2190
Ryan

Her YouTube videosu 4 tane oluşturulmuş resme sahiptir. Tahmin edilebileceği gibi biçimlendirilmişlerdir:

https://img.youtube.com/vi/<insert-youtube-video-id-here>/0.jpg
https://img.youtube.com/vi/<insert-youtube-video-id-here>/1.jpg
https://img.youtube.com/vi/<insert-youtube-video-id-here>/2.jpg
https://img.youtube.com/vi/<insert-youtube-video-id-here>/3.jpg

Listedeki ilki tam boyutlu bir görüntüdür ve diğerleri küçük resimlerdir. Varsayılan küçük resim görüntüsü (ör. 1.jpg, 2.jpg, 3.jpg'dan biri):

https://img.youtube.com/vi/<insert-youtube-video-id-here>/default.jpg

Küçük resmin yüksek kaliteli sürümü için buna benzer bir url kullanın:

https://img.youtube.com/vi/<insert-youtube-video-id-here>/hqdefault.jpg

HQ’ya benzer bir url’yi kullanarak küçük resmin orta kaliteli bir sürümü de vardır:

https://img.youtube.com/vi/<insert-youtube-video-id-here>/mqdefault.jpg

Küçük resmin standart tanım sürümü için buna benzer bir url kullanın:

https://img.youtube.com/vi/<insert-youtube-video-id-here>/sddefault.jpg

Küçük resmin maksimum çözünürlük sürümü için buna benzer bir url kullanın:

https://img.youtube.com/vi/<insert-youtube-video-id-here>/maxresdefault.jpg

Yukarıdaki URL'lerin tümü http üzerinden de kullanılabilir. Ek olarak, biraz daha kısa olan ana bilgisayar adı i3.ytimg.com, yukarıdaki örnek URL'lerde img.youtube.com yerine çalışır.

Alternatif olarak, küçük resimleri almak için YouTube Veri API'sini (v3) kullanabilirsiniz.

4217
Asaph

Video küçük resimleri, resim yazısı, açıklama, derecelendirme, istatistikler ve daha fazlasını almak için YouTube Veri API'sı kullanabilirsiniz. API sürüm 3, bir anahtar gerektirir *. Anahtarı alın ve bir videos: list isteği yaratın:

https://www.googleapis.com/youtube/v3/videos?key=YOUR_API_KEY&part=snippet&id=VIDEO_ID

Örnek PHP Kod

$data = file_get_contents("https://www.googleapis.com/youtube/v3/videos?key=YOUR_API_KEY&part=snippet&id=T0Jqdjbed40");
$json = json_decode($data);
var_dump($json->items[0]->snippet->thumbnails);

Çıktı

object(stdClass)#5 (5) {
  ["default"]=>
  object(stdClass)#6 (3) {
    ["url"]=>
    string(46) "https://i.ytimg.com/vi/T0Jqdjbed40/default.jpg"
    ["width"]=>
    int(120)
    ["height"]=>
    int(90)
  }
  ["medium"]=>
  object(stdClass)#7 (3) {
    ["url"]=>
    string(48) "https://i.ytimg.com/vi/T0Jqdjbed40/mqdefault.jpg"
    ["width"]=>
    int(320)
    ["height"]=>
    int(180)
  }
  ["high"]=>
  object(stdClass)#8 (3) {
    ["url"]=>
    string(48) "https://i.ytimg.com/vi/T0Jqdjbed40/hqdefault.jpg"
    ["width"]=>
    int(480)
    ["height"]=>
    int(360)
  }
  ["standard"]=>
  object(stdClass)#9 (3) {
    ["url"]=>
    string(48) "https://i.ytimg.com/vi/T0Jqdjbed40/sddefault.jpg"
    ["width"]=>
    int(640)
    ["height"]=>
    int(480)
  }
  ["maxres"]=>
  object(stdClass)#10 (3) {
    ["url"]=>
    string(52) "https://i.ytimg.com/vi/T0Jqdjbed40/maxresdefault.jpg"
    ["width"]=>
    int(1280)
    ["height"]=>
    int(720)
  }
}

* Sadece bir anahtara ihtiyacınız olmadığını değil, yapmayı planladığınız API isteklerinin sayısına bağlı olarak fatura bilgilerinizi girmeniz istenebilir. Ancak, günde birkaç milyon talep ücretsizdir.

Kaynak makale .

372
Salman A

Asaph dediği doğru. Ancak, her YouTube videosu dokuz küçük resmin tümünü içermez. Ayrıca, küçük resimlerin görüntü boyutları videoya bağlıdır (aşağıdaki sayılar bir tanedir).

Var olduğu garantili yedi küçük resim var:

| Thumbnail Name      | Size (px) | URL                                              |
|---------------------|-----------|--------------------------------------------------|
| Player Background   | 480x360   | https://i1.ytimg.com/vi/<VIDEO ID>/0.jpg         |
| Start               | 120x90    | https://i1.ytimg.com/vi/<VIDEO ID>/1.jpg         |
| Middle              | 120x90    | https://i1.ytimg.com/vi/<VIDEO ID>/2.jpg         |
| End                 | 120x90    | https://i1.ytimg.com/vi/<VIDEO ID>/3.jpg         |
| High Quality        | 480x360   | https://i1.ytimg.com/vi/<VIDEO ID>/hqdefault.jpg |
| Medium Quality      | 320x180   | https://i1.ytimg.com/vi/<VIDEO ID>/mqdefault.jpg |
| Normal Quality      | 120x90    | https://i1.ytimg.com/vi/<VIDEO ID>/default.jpg   |

Ek olarak, diğer iki küçük resim de olabilir veya olmayabilir. Varlıkları muhtemelen videonun yüksek kalitede olup olmamasına bağlıdır.

| Thumbnail Name      | Size (px) | URL                                                  |
|---------------------|-----------|------------------------------------------------------|
| Standard Definition | 640x480   | https://i1.ytimg.com/vi/<VIDEO ID>/sddefault.jpg     |
| Maximum Resolution  | 1920x1080 | https://i1.ytimg.com/vi/<VIDEO ID>/maxresdefault.jpg |

Küçük resimleri ve diğer YouTube bilgilerini almak için JavaScript ve PHP komut dosyalarını bulabilirsiniz:

Bir URL veya video kimliği göndererek bir YouTube videosu hakkında tüm bilgileri almak için YouTube Video Bilgi Oluşturucu aracını da kullanabilirsiniz.

221
AGMG

YouTube API V3'te bu URL'leri küçük resimler elde etmek için de kullanabiliriz ... Kalitelerine göre sınıflandırılırlar.

https://i1.ytimg.com/vi/<insert-youtube-video-id-here>/default.jpg -   default
https://i1.ytimg.com/vi/<insert-youtube-video-id-here>/mqdefault.jpg - medium 
https://i1.ytimg.com/vi/<insert-youtube-video-id-here>/hqdefault.jpg - high
https://i1.ytimg.com/vi/<insert-youtube-video-id-here>/sddefault.jpg - standard

Ve maksimum çözünürlük için ..

https://i1.ytimg.com/vi/<insert-youtube-video-id-here>/maxresdefault.jpg

Bu URL’lerin ilk cevapta URL’ler üzerindeki avantajlarından biri, bu URL’lerin güvenlik duvarları tarafından engellenmemesidir.

70
Naren

YouTube'dan belirli bir video kimliği için en büyük resmi istiyorsanız, URL’nin şunun gibi olması gerekir:

http://i3.ytimg.com/vi/SomeVideoIDHere/0.jpg

API kullanarak, varsayılan küçük resim görüntüsünü alabilirsiniz. Basit kod şöyle bir şey olmalı:

//Grab the default thumbnail image
$attrs = $media->group->thumbnail[1]->attributes();
$thumbnail = $attrs['url'];
$thumbnail = substr($thumbnail, 0, -5);
$thumb1 = $thumbnail."default.jpg";

// Grab the third thumbnail image
$thumb2 = $thumbnail."2.jpg";

// Grab the fourth thumbnail image.
$thumb3 = $thumbnail."3.jpg";

// Using simple cURL to save it your server.
// You can extend the cURL below if you want it as fancy, just like
// the rest of the folks here.

$ch = curl_init ("$thumb1");
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_BINARYTRANSFER,1);
$rawdata = curl_exec($ch);
curl_close($ch);

// Using fwrite to save the above
$fp = fopen("SomeLocationInReferenceToYourScript/AnyNameYouWant.jpg", 'w');

// Write the file
fwrite($fp, $rawdata);

// And then close it.
fclose($fp);
50
PoorBoy

"Siyah çubuklar" dan kurtulmak ve YouTube'un yaptığı gibi yapmak istiyorsanız, şunları kullanabilirsiniz:

https://i.ytimg.com/vi_webp/<video id>/mqdefault.webp

Ve eğer .webp uzantısını kullanamazsanız, aşağıdaki gibi yapabilirsiniz:

https://i.ytimg.com/vi/<video id>/mqdefault.jpg

Ayrıca, ölçeklendirilmemiş versiyona ihtiyacınız varsa, maxresdefault yerine mqdefault kullanın.

Not: maxresdefault kullanmayı planlıyorsanız, en boy oranından emin değilim.

41
LuTz

Yalnızca YouTube’dan mevcut görüntüleri almak için bir işlev yaptım

function youtube_image($id) {
    $resolution = array (
        'maxresdefault',
        'sddefault',
        'mqdefault',
        'hqdefault',
        'default'
    );

    for ($x = 0; $x < sizeof($resolution); $x++) {
        $url = '//img.youtube.com/vi/' . $id . '/' . $resolution[$x] . '.jpg';
        if (get_headers($url)[0] == 'HTTP/1.0 200 OK') {
            break;
        }
    }
    return $url;
}
32

YouTube Veri API'si v3 'de videos-> list işlevi ile videonun küçük resimlerini alabilirsiniz. snippet.thumbnails. (Key) öğesinden, varsayılan, orta veya yüksek çözünürlüklü küçük resmi seçebilir ve genişliğini, yüksekliğini ve URL’sini alabilirsiniz.

Küçük resimleri ayrıca thumbnails-> set işleviyle güncelleyebilirsiniz.

Örnekler için YouTube API Örnekleri projesini inceleyebilirsiniz. ( PHP olanlar .)

30
Ibrahim Ulukaya

Videonun küçük resminin URL'sini içeren Video Girişini alabilirsiniz. Bağlantıda örnek kod var. Veya, XML'i ayrıştırmak istiyorsanız, here diye bir bilgi var. Döndürülen XML, küçük resmin URL'sini içeren bir media:thumbnail öğesine sahiptir.

28
keyboardP
// Get image form video URL
$url = $video['video_url'];

$urls = parse_url($url);

//Expect the URL to be http://youtu.be/abcd, where abcd is the video ID
if ($urls['Host'] == 'youtu.be') :

    $imgPath = ltrim($urls['path'],'/');

//Expect the URL to be http://www.youtube.com/embed/abcd
elseif (strpos($urls['path'],'embed') == 1) :

    $imgPath = end(explode('/',$urls['path']));

//Expect the URL to be abcd only
elseif (strpos($url,'/') === false):

    $imgPath = $url;

//Expect the URL to be http://www.youtube.com/watch?v=abcd
else :

    parse_str($urls['query']);

    $imgPath = $v;

endif;
23
Mahendra Tyagi

YouTube, Google’a aittir ve Google, farklı ekran boyutları için makul sayıda resim bulundurmayı sever, bu nedenle görüntüleri farklı boyutlarda depolar, işte küçük resminizin nasıl hoşlanacağına bir örnek

Düşük kaliteli küçük resim:

http://img.youtube.com/vi/<YouTube_Video_ID_HERE>/sddefault.jpg

Orta kalitede küçük resim:

http://img.youtube.com/vi/<YouTube_Video_ID_HERE>/mqdefault.jpg

Yüksek kaliteli küçük resim:

http://img.youtube.com/vi/<YouTube_Video_ID_HERE>/hqdefault.jpg

Maksimum kalite küçük resmi:

http://img.youtube.com/vi/<YouTube_Video_ID_HERE>/maxresdefault.jpg
17
life evader

YOUTUBE API VERSİYONU 3 ** 2 DAKİKADA YUKARI VE ÇALIŞMA **

Tek yapmak istediğiniz YouTube’da arama yapmak ve ilgili özellikleri almaksa:

  1. KAMU API'sini Alın - Bu Bağlantı iyi bir yön veriyor

2.Sorgu dizesini aşağıda kullanın. URL dizesindeki arama sorgusu (q =) ile belirtilir, örneğin, stackoverflow içindir. YouTube daha sonra Küçük Resim, Metin Parçası, Yazar vb. İçin ayrıştırabileceğiniz bir json yanıtı gönderir.

https://www.googleapis.com/youtube/v3/search?part=id%2Csnippet&maxResults=50&q=stackoverflow&key=YOUR_API_KEY_HERE
15
Chris

Kullanın:

https://www.googleapis.com/youtube/v3/videoCategories?part=snippet,id&maxResults=100&regionCode=us&key=**Your YouTube ID**

Yukarıdaki bağlantı. Bunu kullanarak, videoların YouTube özelliklerini bulabilirsiniz. Özellikleri bulduktan sonra, seçilen kategorinin videolarını alabilirsiniz. Ondan sonra, seçilen video görüntüleriniAsaph'in cevabıkullanarak bulabilirsiniz.

Yukarıdaki yaklaşımı deneyin ve YouTube'daki her şeyi ayrıştırabilirsiniz API .

14
Nikh1414

YouTube Küçük Resimleri bu şekilde kullandım:

$url = 'http://img.youtube.com/vi/' . $youtubeId . '/0.jpg';
$img = dirname(__FILE__) . '/youtubeThumbnail_'  . $youtubeId . '.jpg';
file_put_contents($img, file_get_contents($url));

YouTube’un, görüntüleri doğrudan sunucularına eklemeyi engellediğini unutmayın

13

Bir başka iyi alternatif, YouTube tarafından desteklenen oEmbed API'yi kullanmak olacaktır.

YouTube URL’nizi oEmbed URL'sine eklemeniz yeterlidir; küçük resim ve gömme için html kodu içeren bir JSON alırsınız.

Örnek:

http://www.youtube.com/oembed?format=json&url=http%3A//youtube.com/watch%3Fv%3DDLzxrzFCyOs

Sana veririm:

{
  thumbnail_url: "https://i.ytimg.com/vi/DLzxrzFCyOs/hqdefault.jpg",
  width: 459,
  author_name: "AllKindsOfStuff",
  version: "1.0",
  author_url: "https://www.youtube.com/channel/UCLNd5EtH77IyN1frExzwPRQ",
  thumbnail_width: 480,
  type: "video",
  provider_url: "https://www.youtube.com/",
  html: "<iframe width="459" height="344" src="https://www.youtube.com/embed/DLzxrzFCyOs?feature=oembed" frameborder="0" allowfullscreen></iframe>",
  title: "Some title bla bla foo bar",
  thumbnail_height: 360,
  provider_name: "YouTube",
  height: 344
}

Daha fazla bilgi için Belgeleri okuyun Bilgi .

12
Andresch Serj

Verilen çözümleri eklemek/genişletmek için, kendim bu sorunu yaşadığım için bir tane birden çok YouTube videosu içeriğini, bu durumda, küçük bir tek HTTP isteğinde bulunabileceğini not etmek gerektiğini düşünüyorum:

Bir Rest Client kullanarak, bu durumda, HTTPFUL, şöyle bir şey yapabilirsiniz:

<?php
header("Content-type", "application/json");

//download the httpfull.phar file from http://phphttpclient.com
include("httpful.phar");

$youtubeVidIds= array("nL-rk4bgJWU", "__kupr7KQos", "UCSynl4WbLQ", "joPjqEGJGqU", "PBwEBjX3D3Q");


$response = \Httpful\Request::get("https://www.googleapis.com/youtube/v3/videos?key=YourAPIKey4&part=snippet&id=".implode (",",$youtubeVidIds)."")

->send();

print ($response);

?>
12
Hlawuleka MAS

Görüntünün üzerine yerleştirilen YouTube oynat düğmesiyle görüntü oluşturmanıza olanak sağlayan bu şık aracı buldum:

12
Scott Joudry

youtube küçük resmi için oluşturulan basit bir php işlevi ve türleri

  • default
  • hqdefault
  • mqdefault
  • sddefault
  • maxresdefault

    function get_youtube_thumb($link,$type){
    
        $video_id = explode("?v=", $link); 
            if (empty($video_id[1])){
               $video_id = explode("/v/", $link); 
               $video_id = explode("&", $video_id[1]); 
               $video_id = $video_id[0];
            }
        $thumb_link = "";
        if($type == 'default' || $type == 'hqdefault' || $type == 'mqdefault' || $type == 'sddefault' || $type == 'maxresdefault'){
    
            $thumb_link = 'http://img.youtube.com/vi/'.$video_id.'/'.$type.'.jpg';
    
        }elseif($type == "id"){
            $thumb_link = $video_id;
        }
        return $thumb_link;}
    
10
Arun Yokesh

Genel API kullanıyorsanız, bunu yapmanın en iyi yolu if ifadelerini kullanmaktır.

Video herkese açıksa veya listede yoksa, küçük resmi url yöntemini kullanarak ayarlayın. Video özelse, küçük resmi almak için api'yi kullanın.

<?php
if($video_status == 'unlisted'){
$video_thumbnail = 'http://img.youtube.com/vi/'.$video_url.'/mqdefault.jpg';
$video_status = '<i class="fa fa-lock"></i>&nbsp;Unlisted';
}
elseif($video_status == 'public'){
$video_thumbnail = 'http://img.youtube.com/vi/'.$video_url.'/mqdefault.jpg';
$video_status = '<i class="fa fa-eye"></i>&nbsp;Public';
}
elseif($video_status == 'private'){
$video_thumbnail = $playlistItem['snippet']['thumbnails']['maxres']['url'];
$video_status = '<i class="fa fa-lock"></i>&nbsp;Private';
}
9
Harvey Connor

YouTube Veri API'sı

YouTube Bize, her video için oluşturulmuş 4 görüntüyü Veri API'sı (v3), Örn.

  1. https://i.ytimg.com/vi/V_zwalcR8DU/maxresdefault.jpg

  2. https://i.ytimg.com/vi/V_zwalcR8DU/sddefault.jpg

  3. https://i.ytimg.com/vi/V_zwalcR8DU/hqdefault.jpg

  4. https://i.ytimg.com/vi/V_zwalcR8DU/mqdefault.jpg

API Üzerinden Resimlere Erişim Almak

  1. İlk önce Genel API Anahtarınızı Google API Konsolu adresinden alın.
  2. YouTube'un API Belgeleri içindeki Küçük Resim Referansına göre, snippet.thumbnails adresindeki kaynaklara erişmeniz gerekir.
  3. Buna göre, URL’nizi bu şekilde ifade etmeniz gerekir -

    www.googleapis.com/youtube/v3/videos?part=snippet&id=yourVideoId&key=yourApiKey

ŞimdiVideoId'nizi ve ApiKey'inizi ilgili video kimliğiniz ve api anahtarınızla değiştirin; yanıtı, snippet değişkeninin minik resimlerinde 4 bağlantı sağlayan (tümü varsa) size bir JSON çıkışı olacaktır.

8
Daksh Miglani

Video kimliğini YouTube video URL'sinden parse_url , parse_str kullanarak ve ardından öngörüler için öngörüsel URL'lere ekleyebilirsiniz. Tahmini URL’ler için YouTube’a teşekkürler

$videoUrl = "https://www.youtube.com/watch?v=8zy7wGbQgfw";
parse_str( parse_url( $videoUrl, PHP_URL_QUERY ), $my_array_of_vars );
$ytID = $my_array_of_vars['v']; //gets video ID

print "https://img.youtube.com/vi/<?php print $ytID?>/maxresdefault.jpg";
print "https://img.youtube.com/vi/<?php print $ytID?>/mqdefault.jpg";
print "https://img.youtube.com/vi/<?php print $ytID?>/hqdefault.jpg";
print "https://img.youtube.com/vi/<?php print $ytID?>/sddefault.jpg";
print "https://img.youtube.com/vi/<?php print $ytID?>/default.jpg";

YouTube küçük resimlerini oluşturmak için bu aracı kullanabilirsiniz

https://codeatools.com/get-youtube-video-thumbnails

7
Rinto George

Küçük resim için çok fazla cevap olduğunu düşünüyorum, ancak küçük resim almak için kolayca bazı URL'ler eklemek istiyorum. Sadece Asaph'in cevabından bir metin alıyorum. İşte youtube küçük resimleri almak için bazı url

https://ytimg.googleusercontent.com/vi/<insert-youtube-video-id-here>/default.jpg

Küçük resmin yüksek kaliteli sürümü için buna benzer bir url kullanın:

https://ytimg.googleusercontent.com/vi/<insert-youtube-video-id-here>/hqdefault.jpg

HQ’ya benzer bir url’yi kullanarak küçük resmin orta kaliteli bir sürümü de vardır:

https://ytimg.googleusercontent.com/vi/<insert-youtube-video-id-here>/mqdefault.jpg

Küçük resmin standart tanım sürümü için buna benzer bir url kullanın:

https://ytimg.googleusercontent.com/vi/<insert-youtube-video-id-here>/sddefault.jpg

Küçük resmin maksimum çözünürlük sürümü için buna benzer bir url kullanın:

https://ytimg.googleusercontent.com/vi/<insert-youtube-video-id-here>/maxresdefault.jpg

Umarım yakın gelecekte birine yardımcı olur.

6
Kumar
    function get_video_thumbnail( $src ) {
            $url_pieces = explode('/', $src);
            if( $url_pieces[2] == 'dai.ly'){
                $id = $url_pieces[3];
                $hash = json_decode(file_get_contents('https://api.dailymotion.com/video/'.$id.'?fields=thumbnail_large_url'), TRUE);
                $thumbnail = $hash['thumbnail_large_url'];
            }else if($url_pieces[2] == 'www.dailymotion.com'){
                $id = $url_pieces[4];
                $hash = json_decode(file_get_contents('https://api.dailymotion.com/video/'.$id.'?fields=thumbnail_large_url'), TRUE);
                $thumbnail = $hash['thumbnail_large_url'];
            }else if ( $url_pieces[2] == 'vimeo.com' ) { // If Vimeo
                $id = $url_pieces[3];
                $hash = unserialize(file_get_contents('http://vimeo.com/api/v2/video/' . $id . '.php'));
                $thumbnail = $hash[0]['thumbnail_large'];
            } elseif ( $url_pieces[2] == 'youtu.be' ) { // If Youtube
                $extract_id = explode('?', $url_pieces[3]);
                $id = $extract_id[0];
                $thumbnail = 'http://img.youtube.com/vi/' . $id . '/mqdefault.jpg';
            }else if ( $url_pieces[2] == 'player.vimeo.com' ) { // If Vimeo
                $id = $url_pieces[4];
                $hash = unserialize(file_get_contents('http://vimeo.com/api/v2/video/' . $id . '.php'));
                $thumbnail = $hash[0]['thumbnail_large'];
            } elseif ( $url_pieces[2] == 'www.youtube.com' ) { // If Youtube
                $extract_id = explode('=', $url_pieces[3]);
                $id = $extract_id[1];
                $thumbnail = 'http://img.youtube.com/vi/' . $id . '/mqdefault.jpg';
            } else{
                $thumbnail = tim_thumb_default_image('video-icon.png', null, 147, 252);
            }
            return $thumbnail;
        }

get_video_thumbnail('https://vimeo.com/154618727');
get_video_thumbnail('https://www.youtube.com/watch?v=SwU0I7_5Cmc');
get_video_thumbnail('https://youtu.be/pbzIfnekjtM');
get_video_thumbnail('http://www.dailymotion.com/video/x5thjyz');
5
Nimesh Vagadiya

En iyi cevap / manuel kullanım için optimize edilmiştir. Ayırıcı içermeyen video kimliği simgesi, çift tıklamayla seçmeyi sağlar.

Her YouTube videosu 4 tane oluşturulmuş resme sahiptir. Tahmin edilebileceği gibi biçimlendirilmişlerdir:

https://img.youtube.com/vi/YOUTUBEVIDEOID/0.jpg
https://img.youtube.com/vi/YOUTUBEVIDEOID/1.jpg
https://img.youtube.com/vi/YOUTUBEVIDEOID/2.jpg
https://img.youtube.com/vi/YOUTUBEVIDEOID/3.jpg

Listedeki ilki tam boyutlu bir görüntüdür ve diğerleri küçük resimlerdir. Varsayılan küçük resim görüntüsü (ör. 1.jpg, 2.jpg, 3.jpg'dan biri):

https://img.youtube.com/vi/YOUTUBEVIDEOID/default.jpg

Küçük resmin yüksek kaliteli sürümü için buna benzer bir url kullanın:

https://img.youtube.com/vi/YOUTUBEVIDEOID/hqdefault.jpg

HQ’ya benzer bir url’yi kullanarak küçük resmin orta kaliteli bir sürümü de vardır:

https://img.youtube.com/vi/YOUTUBEVIDEOID/mqdefault.jpg

Küçük resmin standart tanım sürümü için buna benzer bir url kullanın:

https://img.youtube.com/vi/YOUTUBEVIDEOID/sddefault.jpg

Küçük resmin maksimum çözünürlük sürümü için buna benzer bir url kullanın:

https://img.youtube.com/vi/YOUTUBEVIDEOID/maxresdefault.jpg

Yukarıdaki URL'lerin tümü http üzerinden de kullanılabilir. Ek olarak, biraz daha kısa olan ana bilgisayar adı i3.ytimg.com, yukarıdaki örnek URL'lerde img.youtube.com yerine çalışır.

Alternatif olarak, küçük resimleri almak için YouTube Veri API'sini (v3) kullanabilirsiniz.

3
Lycan

Yöntem 1:

youtube videosunu "thumbnail_url" http://www.youtube.com/oembed?format=json&url= {videonuz buraya gider}

final url look + php test code gibi

$data = file_get_contents("https://www.youtube.com/oembed?format=json&url=https://www.youtube.com/watch?v=_7s-6V_0nwA");
$json = json_decode($data);
var_dump($json); 

Çıktı

object(stdClass)[1]
  public 'width' => int 480
  public 'version' => string '1.0' (length=3)
  public 'thumbnail_width' => int 480
  public 'title' => string 'how to reminder in window as display message' (length=44)
  public 'provider_url' => string 'https://www.youtube.com/' (length=24)
  public 'thumbnail_url' => string 'https://i.ytimg.com/vi/_7s-6V_0nwA/hqdefault.jpg' (length=48)
  public 'author_name' => string 'H2 ZONE' (length=7)
  public 'type' => string 'video' (length=5)
  public 'author_url' => string 'https://www.youtube.com/channel/UC9M35YwDs8_PCWXd3qkiNzg' (length=56)
  public 'provider_name' => string 'YouTube' (length=7)
  public 'height' => int 270
  public 'html' => string '<iframe width="480" height="270" src="https://www.youtube.com/embed/_7s-6V_0nwA?feature=oembed" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe>' (length=171)
  public 'thumbnail_height' => int 360

detaylar için ayrıca https://www.youtube.com/watch?v=mXde7q59BI8 video dersini görebilirsiniz. 1

Yöntem 2: youtube img linkini kullanma https://img.youtube.com/vi/ "insert-youtube-video-id-here" /default.jpg

Metod 3: video url linkini kullanarak video küçük resmini almak için tarayıcı kaynak kodunu kullanma - video kaynak koduna gidin ve thumbnailurl ifadesini arayın Şimdi bu url kodunu kendi sorce kodunuzda kullanabilirsiniz: {img src = "https: // img.youtube.com/vi/"insert-youtube-video-id-here"/default.jpg "}

ayrıntılı bilgi için ayrıca http://hzonesp.com/php/get-youtube-video-thumbnail-using-id/ veya https://www.youtube.com/watch?v=9f6E8MeM6PI video eğitimi 2

2
Hassan Saeed

Bunu kullanın - img.youtube.com/vi/YouTubeID/ImageFormat.jpg burada resim formatları varsayılan, hqdefault, maxresdefault gibi farklıdır.

1
shpwebhost

Bu kodu boş .php dosyasına kaydedin ve test edin.

<img src="<?php echo youtube_img_src('9bZkp7q19f0', 'high');?>" />
<?php
// Get a YOUTUBE video thumb image's source url for IMG tag "src" attribute:
// $ID = YouYube video ID (string)
// $size = string (default, medium, high or standard)
function youtube_img_src ($ID = null, $size = 'default') {
    switch ($size) {
        case 'medium':
            $size = 'mqdefault';
            break;
        case 'high':
            $size = 'hqdefault';
            break;
        case 'standard':
            $size = 'sddefault';
            break;
        default:
            $size = 'default';
            break;
    }
    if ($ID) {
        return sprintf('https://img.youtube.com/vi/%s/%s.jpg', $ID, $size);
    }
    return 'https://img.youtube.com/vi/ERROR/1.jpg';
}

Teşekkürler.

0
Ali

burada küçük resimleri almak için oluşturduğum basit bir işlev, anlamak ve kullanmak kolaydır. $ link, tarayıcıda olduğu gibi kopyalanan youtube bağlantısıdır, örneğin https://www.youtube.com/watch?v=BQ0mxQXmLsk

    function get_youtube_thumb($link){
    $new=str_replace('https://www.youtube.com/watch?v=','', $link);
    $thumbnail='https://img.youtube.com/vi/'.$new.'/0.jpg';
    return $thumbnail;
}
0

Bu benim müşteri tarafında sadece no-API-anahtar gerekli bir çözümdür.

YouTube.parse('https://www.youtube.com/watch?v=P3DGwyl0mJQ').then(_ => console.log(_))

Kod:

import { parseURL, parseQueryString } from './url'
import { getImageSize } from './image'

const PICTURE_SIZE_NAMES = [
    // 1280 x 720.
    // HD aspect ratio.
    'maxresdefault',
    // 629 x 472.
    // non-HD aspect ratio.
    'sddefault',
    // For really old videos not having `maxresdefault`/`sddefault`.
    'hqdefault'
]

// - Supported YouTube URL formats:
//   - http://www.youtube.com/watch?v=My2FRPA3Gf8
//   - http://youtu.be/My2FRPA3Gf8
export default
{
    parse: async function(url)
    {
        // Get video ID.
        let id
        const location = parseURL(url)
        if (location.hostname === 'www.youtube.com') {
            if (location.search) {
                const query = parseQueryString(location.search.slice('/'.length))
                id = query.v
            }
        } else if (location.hostname === 'youtu.be') {
            id = location.pathname.slice('/'.length)
        }

        if (id) {
            return {
                source: {
                    provider: 'YouTube',
                    id
                },
                picture: await this.getPicture(id)
            }
        }
    },

    getPicture: async (id) => {
        for (const sizeName of PICTURE_SIZE_NAMES) {
            try {
                const url = getPictureSizeURL(id, sizeName)
                return {
                    type: 'image/jpeg',
                    sizes: [{
                        url,
                        ...(await getImageSize(url))
                    }]
                }
            } catch (error) {
                console.error(error)
            }
        }
        throw new Error(`No picture found for YouTube video ${id}`)
    },

    getEmbeddedVideoURL(id, options = {}) {
        return `https://www.youtube.com/embed/${id}`
    }
}

const getPictureSizeURL = (id, sizeName) => `https://img.youtube.com/vi/${id}/${sizeName}.jpg`

Yardımcı program image.js:

// Gets image size.
// Returns a `Promise`.
function getImageSize(url)
{
    return new Promise((resolve, reject) =>
    {
        const image = new Image()
        image.onload = () => resolve({ width: image.width, height: image.height })
        image.onerror = reject
        image.src = url
    })
}

Yardımcı program url.js:

// Only on client side.
export function parseURL(url)
{
    const link = document.createElement('a')
    link.href = url
    return link
}

export function parseQueryString(queryString)
{
    return queryString.split('&').reduce((query, part) =>
    {
        const [key, value] = part.split('=')
        query[decodeURIComponent(key)] = decodeURIComponent(value)
        return query
    },
    {})
}
0
asdfasdfads