Web Analytics
본문 바로가기
자기계발 공부

Youtube API 사용하기

by 자기계발도우미 2023. 3. 31.
 

시작하기  |  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&regionCode=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

댓글