[컴] Youtube search API 사용하기 - gdata





YouTube Data API v3


v3 에서 원하는 query 에 대한 url 과 결과를 보여준다.


위는 playlist 에 대한 page 이다. 왼쪽 목록에서 좀 더 다양한 category 를 확인할 수 있다.

search

아래 link 에서는 search 와 관련된 사항을 찾을 수 있다.


예)

https://www.googleapis.com/youtube/v3/search?channelId=UC4Vxtl8TqjlsPcHzlO7UoIg&key=YOUR_KEY&part=snippet&order=date


statistics

그리고 개별 video 의 statistics 를 알기 위해서는 개별 video 의 id 를 가지고 query 를 해야 한다.

https://www.googleapis.com/youtube/v3/videos?id=o2q2xNVZPbc,qTJOjsg9cwc&key=YOUR_KEY&part=snippet,contentDetails,statistics



------------------------------------------------

Search API


youtube 의 검색결과를 feed 형식으로 제공한다. 아래 page 에서 자세한 방법을 알려준다.

YouTube API v2.0 – Browsing with Categories and Keywords - YouTube — Google Developers from https://developers.google.com/youtube/2.0/developers_guide_protocol_category_keyword_browsing

YouTube API v2.0 – API Query Parameters - YouTube — Google Developers from https://developers.google.com/youtube/2.0/developers_guide_protocol_api_query_parameters#orderbysp

URL format

  • https://gdata.youtube.com/feeds/api/videos/-/category_or_tag

REST style

    https://gdata.youtube.com/feeds/api/videos/-/Comedy

GET parameter style

  • https://gdata.youtube.com/feeds/api/videos?category=Comedy


query 설정 : 결과값을 web page 와 같게.


그런데, youtube 에서 제공하는 search API 의 결과값이 실제 youtube.com 에서 검색한 결과와 다르다. 관련돼서 얘기들이 있다. 아래 page 를 참고하자.

Youtube API - worse results than by searching on youtube.com - Stack Overflow from http://stackoverflow.com/questions/9769775/youtube-api-worse-results-than-by-searching-on-youtube-com

format=1,6

YouTube API v2.0 – API Query Parameters - YouTube — Google Developers from https://developers.google.com/youtube/2.0/developers_guide_protocol_api_query_parameters#formatsp
만약 모바일에서의 검색결과와 같은 검색결과를 얻고자 한다면, 모바일에서 play 가능한 동영상을 retrieve 하기 위해 format 설정을 해주자.

그렇지 않으면, mobile 에서 play 가 허락되지 않은 동영상이 결과로 나온다. 이녀석은 모바일에서는 play 되지 않는다.

percent-encoding 과 space

그리고 검색값(query) 를 넣을 때 주의하자. percent-encoding 으로 바꿔주는 것을 잊지말고, space 공간을 '+' 기호로 바꿔주자.
String query = "장미 여관";
String encodedQuery = URLEncoder.encode(query, "UTF-8").replaceAll("%20", "\\+");
'+' 기호를 그대로 percent-encoding 한 결과나 space 공간을 '+' 로 바꾸지 않고 그냥 둬서 %20 으로 검색한 결과가 다 달랐다.



channel 의 Playlist를 가져오는 법

example

  • http://gdata.youtube.com/feeds/api/playlists/PL9a4x_yPK_87uz3HaM1oGheYyFOjzbB4k?v=2&alt=json
user id 가 가지고 있는 playlist 를 retrieve
  • https://gdata.youtube.com/feeds/api/users/loltv1004/playlists?v=2&alt=json

최신 업로드 된 동영상 feed 얻는 법


example

  • https://gdata.youtube.com/feeds/api/users/loltv1004/uploads?v=2&start-index=1&max-results=10&alt=json


인기동영상 feed 가져 오는 법


example

  • http://gdata.youtube.com/feeds/api/users/loltv1004/uploads?orderby=viewCount&alt=json



특정 tag 관련 list 가져 오는 법



example

  • http://gdata.youtube.com/feeds/api/users/loltv1004/uploads?category=tagname&alt=json

댓글 2개:

  1. 해당 동영상 아이디 값으로 댓글을 가져오는 기능도 가능한가요???

    답글삭제
    답글
    1. 네 가능합니다. 아래 링크를 보시면 될 듯 합니다.
      https://developers.google.com/youtube/v3/docs/comments/list?hl=ko

      삭제