오래전에 처리 해둔거 기억이 안나서 다시 메모함


아래의 JSON 구조는 검색결과 형식을 보여줍니다.

{
 
"kind": "youtube#searchResult",
 
"etag": etag,
 
"id": {
   
"kind": string,
   
"videoId": string,
   
"channelId": string,
   
"playlistId": string
 
},
 
"snippet": {
   
"publishedAt": datetime,
   
"channelId": string,
   
"title": string,
   
"description": string,
   
"thumbnails": {
     
(key): {
       
"url": string,
       
"width": unsigned integer,
       
"height": unsigned integer
     
}
   
},
   
"channelTitle": string
 
}
}

속성

다음 표는 검색결과에 표시되는 속성을 정의합니다.

속성 이름
kindstring
API 리소스의 유형입니다. 값은 youtube#searchResult가 됩니다.
etagetag
이 리소스의 Etag입니다.
idobject
id 개체는 검색 요청에 일치하는 리소스를 고유하게 식별하는 데 사용할 수 있는 정보를 포함합니다.
id.kindstring
API 리소스의 유형입니다.
id.videoIdstring
id.type 속성의 값이 youtube#video인 경우, 이 속성이 표시되고 속성의 값은 YouTube가 검색 쿼리에 일치하는 동영상을 고유하게 식별하는 데 사용하는 ID를 포함합니다.
id.channelIdstring
id.type 속성의 값이 youtube#channel인 경우, 이 속성이 표시되고 속성의 값은 YouTube가 검색 쿼리에 일치하는 채널을 고유하게 식별하는 데 사용하는 ID를 포함합니다.
id.playlistIdstring
id.type 속성의 값이 youtube#playlist인 경우, 이 속성이 표시되고 속성의 값은 YouTube가 검색 쿼리에 일치하는 재생목록을 고유하게 식별하는 데 사용하는 ID를 포함합니다.
snippetobject
snippet 개체는 제목이나 설명 등 검색결과에 대한 기본 세부정보를 포함합니다. 예를 들어, 검색결과가 동영상인 경우 제목은 동영상의 제목이고 설명은 동영상의 설명입니다.
snippet.publishedAtdatetime
검색결과가 식별하는 리소스의 작성 날짜 및 시간입니다. 값은 ISO 8601(YYYY-MM-DDThh:mm:ss.sZ) 형식으로 지정됩니다.
snippet.channelIdstring
YouTube가 검색결과가 식별하는 리소스를 게시한 채널을 고유하게 식별하는 데 사용하는 값입니다.
snippet.titlestring
검색결과의 제목입니다.
snippet.descriptionstring
검색결과의 설명입니다.
snippet.thumbnailsobject
검색결과에 관련된 미리보기 이미지 맵입니다. 맵의 각 개체에 대해, 키는 미리보기 이미지의 이름이고 값은 미리보기 이미지에 대한 기타 정보를 포함하는 개체입니다.
snippet.thumbnails.(key)object
유효한 키 값은 다음과 같습니다.
  • default – 기본 미리보기 이미지입니다. 동영상에 대한 기본 미리보기 이미지 또는 재생목록 항목이나 검색결과 등 동영상을 참조하는 리소스이며 120x90픽셀입니다. 채널의 기본 미리보기 이미지는 88x88픽셀입니다.
  • medium – 미리보기 이미지의 중간 해상도 버전입니다. 동영상 또는 동영상을 참조하는 리소스의 경우 이 이미지는 320x180픽셀입니다. 채널의 경우 이 이미지는 240x240픽셀입니다.
  • high – 미리보기 이미지의 고해상도 버전입니다. 동영상 또는 동영상을 참조하는 리소스의 경우 이 이미지는 480x360픽셀입니다. 채널의 경우 이 이미지는 800x800픽셀입니다.
snippet.thumbnails.(key).urlstring
이미지의 URL입니다.
snippet.thumbnails.(key).widthunsigned integer
이미지의 너비입니다.
snippet.thumbnails.(key).heightunsigned integer
이미지의 높이입니다.
snippet.channelTitlestring
검색결과가 식별하는 리소스를 게시한 채널의 제목입니다.

The tables below list the search parameters used in the v2 API and their closest equivalents in the v3 API:

New in v3: The v3 API supports the topicId parameter, which indicates that the API response should only contain resources associated with the specified topic. The Searching with Freebase topics guide explains this functionality in detail.

Video search

YouTube Data API (v2) functionality: Searching for videos

