2655

YouTubeビデオURLを持っている場合、PHPとcURLを使用してYouTube APIから関連するサムネイルを取得する方法はありますか?

4

36 に答える 36

5121

各YouTubeビデオには、4つの生成された画像があります。それらは次のように予想どおりにフォーマットされます。

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

リストの最初の画像はフルサイズの画像で、その他はサムネイル画像です。デフォルトのサムネイル画像(つまり、、、のいずれか1.jpg2.jpg3.jpg次のとおりです。

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

サムネイルの高品質バージョンには、次のようなURLを使用します。

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

HQと同様のURLを使用した、中品質バージョンのサムネイルもあります。

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

サムネイルの標準画質バージョンの場合は、次のようなURLを使用します。

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

サムネイルの最大解像度バージョンには、次のようなURLを使用します。

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

上記のURLはすべてHTTP経由でも利用できます。さらに、上記のURLの例のi3.ytimg.com代わりに、わずかに短いホスト名が機能します。img.youtube.com

または、YouTube Data API(v3)を使用してサムネイル画像を取得することもできます。

于 2010-01-14T23:40:25.970 に答える
425

YouTube Data APIを使用して、動画のサムネイル、キャプション、説明、評価、統計などを取得できます。APIバージョン3にはキー*が必要です。キーを取得し、ビデオを作成します:リストリクエスト:

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

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

出力

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

*キーが必要なだけでなく、実行する予定のAPIリクエストの数によっては、請求情報の入力を求められる場合があります。ただし、1日あたり数千件のリクエストは無料です。

ソース記事

于 2010-01-21T09:58:05.897 に答える
311

アサフが言ったことは正しい。ただし、すべてのYouTube動画に9つのサムネイルすべてが含まれているわけではありません。また、サムネイルの画像サイズはビデオによって異なります(以下の数値は1つに基づいています)。存在することが保証されているサムネイルがいくつかあります。

Width | Height | URL
------|--------|----
120   | 90     | https://i.ytimg.com/vi/<VIDEO ID>/1.jpg
120   | 90     | https://i.ytimg.com/vi/<VIDEO ID>/2.jpg
120   | 90     | https://i.ytimg.com/vi/<VIDEO ID>/3.jpg
120   | 90     | https://i.ytimg.com/vi/<VIDEO ID>/default.jpg
320   | 180    | https://i.ytimg.com/vi/<VIDEO ID>/mq1.jpg
320   | 180    | https://i.ytimg.com/vi/<VIDEO ID>/mq2.jpg
320   | 180    | https://i.ytimg.com/vi/<VIDEO ID>/mq3.jpg
320   | 180    | https://i.ytimg.com/vi/<VIDEO ID>/mqdefault.jpg
480   | 360    | https://i.ytimg.com/vi/<VIDEO ID>/0.jpg
480   | 360    | https://i.ytimg.com/vi/<VIDEO ID>/hq1.jpg
480   | 360    | https://i.ytimg.com/vi/<VIDEO ID>/hq2.jpg
480   | 360    | https://i.ytimg.com/vi/<VIDEO ID>/hq3.jpg
480   | 360    | https://i.ytimg.com/vi/<VIDEO ID>/hqdefault.jpg

さらに、他のいくつかのサムネイルが存在する場合と存在しない場合があります。彼らの存在は、おそらくビデオが高品質であるかどうかに基づいています。

Width | Height | URL
------|--------|----
640   | 480    | https://i.ytimg.com/vi/<VIDEO ID>/sd1.jpg
640   | 480    | https://i.ytimg.com/vi/<VIDEO ID>/sd2.jpg
640   | 480    | https://i.ytimg.com/vi/<VIDEO ID>/sd3.jpg
640   | 480    | https://i.ytimg.com/vi/<VIDEO ID>/sddefault.jpg
1280  | 720    | https://i.ytimg.com/vi/<VIDEO ID>/hq720.jpg
1920  | 1080   | https://i.ytimg.com/vi/<VIDEO ID>/maxresdefault.jpg

サムネイルやその他のYouTube情報を取得するためのJavaScriptおよびPHPスクリプトは次の場所にあります。

YouTubeビデオ情報ジェネレータツールを使用して、URLまたはビデオIDを送信することにより、YouTubeビデオに関するすべての情報を取得することもできます。

于 2013-12-12T11:17:36.840 に答える
86

YouTube API V3では、これらのURLを使用してサムネイルを取得することもできます...これらは品質に基づいて分類されます。

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

そして最大の解像度のために。

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

最初の回答のURLに対するこれらのURLの利点の1つは、これらのURLがファイアウォールによってブロックされないことです。

于 2013-08-23T10:23:59.200 に答える
59

特定の動画IDに対してYouTubeから最大の画像が必要な場合、URLは次のようになります。

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

APIを使用すると、デフォルトのサムネイル画像を取得できます。単純なコードは次のようになります。

//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);
于 2010-12-22T05:44:04.743 に答える
57

「黒いバー」を取り除き、YouTubeと同じように実行したい場合は、次を使用できます。

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

.webpまた、ファイル拡張子を使用できない場合は、次のように実行できます。

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

また、スケーリングされていないバージョンが必要な場合は、のmaxresdefault代わりにを使用してmqdefaultください。

注:を使用する予定がある場合は、アスペクト比がわかりませんmaxresdefault

于 2015-06-08T11:59:01.663 に答える
36

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;
}
于 2013-12-18T10:29:09.420 に答える
34

