유튜브 채널을 운영 중인데 사이트에서도 동일하게 영상과 조회수 등을 노출시켜달라는 요청이 있었다.
그래서 Youtube Data api(v3)를 활용했다.
위 링크에서 API를 사용하겠다고 하면 사용자 인증 정보를 만들어야 하는데 API KEY로 발급을 받으면 된다.
간단하게 아래와 같이 예시코드를 만들었다.
function youtube_data($type="",$param = array()) {
$url = "https://www.googleapis.com/youtube/v3/".$type;
$url .= '?'.http_build_query($param, '', '&');
$ch = curl_init();
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_VERBOSE, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$response = curl_exec($ch);
curl_close($ch);
$data = json_decode($response);
$values = json_decode(json_encode($data), true);
return $values['items'];
}
$api_key = 'Your api key';
$channel_id = 'Your channel id';
$data = array(
'part' => 'snippet',
'channelId' => $channel_id,
'maxResults' => '20',
'order' => 'date',
'type' => 'video',
'key' => $api_key
);
$return_data = youtube_data("search",$data);
foreach($return_data as $key => $values) {
$data = array(
'part' => 'snippet',
'id' => $values['id']['videoId'],
'key' => $api_key
);
$return_data1 = youtube_data("videos",$data);
$data = array(
'part' => 'statistics',
'id' => $values['id']['videoId'],
'key' => $api_key
);
$return_data2 = youtube_data("videos",$data);
/*
고유아이디: $values['id']['videoId']
제목: $return_data1[0]['snippet']['title']
생성일: $return_data1[0]['snippet']['publishedAt']
썸네일: $return_data1[0]['snippet']['thumbnails']['medium']['url']
조회수: $return_data2[0]['statistics']['viewCount']
*/
}
데이터에 대한 자세한 내용은 여기를 참조하면 될 것 같다.