YouTube API에서 YouTube 비디오 축소판을 어떻게 얻을 수 있습니까?
질문
YouTube Video URL이있는 경우 PHP와 CURL을 사용하여 YouTube API에서 연관된 축소판을 가져 오는 방법이 있습니까?
답변
각 YouTube 비디오에는 네 개의 생성 된 이미지가 있습니다.그들은 다음과 같이 예측 가능하게 포맷됩니다.
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.jpg, 2.jpg, 3.jpg 중 하나)는 다음과 같습니다.
https://img.youtube.com/vi/<insert-youtube-video-id-here>/default.jpg
Thumbnail의 고품질 버전은 다음과 유사한 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를 통해 사용할 수 있습니다.또한 약간 더 짧은 호스트 이름 i3.ytimg.com은 위의 예제 URL에서 img.youtube.com 대신에 작동합니다.
또는 YouTube 데이터 API (V3)를 사용하여 축소판 이미지를 가져올 수 있습니다.
답변
YouTube 데이터 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 요청 수에 따라 청구 정보를 묻는 메시지가 표시 될 수 있습니다.그러나 하루에 수천 개의 요청은 무료입니다.
소스 기사.
답변
asaps가 옳은 것입니다.그러나 모든 YouTube 비디오는 모든 9 가지가 포함되어 있지 않습니다 축소판 그림.또한 미리보기 이미지 크기는 비디오에 따라 다릅니다 (숫자 아래에는 하나씩).존재할 수있는 미리보기가 있습니다.
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
JavaScript 및 PHP 스크립트를 찾으려면 미리보기 이미지 및 기타 YouTube 정보 :
PHP로 YouTube 비디오 정보를 얻는 방법 JavaScript - JSON & API V2를 사용하여 YouTube 비디오 세부 정보 검색
YouTube 비디오 정보 생성기 도구를 사용하여 모든 것을 얻을 수도 있습니다. URL 또는 비디오 ID를 제출하여 YouTube 비디오에 대한 정보.
답변
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의 하나의 이점은 이러한 URL이 방화벽에 의해 차단되지 않는다는 것입니다.
답변
특정 비디오 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);
답변
당신이 "검은 색 바"를 제거하고 YouTube처럼 그것을 할 수 있습니다.
https://i.ytimg.com/vi_webp/<video id>/mqdefault.webp
.webp 파일 확장자를 사용할 수없는 경우 다음과 같이 할 수 있습니다.
https://i.ytimg.com/vi/<video id>/mqdefault.jpg
또한 지정되지 않은 버전이 필요한 경우 MQDefault 대신 MaxResDefault를 사용하십시오.
참고 : MaxresDefault를 사용할 계획이라면 종횡비가 확실하지 않습니다.
출처:https://stackoverflow.com/questions/2068344/how-do-i-get-a-youtube-video-thumbnail-from-the-youtube-api
최근댓글