API 문서
YouTube 스크립트, 검색, 메타데이터를 위한 REST API입니다. 대시보드에서 API 키를 발급받으세요 — 무료 크레딧 100개, 카드 등록 불필요.
인증
API 키를 베어러 토큰으로 전달하거나 x-api-key 헤더를 사용하세요:
Authorization: Bearer sk_live_...
# or
x-api-key: sk_live_...기본 URL
https://getyoutubetranscript.com/api/v1크레딧 및 요금제
| 요금제 | 가격 | 월 크레딧 | 충전 가격 | 속도 제한 |
|---|---|---|---|---|
| 무료 | $0 | 100개 (일회성) | — | 분당 60회 |
| 월간 | 월 $5.00 | 1,000 | 1,000당 $2.50 | 분당 200회 |
| 연간 | 월 $4.50 (연 $54) | 1,000 | 1,000당 $1.50 | 분당 300회 |
1크레딧 = 성공한 요청 1건. 실패한 요청에는 요금이 부과되지 않습니다. 충전 크레딧은 구매일로부터 30일 또는 현재 결제 주기 종료 시점 중 늦은 시점에 만료되며, 사용하려면 활성 구독이 필요합니다.
엔드포인트
/transcript1크레딧메타데이터(제목, 채널, 썸네일)와 함께 YouTube 동영상의 스크립트를 가져옵니다.
| 매개변수 | 필수 여부 | 설명 |
|---|---|---|
v | 예 | 동영상 ID 또는 전체 YouTube URL |
language | 아니오 | 언어 코드 (기본값: en) |
요청
curl "https://getyoutubetranscript.com/api/v1/transcript?v=jNQXAC9IVRw" \
-H "Authorization: Bearer sk_live_..."응답
{
"success": true,
"data": {
"video_id": "jNQXAC9IVRw",
"language_code": "en",
"title": "Me at the zoo",
"author_name": "jawed",
"author_url": "https://www.youtube.com/channel/UC4Qob...",
"thumbnail_url": "https://...",
"transcript": "All right, so here we are...",
"word_count": 39
}
}/search페이지당 1크레딧필터와 페이지네이션을 사용해 YouTube 동영상을 검색합니다.
| 매개변수 | 필수 여부 | 설명 |
|---|---|---|
q | 예 | 검색어 (최소 2자) |
country | 아니오 | 2자리 국가 코드 (기본값: us) |
language | 아니오 | 언어 코드 (기본값: en) |
page_token | 아니오 | 다음 페이지를 가져오기 위한 이전 응답의 pagination.next_page_token |
limit | 아니오 | 최대 결과 수 (기본값 20, 최대 50) |
요청
curl "https://getyoutubetranscript.com/api/v1/search?q=lofi+beats" \
-H "Authorization: Bearer sk_live_..."응답
{
"success": true,
"data": {
"query": "lofi beats",
"video_results": [ { "title": "...", "videoId": "...", "channel": { "name": "..." } } ],
"pagination": { "next_page_token": "..." }
}
}/resolve무료채널 핸들, URL, 사용자 이름을 실제 채널 ID로 변환합니다. 이미 채널 ID이거나 ID를 포함한 URL 같은 구문적 입력은 네트워크 호출 없이 즉시 처리되며, 순수 핸들만 입력하면 실제 조회 1회가 발생합니다.
| 매개변수 | 필수 여부 | 설명 |
|---|---|---|
handle | 예 | 채널 ID, URL, 또는 @핸들 |
요청
curl "https://getyoutubetranscript.com/api/v1/resolve?handle=@mkbhd" \
-H "Authorization: Bearer sk_live_..."응답
{
"success": true,
"data": {
"channel_id": "UCBJycsmduvYEL83R_U4JriQ",
"title": "Marques Brownlee",
"handle": "http://www.youtube.com/@mkbhd",
"resolved_via": "scrape"
}
}/playlist페이지당 1크레딧재생목록의 동영상을 가져옵니다. 현재는 첫 페이지만 반환합니다 - has_more로 추가 동영상 존재 여부를 알 수 있지만, 추가 페이지 조회는 아직 지원되지 않습니다.
| 매개변수 | 필수 여부 | 설명 |
|---|---|---|
list | 예 | 재생목록 ID 또는 URL |
요청
curl "https://getyoutubetranscript.com/api/v1/playlist?list=PLxxx" \
-H "Authorization: Bearer sk_live_..."응답
{
"success": true,
"data": {
"playlist_id": "PLxxx",
"title": "...",
"videos": [ { "position": 1, "id": "...", "title": "...", "channel": { "name": "..." } } ],
"has_more": true
}
}오류
오류 발생 시 HTTP 상태 코드와 함께, 분기 처리에 사용할 수 있는 안정적인 code 필드가 포함된 JSON 본문이 반환됩니다:
| 상태 | 코드 | 의미 |
|---|---|---|
| 400 | BAD_REQUEST | 매개변수가 누락되었거나 잘못됨 |
| 401 | MISSING_API_KEY / INVALID_API_KEY | 키가 제공되지 않았거나, 키가 유효하지 않음/취소됨 |
| 402 | PAYMENT_REQUIRED | 크레딧 소진 - 충전하거나 업그레이드하세요 |
| 404 | VIDEO_UNAVAILABLE / TRANSCRIPT_NOT_FOUND | 동영상 또는 리소스를 찾을 수 없음 |
| 429 | RATE_LIMITED | 요금제 등급 대비 요청이 너무 많음 |
| 503 | UPSTREAM_UNAVAILABLE | 일시적인 상위 시스템 문제 - 재시도해도 안전함 |
출시 예정
채널 내부 검색, 채널의 전체 동영상 목록, 전체 재생목록 페이지네이션 기능을 개발 중입니다. RSS를 통한 신규 업로드 추적은 YouTube 측의 무관한 이슈로 인해 일시적으로 이용할 수 없습니다.
AI 도구와 함께 이 API 사용하기
요청을 직접 작성하는 대신 Claude(또는 다른 AI 코딩 도구)가 이 API를 호출하게 하고 싶으신가요? YouTube Transcript 스킬을 다운로드하세요 - 스크립트 가져오기, 검색 등의 방법을 학습시켜 주는 완성된 Claude 스킬입니다.