샘플 API 요청

이 페이지에서는 YouTube Data API에 대한 샘플 요청을 보여줍니다. YouTube Data API를 사용하여 동영상, 채널, 재생목록과 같은 YouTube 리소스를 검색하고 조작할 수 있습니다. 각 샘플은 Google API 탐색기에 연결되어 채워지므로 샘플을 실행하고 응답을 확인할 수 있습니다.

YouTube Data API를 사용한 콘텐츠 업로드에 대한 자세한 내용은 재개 가능한 업로드를 참조하세요.

개요

명확하게 표시하기 위해 이 페이지의 샘플에서는 각 요청의 고유한 요소를 표시하고 Data API 요청을 처리하는 호스트의 기본 URL (https://www.googleapis.com/youtube/v3)을 축약하여 표시합니다. 샘플 컨텍스트 외부에서 요청하려면 전체 URL을 포함해야 합니다.

예를 들어 이 페이지에 표시된 샘플 요청은 다음과 같습니다.

GET {base-URL}/channels?part=contentDetails
                       &mine=true

이 요청의 전체 URL은 다음과 같습니다.

GET https://www.googleapis.com/youtube/v3/channels?part=contentDetails
                                                  &mine=true

일부 요청은 구독자 목록 등 YouTube 채널 소유자만 액세스할 수 있는 데이터를 검색합니다. 이 요청을 사용하려면 채널 소유자가 Google API 탐색기에 자신을 대신하여 YouTube Data API 요청을 수행할 수 있는 권한을 부여해야 합니다. 비공개 채널 데이터에 대한 액세스 승인에 대한 자세한 내용은 OAuth 2.0 인증 구현을 참조하세요. API Explorer에 연결한 후 OAuth 2.0을 사용하여 요청 승인 버튼을 클릭합니다. 이 단계에서는 API 탐색기가 소유자를 대신하여 요청할 수 있도록 승인합니다. API 탐색기가 수행할 수 있는 요청의 유형을 지정하는 승인 범위도 선택합니다.

각 요청에 대한 응답은 YouTube 리소스의 JSON 표현입니다. 요청의 part 매개변수는 리소스의 어느 부분을 응답에 포함할지 지정합니다. 이 매개변수는 응답에 포함되어야 하는 하나 이상의 최상위 수준 (비중첩) 리소스 속성을 식별합니다. 예를 들어 동영상 리소스의 일부는 다음과 같습니다.

  • 스니펫
  • contentDetails
  • 플레이어
  • 통계
  • 상태

이러한 부분은 모두 중첩된 속성을 포함하는 객체이며, 이러한 객체는 API 서버가 검색하거나 검색하지 않을 수 있는 메타데이터 필드의 그룹으로 생각할 수 있습니다. 따라서 part 매개변수를 사용하면 애플리케이션에서 실제로 사용하는 리소스 구성요소를 선택해야 합니다.자세한 내용은 YouTube Data API 시작하기를 참조하세요.

채널 정보 가져오기

이 요청은 channels.list 메서드를 사용하여 인증된 사용자에게 속한 채널에 관한 세부정보를 검색합니다.

GET {base_URL}/channels?part=contentDetails
                       &mine=true

이 요청에 대한 응답에는 채널 ID와 인증된 사용자 채널의 contentDetails가 포함됩니다. contentDetails에는 채널과 관련하여 시스템에서 생성된 여러 재생목록이 포함됩니다. 후속 요청에서는 대부분 채널 ID 또는 재생목록 ID 중 하나가 필요하므로 이를 녹화하는 것이 중요합니다.

{
  "id": {CHANNEL_ID},
  "kind": "youtube#channel",
  "etag": etag,
  "contentDetails": {
    "relatedPlaylists": {
      "likes": {LIKES_PLAYLIST_ID},
      "favorites": {FAVORITES_PLAYLIST_ID},
      "uploads": {UPLOADS_PLAYLIST_ID},
      "watchHistory": {WATCHHISTORY_PLAYLIST_ID},
      "watchLater": {WATCHLATER_PLAYLIST_ID}
    },
    "googlePlusUserId": string
  },
}

업로드된 동영상 및 시스템 생성 재생목록

YouTube는 업로드된 모든 동영상을 채널과 연결된 재생목록에 추가합니다. 업로드된 동영상 목록을 가져오려면 채널 정보에 대해 위에 표시된 응답에서 반환한 재생목록으로, playlistItems.list 메서드를 사용하여 해당 재생목록의 동영상을 검색합니다.

Google API 탐색기에서 다음 샘플 요청을 실행하기 전에 {UPLOADS_PLAYLIST_ID}를 이전 요청의 재생목록 ID로 바꿉니다.

GET {base_URL}/playlistItems?part=contentDetails
                            &playlistId={UPLOADS_PLAYLIST_ID}

반환된 각 항목의 "id" 값은 playlistItem ID입니다. 재생목록 항목의 동영상 ID는 contentDetails 부분의 videoId입니다.

채널 정보 응답에서 해당하는 재생목록 ID를 대체하여 위 요청을 사용하여 사용자의 즐겨찾기, 좋아요, 시청 기록 또는 나중에 볼 동영상 목록을 검색할 수 있습니다.

사용자 제작 재생목록

이 요청은 playlists.list 메서드를 사용하여 인증된 채널과 연결된 재생목록을 검색합니다. 이 요청은 채널 정보 (업로드, watchHistory 등)에 포함된 시스템 생성 재생목록을 검색하지 않습니다. 사용자가 만든 재생목록만 검색합니다.

GET {base_URL}/playlists?part=snippet
                        &mine=true

재생목록 ID가 있으면 이전 섹션에 표시된 요청을 사용하여 재생목록에서 항목을 가져올 수 있습니다.

인증 없이 채널의 공개 재생목록에 관한 정보를 요청할 수 있습니다. 인증되지 않은 요청을 제출할 때는 요청하는 애플리케이션의 고유 API 키를 지정하는 key 인수를 포함해야 합니다. 예를 들어 이 요청은 GoogleDevelopers 채널과 연결된 재생목록을 검색합니다.

GET {base_URL}/playlists?part=snippet
                        &channelId=UC_x5XG1OV2P6uZZ5FSM9Ttw
                        &key={YOUR_API_KEY}

구독 검색

subscription 리소스는 YouTube 사용자 (구독자)와 채널 간의 관계를 정의합니다. subscriptions.list 메서드는 요청에 포함된 매개변수에 따라 특정 채널의 구독자 또는 특정 사용자의 구독 정보를 검색합니다.

채널 구독자

이 요청은 인증된 채널의 구독자 목록을 검색합니다.

GET {base_URL}/subscriptions?part=snippet
                            &mySubscribers=true

사용자 구독

구독자를 나열하는 메서드 (subscriptions.list)를 사용하여 사용자가 구독하는 채널을 나열할 수 있습니다. 이 요청은 mine 매개변수를 사용하여 인증된 사용자가 구독하는 YouTube 채널 목록을 검색합니다.

GET {base_URL}/subscriptions?part=snippet
                            &mine=true

사용자 활동 검색

activity 리소스에는 동영상 업로드, 채널 구독 등 특정 채널이나 사용자가 YouTube에서 수행한 작업에 대한 정보가 포함됩니다. activities.list 메서드는 요청 기준과 일치하는 채널 또는 사용자와 연결된 작업을 검색합니다. 예를 들어 특정 채널, 사용자의 구독정보 또는 사용자의 맞춤 YouTube 홈페이지와 관련된 작업을 검색할 수 있습니다.

특정 기간 동안의 활동

이 요청은 인증된 사용자가 2013년 4월에 수행한 모든 작업을 검색합니다.

GET {base_URL}/activities?part=snippet,contentDetails
                         &mine=true
                         &publishedAfter=2013-04-01T00%3A00%3A00Z
                         &publishedBefore=2013-05-01T00%3A00%3A00Z

홈페이지 활동

이 요청은 인증된 사용자의 YouTube 홈페이지에 표시되는 맞춤 활동 피드를 검색합니다. 

GET {base_URL}/activities?part=snippet,contentDetails
                         &home=true

YouTube 동영상 및 채널의 조회 통계, 인기도 측정항목, 인구통계 정보를 검색하려면 YouTube Analytics API를 사용합니다. 샘플 API 요청 페이지에서는 YouTube 분석에서 일반적인 보고서를 검색하는 방법을 보여줍니다.

search.list 메서드를 사용하면 지정된 기준에 맞는 YouTube 동영상, 채널 또는 재생목록을 검색할 수 있습니다. 동영상 속성, 키워드 또는 주제 (또는 이들의 조합)를 기준으로 검색할 수 있으며 생성일, 조회수, 평점과 같은 요소를 기준으로 결과를 정렬할 수 있습니다.

다른 YouTube Data API 요청과 마찬가지로 search.list 메서드는 YouTube 리소스의 JSON 표현을 반환합니다. 하지만 다른 YouTube 리소스와 달리 검색 결과는 고유 ID를 가진 영구 객체가 아닙니다.

대부분의 요청은 공개적으로 사용 가능한 콘텐츠를 검색하므로 인증이 필요하지 않습니다. 아래 샘플 중에서 첫 번째 샘플만 인증이 필요합니다. 구체적으로 "my"를 요청하기 때문입니다. 동영상 인증되지 않은 요청을 제출하는 경우 애플리케이션의 고유 API 키를 지정하는 key 인수를 포함해야 합니다.

가장 많이 본 동영상

이 요청은 인증된 사용자의 동영상을 모두 검색하여 조회수를 기준으로 내림차순으로 나열합니다.

GET {base_URL}/search?part=snippet
                     &forMine=true
                     &order=viewCount
                     &type=video

퍼갈 수 있는 고화질 동영상

이 요청은 특정 속성이 있는 동영상, 즉 다른 사이트에 삽입할 수 있는 고화질 동영상을 검색합니다. 결과는 평점의 내림차순으로 나열됩니다.

GET {base_URL}/search?part=snippet
                     &order=rating
                     &type=video
                     &videoDefinition=high
                     &videoEmbeddable=true
                     &key={YOUR_API_KEY}

특정 주제에 대한 동영상

이 요청은 자막이 포함된 YouTube Data API에 대한 동영상에 대해 키워드 검색을 수행합니다.

GET {base_URL}/search?part=snippet
                     &q=YouTube+Data+API
                     &type=video
                     &videoCaption=closedCaption
                     &key={YOUR_API_KEY}

주제 기반 검색

특정 주제에 대한 동영상을 보다 정교하게 검색하는 방법은 키워드 대신 Freebase 주제를 사용하는 것입니다. YouTube 채널 및 동영상 리소스에는 모두 리소스와 연결된 Freebase 주제 ID 목록이 포함된 topicDetails 객체가 포함되어 있습니다. Freebase 주제가 실제 개념 또는 사물의 모든 측면을 나타내므로 주제 기반 검색은 키워드 검색보다 지능적입니다.

Freebase 주제를 사용하여 검색하려면 먼저 Freebase API를 사용하여 주제 ID를 검색해야 합니다. 이 요청은 주제 ID가 /m/05z1_인 Python용 Freebase 주제와 연결된 동영상을 반환합니다.

GET {base_URL}/search?part=snippet
                     &topicId=/m/05z1_
                     &type=video
                     &key={YOUR_API_KEY}

재생목록 또는 채널 검색

검색은 동영상뿐만 아니라 재생목록이나 채널을 검색할 수도 있습니다. 이 요청은 키워드 'soccer'와 일치하는 재생목록을 검색합니다.

GET {base_URL}/search?part=snippet
                     &q=soccer
                     &type=playlist
                     &key={YOUR_API_KEY}

축구 채널을 찾으려면 type 매개변수를 변경하기만 하면 됩니다.

GET {base_URL}/search?part=snippet
                     &q=soccer
                     &type=channel
                     &key={YOUR_API_KEY}

모든 축구 관련 콘텐츠 (채널, 재생목록, 동영상)를 검색하려면 전체 검색을 수행합니다. type 매개변수를 생략하면 요청은 모든 유형의 콘텐츠를 검색합니다.

GET {base_URL}/search?part=snippet
                     &q=soccer
                     &key={YOUR_API_KEY}

리소스 만들기 및 업데이트

지금까지 살펴본 요청은 모두 HTTP GET 메서드를 사용하여 YouTube 데이터를 검색합니다. YouTube Data API는 HTTP POST를 사용하여 동영상, 재생목록 또는 채널 등의 YouTube 리소스를 만들거나 업데이트하는 메서드도 제공합니다. 다음 요청에서 예시를 제공합니다.

POST 메서드에는 생성 또는 업데이트 중인 리소스의 JSON 표현인 Request body가 포함됩니다. Google API 탐색기에서 대화형 도구를 사용하여 JSON 표현을 만들 수 있습니다.

구독 만들기

이 요청은 인증된 사용자를 GoogleDevelopers 채널을 구독합니다. 즉, 구독 리소스를 만듭니다.

POST {base_URL}/subscriptions?part=snippet
Request body: {   'snippet': {     'resourceId': {       'kind': 'youtube#channel',       'channelId': 'UC_x5XG1OV2P6uZZ5FSM9Ttw'     }   } }

재생목록 만들기

이 요청은 새 공개 재생목록을 만듭니다.

POST {base_URL}/playlists?part=snippet
Request body: {   'snippet': {     'title': 'New playlist',     'description': 'Sample playlist for Data API',   } }

재생목록에 동영상 추가하기

재생목록을 만들었으므로 이제 동영상을 추가해 보겠습니다. 이 요청은 재생목록 시작 부분에 동영상을 추가합니다 ('position': 0).

POST {base_URL}/playlistItems?part=snippet
  Request body:
  {
    'snippet': {
      'playlistId': '{PLAYLIST_ID}', 
      'resourceId': {
          'kind': 'youtube#video',
          'videoId': '{VIDEO_ID}'
        }
     'position': 0
      }
   }