ビデオのサムネイルへのURLを含むビデオエントリを取得できます。リンクにサンプルコードがあります。または、XMLを解析する場合は、ここに情報があります。返されるXMLにはmedia:thumbnail、サムネイルのURLを含む要素が含まれています。

于 2010-01-14T23:40:57.343 に答える
33

YouTube Data API v3では、 videos->list関数を使用してビデオのサムネイルを取得できます。snippet.thumbnails。(key)から、デフォルト、中解像度、または高解像度のサムネイルを選択し、その幅、高さ、およびURLを取得できます。

サムネイル->設定機能でサムネイルを更新することもできます。

たとえば、YouTubeAPIサンプルプロジェクトを確認できます。(PHPのもの。)

于 2013-05-28T17:45:25.583 に答える
30

YouTubeはGoogleが所有しており、Googleはさまざまな画面サイズに対して妥当な数の画像を用意することを好みます。そのため、その画像はさまざまなサイズで保存されます。サムネイルがどのようになるかの例を次に示します。

低品質のサムネイル:

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

中品質のサムネイル:

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

高品質のサムネイル:

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

最高品質のサムネイル:

http://img.youtube.com/vi/<YouTube_Video_ID_HERE>/maxresdefault.jpg
于 2015-12-01T23:40:30.177 に答える
29
// 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;
于 2013-07-04T05:10:10.840 に答える
18

もう1つの良い代替策は、YouTubeでサポートされているoEmbedAPIを使用することです。

YouTubeのURLをoEmbedURLに追加するだけで、サムネイルと埋め込み用のHTMLコードを含むJSONを受け取ることができます。

例:

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

あなたに与えるだろう:

{
  "height":270,
  "width":480,
  "title":"example video for 2020",
  "thumbnail_width":480,
  "html":"...",
  "thumbnail_height":360,
  "version":"1.0",
  "provider_name":"YouTube",
  "author_url":"https:\/\/www.youtube.com\/channel\/UCza6VSQUzCON- AzlsrOLwaA",
  "thumbnail_url":"https:\/\/i.ytimg.com\/vi\/xUeJdWYdMmQ\/hqdefault.jpg",
  "author_name":"Pokics",
  "provider_url":"https:\/\/www.youtube.com\/",
  "type":"video"
}

詳細については、ドキュメントをお読みください

于 2017-03-08T08:24:34.260 に答える
17

YouTubeAPIバージョン3 が2分で稼働します

YouTubeを検索して、関連するプロパティを取得するだけの場合は、次のようにします。

  1. パブリックAPIを取得する-このリンクは良い方向性を示します

  2. 以下のクエリ文字列を使用します。URL文字列内の検索クエリ( q =で示される)は、例としてスタックオーバーフローです。その後、YouTubeからJSON返信が返され、サムネイル、スニペット、作成者などを解析できます。

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

于 2014-03-14T16:20:18.770 に答える
17

YouTubeは2台のサーバーからサムネイルを提供しています。<YouTube_Video_ID_HERE>を独自のYouTubeビデオIDに置き換える必要があります。最近のwebPは、画像サイズが小さいため、画像を高速で読み込むのに最適な形式です。

