Bagaimana cara mendapatkan YouTube thumbnail video dari YouTube API?

Jika saya memiliki URL video YouTube, apakah ada cara untuk menggunakan PHP dan cURL untuk mendapatkan berhubungan thumbnail dari YouTube API?

Mengomentari pertanyaan (2)
Larutan

Masing-YouTube video ini memiliki empat gambar yang dihasilkan. Mereka diduga diformat sebagai berikut:

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

Yang pertama dalam daftar adalah gambar ukuran penuh dan yang lainnya adalah gambar thumbnail. Default thumbnail gambar (yaitu, salah satu dari1.jpg, 2.jpg, 3.jpg) adalah:

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

Untuk kualitas tinggi versi thumbnail menggunakan URL seperti ini:

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

Ada juga yang kualitas menengah versi thumbnail, menggunakan URL yang sama ke HQ:

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

Untuk definisi standar versi thumbnail, gunakan URL seperti ini:

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

Untuk resolusi maksimum versi thumbnail menggunakan URL seperti ini:

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

Semua hal di atas Url yang tersedia melalui HTTP juga. Selain itu, sedikit lebih pendek hostname i3.ytimg.com bekerja di tempat img.youtube.com pada contoh Url di atas.

Atau, anda dapat menggunakan YouTube Data API (v3) untuk mendapatkan gambar thumbnail.

Komentar (27)

Anda dapat menggunakan YouTube Data API untuk mengambil video thumbnail, judul, deskripsi, peringkat, statistik dan banyak lagi. API versi 3 membutuhkan key*. Mendapatkan kunci dan membuat video: daftar permintaan:

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

Contoh Kode PHP

$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);

Output

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)
  }
}

* Tidak hanya itu anda perlu kunci, anda mungkin akan diminta untuk informasi penagihan tergantung pada jumlah permintaan API anda berencana untuk membuat. Namun, beberapa juta permintaan per hari gratis.

Sumber artikel.

Komentar (6)

Apa yang Asaf katakan adalah benar. Namun, tidak setiap video YouTube yang berisi semua sembilan thumbnail. Juga, the thumbnail' ukuran gambar tergantung pada video (angka-angka di bawah ini didasarkan pada salah satu).

Ada tujuh thumbnail dijamin ada:

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

Selain itu, dua lainnya thumbnail mungkin atau mungkin tidak ada. Kehadiran mereka ini mungkin didasarkan pada apakah video berkualitas tinggi.

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

Anda dapat menemukan JavaScript dan PHP script untuk mengambil thumbnail dan lainnya YouTube informasi di:

Anda juga dapat menggunakan Video YouTube Informasi Generator alat untuk mendapatkan semua informasi tentang video YouTube dengan mengirimkan URL atau video id.

Komentar (5)

Di YouTube API V3 kita juga dapat menggunakan Url ini untuk memperoleh thumbnail... Mereka diklasifikasikan berdasarkan kualitas mereka.

https://i1.ytimg.com/vi//default.jpg -   default
https://i1.ytimg.com/vi//mqdefault.jpg - medium 
https://i1.ytimg.com/vi//hqdefault.jpg - high
https://i1.ytimg.com/vi//sddefault.jpg - standard

Dan untuk resolusi maksimal..

https://i1.ytimg.com/vi//maxresdefault.jpg

Salah satu keuntungan dari Url di atas dengan Url yang di jawaban pertama adalah bahwa Url ini don't mendapatkan diblokir oleh firewall.

Komentar (4)

Jika anda ingin terbesar image dari YouTube untuk video tertentu ID, maka URL akan menjadi seperti ini:

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

Dengan menggunakan API, anda dapat mengambil gambar thumbnail default. Kode sederhana harus menjadi sesuatu seperti ini:

//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);
Komentar (1)

Jika anda ingin menyingkirkan dari "bar hitam" dan melakukannya seperti YouTube itu, anda dapat menggunakan:

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

Dan jika anda dapat't menggunakan .webp ekstensi file anda dapat melakukannya seperti ini:

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

Juga, jika anda perlu unscaled versi, gunakan maxresdefault bukan mqdefault.

Catatan: saya'm tidak yakin tentang aspek rasio jika anda're berencana untuk menggunakan maxresdefault.

Komentar (5)

Saya membuat sebuah fungsi untuk hanya mengambil gambar yang ada dari YouTube

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;
}
Komentar (0)

Di YouTube Data API v3, anda bisa mendapatkan video's thumbnail dengan video->list fungsi. Dari snippet.thumbnail.(kunci), anda dapat memilih default, menengah atau tinggi resolusi thumbnail, dan dapatkan lebar, tinggi, dan URL.

Anda juga dapat memperbarui thumbnail dengan thumbnail->set fungsi.

Untuk contoh, anda dapat memeriksa YouTube API Sampel proyek. (PHP yang.)

