Youtube API 에서 채널의 전체 동영상 목록 가져오기 > 개발

본문 바로가기
사이트 내 전체검색

개발

Youtube API 에서 채널의 전체 동영상 목록 가져오기

페이지 정보

profile_image
작성자 관리자 (61.♡.26.87)
댓글 0건 조회 5,095회 작성일 20-05-10 18:52

본문

Youtube API 를 이용해서 동영상 정보를 가져오려고 하는데,
할당량 제한 때문에, 최적의 방법을 찾아 본다.

우선 알아야 할 것이, 쿼리에는 비용이 들고, 쿼리마다 비용이 다르다는 것이다.


ㅁ YouTube Data API (v3) - Quota Calculator

Youtube API 의 할당량 제한이 있는데, Queries per day 가 10,000 이다.
근데, 이 값은 쿼리를 날리는 횟수가 아니다. 즉, 1 query = 1 cost 가 아니다.
API 를 쿼리할 때, resource, method, parts 별로 cost 가 다 다른데, 이는 아래에서 확인할 수 있다.

https://developers.google.com/youtube/v3/determine_quota_cost?hl=ko

근데 여기서 문제는, Search:list 는 비용이 100 이나 된다.
하루에 100번 정도 search 를 하면 하루 할당량을 다 소모해 버리게 된다.

가능하다면 비용이 저렴한 query 로 구성해서 원하는 결과값을 얻는 것이 좋다.
다른 쿼리들은 비용이 3 인 것에서 부터 시작한다. 



ㅁ Youtube API

제공되는 API 가 많이 있는데, 이중에서 유용한 method 들은 아래와 같은 것들이 있다.
Channels
Playlists
PlaylistItems
Search
Videos

이중 매개변수로 channelId 를 보낼 수 있는 method 들은 아래와 같다.
Channels: list
Playlists: list
Search: list


ㅇ 해당 채널의 모든 동영상 가져오기

1. Search

간단하게 Search 에 channelId 를 넣어서 가져오는 방법이 있다.
이 방법이 옵션도 많고 간편하기는 하다.

근데 이 쿼리의 문제는 위에서 서술한 바와 같이 비용이 엄청 비싸다. cost 가 100 이나 된다.
함부로 가볍게 날릴 수 있는 쿼리가 아니다.

2. Playlists

그래서 차선책으로, Playlists 를 이용해서 동영상 목록을 가져오는 방법을 시도해 본다.
의미상으로는 채널의 재생목록(playlist) 을 가져오는 쿼리인데,
재생목록이 없거나, 재생목록에 포함되어 있지 않은 동영상은 가져올 수가 없다. 실패!

3. Channels & PlaylistItems

part 에 contentDetails 를 넣고, id 에 channelId 를 넣고, 쿼리를 날리면, relatedPlaylists 를 가져올 수 있다.
likes, uploads 등의 값이 있는데, 이 중에서 uploads 가 해당 채널에 업로드된 모든 동영상들의 playlist 이다.
쿼리 비용은 3 에 불과하다.

이 playlistId 를 PlaylistItems:list method 의 매개변수 playlistId 에 넣고 part = snippet 으로 쿼리를 날리면,
해당 채널에 업로드된 모든 동영상의 목록을 얻을 수 있다.
이 쿼리 비용도 3 에 불과하다.


* 참고
https://developers.google.com/youtube/v3/docs/channels/list
https://developers.google.com/youtube/v3/docs/playlists/list
https://developers.google.com/youtube/v3/docs/playlistItems/list
https://developers.google.com/youtube/v3/docs/videos/list

추천0

댓글목록

등록된 댓글이 없습니다.

Total 386건 7 페이지
  • RSS

검색


사이트 정보

Copyright © Baragi.Net. All rights reserved.