This example calls the search.list method to find the most viewed, high-definition (HD) videos associated with the query "skateboarding dog." The query sets the orderpartqtype, and videoDefinition parameters.

https://developers.google.com/apis-explorer/#p/youtube/v3/youtube.search.list? part=snippet &order=viewCount &q=skateboarding+dog &type=video &videoDefinition=high

Related code samples: JavaJavaScript.NETPHPPythonRuby

Geolocation search

YouTube Data API (v2) functionality: location and location-radius search parameters

This example calls the search.list method to find videos associated with a particular location. It sets the location and locationRadius parameters to retrieve videos taken near Stanford University that are associated with the keyword "Stanford." The query also sets the order parameter to viewCount so that the query retrieves the most viewed videos matching the other search parameters. Note that to use the geolocation search feature, a request must set the type parameter's value to video.

https://developers.google.com/apis-explorer/#p/youtube/v3/youtube.search.list? part=snippet &location=37.43,-122.17 &locationRadius=5mi &order=viewCount &q=stanford &type=video

Related code samples: JavaPHPPython

Search for results relevant to a specific language

YouTube Data API (v2) functionality: using the orderby search parameter to find content relevant to a particular language

This example calls the search.list method to find search results that are most relevant to a specific language. The example shows that the query term is marine (q=marine) and that the API response should contain results most relevant to the French language (relevanceLanguage=fr).

https://developers.google.com/apis-explorer/#p/youtube/v3/youtube.search.list? part=snippet &q=marine &relevanceLanguage=fr

Note that the request does not set a value for the type parameter, which means each search result could reference a video, playlist, or channel.

Playlist search

YouTube Data API (v2) functionality: searching for playlists

This example shows how to find playlists matching the query term "GoogleDevelopers." It calls the search.listmethod and sets the type parameter's value to playlist so that the result set only includes playlists.

https://developers.google.com/apis-explorer/#p/youtube/v3/youtube.search.list? part=snippet &q=GoogleDevelopers &type=playlist

Channel search

YouTube Data API (v2) functionality: searching for channels

This example shows how to find channels matching the query term "travel." It calls the search.list method and sets the type parameter's value to channel so that the result set only includes channels.

https://developers.google.com/apis-explorer/#p/youtube/v3/youtube.search.list? part=snippet &q=travel &type=channel

https://developers.google.com/apis-explorer/#p/youtube/v3/youtube.search.list?part=snippet


Search: list

API 요청에 지정된 쿼리 매개변수와 일치하는 검색결과의 모음을 반환합니다. 기본적으로 검색결과의 집합은 쿼리 매개변수와 일치하는 videochannelplaylist 리소스를 식별하지만, 특정 유형의 리소스만 검색하도록 쿼리를 구성할 수도 있습니다. 지금 사용해 보거나 예를 참조하세요.

HTTP 요청

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

매개변수

아래 표는 이 쿼리가 지원하는 매개변수 목록입니다. 나열된 모든 매개변수는 쿼리 매개변수입니다.

매개변수 이름
필수 매개변수
partstring
part 매개변수는 API 응답이 포함하는 search 리소스 속성 하나 이상의 쉼표로 구분된 목록을 지정합니다. 매개변수 값에 포함할 수 있는 part 이름은 id 및 snippet입니다.

매개변수가 하위 속성을 포함하는 속성을 식별하는 경우 하위 속성이 응답에 포함됩니다. 예를 들어 search 결과에서 snippet 속성은 결과의 제목, 설명 등을 식별하는 다른 속성을 포함합니다. part=snippet을 설정하는 경우 API 응답은 중첩된 속성도 모두 포함합니다.
필터(다음 매개변수 중 하나만 지정합니다.)
forContentOwnerboolean
이 매개변수는 제대로 인증된 요청에서만 사용할 수 있습니다. 참고: 이 매개변수는 YouTube 콘텐츠 파트너 전용입니다.

