PHP 에서 유튜브 api 연동하여 구독자수, 좋아요, 댓글 수 등등 을 가져오는 작업 포스팅하겠습니다.
유튜브 API KEY 가 꼭 있어야함으로 이미 발급 되있다는 가정하에 진행하구요.
구글링 좀만해보면 api key 받는거는 쉬우니까 금방하실거에요 ~
유튜브에서 제공되는 API 로 채널 ID 를 넣으면 구독수를 가져올수 있고, 영상의 수 등을 가져올수 있는데
정확히 뭘 가져올수있는지는 아래 유튜브 API 링크 첨부하오니 메뉴얼 한번 참조하시길 바랍니다.
https://developers.google.com/youtube/v3/docs/channels?hl=ko
유튜브 주소를 자주 보신분이라면 어느것이 영상 ID 인지쯤은 누구나 알아챌수 있으실겁니다.
v= 이후에 오는 "IPXIgEAGe4U" 이게 바로 해당 유튜브 영상의 고유코드값이구요.
쉽게말해 게시판에 해당 게시물의 고유 번호가 있듯이 그런거라고 보시면됩니다.
여기서 잠깐 영상의 ID 값과 채널 ID 를 헷갈리시면 안됍니다.
채널은 해당 작성자가 업로드한 영상이 모여져있는 공간 이라고 보시면됩니다.
영상 url ex) https://www.youtube.com/watch?v=IPXIgEAGe4U
채널 url ex) https://www.youtube.com/channel/UColJTBTSGqaaZr5NOk5r3Pg
위 링크에서 영상의 ID 값은 IPXIgEAGe4U 가 되겠습니다.
이 해당 영상을 기준으로 한번 긁어와 보겠습니다
https://www.googleapis.com/youtube/v3/videos?id=IPXIgEAGe4U&key=발급받은API키&part=snippet
id="" 에는 당연히 해당 영상의 고유 ID 가 들어가야하고
key ="" 에는 본인이 발급받은 유튜브 Api Key 가 들어가야합니다.
유튜브 API 제공하는곳을 참고하여 파라미터를 조정후에 웹페이지로 접속을 하시면
아래 스샷처럼 JSON 으로 값을 내보내 주는걸 볼수있습니다.
해당 영상의 썸네일, 제목 등 긁어올수 있습니다.
하지만 제가 필요한건 제목도 아니고, 썸네일도 아닙니다.
이 링크만으로 이용해서 구독자수를 긁어와야하는게 이슈였는데요.
구독자수를 긁어오려면 바로 긁어올순없고 우선 채널 ID 를 이용해서 긁어와야합니다.
여튼 우선 PHP 로 유투브 링크에서 채널 ID 받아오는 소스 아래참고 부탁드립니다.
$youtube_api_key = "유튜브에서 발급받은 API KEY 가 필요합니다.";
$url = "유튜브 영상 링크"; //https://www.youtube.com/watch?v=IPXIgEAGe4U
parse_str( parse_url( $url, PHP_URL_QUERY ), $u_id ); // v= 이후로 영상ID 짤라오기
$snippet_url = "https://www.googleapis.com/youtube/v3/videos?id=".$u_id['v']."&fields=items&key=".$youtube_api_key."&part=snippet"; //채널 ID 알아낼수있음 -> 구독자수
$snippet_json = file_get_contents($snippet_url); //file_get_contents 웹 JSON 읽어오기
foreach ( $snippet_ob->items as $data ){
$channelId = $data->snippet->channelId; // 채널 ID
}
//결과값 : UColJTBTSGqaaZr5NOk5r3Pg
foreach 문 안에 있는건 응용하셔서 채널 ID 이외에 타이틀이라던가 썸네일 주소라던가 다 받아올수있습니다.
'IT > PHP' 카테고리의 다른 글
[PHP] 변수 합치기 #php변수 #php변수합치기 (0) | 2020.08.26 |
---|---|
[PHP] 유튜브 API 연동 채널 영상 개수, 구독자수,좋아요수 가져오기 (2) (0) | 2020.08.26 |
[PHP] 데스크탑 모바일 접속기기 구분방법 (0) | 2020.08.26 |
[PHP] 엑셀 다운로드 파일 한글 깨짐 현상 (0) | 2020.08.26 |
[PHP] 구글 파이 차트 사용 및 mysql DB 연동, mysql 배열 출력 (0) | 2020.08.26 |