부수 프로젝트를 위해 YouTube Data API v3 할당량을 짜내며 배운 점

발행: (2026년 5월 7일 PM 06:12 GMT+9)
5 분 소요
원문: Dev.to

Source: Dev.to

TL;DR

기본 10,000 단위/일 할당량은 약 10개의 순진한 사용자 요청만으로 소진됩니다. 세 가지 트릭을 사용해 사용자당 비용을 약 50배 줄이고 TubeVocab을 무료 티어에서 배포할 수 있었습니다.

퀵스타트에 포함되지 않은 할당량 산술

  • 기본 일일 할당량: 10,000 단위.
  • search.list – 호출당 100 단위 (쿼리로 동영상 찾기).
  • videos.list – 호출당 1 단위 (ID를 얻은 뒤 메타데이터 가져오기).
  • captions.list – 50 단위 (사용 가능한 자막 목록).
  • captions.download – 200 단위 (자막 데이터 다운로드).

일반적인 사용자 흐름 – 채널 검색 → 동영상 선택 → 자막 로드 → 인터랙티브 플레이어 렌더링 – 은 대략 다음과 같습니다:

100 (search) + 1 (videos) + 50 (captions list) + 200 (download) = 351 units

하루 10,000 단위라면 28세션만 사용해도 무료 할당량이 소진됩니다.

사용자당 비용을 ~50배 줄인 세 가지 트릭

1. 알려진 ID에 search.list를 사용하지 않기

사용자가 YouTube URL을 붙여넣으면 동영상 ID가 이미 URL에 포함됩니다. 이를 파싱하고 search.list를 건너뛰세요.

// Bad: 붙여넣은 URL당 100 단위
const result = await youtube.search.list({
  q: pastedUrl,
  type: 'video',
  part: 'snippet'
});

// Good: 0 단위, 정규식으로 ID 추출
const id = pastedUrl.match(/(?:v=|youtu\.be\/)([\w-]{11})/)?.[1];
const result = await youtube.videos.list({
  id,
  part: 'snippet,contentDetails'
}); // 1 unit

이 변경으로 평균 붙여넣기 흐름이 351 → 251 단위로 감소합니다.

2. 공식 captions.* 엔드포인트 완전 배제

captions.download는 200 단위가 들고 OAuth가 필요합니다(사용자가 동영상 소유자여야 함). 소유자가 아닌 경우, 할당량에 포함되지 않는 비공식 XML 엔드포인트를 사용하세요:

https://video.google.com/timedtext?lang=en&v=VIDEO_ID

반환된 XML을 파싱해 타임스탬프가 포함된 전사본을 얻을 수 있습니다(0 할당량).
참고: 이 엔드포인트는 비공식이므로, youtube-transcript-api 방식으로 스크래핑하는 백업을 유지합니다. 두 방식을 결합하면 공식 캡션 할당량을 전혀 사용하지 않고도 약 95 %의 자막 적중률을 얻습니다.

이후 “자막 로드” 비용이 250 → 1 단위로 감소했습니다.

3. 동영상 ID 수준에서 적극적으로 캐시하기

메타데이터, 자막, 썸네일은 동영상 자체가 바뀌지 않는 한 모든 조회에서 동일합니다. 이러한 자산을 동영상 ID별 캐시(SQLite 등)로 저장하고 만료 없이 유지합니다. 캐시된 동영상을 다시 볼 때는 할당량이 전혀 소모되지 않습니다.

약 500개의 인기 동영상을 캐시해 두면 세션당 한계 비용이 사실상 0이 되며, 할당량은 처음 보는 동영상에만 사용됩니다.

실제 배포 결과

  • 새 동영상 세션 평균: ~2 단위 (videos.list + 가끔 백업)
  • 캐시된 동영상 세션 평균: 0 단위

무료 티어는 이제 하루에 약 5,000개의 새로운 동영상을 지원할 수 있어 별도 예산 관리가 필요 없습니다—사이드 프로젝트에 충분한 여유가 있습니다.

핵심 요약: YouTube Data API를 사용하는 어떤 서비스든(어휘 도구, 접근성, 검색, 분석 등) search.list를 할당량 소모원으로 여기고, 가능하면 captions.*를 피하며, 동영상 ID별로 결과를 영구히 캐시하면 무료 티어가 실제로 넉넉해집니다. 이 스택으로 TubeVocab을 만들었으며, 할당량 계산이 가장 과소평가된 기술적 위험이었습니다. 누군가에게 일주일 정도의 시간을 절약해 주길 바랍니다.

0 조회
Back to Blog

관련 글

더 보기 »