Soru YouTube API'sından bir YouTube video küçük resmini nasıl edinebilirim?


Bir YouTube video URL’m varsa, ilişkili küçük resmi YouTube API’dan almak için PHP ve cURL’i kullanmanın bir yolu var mı?


2025
2018-01-14 23:34


Menşei


İşte bu sayfadaki birçok iyi cevaptan yola çıkarak, API'ye ping uygulamasıyla URL'den en iyi küçük resmi elde etmek için oluşturduğum bazı PHP işlevleri şunlardır: gist.github.com/squarecandy/30ec9f6779c0e8cdf12e337c665d96c5 - squarecandy


Cevaplar:


Her YouTube videosunda 4 adet resim var. Tahminen aşağıdaki gibi biçimlendirilirler:

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 resim ve diğerleri küçük resimlerdir. Varsayılan küçük resim görüntüsü (ör. 1.jpg, 2.jpg, 3.jpg):

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

Küçük resmin orta kaliteli bir sürümü de vardır ve HQ’ye benzer bir URL kullanılı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 hepsi de http üzerinden kullanılabilir. Ek olarak, biraz daha kısa ana bilgisayar adı i3.ytimg.com yerine çalışır img.youtube.com Yukarıdaki örnek URL'lerde.

Alternatif olarak, YouTube Veri API'sı (v3) küçük resimler elde etmek için


3883
2018-01-14 23:40



Yüksek çözünürlüklü görüntüyü nasıl alırsınız (eğer varsa)? - trusktr
Sadece bu kadar aptalca bir hata yaparsa - kullanamazsın http://www.img.youtube.com, bir tek http://img.youtube.com - Ciaran Phillips
@NickG mqdefault 16: 9 - tomtastico
resmi olarak belgelenmiş bir yer burası mı? - bjunix
@ clami219 bu da yanlış - açıkça çalışır (2015-04): i.ytimg.com/vi_webp/EhjdWfxjuHA/sddefault.webp, doğrusu: sddefault ve maxresdefault HER ZAMAN DEĞİLDİR bazı videolar onları olsa da .... - jave.web


Kullanabilirsiniz YouTube Veri API'sı video küçük resimleri, resim yazısı, açıklama, derece, istatistik ve daha fazlasını almak için API sürüm 3 bir anahtar gerektirir *. Anahtarı edinin ve bir videolar: liste istek:

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

Örnek PHP Kodu

$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 olduğu gibi, yapmayı planladığınız API isteklerinin sayısına bağlı olarak faturalama bilgileri istenebilir. Ancak, günde birkaç milyon istek ücretsizdir.

Kaynak makale.


358
2018-01-21 09:58



FYI: kodu yeni JSON yapısına uyacak şekilde değiştirmedim. GetJSON kodunuz yanlış. Kullandın jsonc yerine json getJSON için. Yanlış JSON yapısından dolayı başarısız oluyor. - mauris
Sadece ilk örnek kullanabilir jsonc. JQuery ve PHP örnekleri MUST kullanım json. Ve kodu yeni JSON yapısına uygun olarak güncelledim. Şu anda kodu kullanıyorum ve LIVE çalışıyor. Bu yüzden, değişiklikleri okumadan çalışmadığını söyleme. Teşekkürler! - mauris
JQuery ve PHP örnekleri json'u kullanmalıdır... referans verebilir misiniz? Ayrıca, belirli bir API sürüm numarası isteme (v=2) API değişiklikleri ile ilgilenir. - Salman A
Gdata çağrısı, mevcut olduğu videolar için maxresdefault.jpg'nin kullanılabilir olup olmadığını, yalnızca mq / hq / sd değerini döndürmez. - Aaron
Bu gerçek api v3 çalışmıyor - Mario Gonzales Flores


Asaph'ın söylediği doğru. Ancak, her YouTube videosu dokuz küçük resmin tamamını içermez, ancak her video için yedi küçük resim vardır. Onlar:

(Görüntü boyutu videoya göre değişir.)

  • Oyuncu Arkaplan Küçük Resim (480x360 piksel)
    https://i1.ytimg.com/vi/G0wGs3useV8/0.jpg

  • Küçük Resim Başlat (120x90 piksel)
    https://i1.ytimg.com/vi/G0wGs3useV8/1.jpg

  • Orta Küçük Resim (120x90 piksel)
    https://i1.ytimg.com/vi/G0wGs3useV8/2.jpg

  • Bitiş Küçük Resmi (120x90 piksel)
    https://i1.ytimg.com/vi/G0wGs3useV8/3.jpg

  • Yüksek Kaliteli Küçük Resim (480x360 piksel)
    https://i1.ytimg.com/vi/G0wGs3useV8/hqdefault.jpg

  • Orta Kalite Küçük Resmi (320x180 piksel)
    https://i1.ytimg.com/vi/G0wGs3useV8/mqdefault.jpg

  • Normal Kalite Küçük Resmi (120x90 piksel)
    https://i1.ytimg.com/vi/G0wGs3useV8/default.jpg

Ve ek olarak, sonraki iki küçük resim mevcut olabilir veya olmayabilir. HQ videolar için Onlar var.

  • Standart Tanım Küçük Resim (640x480 piksel)
    https://i1.ytimg.com/vi/G0wGs3useV8/sddefault.jpg

  • Maksimum Çözünürlük Küçük Resim (1920x1080 piksel)
    https://i1.ytimg.com/vi/G0wGs3useV8/maxresdefault.jpg

Küçük resimleri ve diğerlerini almak için JavaScript ve PHP komut dosyalarını alabilirsiniz. YouTube bilgileri

