본문 바로가기

Back-end/Server

[ YoutubeAPI ] YouTube Data API v3: /search list 메서드 사용 하기

 

 

https://blog.naver.com/nagiiii/223291184237 (이미지 출처)

 

 

 

 

API 홈

https://developers.google.com/youtube?hl=ko

 

YouTube  |  Google for Developers

사이트 및 앱에 YouTube 기능을 추가하세요.

developers.google.com

 

 

 

 

🎈Youtube Data API v3: /search list 메서드 사용하기

 

 

API KEY 발급

https://euntry.tistory.com/51

 

[ YoutubeAPI ] API KEY 발급하기

🎈 Youtube Data API KEY 발급 https://console.cloud.google.com/apis Google 클라우드 플랫폼로그인 Google 클라우드 플랫폼으로 이동accounts.google.com  google console apis 메뉴 접속 후 좌측 라이브러리 선택   youtub

euntry.tistory.com

 

 

Youtube API를 사용할려면 Google Cloud Console에서 API 키를 발급받아야 한다 

 

 

쿼터 제한

기본적으로 하루 10,000 쿼터가 제공 
- /search 요청당 100쿼터 적용

 

 

API Base Url

https://www.googleapis.com/youtube/v3

 

 

 

 

🔎 /search 엔드포인트

Youtube 콘텐츠를 검색하는데 사용

 

 

HTTP 요청

GET https://www.googleapis.com/youtube/v3/search

 

 

 

파라미터

 필수 파라미터
 part  반환할 데이터 종류를 지정 (search는 snippet만 가능)
 key  API Key
 필터 (다음 매개변수를 0 또는 1로 지정, 미지정시 0으로 간주, 1 선택시 OAuth 인증 필요)
 forContentOwner  콘텐츠 소유자(콘텐츠 매니저 계정)에 속한 리소스만 검색
 forDeveloper  요청을 보내는 프로젝트와 연결된 채널의 게시된 콘텐츠만 검색
 forMine  현재 인증된 사용자 계정이 업로드한 콘텐츠만 검색
 선택 파라미터
 q  검색 키워드
 type  검색 결과 유형 지정 (video, channel, playlist)
 maxResults  반환할 결과의 최대 개수, 기본값 5, 최대값 50
 order  정렬 기준 (date:최신순, rating:높은평가순, viewCount:조회수)
 publishedAfter  특정 날짜 이후 업로드된 콘텐츠만 검색. ISO 8601 형식 (YYYY-MM-DD DDThh:mm:ssZ)
 publishedBefore  특정 날짜 이전 업로드된 콘텐츠만 검색
 reginCode  특정 국가에 관련성 높은 콘텐츠를 검색, ISO 3166-1 alpha-2 형식의 국가코드 (한국 : KR)
 videoCategoryId 특정 카테고리에 속하는 동영상만 필터링할 때 사용, (영화및애니메이션: 1, 음악: 10, 게임: 20 ...)

 

 

 

 

예시: 프로그래밍 관련 동영상 검색

GET https://www.googleapis.com/youtube/v3/search
  ?part=snippet
  &q=programming tutorials
  &type=video
  &maxResults=5
  &key=YOUR_API_KEY

 

 

 

예시: 한국에서 인기 있는 채널 검색

GET https://www.googleapis.com/youtube/v3/search
  ?part=snippet
  &type=channel
  &regionCode=KR
  &key=YOUR_API_KEY

 

 

 

예시: reponse Data

{
  "kind": "youtube#searchListResponse",
  "etag": "etag_value",
  "nextPageToken": "CAUQAA",  // 다음 페이지 토큰
  "regionCode": "US",         // 요청한 지역 코드
  "pageInfo": {
    "totalResults": 1000000,  // 검색 결과 총 개수
    "resultsPerPage": 5       // 요청당 반환된 동영상 수
  },
  "items": [
    {
      "kind": "youtube#searchResult",
      "etag": "etag_value",
      "id": {
        "kind": "youtube#video",
        "videoId": "abcd1234"  // 동영상 ID
      },
      "snippet": {
        "publishedAt": "2024-12-01T00:00:00Z",  // 업로드 날짜
        "channelId": "channel1234",            // 채널 ID
        "title": "Learn Programming in 10 Minutes",  // 동영상 제목
        "description": "A quick tutorial on programming basics.",  // 동영상 설명
        "thumbnails": {  // 썸네일 이미지
          "default": {
            "url": "https://i.ytimg.com/vi/abcd1234/default.jpg",
            "width": 120,
            "height": 90
          },
          "medium": {
            "url": "https://i.ytimg.com/vi/abcd1234/mqdefault.jpg",
            "width": 320,
            "height": 180
          },
          "high": {
            "url": "https://i.ytimg.com/vi/abcd1234/hqdefault.jpg",
            "width": 480,
            "height": 360
          }
        },
        "channelTitle": "Code Academy",  // 채널 이름
        "liveBroadcastContent": "none", // 라이브 방송 여부
        "publishTime": "2024-11-01T00:00:00Z"  // 동영상 게시 시간
      }
    }
  ]
}