forContentOwner 매개변수는 onBehalfOfContentOwner 매개변수에서 지정한 콘텐츠 소유자가 소유한 리소스만 검색하도록 검색을 제한합니다. 사용자는 지정된 콘텐츠 소유자와 연결된 CMS 계정을 사용하여 인증을 받아야 하고 onBehalfOfContentOwner를 제공해야 합니다.
forMineboolean
이 매개변수는 제대로 인증된 요청에서만 사용할 수 있습니다. forMine 매개변수는 인증된 사용자가 소유한 동영상만 검색하도록 검색을 제한합니다. 이 매개변수를 true로 설정하는 경우 type 매개변수의 값도 video로 설정해야 합니다.
relatedToVideoIdstring
relatedToVideoId 매개변수는 매개변수 값이 식별하는 동영상에 관련된 동영상 목록을 검색합니다. 이 매개변수 값은 YouTube 동영상 ID로 설정해야 하고, 이 매개변수를 사용하는 경우 type 매개변수는 video로 설정해야 합니다.
선택적 매개변수
channelIdstring
channelId 매개변수는 API 응답이 채널에서 만든 특정 리소스만 포함해야 한다는 것을 나타냅니다.
channelTypestring
channelType 매개변수를 사용하여 채널의 특정 유형에 대한 검색을 제한할 수 있습니다.

허용값은 다음과 같습니다.
  • any – 모든 채널을 반환합니다.
  • show – 프로그램만 검색합니다.
eventTypestring
eventType 매개변수는 방송 이벤트에 대한 검색을 제한합니다.

허용값은 다음과 같습니다.
  • completed – 완료된 방송만 포함합니다.
  • live – 진행 중인 방송만 포함합니다.
  • upcoming – 이후에 진행될 방송만 포함합니다.
maxResultsunsigned integer
maxResults 매개변수는 결과 집합에 반환해야 하는 최대 항목 수를 지정합니다. 허용값은 {0/} 이상 50 이하입니다. 기본값은 5입니다.
onBehalfOfContentOwnerstring
이 매개변수는 제대로 인증된 요청에서만 사용할 수 있습니다. 참고: 이 매개변수는 YouTube 콘텐츠 파트너 전용입니다.

onBehalfOfContentOwner 매개변수는 요청의 승인 사용자 인증 정보가 매개변수 값에 지정된 콘텐츠 소유자를 대신하는 YouTube CMS 사용자를 확인함을 나타냅니다. 이 매개변수는 다양한 여러 YouTube 채널을 소유하고 관리하는 YouTube 콘텐츠 파트너 전용입니다. 이 매개변수로 콘텐츠 소유자는 각 개별 채널에 승인 사용자 인증 정보를 제공할 필요 없이 한 번 인증하여 모든 동영상 및 채널 데이터에 액세스할 수 있습니다. 사용자가 인증할 CMS 계정은 지정된 YouTube 콘텐츠 소유자에게 연결되어야 합니다.
orderstring
order 매개변수는 API 응답에서 리소스를 지시하는 데 사용할 메소드를 지정합니다. 기본값은 SEARCH_SORT_RELEVANCE입니다.

허용값은 다음과 같습니다.
  • date – 리소스를 만든 날짜를 기준으로 최근 항목부터 시간 순서대로 리소스를 정렬합니다.
  • rating – 높은 평가부터 낮은 평가순으로 리소스를 정렬합니다.
  • relevance – 검색 쿼리에 대한 관련성을 기준으로 리소스를 정렬합니다. 이 매개변수의 기본값입니다.
  • title – 제목에 따라 문자순으로 리소스를 정렬합니다.
  • videoCount – 업로드한 동영상 수에 따라 채널을 내림차순으로 정렬합니다.
  • viewCount – 리소스를 조회수가 높은 항목부터 정렬합니다.
pageTokenstring
pageToken 매개변수는 반환해야 하는 결과 집합의 특정 페이지를 식별합니다. API 응답에서 nextPageToken 및 prevPageToken 속성은 검색할 기타 페이지를 식별합니다.
publishedAfterdatetime
publishedAfter 매개변수는 API 응답이 지정된 시간 이후에 만든 특정 리소스만 포함해야 한다는 것을 나타냅니다. 값은 RFC 3339 형식이 지정된 날짜-시간 값(1970-01-01T00:00:00Z)입니다.
publishedBeforedatetime
publishedBefore 매개변수는 API 응답이 지정된 시간 전에 만든 특정 리소스만 포함해야 한다는 것을 나타냅니다. 값은 RFC 3339 형식이 지정된 날짜-시간 값(1970-01-01T00:00:00Z)입니다.
qstring
q 매개변수는 검색할 검색어를 지정합니다.
regionCodestring
regionCode 매개변수는 API에서 지정된 국가에 대한 검색결과를 반환하도록 합니다. 매개변수 값은 ISO 3166-1 alpha-2 국가 코드입니다.
safeSearchstring
safeSearch 매개변수는 검색결과에 일반적인 콘텐츠뿐 아니라 제한된 콘텐츠도 포함되는지 여부를 나타냅니다.

