오래전에 처리 해둔거 기억이 안나서 다시 메모함
아래의 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
}
}
속성
다음 표는 검색결과에 표시되는 속성을 정의합니다.
속성 이름 | |
---|---|
kind | string API 리소스의 유형입니다. 값은 youtube#searchResult 가 됩니다. |
etag | etag 이 리소스의 Etag입니다. |
id | object id 개체는 검색 요청에 일치하는 리소스를 고유하게 식별하는 데 사용할 수 있는 정보를 포함합니다. |
id. | string API 리소스의 유형입니다. |
id. | string id. 속성의 값이 youtube#video 인 경우, 이 속성이 표시되고 속성의 값은 YouTube가 검색 쿼리에 일치하는 동영상을 고유하게 식별하는 데 사용하는 ID를 포함합니다. |
id. | string id. 속성의 값이 youtube#channel 인 경우, 이 속성이 표시되고 속성의 값은 YouTube가 검색 쿼리에 일치하는 채널을 고유하게 식별하는 데 사용하는 ID를 포함합니다. |
id. | string id. 속성의 값이 youtube#playlist 인 경우, 이 속성이 표시되고 속성의 값은 YouTube가 검색 쿼리에 일치하는 재생목록을 고유하게 식별하는 데 사용하는 ID를 포함합니다. |
snippet | object snippet 개체는 제목이나 설명 등 검색결과에 대한 기본 세부정보를 포함합니다. 예를 들어, 검색결과가 동영상인 경우 제목은 동영상의 제목이고 설명은 동영상의 설명입니다. |
snippet. | datetime 검색결과가 식별하는 리소스의 작성 날짜 및 시간입니다. 값은 ISO 8601( YYYY-MM-DDThh:mm:ss. ) 형식으로 지정됩니다. |
snippet. | string YouTube가 검색결과가 식별하는 리소스를 게시한 채널을 고유하게 식별하는 데 사용하는 값입니다. |
snippet. | string 검색결과의 제목입니다. |
snippet. | string 검색결과의 설명입니다. |
snippet. | object 검색결과에 관련된 미리보기 이미지 맵입니다. 맵의 각 개체에 대해, 키는 미리보기 이미지의 이름이고 값은 미리보기 이미지에 대한 기타 정보를 포함하는 개체입니다. |
snippet. | object 유효한 키 값은 다음과 같습니다.
|
snippet. | string 이미지의 URL입니다. |
snippet. | unsigned integer 이미지의 너비입니다. |
snippet. | unsigned integer 이미지의 높이입니다. |
snippet. | string 검색결과가 식별하는 리소스를 게시한 채널의 제목입니다. |
The tables below list the search parameters used in the v2 API and their closest equivalents in the v3 API:
v2 API parameter | v3 API parameter |
---|---|
3d | videoDimension |
caption | videoCaption |
category | videoCategoryId |
duration | videoDuration |
ends-after | not supported |
ends-before | not supported |
format | not supported |
hd | videoDefinition |
license | videoLicense |
location | location |
location-radius | locationRadius |
lr | not supported |
orderby | order |
q | q |
restriction | regionCode |
safeSearch | safeSearch |
starts-after | not supported |
starts-before | not supported |
status | eventType |
time | publishedBefore publishedAfter |
uploader | channelId |
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 order
, part
, q
, type
, 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: Java, JavaScript, .NET, PHP, Python, Ruby
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
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.list
method 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 요청에 지정된 쿼리 매개변수와 일치하는 검색결과의 모음을 반환합니다. 기본적으로 검색결과의 집합은 쿼리 매개변수와 일치하는 video
, channel
, playlist
리소스를 식별하지만, 특정 유형의 리소스만 검색하도록 쿼리를 구성할 수도 있습니다. 지금 사용해 보거나 예를 참조하세요.
요청
HTTP 요청
GET https://www.googleapis.com/youtube/v3/search
매개변수
아래 표는 이 쿼리가 지원하는 매개변수 목록입니다. 나열된 모든 매개변수는 쿼리 매개변수입니다.
매개변수 이름 | ||
---|---|---|
필수 매개변수 | ||
part | string part 매개변수는 API 응답이 포함하는 search 리소스 속성 하나 이상의 쉼표로 구분된 목록을 지정합니다. 매개변수 값에 포함할 수 있는 part 이름은 id 및 snippet 입니다.매개변수가 하위 속성을 포함하는 속성을 식별하는 경우 하위 속성이 응답에 포함됩니다. 예를 들어 search 결과에서 snippet 속성은 결과의 제목, 설명 등을 식별하는 다른 속성을 포함합니다. part=snippet 을 설정하는 경우 API 응답은 중첩된 속성도 모두 포함합니다. | |
필터(다음 매개변수 중 하나만 지정합니다.) | ||
forContentOwner | boolean 이 매개변수는 제대로 인증된 요청에서만 사용할 수 있습니다. 참고: 이 매개변수는 YouTube 콘텐츠 파트너 전용입니다. forContentOwner 매개변수는 onBehalfOfContentOwner 매개변수에서 지정한 콘텐츠 소유자가 소유한 리소스만 검색하도록 검색을 제한합니다. 사용자는 지정된 콘텐츠 소유자와 연결된 CMS 계정을 사용하여 인증을 받아야 하고 onBehalfOfContentOwner 를 제공해야 합니다. | |
forMine | boolean 이 매개변수는 제대로 인증된 요청에서만 사용할 수 있습니다. forMine 매개변수는 인증된 사용자가 소유한 동영상만 검색하도록 검색을 제한합니다. 이 매개변수를 true 로 설정하는 경우 type 매개변수의 값도 video 로 설정해야 합니다. | |
relatedToVideoId | string relatedToVideoId 매개변수는 매개변수 값이 식별하는 동영상에 관련된 동영상 목록을 검색합니다. 이 매개변수 값은 YouTube 동영상 ID로 설정해야 하고, 이 매개변수를 사용하는 경우 type 매개변수는 video 로 설정해야 합니다. | |
선택적 매개변수 | ||
channelId | string channelId 매개변수는 API 응답이 채널에서 만든 특정 리소스만 포함해야 한다는 것을 나타냅니다. | |
channelType | string channelType 매개변수를 사용하여 채널의 특정 유형에 대한 검색을 제한할 수 있습니다.허용값은 다음과 같습니다.
| |
eventType | string eventType 매개변수는 방송 이벤트에 대한 검색을 제한합니다.허용값은 다음과 같습니다.
| |
maxResults | unsigned integer maxResults 매개변수는 결과 집합에 반환해야 하는 최대 항목 수를 지정합니다. 허용값은 {0 /} 이상 50 이하입니다. 기본값은 5 입니다. | |
onBehalfOfContentOwner | string 이 매개변수는 제대로 인증된 요청에서만 사용할 수 있습니다. 참고: 이 매개변수는 YouTube 콘텐츠 파트너 전용입니다. onBehalfOfContentOwner 매개변수는 요청의 승인 사용자 인증 정보가 매개변수 값에 지정된 콘텐츠 소유자를 대신하는 YouTube CMS 사용자를 확인함을 나타냅니다. 이 매개변수는 다양한 여러 YouTube 채널을 소유하고 관리하는 YouTube 콘텐츠 파트너 전용입니다. 이 매개변수로 콘텐츠 소유자는 각 개별 채널에 승인 사용자 인증 정보를 제공할 필요 없이 한 번 인증하여 모든 동영상 및 채널 데이터에 액세스할 수 있습니다. 사용자가 인증할 CMS 계정은 지정된 YouTube 콘텐츠 소유자에게 연결되어야 합니다. | |
order | string order 매개변수는 API 응답에서 리소스를 지시하는 데 사용할 메소드를 지정합니다. 기본값은 SEARCH_SORT_RELEVANCE 입니다.허용값은 다음과 같습니다.
| |
pageToken | string pageToken 매개변수는 반환해야 하는 결과 집합의 특정 페이지를 식별합니다. API 응답에서 nextPageToken 및 prevPageToken 속성은 검색할 기타 페이지를 식별합니다. | |
publishedAfter | datetime publishedAfter 매개변수는 API 응답이 지정된 시간 이후에 만든 특정 리소스만 포함해야 한다는 것을 나타냅니다. 값은 RFC 3339 형식이 지정된 날짜-시간 값(1970-01-01T00:00:00Z)입니다. | |
publishedBefore | datetime publishedBefore 매개변수는 API 응답이 지정된 시간 전에 만든 특정 리소스만 포함해야 한다는 것을 나타냅니다. 값은 RFC 3339 형식이 지정된 날짜-시간 값(1970-01-01T00:00:00Z)입니다. | |
q | string q 매개변수는 검색할 검색어를 지정합니다. | |
regionCode | string regionCode 매개변수는 API에서 지정된 국가에 대한 검색결과를 반환하도록 합니다. 매개변수 값은 ISO 3166-1 alpha-2 국가 코드입니다. | |
safeSearch | string safeSearch 매개변수는 검색결과에 일반적인 콘텐츠뿐 아니라 제한된 콘텐츠도 포함되는지 여부를 나타냅니다.허용값은 다음과 같습니다.
| |
topicId | string topicId 매개변수는 API 응답이 지정된 주제와 관련된 리소스만 포함해야 한다는 것을 나타냅니다. 값은 Freebase 주제 ID를 식별합니다. | |
type | string type 매개변수는 특정 리소스 유형만 검색하도록 검색 쿼리를 제한합니다. 값은 쉼표로 구분된 리소스 유형의 목록입니다. 기본값은 video, 입니다.허용값은 다음과 같습니다.
| |
videoCaption | string videoCaption 매개변수는 캡션이 있는지에 따라 API가 동영상 검색결과를 필터링해야 하는지 여부를 나타냅니다.허용값은 다음과 같습니다.
| |
videoCategoryId | string videoCategoryId 매개변수는 카테고리를 기준으로 하는 동영상 검색결과를 필터링합니다. | |
videoDefinition | string videoDefinition 매개변수를 사용하여 HD(고화질) 또는 SD(표준 해상도) 동영상만 포함하도록 검색을 제한할 수 있습니다. HD 동영상은 최소 720p로 재생할 수 있고 1080p 같은 고해상도도 사용할 수 있습니다.허용값은 다음과 같습니다.
| |
videoDimension | string videoDimension 매개변수를 사용하여 2D 또는 3D 동영상만 검색하도록 검색을 제한할 수 있습니다.허용값은 다음과 같습니다.
| |
videoDuration | string videoDuration 매개변수는 동영상 길이를 기준으로 동영상 검색결과를 필터링합니다.허용값은 다음과 같습니다.
| |
videoEmbeddable | string videoEmbeddable 매개변수를 사용하여 웹페이지로 퍼갈 수 있는 동영상만 포함하도록 검색을 제한할 수 있습니다.허용값은 다음과 같습니다.
| |
videoLicense | string videoLicense 매개변수는 특정 라이선스가 있는 동영상만 포함하도록 검색결과를 필터링합니다. YouTube에서는 동영상 업로더가 각 동영상에 Creative Commons 라이선스 또는 표준 YouTube 라이선스를 첨부하도록 선택할 수 있습니다.허용값은 다음과 같습니다.
| |
videoSyndicated | string videoSyndicated 매개변수를 사용하여 youtube.com 외부에서 재생할 수 있는 동영상만 포함하도록 검색을 제한할 수 있습니다.허용값은 다음과 같습니다.
| |
videoType | string videoType 매개변수를 사용하여 특정 동영상 유형만 포함하도록 검색을 제한합니다.허용값은 다음과 같습니다.
|
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가 반환할 수 있는 오류 메시지를 식별합니다. 자세한 내용은 오류 메시지 설명서를 참조하세요.
오류 유형 | 오류 세부정보 | 설명 |
---|---|---|
badRequest | invalidSearchFilter | 요청에 잘못된 조합의 검색 필터 및/또는 제한이 있습니다. |
badRequest | invalidVideoId | relatedToVideo 매개변수에 지정된 동영상 ID가 잘못되었습니다. |
'Develpoer' 카테고리의 다른 글
안드로이드 스튜디오 캐시 지우는법 (0) | 2019.04.01 |
---|---|
카카오링크 미리보기 Cache 삭제하기 (0) | 2017.11.20 |
RubyonRails For문 (0) | 2011.07.21 |
RubyonRails 한글 사용 - 업데이트중 (0) | 2011.07.21 |
[Ruby on Rails] 삽질 보고서 NetBean (0) | 2011.07.21 |