https://img.youtube.com https://i.ytimg.com

例としては、https://i.ytimg.comサーバーが短いという理由だけで、他に特別な理由はありません。両方を使用できます。

プレーヤーの背景サムネイル(480x360):

WebP
https://i.ytimg.com/vi_webp/<YouTube_Video_ID_HERE>/0.webp

JPG
https://i.ytimg.com/vi/<YouTube_Video_ID_HERE>/0.jpg

ビデオフレームのサムネイル(120x90)

WebP:
Start: https://i.ytimg.com/vi_webp/<YouTube_Video_ID_HERE>/1.webp
Middle: https://i.ytimg.com/vi_webp/<YouTube_Video_ID_HERE>/2.webp
End: https://i.ytimg.com/vi_webp/<YouTube_Video_ID_HERE>/3.webp

JPG:
Start: https://i.ytimg.com/vi/<YouTube_Video_ID_HERE>/1.jpg
Middle: https://i.ytimg.com/vi/<YouTube_Video_ID_HERE>/2.jpg
End: https://i.ytimg.com/vi/<YouTube_Video_ID_HERE>/3.jpg

最低品質のサムネイル(120x90)

WebP
https://i.ytimg.com/vi_webp/<YouTube_Video_ID_HERE>/default.webp

JPG
https://i.ytimg.com/vi/<YouTube_Video_ID_HERE>/default.jpg

中品質のサムネイル(320x180)

WebP
https://i.ytimg.com/vi_webp/<YouTube_Video_ID_HERE>/mqdefault.webp

JPG
https://i.ytimg.com/vi/<YouTube_Video_ID_HERE>/mqdefault.jpg

高品質のサムネイル(480x360)

WebP
https://i.ytimg.com/vi_webp/<YouTube_Video_ID_HERE>/hqdefault.webp

JPG
https://i.ytimg.com/vi/<YouTube_Video_ID_HERE>/hqdefault.jpg

標準品質のサムネイル(640x480)

WebP
https://i.ytimg.com/vi_webp/<YouTube_Video_ID_HERE>/sddefault.webp

JPG
https://i.ytimg.com/vi/<YouTube_Video_ID_HERE>/sddefault.jpg

スケーリングされていないサムネイル解像度

WebP
https://i.ytimg.com/vi_webp/<YouTube_Video_ID_HERE>/maxresdefault.webp

JPG
https://i.ytimg.com/vi/<YouTube_Video_ID_HERE>/maxresdefault.jpg
于 2020-09-14T17:53:56.263 に答える
16

parse_urlparse_strを使用してYouTubeビデオURLからビデオIDを取得し、画像の予測URLに挿入できます。予測URLを提供してくれたYouTubeに感謝します

$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/$ytID/maxresdefault.jpg";
print "https://img.youtube.com/vi/$ytID/mqdefault.jpg";
print "https://img.youtube.com/vi/$ytID/hqdefault.jpg";
print "https://img.youtube.com/vi/$ytID/sddefault.jpg";
print "https://img.youtube.com/vi/$ytID/default.jpg";

このツールを使用して、YouTubeのサムネイルを生成できます

https://youtube-thumbnail-tool.com

于 2018-05-02T12:18:53.367 に答える
15

使用する:

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

上記はリンクです。それを使用して、動画のYouTubeの特徴を見つけることができます。特徴を見つけたら、選択したカテゴリのビデオを取得できます。その後、Asaphの回答を使用して選択したビデオ画像を見つけることができます。

上記のアプローチを試してみてください。YouTubeAPIからすべてを解析できます

于 2014-04-03T11:44:52.353 に答える
15

私はこのようにYouTubeのサムネイルを使用しました:

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

YouTubeは、サーバーから直接画像を含めることを禁止していることを忘れないでください。

于 2015-05-06T10:55:02.507 に答える
14

与えられたソリューションを追加/拡張するために、私自身がこの問題を抱えていたため、1つのHTTPリクエストで複数のYouTubeビデオコンテンツ(この場合はサムネイル)を実際に取得できることに注意する必要があると思います。

Restクライアント(この場合はHTTPFUL)を使用すると、次のようなことができます。

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

?>
于 2016-05-08T15:22:15.887 に答える
14