허용값은 다음과 같습니다.
  • moderate – YouTube는 검색결과에서 일부 콘텐츠를 필터링하며 최소한 지정된 로케일에서 제한된 콘텐츠는 필터링합니다. 콘텐츠를 기준으로 검색결과에서 검색결과를 제거할 수도 있고 순위를 내릴 수도 있습니다. 기본 매개변수 값입니다.
  • none – YouTube는 검색결과 집합을 필터링하지 않습니다.
  • strict – YouTube는 검색결과 집합에서 제한된 콘텐츠를 모두 제외합니다. 콘텐츠를 기준으로 검색결과에서 검색결과를 제거할 수도 있고 순위를 내릴 수도 있습니다.
topicIdstring
topicId 매개변수는 API 응답이 지정된 주제와 관련된 리소스만 포함해야 한다는 것을 나타냅니다. 값은 Freebase 주제 ID를 식별합니다.
typestring
type 매개변수는 특정 리소스 유형만 검색하도록 검색 쿼리를 제한합니다. 값은 쉼표로 구분된 리소스 유형의 목록입니다. 기본값은 video,channel,playlist입니다.

허용값은 다음과 같습니다.
  • channel
  • playlist
  • video
videoCaptionstring
videoCaption 매개변수는 캡션이 있는지에 따라 API가 동영상 검색결과를 필터링해야 하는지 여부를 나타냅니다.

허용값은 다음과 같습니다.
  • any – 캡션 사용 여부에 따라 결과를 필터링하지 않습니다.
  • closedCaption – 캡션이 있는 동영상만 포함합니다.
  • none – 캡션이 없는 동영상만 포함합니다.
videoCategoryIdstring
videoCategoryId 매개변수는 카테고리를 기준으로 하는 동영상 검색결과를 필터링합니다.
videoDefinitionstring
videoDefinition 매개변수를 사용하여 HD(고화질) 또는 SD(표준 해상도) 동영상만 포함하도록 검색을 제한할 수 있습니다. HD 동영상은 최소 720p로 재생할 수 있고 1080p 같은 고해상도도 사용할 수 있습니다.

허용값은 다음과 같습니다.
  • any – 해상도에 관계 없이 모든 동영상을 반환합니다.
  • high – HD 동영상만 검색합니다.
  • standard – 표준 해상도 동영상만 검색합니다.
videoDimensionstring
videoDimension 매개변수를 사용하여 2D 또는 3D 동영상만 검색하도록 검색을 제한할 수 있습니다.

허용값은 다음과 같습니다.
  • 2d – 3D 동영상을 제외하도록 검색결과를 제한합니다.
  • 3d – 3D 동영상을 포함하도록 검색결과를 제한합니다.
  • any – 반환 결과에 3D와 3D가 아닌 동영상을 모두 포함합니다. 기본값입니다.
videoDurationstring
videoDuration 매개변수는 동영상 길이를 기준으로 동영상 검색결과를 필터링합니다.

허용값은 다음과 같습니다.
  • any – 동영상 길이를 기준으로 동영상 검색결과를 필터링하지 않습니다. 기본값입니다.
  • long – 20분보다 긴 동영상만 포함합니다.
  • medium – 4분 이상 20분 이하인 동영상만 포함합니다.
  • short – 4분 미만인 동영상만 포함합니다.
videoEmbeddablestring
videoEmbeddable 매개변수를 사용하여 웹페이지로 퍼갈 수 있는 동영상만 포함하도록 검색을 제한할 수 있습니다.

허용값은 다음과 같습니다.
  • any – 퍼갈 수 있는지 여부에 관계 없이 모든 동영상을 반환합니다.
  • true – 퍼갈 수 있는 동영상만 검색합니다.
videoLicensestring
videoLicense 매개변수는 특정 라이선스가 있는 동영상만 포함하도록 검색결과를 필터링합니다. YouTube에서는 동영상 업로더가 각 동영상에 Creative Commons 라이선스 또는 표준 YouTube 라이선스를 첨부하도록 선택할 수 있습니다.

허용값은 다음과 같습니다.
  • any – 소유한 라이선스에 관계 없이 쿼리 매개변수와 일치하는 모든 동영상을 반환합니다.
  • creativeCommon – Creative Commons 라이선스가 있는 동영상만 반환합니다. 사용자는 사용자가 만든 다른 동영상에서 이 라이선스를 사용하여 동영상을 재사용할 수 있습니다. 자세히 알아보기
  • youtube – 표준 YouTube 라이선스가 있는 동영상만 반환합니다.
