유튜브 Data API 를 이용하면 유튜브의 등록된 공개 비디오 데이터에 접근하여 상세 정보를 가져올 수 있다. 이번편에서는 API를 통해 실제 Data 를 추출하는 예제를 살펴보도록 하자. 

 

참고로 유튜브 Data API 를 사용하기 위해서는 구글 클라우드 서비스를 활성화 하여 API 키값이 있어야하는데 해당 방법은 지난편에서 자세하게 포스팅하였으니 API 키값이 없을 경우 아래 링크를 통해 생성해보도록 하자 

 

유튜브 DATA API 계정 생성 방법 
 
유튜브API | 유튜브 DATA API 시작하기 - R BLOG
유튜브 DATA API는 유튜브의 등록된 동영상의 정보를 가져올 수 있는 유일한 API로 오래전에는 API 키값없이 자유롭게 가져올 수 있었으나 API가 제한없이 사용되다 보니 지금에 와서는 권한이 있는 사용자에게만 제공이 되었다. 또한 공식 API 문서가 생기면서 API 데이터 형태도 많이 변경되었는데 이는 유튜브에서 제공되는 문서에 잘 명시되어있으니 함··· - R BLOG
blog.redinfo.co.kr/post/view?pid=154

 

유튜브 DATA API 공식문서 
 
시작하기  |  YouTube Data API  |  Google Developers
시작하기  |  YouTube Data API  |  Google Developers
developers.google.com/youtube/v3/getting-started?hl=ko

 

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
                )

        )

)

 

위와 같이 샘플소스를 통해 데이터를 가져올 수 있다. 위의 데이터를 활용하여 유튜브 포스팅 시 유용하게 이용 가능하다.