Aracı da kullan YouTube Video Bilgi Üreticisi hepsini almak için bir YouTube videosu göndererek URL veya video kimliği.


199
2017-12-12 11:17



Aynı sonucu resmi youtube bağlantısıyla da yapabilirsiniz img.youtube.com/vi/mJ8tq8AnNis/mqdefault.jpg mJ8tq8AnNis'in video kimliği olduğu - Ragaisis
Bazen kesin olanları yoktur - i1.ytimg.com/vi/r5R8gSgedh4/maxresdefault.jpg yine de sahte i1.ytimg.com/vi/r5R8gSgedh4/0.jpg örneğin tamam. - NoBugs
Bunu gönderdiğiniz için teşekkürler. Bu veriler için bir kaynağınız var mı? Bu doğru, ama bu konuda Youtube / Google bir şey için bir bağlantı istiyorum ve bir tane bulamıyorum. - Jonathan Vanasco
@JonathanVanasco, üzgünüm. Tam içerik için resmi bir kaynak kastediyorsanız, hiçbirini bilmiyorum. Ve onların bakış açısıyla böyle bir şeyi yayınlamanın bir amacı olduğunu sanmıyorum. - AGMG
küçük resim olarak başka bir şey ayarlamışsam, daha yüksek çözünürlükte 1.jpg elde etmenin herhangi bir yolu var mı? - dietbacon


YouTube API V3'te, küçük resimleri elde etmek için bu URL'leri de kullanabiliriz ... Kalite özelliklerine 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 yanıttaki URL'lerden bir avantajı, bu URL'lerin güvenlik duvarları tarafından engellenmemesidir.


66
2017-08-23 10:23



Bu imgeler img etiketine yerleştirildiğini varsayıyor ve sadece çalışmam gerekiyor çünkü ben bağlantıyı doğru youtube video kimliğine dahil etmeye çalışıyorum ve img etiketine koyuyorum ama 404 - Lion789
@ Lion789 Bu URL'ler, bir img etiketine yerleştirildiğinde iyi çalışır .. Sorun, yanlış bir video kimliği olabilir veya istenen çözünürlük mevcut olmayabilir ancak 404'ü bu hatalarla karşılaşmazsınız. Lütfen URL'nin URL'sini kontrol edin. img etiketi. - Naren
API v2 durdurulduktan sonra URL'lerin çalışmaya devam edeceği doğrulandı mı? - Daniele B
@DanieleB Bu URL'ler hala çalışıyor. Bu URL'lerin API v2'den sonra çalışıp çalışmayacağını nasıl kontrol edeceğinizi biliyor musunuz? - Naren


Belirli bir video kimliği için YouTube’un en büyük resmini istiyorsanız, URL şöyle olmalıdır:

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

API'yi kullanarak, varsayılan küçük resim görüntüsünü seçebilirsiniz. Basit kod bö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);

46
2017-12-22 05:44



Maxjdefault.jpg 1280x720 iken 0.jpg 480x360 bir çözünürlüğe sahip bir örnek buldum - Nico Haase


"Siyah çubuklardan" kurtulmak ve YouTube'un yaptığı gibi yapmak isterseniz şunları kullanabilirsiniz:

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

Ve eğer kullanamazsan .webp uzantı bunu böyle yapabilir:

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

Ayrıca, ölçeklendirilmemiş sürüm kullanımına ihtiyacınız varsa maxresdefault yerine mqdefault.

Not: Kullanmayı planlıyorsanız en boy oranı hakkında emin değilim maxresdefault.


39
2018-06-08 11:59



.webp formatı Firefox'ta çalışmıyor - Guilherme Carlos
Bu durumda kullanım https://i.ytimg.com/vi/<video id>/mqdefault.jpg. - LuTz
Teşekkürler, HD için bu blackbar'lar olmadan küçük resimler arıyordum (1920x1080) ve bu sadece benim için çalıştı! Genius @ LuTz! - Aaron Belchamber
Bu pek çok video için mevcut değildir. Örneğin: i.ytimg.com/vi_webp/mJ8tq8AnNis/mqdefault.webp - NickG
@NickG: Kaldırırsanız çalışır _webp ve uzantıyı değiştir .jpg. Çalışma örneği: i.ytimg.com/vi/mJ8tq8AnNis/mqdefault.jpg , En boy oranı hakkında emin değilim. - LuTz


Yalnızca mevcut resimleri YouTube'dan 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;
}

27
2017-12-18 10:29





İçinde YouTube Veri API'sı v3videonun küçük resimlerini Video-> liste işlevi. itibaren snippet.thumbnails. (anahtar)varsayılan, orta veya yüksek çözünürlüklü küçük resmi seçebilir, genişliğini, yüksekliğini ve URL'sini alabilirsiniz.

Küçük resimleri thumbnails-> seti işlevsellik.

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


26
2018-05-28 17:45



Bu, youtube API'sı için bir Google Dev ilişkiler üyesinden geldiğinden bunu yapmanın doğru yolu olduğunu düşünüyorum. - Adonis K. Kakoulidis


Sen alabilirsiniz Video Girişi Videonun küçük resminin URL'sini içerir. Bağlantıda örnek kod var. Ya da, XML'yi ayrıştırmak istiyorsanız, bilgi var İşte. Geri gönderilen XML’in media:thumbnail Küçük resmin URL'sini içeren öğe.


25
2018-01-14 23:40



SimpleXML kullanarak çıkaramıyorum. Bu çok zor! - Aditya M P