YouTubeデータAPI

YouTubeは、たとえば、Data API(v3)を介してすべてのビデオに対して生成された4つの画像を提供します。

  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を介して画像にアクセスする

  1. まず、 GoogleAPIコンソールで公開APIキーを取得します。
  2. APIドキュメントのYouTubeのサムネイル参照に従って、snippet.thumbnailsのリソースにアクセスする必要があります。
  3. このように、あなたはこのようにあなたのURLを表現する必要があります-

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

次に、ビデオIDとAPIキーをそれぞれのvideo-idとapi-keyに変更すると、その応答はJSON出力になり、スニペット変数のサムネイルに4つのリンクが表示されます(すべて使用可能な場合)。

于 2017-03-22T15:26:48.977 に答える
13

画像の上にYouTubeの再生ボタンを配置して画像を作成できるこの便利なツールを見つけました。

于 2014-01-21T19:07:49.637 に答える
12

YouTubeのサムネイル用に作成した単純なPHP関数とタイプは次のとおりです。

  • デフォルト
  • 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;}
于 2015-09-24T06:24:45.320 に答える
11

パブリックAPIを使用している場合、それを行う最良の方法はifステートメントを使用することです。

動画が公開されているか非公開の場合は、URL方式を使用してサムネイルを設定します。動画が非公開の場合は、APIを使用してサムネイルを取得します。

<?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';
    }
于 2016-05-17T21:28:43.327 に答える
9

サムネイルにはたくさんの答えがあると思いますが、YouTubeのサムネイルを簡単に取得できるように他のURLを追加したいと思います。私はアサフの答えからいくつかのテキストを取っています。YouTubeのサムネイルを取得するためのURLは次のとおりです。

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

サムネイルの高品質バージョンには、次のようなURLを使用します。

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

高品質と同様のURLを使用した、中品質バージョンのサムネイルもあります。

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

サムネイルの標準画質バージョンの場合は、次のようなURLを使用します。

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

サムネイルの最大解像度バージョンには、次のようなURLを使用します。

https://ytimg.googleusercontent.com/vi/<insert-youtube-video-id-here>/maxresdefault.jpg
于 2016-10-24T15:29:19.260 に答える
9

方法1:

「thumbnail_url」もあるJSONページでYouTube動画のすべての情報を見つけることができます、 http://www.youtube.com/oembed?format = json&url= {あなたの動画のURLはここにあります}

最終的なURLルック+PHPテストコードのように

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

出力

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

詳細については、 id またはhttps://www.youtube.com/watch?v=mXde7q59BI8ビデオチュートリアル1を使用してYouTubeビデオサムネイルを取得する方法も参照してください。

方法2:

YouTube画像リンクを使用して、 https: //img.youtube.com/vi/ "insert-youtube-video-id-here" / default.jpg

方法3:

ビデオURLリンクを使用してサムネイルを取得するためのブラウザソースコードの使用-ビデオソースコードに移動し、thumbnailurlを検索します。これで、このURLをソースコードに使用できます。

{img src="https://img.youtube.com/vi/"insert-youtube-video-id-here"/default.jpg"}

詳細については、id または https://www.youtube.com/watch?v=9f6E8MeM6PI ビデオチュートリアル2を使用してYouTubeビデオサムネイルを取得する方法も参照してください。

于 2018-04-10T13:35:12.903 に答える
7
    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');
于 2017-10-26T10:29:52.607 に答える
6

手動で使用するために最適化されたトップアンサーは次のとおりです。セパレータなしのビデオIDトークンを使用すると、ダブルクリックで選択できます。

各YouTubeビデオには、4つの生成された画像があります。それらは次のように予想どおりにフォーマットされます。

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