Komentar (1)

Anda bisa mendapatkan Entri Video yang berisi URL untuk video yang's thumbnail. Ada's contoh kode di link. Atau, jika anda ingin mengurai XML, ada's informasi di sini. XML kembali memiliki media:thumbnail elemen, yang berisi thumbnail's URL.

Komentar (1)
// 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;
Komentar (1)

YouTube dimiliki oleh Google dan Google suka untuk memiliki jumlah yang wajar dari gambar untuk ukuran layar yang berbeda, maka gambar yang disimpan dalam ukuran yang berbeda. Berikut adalah contoh bagaimana mini anda akan menjadi seperti:

Kualitas rendah thumbnail:

http://img.youtube.com/vi//sddefault.jpg

Kualitas Medium thumbnail:

http://img.youtube.com/vi//mqdefault.jpg

Kualitas tinggi thumbnail:

http://img.youtube.com/vi//hqdefault.jpg

Kualitas yang maksimal thumbnail:

http://img.youtube.com/vi//maxresdefault.jpg
Komentar (0)

YouTube API versi 3 bangun dan berjalan dalam 2 menit.

Jika semua yang anda ingin lakukan adalah pencarian YouTube dan mendapatkan sifat yang terkait:

  1. Mendapatkan API umum -- link Ini memberikan arah yang baik

  2. Gunakan di bawah ini query string. Pencarian query (dilambangkan dengan q=) di URL string stackoverflow misalnya tujuan. YouTube kemudian akan mengirim anda kembali JSON balas di mana anda kemudian dapat mengurai untuk Thumbnail, Cuplikan, Penulis, dll.

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

Komentar (1)

Gunakan:

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

Di atas adalah tautan. Menggunakan ini, anda dapat menemukan YouTube karakteristik dari video. Setelah menemukan karakteristik, anda bisa mendapatkan video dari kategori yang dipilih. Setelah itu anda dapat menemukan video yang dipilih gambar menggunakan Asaf's jawaban.

Mencoba pendekatan di atas dan anda dapat mengurai segala sesuatu dari YouTube API.

Komentar (0)

Saya telah menggunakan YouTube thumbnail dengan cara ini:

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

Ingat YouTube mencegah untuk memasukkan gambar langsung dari server mereka.

Komentar (0)

Hanya untuk menambah/memperluas solusi yang diberikan, saya merasa perlu untuk dicatat bahwa, ketika aku punya masalah saya sendiri, benar-benar dapat mengambil beberapa video YouTube content, dalam hal ini, thumbnail, dengan satu HTTP request:

Menggunakan Sisa Klien, dalam hal ini, HTTPFUL, anda dapat melakukan sesuatu seperti ini:

<?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);

?>
Komentar (0)

Saya menemukan ini bagus alat yang memungkinkan anda untuk membuat gambar dengan YouTube play tombol yang ditempatkan di atas gambar:

Komentar (0)

Alternatif lain yang baik akan menggunakan oEmbed API yang didukung oleh YouTube.

Anda cukup menambahkan URL YouTube ke oEmbed URL dan anda'll menerima JSON termasuk thumbnail dan kode HTML untuk embedding.

Contoh:

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

Akan memberikan anda:

{
  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: "",
  title: "Some title bla bla foo bar",
  thumbnail_height: 360,
  provider_name: "YouTube",
  height: 344
}

Baca dokumentasi untuk lebih informasi.

Komentar (0)

Anda bisa mendapatkan video ID dari url video YouTube menggunakan parse_url ,parse_str dan kemudian masukkan ke dalam prediksi url untuk gambar. Terima kasih kepada YouTube untuk prediksi Url

$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";

Anda dapat menggunakan alat ini untuk menghasilkan thumbnail YouTube

https://tools.tutsplanet.com/index.php/get-youtube-video-thumbnails

Komentar (0)

Fungsi PHP sederhana yang saya buat untuk YouTube thumbnail dan jenis

  • 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;}
Komentar (0)

Jika anda're menggunakan API publik, cara terbaik untuk melakukannya adalah dengan menggunakan jika pernyataan.

Jika video publik atau tidak tercantum, anda mengatur thumbnail menggunakan metode URL. Jika video pribadi anda menggunakan API untuk mendapatkan thumbnail.

<?php
    if($video_status == 'unlisted'){
        $video_thumbnail = 'http://img.youtube.com/vi/'.$video_url.'/mqdefault.jpg';
        $video_status = ' Unlisted';
    }
    elseif($video_status == 'public'){
        $video_thumbnail = 'http://img.youtube.com/vi/'.$video_url.'/mqdefault.jpg';
        $video_status = ' Public';
    }
    elseif($video_status == 'private'){
        $video_thumbnail = $playlistItem['snippet']['thumbnails']['maxres']['url'];
        $video_status = ' Private';
    }
Komentar (0)