YouTube Transcripts API
API 한 번의 호출로 YouTube Transcripts 데이터를 받아 가세요. Batch transcript lookup for LLM corpora. POST a JSON body with an `ids` array of 1–100 BARE 11-character YouTube video ids (full watch URLs are not accepted here — use GET /v1/youtube/video/transcript for a single URL); returns one row per id — the transcript (`format: "text"` joins it into one string; `format: "segments"` returns `[{start_ms, duration_ms, text}]`), the resolved `language`, and a `status` of ok / not_found / error / deferred — in input order. Optional `language` picks a preferred caption track. Per-id isolation: one caption-less or deleted video never fails the batch — a caption-less video is `not_found` with `ext.reason: "no_captions"`, a deleted/unavailable one is `not_found` with `ext.reason: "video_gone"`. Billing is per successful row at 3 credits (the single-transcript registry tier); not_found / errored / deferred rows are refunded, so you pay exactly for the transcripts you got. Never cached. Optionally streams Server-Sent Events when the client sends `Accept: text/event-stream`.
2026년 8월 업데이트SocialCrawl 팀이 직접 관리해요
영상 id마다 한 행씩, 한 요청에 최대 100개까지 돌려줍니다. 행마다 대본, 실제로 잡힌 자막 언어, ok 또는 not-found 상태가 붙습니다.
여러 영상의 대본을 한꺼번에 모을 때 사용하세요. 자막이 없는 영상은 not found로 표시될 뿐 요청 전체를 실패시키지 않습니다.
48개 플랫폼을 병렬로 검색합니다
Transcripts API로 무엇을 할 수 있을까요
Transcripts 엔드포인트가 통합 스키마와 계산 필드를 담은 YouTube 데이터를 한 번의 요청으로 보내드려요. 스크래핑 인프라를 직접 만들거나 유지할 필요가 없어요.
요청 예시
curl -X POST -H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"ids":"dQw4w9WgXcQ,9bZkp7q19f0"}' \
"https://www.socialcrawl.dev/v1/youtube/transcripts"import requests
response = requests.post(
"https://www.socialcrawl.dev/v1/youtube/transcripts",
json={
'ids': 'dQw4w9WgXcQ,9bZkp7q19f0',
},
headers={"x-api-key": "YOUR_API_KEY"},
)
data = response.json()const response = await fetch(
"https://www.socialcrawl.dev/v1/youtube/transcripts",
{
method: "POST",
headers: {
"x-api-key": "YOUR_API_KEY",
"Content-Type": "application/json",
},
body: JSON.stringify({
ids: "dQw4w9WgXcQ,9bZkp7q19f0",
}),
},
);
const data = await response.json();파라미터
| 파라미터 | 필수 | 설명 |
|---|---|---|
| ids | 예 | JSON array of 1–100 BARE YouTube video ids (11 characters each, e.g. 'dQw4w9WgXcQ'). Full watch URLs are not accepted here. |
| language | 아니오 | Preferred caption-track language (2-letter code, e.g. 'en', 'ko'). Falls back to the default track when absent or unavailable. |
| format | 아니오 | `text` (default) returns the whole transcript as one joined string; `segments` returns timestamped `[{start_ms, duration_ms, text}]`. |
YouTube Transcripts API는 무엇을 돌려주나요
모든 응답은 하나의 통합 스키마를 따라요. 크레딧을 쓰기 전에 어떤 필드가 돌아오는지, 실제 응답 본문 그대로 확인해 보세요.
응답 예시 보기
{
"success": true,
"platform": "tiktok",
"endpoint": "/v1/tiktok/post/transcript",
"data": {
"id": "7499229683859426602",
"url": "https://www.tiktok.com/@stoolpresidente/video/7499229683859426602",
"transcript": "WEBVTT\n\n\n00:00:00.180 --> 00:00:01.740\nAlright, pizza review time.\n\n00:00:01.741 --> 00:00:03.701\nSal's Pizza Factory. Oh,\n\n00:00:03.702 --> 00:00:05.701\nit's fucking pouring. We're in Charlotte.\n\n00:00:05.702 --> 00:00:07.781\nAlright man, any chance I get a real quick picture?\n\n00:00:07.782 --> 00:00:09.901\nJack or Dwight Howard? I gotta pick one.\n\n00:00:09.902 --> 00:00:10.861\nYeah, Jack.\n\n00:00:10.862 --> 00:00:12.301\nYeah, easy, right?\n\n00:00:12.302 --> 00:00:13.981\nWe're still Jason Williams still with us?\n\n00:00:13.982 --> 00:00:16.381\nYeah, he on the plane right over,\n\n00:00:16.382 --> 00:00:18.261\nout of the blue. Said the following.\n\n00:00:18.262 --> 00:00:21.141\nHe would take Dwight Howard over Shaq at center.\n\n00:00:21.142 --> 00:00:23.461\nAnd says he lie about it for the rest of his life\n\n00:00:23.462 --> 00:00:25.341\nand would never admit to saying that.\n\n00:00:25.342 --> 00 …"
},
"credits_used": 10,
"credits_remaining": 9999,
"request_id": "req-8Kq2ZmR4vT9xLb3P",
"cached": false
}TikTok API에서 가져온 예시예요. 모든 SocialCrawl 엔드포인트가 똑같은 통합 스키마를 돌려주기 때문에, YouTube Transcripts 응답도 같은 필드로 구성돼요.
YouTube Transcripts API는 어떻게 동작하나요
API 키와 함께 GET 요청을 보내면, 통합 스키마와 계산 필드를 담은 깔끔한 JSON이 돌아와요.
메서드
POST
응답 형식
JSON
소셜 미디어 데이터를 몇 초 만에 수집하는 방법
개발자를 위한 가장 빠른 소셜 미디어 스크래핑 API. 월간 활성 사용자 100억 명 이상을 포괄하는 48개 플랫폼에서 프로필, 게시물, 댓글, 분석 데이터를 수집하세요.
모든 플랫폼을 하나의 스키마로
동일한 응답 구조로 48개 플랫폼을 조회하세요. 연동은 한 번이면 충분합니다.
단순 수집을 넘어 계산된 필드 제공
엔드포인트가 해당 지표를 지원하고 계산에 필요한 원본 값이 있을 때, 정규화된 레코드에 engagement_rate, estimated_reach, content_category, language를 함께 담아 바로 활용할 수 있습니다.
코드 한 줄 쓰기 전에, 데이터부터
Visual Data Explorer — URL만 붙여넣으면 결과 카드, 정형화된 테이블, CSV 내보내기 기능을 제공합니다.
import requests
response = requests.get(
'https://www.socialcrawl.dev/v1/tiktok/profile',
params={'handle': 'charlidamelio'},
headers={'x-api-key': 'sc_YOUR_API_KEY'}
)
data = response.json(){
"success": true,
"platform": "tiktok",
"data": {
"author": {
"username": "charlidamelio",
"followers": 152400000
},
"engagement": {
"likes": 12400000000,
"engagement_rate": 0.087
},
"metadata": {
"language": "en",
"content_category": "lifestyle"
}
}
}YouTube Transcripts 데이터, 가져올 준비 되셨어요?
API 키 받고 60초 안에 YouTube 데이터를 받아 가세요.
