유튜브 Data API 를 이용하면 유튜브의 등록된 공개 비디오 데이터에 접근하여 상세 정보를 가져올 수 있다. 이번편에서는 API를 통해 실제 Data 를 추출하는 예제를 살펴보도록 하자.
참고로 유튜브 Data API 를 사용하기 위해서는 구글 클라우드 서비스를 활성화 하여 API 키값이 있어야하는데 해당 방법은 지난편에서 자세하게 포스팅하였으니 API 키값이 없을 경우 아래 링크를 통해 생성해보도록 하자
유튜브 DATA API 계정 생성 방법
유튜브 DATA API 공식문서
YOUTUBE 데이터 추출 함수
아래는 유튜브 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
)
)
)
위와 같이 샘플소스를 통해 데이터를 가져올 수 있다. 위의 데이터를 활용하여 유튜브 포스팅 시 유용하게 이용 가능하다.
Comment