videoSyndicatedstring
videoSyndicated 매개변수를 사용하여 youtube.com 외부에서 재생할 수 있는 동영상만 포함하도록 검색을 제한할 수 있습니다.

허용값은 다음과 같습니다.
  • any – 배급 여부에 관계 없이 모든 동영상을 반환합니다.
  • true – 배급된 동영상만 반환합니다.
videoTypestring
videoType 매개변수를 사용하여 특정 동영상 유형만 포함하도록 검색을 제한합니다.

허용값은 다음과 같습니다.
  • any – 모든 동영상을 반환합니다.
  • episode – 프로그램의 에피소드만 검색합니다.
  • movie – 영화만 검색합니다.

PYTHON, 예 1

더보기

PHP 클라이언트 라이브러리를 사용하는 예입니다.

<?php

$htmlBody
= <<<END
<form method="GET">
 
<div>
   
Search Term: <input type="search" id="q" name="q" placeholder="Enter Search Term">
 
</div>
  <div>
    Max Results: <input type="number" id="maxResults" name="maxResults" min="1" max="50" step="1" value="25">
  </
div>
 
<input type="submit" value="Search">
</form>
END;

/
/ This code will execute if the user entered a search query in the form
// and submitted the form. Otherwise, the page displays the form above.
if ($_GET['q'] && $_GET['maxResults']) {
 
// Call set_include_path() as needed to point to your client library.
require_once
'Google/Client.php';
require_once
'Google/Service/YouTube.php';

 
/*
   * Set $DEVELOPER_KEY to the "API key" value from the "Access" tab of the
   * Google Developers Console <https://console.developers.google.com/>
   * Please ensure that you have enabled the YouTube Data API for your project.
   */

  $DEVELOPER_KEY
= 'REPLACE_ME';

  $client
= new Google_Client();
  $client
->setDeveloperKey($DEVELOPER_KEY);

 
// Define an object that will be used to make all API requests.
  $youtube
= new Google_Service_YouTube($client);

 
try {
   
// Call the search.list method to retrieve results matching the specified
   
// query term.
    $searchResponse
= $youtube->search->listSearch('id,snippet', array(
     
'q' => $_GET['q'],
     
'maxResults' => $_GET['maxResults'],
   
));

    $videos
= '';
    $channels
= '';
    $playlists
= '';

   
// Add each result to the appropriate list, and then display the lists of
   
// matching videos, channels, and playlists.
   
foreach ($searchResponse['items'] as $searchResult) {
     
switch ($searchResult['id']['kind']) {
       
case 'youtube#video':
          $videos
.= sprintf('<li>%s (%s)</li>',
              $searchResult
['snippet']['title'], $searchResult['id']['videoId']);
         
break;
       
case 'youtube#channel':
          $channels
.= sprintf('<li>%s (%s)</li>',
              $searchResult
['snippet']['title'], $searchResult['id']['channelId']);
         
break;
       
case 'youtube#playlist':
          $playlists
.= sprintf('<li>%s (%s)</li>',
              $searchResult
['snippet']['title'], $searchResult['id']['playlistId']);
         
break;
     
}
   
}

    $htmlBody
.= <<<END
   
<h3>Videos</h3>
    <ul>$videos</
ul>
   
<h3>Channels</h3>
    <ul>$channels</
ul>
   
<h3>Playlists</h3>
    <ul>$playlists</
ul>
END;
 
} catch (Google_Service_Exception $e) {
    $htmlBody
.= sprintf('<p>A service error occurred: <code>%s</code></p>',
      htmlspecialchars
($e->getMessage()));
 
} catch (Google_Exception $e) {
    $htmlBody
.= sprintf('<p>An client error occurred: <code>%s</code></p>',
      htmlspecialchars
($e->getMessage()));
 
}
}
?>

<!doctype html>
<html>
 
<head>
   
<title>YouTube Search</title>
 
</head>
 
<body>
   
<?=$htmlBody?>
 
</body>
</html>

오류

아래 표에서는 이 메소드에 대한 호출에 응답하기 위해 API가 반환할 수 있는 오류 메시지를 식별합니다. 자세한 내용은 오류 메시지 설명서를 참조하세요.

오류 유형오류 세부정보설명
badRequestinvalidSearchFilter요청에 잘못된 조합의 검색 필터 및/또는 제한이 있습니다.
badRequestinvalidVideoIdrelatedToVideo 매개변수에 지정된 동영상 ID가 잘못되었습니다.


+ Recent posts