API 목록으로
📹 미디어·소셜무료

YouTube Data API

Google · YouTube Data API v3

인증 방식

🔑 API Key

요금

일 10,000 유닛 무료, 이후 $0.2~

Base URL

www.googleapis.com/youtube/v3

태그

YouTube, 영상

서비스 소개

YouTube Data API v3는 채널 정보, 동영상 목록, 검색, 댓글, 구독자 수 등 YouTube의 데이터를 조회하는 API입니다. 하루 10,000 유닛 무료 할당량으로 중소규모 서비스는 무료로 사용할 수 있습니다. 마케팅 분석, 콘텐츠 크리에이터 도구, 채널 모니터링 등에 활용됩니다.

🚀 시작하기

  1. 1

    Google Cloud Console 프로젝트 생성

    console.cloud.google.com → 새 프로젝트 생성

  2. 2

    YouTube Data API v3 활성화

    API 및 서비스 → 라이브러리 → "YouTube Data API v3" 검색 → 사용

  3. 3

    API 키 발급

    사용자 인증 정보 → API 키 만들기 → YouTube Data API로 제한 설정

📋 응답 예시

{
  "items": [{
    "id": { "videoId": "dQw4w9WgXcQ" },
    "snippet": {
      "title": "영상 제목",
      "channelTitle": "채널명",
      "publishedAt": "2024-01-01T00:00:00Z",
      "description": "설명..."
    }
  }],
  "pageInfo": { "totalResults": 1000000 }
}

💡 코드 예제

JavaScriptJavaScript (채널·영상 조회)
const YT_KEY = process.env.YOUTUBE_API_KEY

// 키워드 검색
async function searchVideos(query: string, maxResults = 10) {
  const url = new URL('https://www.googleapis.com/youtube/v3/search')
  url.searchParams.set('key', YT_KEY!)
  url.searchParams.set('q', query)
  url.searchParams.set('type', 'video')
  url.searchParams.set('maxResults', String(maxResults))
  url.searchParams.set('part', 'snippet')
  url.searchParams.set('relevanceLanguage', 'ko')
  url.searchParams.set('regionCode', 'KR')

  const res = await fetch(url.toString())
  return (await res.json()).items
}

// 채널 정보 조회
async function getChannel(channelId: string) {
  const res = await fetch(
    `https://www.googleapis.com/youtube/v3/channels?key=${YT_KEY}&id=${channelId}&part=snippet,statistics`
  )
  const data = await res.json()
  const ch = data.items[0]
  return {
    title: ch.snippet.title,
    subscribers: ch.statistics.subscriberCount,
    views: ch.statistics.viewCount,
    videos: ch.statistics.videoCount,
  }
}
PythonPython
from googleapiclient.discovery import build

youtube = build('youtube', 'v3', developerKey='YOUR_API_KEY')

# 채널 영상 목록
request = youtube.search().list(
    part='snippet',
    channelId='CHANNEL_ID',
    maxResults=10,
    order='date',
    type='video',
)
response = request.execute()
for item in response['items']:
    print(item['snippet']['title'])