リストの最初の画像はフルサイズの画像で、その他はサムネイル画像です。デフォルトのサムネイル画像(つまり、、、のいずれか1.jpg2.jpg3.jpg次のとおりです。

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

サムネイルの高品質バージョンには、次のようなURLを使用します。

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

HQと同様のURLを使用した、中品質バージョンのサムネイルもあります。

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

サムネイルの標準画質バージョンの場合は、次のようなURLを使用します。

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

サムネイルの最大解像度バージョンには、次のようなURLを使用します。

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

上記のURLはすべてHTTP経由でも利用できます。さらに、上記のURLの例のi3.ytimg.com代わりに、わずかに短いホスト名が機能します。img.youtube.com

または、YouTube Data API(v3)を使用してサムネイル画像を取得することもできます。

于 2018-02-24T21:59:26.487 に答える
4

使用するimg.youtube.com/vi/YouTubeID/ImageFormat.jpg

ここでは、画像形式はdefault、hqdefault、maxresdefaultのように異なります。

于 2018-08-29T09:55:55.150 に答える
4

これは私のクライアント側のみのAPIキー不要のソリューションです。

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

コード:

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`

ユーティリティ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
    })
}

ユーティリティ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
    },
    {})
}
于 2018-09-23T15:00:06.860 に答える
4
https://i.ytimg.com/vi/<--Video ID-->/default.jpg

画像サイズ重量120px高さ90px

https://i.ytimg.com/vi/<--Video ID-->/mqdefault.jpg

画像サイズ重量320px高さ180px

https://i.ytimg.com/vi/<--Video ID-->/hqdefault.jpg

画像サイズ重量480px身長360px

https://i.ytimg.com/vi/<--Video ID-->/sddefault.jpg

画像サイズ重量640px高さ480px

https://i.ytimg.com/vi/<--Video ID-->/maxresdefault.jpg

画像サイズ重量1280px身長720px

于 2022-01-03T16:21:07.263 に答える
2

これは、サムネイルを取得するために作成した簡単な関数です。わかりやすく使いやすいです。

$ linkは、ブラウザにそのままコピーされたYouTubeリンクです。たとえば、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;
}
于 2018-04-22T16:03:30.193 に答える
1

このコードをempty.phpファイルに保存してテストします。

<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';
}

存在することが保証されているサムネイルがいくつかあります。

Width | Height | URL
------|--------|----
120   | 90     | https://i.ytimg.com/vi/<VIDEO ID>/1.jpg
120   | 90     | https://i.ytimg.com/vi/<VIDEO ID>/2.jpg
120   | 90     | https://i.ytimg.com/vi/<VIDEO ID>/3.jpg
120   | 90     | https://i.ytimg.com/vi/<VIDEO ID>/default.jpg
320   | 180    | https://i.ytimg.com/vi/<VIDEO ID>/mq1.jpg
320   | 180    | https://i.ytimg.com/vi/<VIDEO ID>/mq2.jpg
320   | 180    | https://i.ytimg.com/vi/<VIDEO ID>/mq3.jpg
320   | 180    | https://i.ytimg.com/vi/<VIDEO ID>/mqdefault.jpg
480   | 360    | https://i.ytimg.com/vi/<VIDEO ID>/0.jpg
480   | 360    | https://i.ytimg.com/vi/<VIDEO ID>/hq1.jpg
480   | 360    | https://i.ytimg.com/vi/<VIDEO ID>/hq2.jpg
480   | 360    | https://i.ytimg.com/vi/<VIDEO ID>/hq3.jpg
480   | 360    | https://i.ytimg.com/vi/<VIDEO ID>/hqdefault.jpg

ありがとう。

于 2019-07-28T13:27:33.533 に答える
0

Youtubeには、インタラクティブな遊び場など、APIに関する優れたドキュメントがあります。みんなに遊び場を試してみることをお勧めします。それはあなたにビデオ、チャンネルの検索、個別の検索を提供します。

ビデオについては、https://developers.google.com/youtube/v3/docs/videos/listにアクセスしてください

チャンネルの場合:https ://developers.google.com/youtube/v3/docs/channels/list

検索結果の場合:https ://developers.google.com/youtube/v3/docs/search/list

提供される内容、動作、サンプルコード、返されたJSONファイルの構造をすべて確認できます。

于 2022-02-16T22:47:19.537 に答える
-2

これは、YTで見つかった最高品質から最初の最高品質へと下降する単純なPHP関数です。おそらくそれは一部の人にとっては助けになります。cURLでエラーを追加して、ビデオがYTにリストされなくなったときに表示されないようにすることもできます。(これは、リストにないビデオでは機能しない可能性があります。画像が表示されることもありますが、ビデオは引き続き公開されます。)

使用は次のように簡単です。

echo '<img src="';
echo get_yt_thumb($ytVidCode);
echo '">';

関数:

function get_yt_thumb($ytVidCode) {
    $url = "https://img.youtube.com/vi/$ytVidCode/maxresdefault.jpg";
    if(remote_file_exists($url)) {
        $vid_thumb  = "https://img.youtube.com/vi/$ytVidCode/maxresdefault.jpg";
    }
    else {
        $url = "https://img.youtube.com/vi/$ytVidCode/sddefault.jpg";
        if(remote_file_exists($url)) {
            $vid_thumb  = "https://img.youtube.com/vi/$ytVidCode/sddefault.jpg";
        }
        else {
            $url = "https://img.youtube.com/vi/$ytVidCode/hqdefault.jpg";
            if(remote_file_exists($url)) {
                $vid_thumb  = "https://img.youtube.com/vi/$ytVidCode/hqdefault.jpg";
            }
            else {
                $url = "https://img.youtube.com/vi/$ytVidCode/default.jpg";
                if(remote_file_exists($url)) {
                    $vid_thumb  = "https://img.youtube.com/vi/$ytVidCode/default.jpg";
                }
            }
        }
    }
    return $vid_thumb;
}
于 2021-03-23T22:16:44.870 に答える
-3
public const string tubeThumb = "http://i.ytimg.com/vi/[id]/hqdefault.jpg";
vid.Thumbnail = tubeThumb.Replace("[id]", vid.VideoID);
于 2017-02-16T05:59:32.620 に答える
-3

ファイルを名前を付けて保存.js

  var maxVideos = 5;
  $(document).ready(function(){
  $.get(
    "https://www.googleapis.com/youtube/v3/videos",{
      part: 'snippet,contentDetails',
      id:'your_video_id',
      kind: 'youtube#videoListResponse',
      maxResults: maxVideos,
      regionCode: 'IN',
      key: 'Your_API_KEY'},
      function(data){
        var output;
        $.each(data.items, function(i, item){
          console.log(item);
                thumb = item.snippet.thumbnails.high.url;
          output = '<div id="img"><img src="' + thumb + '"></div>';
          $('#thumbnail').append(output);
        })
        
      }
    );
}); 
.main{
 width:1000px;
 margin:auto;
}
#img{
float:left;
display:inline-block;
margin:5px;
}
<!DOCTYPE html>
<html>
<head>
  <title>Thumbnails</title>
  <script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js" type="text/javascript"></script>
</head>
<body>
<div class="main">
 <ul id="thumbnail"> </ul>
</div>
</body>
</html>

于 2017-05-16T20:38:14.860 に答える
-4
package com.app.download_video_demo;

import java.net.MalformedURLException;
import java.net.URL;

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.widget.ImageView;

import com.squareup.picasso.Picasso;


// get Picasso jar file and put that jar file in libs folder

public class Youtube_Video_thumnail extends Activity
{
    ImageView iv_youtube_thumnail,iv_play;
    String videoId;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        super.setContentView(R.layout.youtube_video_activity);

        init();

        try 
        {
            videoId=extractYoutubeId("http://www.youtube.com/watch?v=t7UxjpUaL3Y");

            Log.e("VideoId is->","" + videoId);

            String img_url="http://img.youtube.com/vi/"+videoId+"/0.jpg"; // this is link which will give u thumnail image of that video

            // picasso jar file download image for u and set image in imagview

            Picasso.with(Youtube_Video_thumnail.this)
            .load(img_url) 
            .placeholder(R.drawable.ic_launcher) 
            .into(iv_youtube_thumnail);

        } 
        catch (MalformedURLException e) 
        {
            e.printStackTrace();
        }

    }
    public void init()
    {
        iv_youtube_thumnail=(ImageView)findViewById(R.id.img_thumnail);
        iv_play=(ImageView)findViewById(R.id.iv_play_pause);
    }

    // extract youtube video id and return that id
    // ex--> "http://www.youtube.com/watch?v=t7UxjpUaL3Y"
    // videoid is-->t7UxjpUaL3Y


    public String extractYoutubeId(String url) throws MalformedURLException {
        String query = new URL(url).getQuery();
        String[] param = query.split("&");
        String id = null;
        for (String row : param) {
            String[] param1 = row.split("=");
            if (param1[0].equals("v")) {
                id = param1[1];
            }
        }
        return id;
    }

}
于 2018-03-28T11:51:25.877 に答える