유튜브 Data API 를 이용하면 유튜브의 등록된 공개 비디오 데이터에 접근하여 상세 정보를 가져올 수 있다. 이번편에서는 API를 통해 실제 Data 를 추출하는 예제를 살펴보도록 하자.
참고로 유튜브 Data API 를 사용하기 위해서는 구글 클라우드 서비스를 활성화 하여 API 키값이 있어야하는데 해당 방법은 지난편에서 자세하게 포스팅하였으니 API 키값이 없을 경우 아래 링크를 통해 생성해보도록 하자
아래는 유튜브 Data API 를 가져오는 PHP 함수로 그대로 사용하되 $apiKey 변수값만 실제 발급받은 키값으로 변경하여 사용하면된다.
/*유튜브 가져오기 함수 - CURL 이용*/
function getYoutubeData($youtubeID = ''){
if( empty($youtubeID)){ return array('rst'=>'fail'); }
/*요청 가공*/
$apiUri = 'https://www.googleapis.com/youtube/v3/videos'; // <고정>
$apiKey = 'API 키값'; // 생성된 유튜브 DATA API 키값 <수정필요>
$param = array(
'id'=>$youtubeID,
'key'=>$apiKey,
'part'=>'snippet,statistics', // 반환 리소스 , <필요에따라 수정필요>
);
$reqUrl = $apiUri."?".http_build_query($param);
/*CURL 통신*/
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $reqUrl);
curl_setopt($ch, CURLOPT_REFERER, 'http'.(!empty($_SERVER['HTTPS']) ? 's':null).'://'.$_SERVER['HTTP_HOST']); // 리퍼러를 등록해준다.
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 0);
$data = curl_exec($ch);
if (curl_error($ch)){
$response = array('rst'=>'fail','msg'=>'CURL 통신에러 ('.curl_errno( $ch ).') '.curl_error($ch));
}
else{
$response = array('rst'=>'success','data'=>json_decode($data,true));
}
return $response;
}
<?php
/*샘플데이터*/
$getYoutubeData = getYoutubeData('y1EiIqynWBk'); // URL: https://www.youtube.com/watch?v=y1EiIqynWBk
echo '<pre>';
print_r($getYoutubeData);
echo '</pre>';
| 결과화면
(
[rst] => success
[data] => Array
(
[kind] => youtube#videoListResponse
[etag] => 62GgU2ydYRn18jqvWrdcbe_268o
[items] => Array
(
[0] => Array
(
[kind] => youtube#video
[etag] => zGZvZKBrlOOO3ahoWCAs_zIuZA4
[id] => y1EiIqynWBk
[snippet] => Array
(
[publishedAt] => 2019-09-12T05:00:05Z
[channelId] => UCRMA_Nb5VF-YoWApSVeXPVA
[title] => 진짜 눈빛부터 美쳤엌ㅋㅋㅋㅋ 대본 없는 이 구역의 도른자 황사또는 막을 수 없음 | #코미디빅리그 170730 #08
[description] => #티비냥 #코미디빅리그 #리얼극장선택
구작이 명작인 tvN 맛집의 콘텐츠를 마음껏 볼 수 있는 tvN D CLASSIC : https://bit.ly/2PoHd0B
tvN [코미디빅리그] : 대한민국 웃음의 대세 '코미디빅리그'. 대세 '코미디언'들의 웃음 사냥을 위한 치열한 코너 경쟁은 계속된다!
공식 홈페이지 : http://program.tving.com/tvn/cobig
[thumbnails] => Array
(
[default] => Array
(
[url] => https://i.ytimg.com/vi/y1EiIqynWBk/default.jpg
[width] => 120
[height] => 90
)
[medium] => Array
(
[url] => https://i.ytimg.com/vi/y1EiIqynWBk/mqdefault.jpg
[width] => 320
[height] => 180
)
[high] => Array
(
[url] => https://i.ytimg.com/vi/y1EiIqynWBk/hqdefault.jpg
[width] => 480
[height] => 360
)
[standard] => Array
(
[url] => https://i.ytimg.com/vi/y1EiIqynWBk/sddefault.jpg
[width] => 640
[height] => 480
)
[maxres] => Array
(
[url] => https://i.ytimg.com/vi/y1EiIqynWBk/maxresdefault.jpg
[width] => 1280
[height] => 720
)
)
[channelTitle] => 디글 클래식 :Diggle Classic
[tags] => Array
(
[0] => tvN
[1] => 이진호
[2] => 코미디빅리그
[3] => 양세형
[4] => 이국주
[5] => 코미디빅리그 다시보기
[6] => 개그
[7] => 플레이어
[8] => comedy show
[9] => 개그콘서트
[10] => 박나래
[11] => 이용진
[12] => 몰티
[13] => 코미디빅리그 레전드
[14] => ㅋㅋㅋㅋㅋ
[15] => tvN D
[16] => 양세찬
[17] => 코미디
[18] => 웃긴예능모음
[19] => 장도연
[20] => 최성민
[21] => comedy big league
[22] => 코빅다시보기
[23] => 웃음
[24] => 보고또보고
[25] => gag
[26] => 문세윤
[27] => 예능웃긴모음
[28] => 코빅
[29] => 황제성
[30] => tvN D ENT
[31] => 리얼극장선택 방자전
[32] => 코빅레전드
[33] => 오인택
)
[categoryId] => 24
[liveBroadcastContent] => none
[localized] => Array
(
[title] => 진짜 눈빛부터 美쳤엌ㅋㅋㅋㅋ 대본 없는 이 구역의 도른자 황사또는 막을 수 없음 | #코미디빅리그 170730 #08
[description] => #티비냥 #코미디빅리그 #리얼극장선택
구작이 명작인 tvN 맛집의 콘텐츠를 마음껏 볼 수 있는 tvN D CLASSIC : https://bit.ly/2PoHd0B
tvN [코미디빅리그] : 대한민국 웃음의 대세 '코미디빅리그'. 대세 '코미디언'들의 웃음 사냥을 위한 치열한 코너 경쟁은 계속된다!
공식 홈페이지 : http://program.tving.com/tvn/cobig
)
[defaultAudioLanguage] => ko
)
[statistics] => Array
(
[viewCount] => 7463271
[likeCount] => 40096
[favoriteCount] => 0
[commentCount] => 1339
)
)
)
[pageInfo] => Array
(
[totalResults] => 1
[resultsPerPage] => 1
)
)
)
위와 같이 샘플소스를 통해 데이터를 가져올 수 있다. 위의 데이터를 활용하여 유튜브 포스팅 시 유용하게 이용 가능하다.