시작하기 | YouTube Data API | Google Developers
시작하기 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 소개 이 문서는 YouTube와 상호작용할 수 있는 애플리케이션을 개발하려는 개발자를 위해 작성되었
developers.google.com
Youtube API를 사용하기 위해서는 Google 계정이 필요하고 애플리케이션을 등록해야합니다.
https://console.cloud.google.com/
Google 클라우드 플랫폼
로그인 Google 클라우드 플랫폼으로 이동
accounts.google.com
위 링크에 들어가면 다음과 같은 화면이 나옵니다.
왼쪽 위의 구글 클라우드 옆에 있는 버튼을 눌러서 프로젝트 선택 화면에서 새 프로젝트를 생성해줍니다.
그 이후에 생성한 프로젝트를 선택한 후 API 및 서비스에서 Youtube Data API를 찾아서 상태를 변경해줍니다.
사용버튼을 누른 후에는 오른쪽 위의 사용자 인증 정보 만들기를 누릅니다.
API 키를 받습니다.
이제 Youtube Data API Reference에 가서 여러 가지 API를 사용해볼 수 있습니다.
https://developers.google.com/youtube/v3/docs/videos/list?hl=ko
Videos: list | YouTube Data API | Google Developers
Videos: list 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. API 요청 매개변수와 일치하는 동영상의 목록을 반환합니다. 지금 사용해 보거나 예를 참조하세요.
developers.google.com
위 링크에서 보면 Video의 리스트를 가져오는 API에 대한 설명을 볼 수 있습니다.
GET https://www.googleapis.com/youtube/v3/videos
해당 주소로 GET 요청을 하면 응답을 받을 수 있다는 설명입니다.
{
"error": {
"code": 403,
"message": "The request is missing a valid API key.",
"errors": [
{
"message": "The request is missing a valid API key.",
"domain": "global",
"reason": "forbidden"
}
],
"status": "PERMISSION_DENIED"
}
}
하지만 해당 주소를 주소창에 입력해보면 위와 같은 에러가 발생합니다.
에러 내용을 보면 API Key가 없다는 이유로 발생한 에러입니다.
https://www.googleapis.com/youtube/v3/videos?key={자신의 API 키}
그래서 주소 뒤에 물음표와 함께 key=asdfasdf 와 같은 방식으로 전달하면 응답 내용이 달라집니다.
{
"error": {
"code": 400,
"message": "No filter selected. Expected one of: id, myRating, chart",
"errors": [
{
"message": "No filter selected. Expected one of: id, myRating, chart",
"domain": "youtube.parameter",
"reason": "missingRequiredParameter",
"location": "parameters.",
"locationType": "other"
}
]
}
}
필터가 없다는 내용의 에러메세지 입니다.
이제 다시 문서를 보면 매개변수로 전달해야하는 값들에 대해 설명이 나와있습니다.
part라는 매개변수가 필수로 전달되어야 하고 필터에서는 chart, id, myRating 세 개 중 하나가 있어야 한다고 되어있습니다.
그래서 해당 내용을 반영하여 다음 요청을 전달합니다.
https://www.googleapis.com/youtube/v3/videos?part=snippet&chart=mostPopular&key={자신의 API 키}
{
"kind": "youtube#videoListResponse",
"etag": "llHOsGjro-Xelhc_avu0fFBFVKo",
"items": [
{
"kind": "youtube#video",
"etag": "V4L_QWlvhzirWsj0CK4RDJbZiH4",
"id": "LSIOcCcEVaE",
"snippet": {
"publishedAt": "2023-03-29T14:00:37Z",
"channelId": "UCsQBsZJltmLzlsJNG7HevBg",
"title": "SORRY NOT SORRY",
"description": "from CALL ME IF YOU GET LOST: The Estate Sale, out now: https://tylerthecreator.lnk.to/TheEstateSale\n\na collection of songs that didnt make the original album \n\ndirected by TYLER OKONMA\ndp: LUIS \"PANCH\" PEREZ\nproduction: TARA RAZAVI for Happy Place",
"thumbnails": {
"default": {
"url": "https://i.ytimg.com/vi/LSIOcCcEVaE/default.jpg",
"width": 120,
"height": 90
},
"medium": {
"url": "https://i.ytimg.com/vi/LSIOcCcEVaE/mqdefault.jpg",
"width": 320,
"height": 180
},
"high": {
"url": "https://i.ytimg.com/vi/LSIOcCcEVaE/hqdefault.jpg",
"width": 480,
"height": 360
},
"standard": {
"url": "https://i.ytimg.com/vi/LSIOcCcEVaE/sddefault.jpg",
"width": 640,
"height": 480
},
"maxres": {
"url": "https://i.ytimg.com/vi/LSIOcCcEVaE/maxresdefault.jpg",
"width": 1280,
"height": 720
}
},
"channelTitle": "Tyler, The Creator",
"tags": [
"call me if you get lost",
"cmiygl",
"lumberjack",
"dogtooth",
"tyler baudelaire"
],
"categoryId": "2",
"liveBroadcastContent": "none",
"localized": {
"title": "SORRY NOT SORRY",
"description": "from CALL ME IF YOU GET LOST: The Estate Sale, out now: https://tylerthecreator.lnk.to/TheEstateSale\n\na collection of songs that didnt make the original album \n\ndirected by TYLER OKONMA\ndp: LUIS \"PANCH\" PEREZ\nproduction: TARA RAZAVI for Happy Place"
},
"defaultAudioLanguage": "en-US"
}
},
...
위와 같이 결과값이 나옵니다.
설명을 더 확인해보면 콘텐츠 지역과 동영상 카테고리를 설정하면 자신이 원하는 지역의 동영상 카테고리를 가져올 수 있습니다.
원하는 콘텐츠 지역은 아래 링크에서 국가 코드를 검색해서 매개변수에 추가하면 됩니다.
https://www.iso.org/obp/ui/#search
https://www.iso.org/obp/ui/#search
www.iso.org
https://www.googleapis.com/youtube/v3/videos?part=snippet&chart=mostPopular®ionCode=KR&key={자신의 API 키}
{
"kind": "youtube#videoListResponse",
"etag": "rgoE4d0LU4gimFrEdQc7w6F9j1U",
"items": [
{
"kind": "youtube#video",
"etag": "XKnNYOiAdvpkGfFCKVKCEXCaFKI",
"id": "YudHcBIxlYw",
"snippet": {
"publishedAt": "2023-03-31T04:00:14Z",
"channelId": "UCOmHUn--16B90oW2L6FRR3A",
"title": "JISOO - ‘꽃(FLOWER)’ M/V",
"description": "JISOO - ‘꽃(FLOWER)’ \n\nABC 도레미만큼 착했던 나\n그 눈빛이 싹 변했지 어쩌면 이 또한 나니까\n \n난 파란 나비처럼 날아가\n잡지 못한 건 다 네 몫이니까\n활짝 꽃피웠던 시간도 이제 모두\n내겐 lie lie lie\n \n붉게 타버려진 너와 나\n난 괜찮아 넌 괜찮을까\n구름 한 점 없이 예쁜 날\n꽃향기만 남기고 갔단다\n꽃향기만 남기고 갔단다\n \nYou and me, 미칠 듯이 뜨거웠지만\n처참하게 짓밟혀진 내 하나뿐인 라일락\n \n난 하얀 꽃잎처럼 날아가\n잡지 않은 것은 너니까\n살랑살랑 부는 바람에 이끌려\n봄은 오지만 우린 bye bye bye\n \n붉게 타버려진 너와 나\n난 괜찮아 넌 괜찮을까\n구름 한 점 없이 예쁜 날\n꽃향기만 남기고 갔단다\n꽃향기만 남기고 갔단다\n \n이젠 안녕 goodbye\n뒤는 절대 안 봐\n미련이란 이름의 잎새 하나\n봄비에 너에게서 떨어져\n꽃향기만 남아\n \n꽃향기만 남기고 갔단다\n\nMore about BLACKPINK @\nhttp://www.blackpinkofficial.com/jisoo\nhttp://www.youtube.com/BLACKPINKOFFICIAL\nhttps://www.instagram.com/BLACKPINKOFFICIAL\nhttp://www.facebook.com/BLACKPINKOFFICIAL\nhttps://twitter.com/BLACKPINK\n\n#JISOO #지수 #BLACKPINK #블랙핑크 #FIRSTSINGLEALBUM #ME #TITLE #꽃 #FLOWER #MV #YG",
"thumbnails": {
"default": {
"url": "https://i.ytimg.com/vi/YudHcBIxlYw/default.jpg",
"width": 120,
"height": 90
},
"medium": {
"url": "https://i.ytimg.com/vi/YudHcBIxlYw/mqdefault.jpg",
"width": 320,
"height": 180
},
"high": {
"url": "https://i.ytimg.com/vi/YudHcBIxlYw/hqdefault.jpg",
"width": 480,
"height": 360
},
"standard": {
"url": "https://i.ytimg.com/vi/YudHcBIxlYw/sddefault.jpg",
"width": 640,
"height": 480
},
"maxres": {
"url": "https://i.ytimg.com/vi/YudHcBIxlYw/maxresdefault.jpg",
"width": 1280,
"height": 720
}
},
"channelTitle": "BLACKPINK",
"tags": [
"YG Entertainment",
"YG",
"와이지",
"K-pop",
"BLACKPINK",
"블랙핑크",
"블핑",
"제니",
"로제",
"리사",
"지수",
"LISA",
"JISOO",
"JENNIE",
"ROSÉ",
"BLINK",
"블링크",
"지수 꽃",
"JISOO FLOWER",
"FLOWER",
"All Eyes On Me",
"JISOO All Eyes On Me",
"지수 All Eyes On Me",
"JISOO ME",
"ME",
"지수 FLOWER",
"JISOO 꽃"
],
"categoryId": "10",
"liveBroadcastContent": "none",
"localized": {
"title": "JISOO - ‘꽃(FLOWER)’ M/V",
"description": "JISOO - ‘꽃(FLOWER)’ \n\nABC 도레미만큼 착했던 나\n그 눈빛이 싹 변했지 어쩌면 이 또한 나니까\n \n난 파란 나비처럼 날아가\n잡지 못한 건 다 네 몫이니까\n활짝 꽃피웠던 시간도 이제 모두\n내겐 lie lie lie\n \n붉게 타버려진 너와 나\n난 괜찮아 넌 괜찮을까\n구름 한 점 없이 예쁜 날\n꽃향기만 남기고 갔단다\n꽃향기만 남기고 갔단다\n \nYou and me, 미칠 듯이 뜨거웠지만\n처참하게 짓밟혀진 내 하나뿐인 라일락\n \n난 하얀 꽃잎처럼 날아가\n잡지 않은 것은 너니까\n살랑살랑 부는 바람에 이끌려\n봄은 오지만 우린 bye bye bye\n \n붉게 타버려진 너와 나\n난 괜찮아 넌 괜찮을까\n구름 한 점 없이 예쁜 날\n꽃향기만 남기고 갔단다\n꽃향기만 남기고 갔단다\n \n이젠 안녕 goodbye\n뒤는 절대 안 봐\n미련이란 이름의 잎새 하나\n봄비에 너에게서 떨어져\n꽃향기만 남아\n \n꽃향기만 남기고 갔단다\n\nMore about BLACKPINK @\nhttp://www.blackpinkofficial.com/jisoo\nhttp://www.youtube.com/BLACKPINKOFFICIAL\nhttps://www.instagram.com/BLACKPINKOFFICIAL\nhttp://www.facebook.com/BLACKPINKOFFICIAL\nhttps://twitter.com/BLACKPINK\n\n#JISOO #지수 #BLACKPINK #블랙핑크 #FIRSTSINGLEALBUM #ME #TITLE #꽃 #FLOWER #MV #YG"
},
"defaultAudioLanguage": "ko"
}
},
...
regionCode에 KR을 넣으니 지수의 꽃이 나오는 것을 볼 수 있습니다.
이런 식으로 다른 API들을 호출하면서 원하는 데이터 값을 추출할 수 있습니다.
주소창을 통해서 값을 받아보는게 아니라
별도의 프로그래밍 언어로 만들어진 클라이언트에서 API를 사용하려면 아래 링크를 참조하면 됩니다.
https://developers.google.com/youtube/v3/libraries?hl=ko
YouTube API: 클라이언트 라이브러리 | YouTube Data API | Google Developers
YouTube API: 클라이언트 라이브러리 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. Google API 클라이언트 라이브러리는 여러 프로그래밍 언어로 사용할 수 있으
developers.google.com
Youtube API를 이용한 영상 검색 서비스
http://selfdevhelper.info/keyword
'자기계발 공부' 카테고리의 다른 글
React Native 시작하기 (0) | 2023.06.24 |
---|---|
AWS EC2 + 가비아 Domain 연결하기 (0) | 2023.04.29 |
접속이 잘 되던 EC2 기반 웹서비스 접속이 안 될 경우 (0) | 2023.04.14 |
Svelte, Svelte Kit 학습자료 정리 (0) | 2023.04.07 |
Next.js 입문을 위한 javascript, react 공부 (0) | 2023.04.04 |
댓글