Notice
Recent Posts
Recent Comments
«   2024/03   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
Archives
Today
Total
관리 메뉴

c

YouTube DATA API (1) - users 본문

Google/YouTube

YouTube DATA API (1) - users

iuChannel 2012. 12. 26. 14:38

그 동안 YouTube 에 공개된 Open API 를 접하면서 알게된 것들을 공유하고자 이 글을 쓰게 되었습니다.

아래 내용은 https://developers.google.com/youtube/ 의 내용을 예제와 함께 풀어 쓴 것이며, v2.0 을 기준으로 작성되었습니다.


YouTube 에 공개된 Open API 를 사용하면, 거의 YouTube 사이트와 동일한 사이트를 하나 만들 수 있을 정도로 잘 만들어져 있습니다.

Google 이 이런 정책을 펴는 이유 중 하나는 Google 은 이 정도의 Data API 를 공개해도 결국 동영상은 YouTube 를 통해 재생되기 때문에, 

그 API 를 통해 YouTube 동영상이 재생된다면, 결국 Google 은 돈을 벌 수 있기 때문입니다.


그럼, 대표적인 API 하나를 확인해 보지요.


https://gdata.youtube.com/feeds/api/users/chanyhan/playlists?v=2


위 api 는 YouTube 의 chanyhan 이라는 channel 의 playlist 를 보여주는 api 입니다.

YouTube 에서 channel(채널) = user(사용자) 와 와 같습니다.

default 는 xml 이라서 복잡해 보이고 뭐가 뭔지 잘 눈에 안보입니다.

그래서, 이에 해당하는 간략정보를 JSON 타입으로 보는 것이 개발자들에게는 좀 더 편합니다.


(1) https://gdata.youtube.com/feeds/api/users/chanyhan/playlists?v=2&alt=jsonc


url 파라미터로 &alt=jsonc 를 추가해 주시면 됩니다. 

&alt=jsonc 대신 &alt=json 을 추가해주시면, 좀 더 많은 정보를 확인할 수 있습니다.

어떤 것이 더 편한지 그건 쓰시는 분 마음입니다만, 이 글에서는 alt=jsonc 를 기본으로 가져가겠습니다.

그 이유는 jsonc 옵션이 간략하게 볼 수 있으면서도 왠간한 정보는 모두 가지고 있기 때문입니다.


아래는 Chrome 에서 JSON Formatter 라는 플러그인을 사용해서 본 결과 값입니다.

{"apiVersion": "2.1","data": {"totalItems": 10,"startIndex": 1,"itemsPerPage": 25,}}


위 API 는 YouTube 의 chanyhan 이란 사용자가 가지고 있는 Playlist 정보입니다.

총 10개(totalitems) 를 가지고 있으며, 페이지당 25개를 보여주며(itemsPerPage":25), 그 첫번째 페이지("startIndex"=1)라는 것입니다.

(1) 에서 &max-result=50 으로 설정해주시면, "itemsPerPage":50 으로 나오는 걸 확인하실 수 있습니다. 즉 기본값은 25 라는거죠.

마찬가지로 &start-index=2 로 설정해주시면, "startIndex":2 로 나오는 걸 확인하실 수 있습니다.

startIndex 는 위 결과에서 "items" 에 해당하는 결과값이 시작하는 번호의 차이입니다.


(2) https://gdata.youtube.com/feeds/api/users/chanyhan/playlists?v=2&alt=jsonc

&start-index=11&max-results=50


{"apiVersion": "2.1","data": {"totalItems": 10,"startIndex": 11,"itemsPerPage": 50}}


총 아이템 갯수가 10개이기 때문에 시작위치가 11이 되면, "data"-"items" 의 결과 값은 없게 됩니다.


이제 "items" 안의 내용들을 확인해 보지요.


{"id": "PLB54BB58F4DC29C40","created": "2011-07-26T01:03:33.000Z","updated": "2011-07-28T05:10:33.000Z","author": "chanyhan","title": "Pororo Season 1","description": "","size": 49,"thumbnail": {"sqDefault": "http://i.ytimg.com/vi/QQyYCAvkOXY/default.jpg","hqDefault": "http://i.ytimg.com/vi/QQyYCAvkOXY/hqdefault.jpg"}},


- id : Playlist(재생목록) 의 아이디입니다. 이 값을 이용해서, 직접 재생목록에 접근할 수 있습니다.

- created : 생성된 날짜

- updated : 업데이트 된 날짜

- author : 만든 사람

- title : 제목

- description : 설명

- size : 재생목록에 포함되어 있는 동영상의 총 갯수

- thumnail : 대표 이미지 썸네일


참고로 이 데이터들은 아래 url 에서 보여지는 것들입니다.

http://www.youtube.com/user/chanyhan/videos?flow=grid&view=1


이 item 이 실제 YouTube 사이트에서 보여지는 것은 아래와 같습니다.