유튜브 데이터 분석 사이트 대신 API로 원본 데이터 받아오기
블링·플레이보드 같은 유튜브 데이터 분석 사이트가 보여주는 채널 통계와 조회수 추이를 API로 직접 받는 방법을 실제 요청·응답으로 보여드리고, 사이트가 나은 경우도 솔직히 적었어요.
유튜브 데이터 분석 사이트를 검색하면 블링, 플레이보드, 녹스인플루언서, 소셜블레이드 같은 이름이 가장 먼저 나와요. 이 사이트들이 화면에 뿌려주는 구독자 수, 최근 영상 통계, 채널 순위는 결국 원본 데이터를 각자의 대시보드로 감싼 것이고, 그 원본은 API 키 하나로 직접 받아올 수 있어요. 이 글에는 2026년 8월 16일에 실제로 보낸 요청과 실제로 받은 응답을 그대로 실었고, 사이트를 쓰는 게 더 나은 경우도 숨기지 않고 짚었어요.
유튜브 분석 사이트가 화면에 보여주는 데이터, 원본은 어디서 오나요?
유튜브 분석 사이트를 열면 채널 개요, 최근 영상 표, 댓글 반응, 대시보드 요약까지 한 화면에 다 떠요. 이 화면들은 실제로는 몇 개의 원본 호출로 쪼개져요. YouTube 표면 전체는 28개 엔드포인트인데, 이 글은 그중 실제로 호출을 확인한 6개만 다뤄요.
| 분석 사이트가 보여주는 것 | 대응 엔드포인트 | 메서드 | 크레딧 |
|---|---|---|---|
| 채널 개요 (구독자·영상 수·개설일·국가) | /v1/youtube/channel | GET | 1 |
| 최근 영상 표 (조회·좋아요·댓글·길이) | /v1/youtube/channel/videos | GET | 1 |
| 영상 상세 (원문 제목·태그·카테고리·유료광고 표기) | /v1/youtube/videos | POST | 5 (최대 50개) |
| 댓글 반응 | /v1/youtube/video/comments | GET | 1 |
| 자막·대본 전문 | /v1/youtube/video/transcript | GET | 3 |
| 대시보드 개요 화면 | /v1/youtube/profile/full | GET | 5 |
| 통합 검색 (14개 플랫폼 동시 질의) | /v1/search/everywhere | GET | 20 |
자막·대본은 대부분의 분석 사이트가 안 주는 항목이에요. 실제로 38분 30초짜리 영상 한 편을 불러보니 세그먼트 1,217개, 총 5,166단어가 3크레딧에 통째로 왔어요.
댓글은 1크레딧에 20개가 좋아요·답글 수까지 붙어서 오는데, 댓글 수집만 깊게 파고드는 글은 따로 있어요. → 유튜브 댓글 크롤링, API로 5분 만에 끝내는 방법
나머지 22개 엔드포인트(커뮤니티 글, 재생목록, 라이브, Shorts, 해시태그 검색, 자막 파일, 오디오/비디오 스트림 등)는 YouTube 엔드포인트 전체 목록에서 볼 수 있어요.
유튜브 채널 분석 사이트와 API, 실제로 뭐가 다른가요?
유튜브 채널 분석 사이트가 나은 경우와 API가 나은 경우는 갈리는 지점이 분명해요.
분석 사이트가 나은 경우 — 즉석 대시보드 화면(가입만 하면 바로 보여요), 비개발자용 리포트, 그리고 시계열·히스토리예요. 구독자 추이 그래프나 일별 조회수 누적처럼 시간에 걸쳐 쌓인 값은 분석 사이트의 몫이에요.
API가 나은 경우 — 원본 필드를 그대로 받아 직접 조합하거나, 여러 채널을 자동으로 반복 호출하는 경우예요. 쿼터를 지키는 선에서는 사람이 매번 화면을 클릭하지 않아도 돼요.
실제 가격으로 보면 격차가 더 명확해요. 뷰트랩 Gold 요금제는 30일에 영상 검색 100회로 ₩209,800이에요. 공식 유튜브 API는 같은 100회를 하루치로 무료로 줘요. 블링은 월 $999.99를 내는 최고 요금제도 히스토리는 30일까지만 보여줘요.
정직한 한계: API 응답에는 시계열이 없어요. 구독자 추이 그래프나 일별 조회수 누적이 필요하면 직접 쌓거나 Monitors(/v1/monitors/*)로 예약 실행해야 해요. 유튜브 데이터 분석 사이트를 계속 쓰는 게 맞는 경우는 바로 이 지점이에요.
채널 개요, 한 번의 호출로 받기
채널 개요 화면에 해당하는 호출부터 시작해요.
curl -s "https://www.socialcrawl.dev/v1/youtube/channel?handle=syukaworld" \
-H "x-api-key: $SOCIALCRAWL_API_KEY" \
-H "Cache-Control: no-cache"
실제 응답이에요 (x-cache: MISS, req-CyQtIADeXE35DWai):
{
"success": true,
"platform": "youtube",
"endpoint": "/v1/youtube/channel",
"data": {
"author": {
"id": "UCsJ6RuBiTVWRX156FVbeaGg",
"username": "@syukaworld",
"display_name": "슈카월드",
"bio": "각종 문의 : ad@syukafriends.com으로 부탁드립니다.\n저널리즘을 지키는 채널이 되겠습니다.\n감사합니다.\n\n",
"followers": 3720000,
"posts_count": 2347,
"url": "https://www.youtube.com/channel/UCsJ6RuBiTVWRX156FVbeaGg",
"joined_at": "2015-04-25",
"ext": {
"country": "KR",
"keywords": "슈카 경제 시사 상식 토크",
"madeForKids": false,
"related_playlists": { "uploads": "UUsJ6RuBiTVWRX156FVbeaGg" }
}
},
"computed": {
"engagement_rate": null,
"language": "ko",
"content_category": "other",
"estimated_reach": null
}
},
"credits_used": 1,
"credits_remaining": 170400,
"request_id": "req-CyQtIADeXE35DWai",
"cached": false
}
1크레딧으로 구독자 3,720,000명, 영상 2,347개, 개설일 2015-04-25, 국가 KR, 채널 키워드까지 들어와요. ext.related_playlists.uploads의 재생목록 id는 다음 호출로 넘어가는 입구가 돼요.
정직한 한계: 이 응답에는 채널 누적 조회수가 없어요. computed.engagement_rate와 estimated_reach도 채널 단위에서는 null이에요(영상 단위에서는 채워져요). ?format=raw로 다시 불러봐도 마찬가지였어요.
최근 영상 목록, 그리고 한글 제목이 영어로 바뀌는 문제
대시보드가 그래프로 그려주는 최근 영상 표부터 받아볼게요.
curl -s "https://www.socialcrawl.dev/v1/youtube/channel/videos?handle=syukaworld&sort=latest&includeExtras=true" \
-H "x-api-key: $SOCIALCRAWL_API_KEY" \
-H "Cache-Control: no-cache"
1크레딧으로 30편이 오는데(req-GYl5bht5PYUub2Pj), 최근 10편만 표로 정리하면 이래요.
| # | 영상 id | 게시일 | 조회수 | 좋아요 | 댓글 | 길이(초) | engagement_rate | estimated_reach |
|---|---|---|---|---|---|---|---|---|
| 1 | XyXohIM3ZO0 | 2026-08-15 | 99,083 | 1,259 | 1,000 | 1,657 | 0.022799 | 118,900 |
| 2 | vSWPtH9V7so | 2026-08-13 | 405,828 | 4,307 | 825 | 1,793 | 0.012646 | 486,994 |
| 3 | pV8p4PcXvMs | 2026-08-12 | 418,515 | 4,351 | 629 | 2,167 | 0.011899 | 502,218 |
| 4 | QIynCaN5oNo | 2026-08-11 | 390,020 | 3,993 | 1,700 | 2,039 | 0.014597 | 468,024 |
| 5 | 2Y-4jWb4qBA | 2026-08-10 | 359,680 | 5,251 | 1,300 | 1,877 | 0.018213 | 431,616 |
| 6 | 40r95kRLnsU | 2026-08-08 | 437,457 | 4,315 | 758 | 1,892 | 0.011597 | 524,948 |
| 7 | 2LgOD1pZHVY | 2026-08-06 | 345,141 | 3,789 | 982 | 1,564 | 0.013823 | 414,169 |
| 8 | Lqo2SEMdVMM | 2026-08-05 | 403,632 | 5,301 | 1,000 | 1,367 | 0.015611 | 484,358 |
| 9 | Zcs3uzxymd0 | 2026-08-04 | 546,828 | 5,872 | 806 | 1,635 | 0.012212 | 656,194 |
| 10 | tT1Km_wKo_M | 2026-08-03 | 847,773 | 9,211 | 2,000 | 2,310 | 0.013224 | 1,017,328 |
문제는 여기서 시작해요. text 필드가 한국어 원문이 아니라 유튜브가 자동 번역한 영어로 와요. "Fewer Short Men, More Tall Men.", "Why hamburgers are failing in the US but thriving in Korea"처럼요. 자동 번역된 제목 때문에 computed.language 감지도 어긋나요. 한국 채널인데도 30개 중 18개가 "en", 11개가 null, 1개가 "nl"로 잡혔어요. engagement.comments도 1,000 / 1,700 / 2,000처럼 반올림된 값이에요.
라이브 데이터라는 증거도 하나 있어요. tT1Km_wKo_M 영상의 조회수가 이 호출과 다음 호출(42초 뒤) 사이에 847,773에서 847,775로 실제로 움직였어요.
이걸 고치는 방법이 hl=ko예요. 같은 영상 5편을 이번엔 배치 상세로 다시 불러요.
curl -s -X POST "https://www.socialcrawl.dev/v1/youtube/videos" \
-H "x-api-key: $SOCIALCRAWL_API_KEY" \
-H "Content-Type: application/json" \
-H "Cache-Control: no-cache" \
-d '{
"ids": ["tT1Km_wKo_M","Zcs3uzxymd0","40r95kRLnsU","pV8p4PcXvMs","vSWPtH9V7so"],
"hl": "ko"
}'
5크레딧이고(req-XNRmBx3gJ21yaP85), 원문 제목이 그대로 돌아와요.
| 영상 id | 원문 제목 (hl=ko) | 호출 2가 준 영어 제목 | 조회수 |
|---|---|---|---|
tT1Km_wKo_M | 코스피 무빙에 엄청난 손실을 입은 개미 군단 | Retail investors hit hard by the KOSPI's insane volatility | 847,775 |
Zcs3uzxymd0 | 도쿄 대지진이 무서워서, 제 2의 수도를 정하고 있는 일본 | Japan Is Preparing a Second Capital Out of Fear of a Massive… | 546,831 |
40r95kRLnsU | 가장 쉽고 타격감 좋은 공급망 타격 작전 | The Easiest and Most Impactful Supply Chain Strike Operation | 437,457 |
pV8p4PcXvMs | 스페인을 뒤흔든 난민 대란 | The Refugee Crisis That Shook Spain | 418,515 |
vSWPtH9V7so | 햄버거가 미국에서 망하고, 한국에서 잘되는 이유 | Why hamburgers are failing in the US but thriving in Korea | 405,867 |
computed.language도 5편 전부 "ko"로 바로잡히고, tT1Km_wKo_M의 comments도 2,000(반올림)에서 2,060(정확값)으로 정정돼요. hasPaidProductPlacement, caption, categoryId 같은 메타데이터도 이 호출에서만 함께 들어와요.
주의: 이 엔드포인트는 POST예요. GET으로 보내면 0크레딧으로 405가 떨어져요.
{
"success": false,
"error": {
"type": "METHOD_NOT_ALLOWED",
"message": "/v1/youtube/videos requires POST, not GET.",
"status": 405,
"doc_url": "https://www.socialcrawl.dev/docs/errors#method-not-allowed"
},
"credits_used": 0,
"credits_remaining": null,
"request_id": "req-KtjO2iNx1CqLqgT7"
}
작은 배신도 하나 있어요. tT1Km_wKo_M의 categoryTitle은 유튜브 기준으로 "Comedy"(categoryId 23)예요. 경제·시사 채널인데도요. 유튜브 카테고리는 크리에이터가 직접 고르는 값이라, 카테고리만 보고 채널을 분류하는 대시보드는 이런 식으로 틀릴 수 있어요.
대시보드 개요 화면, 한 번에 계산해서 받기
분석 사이트 첫 화면의 요약 숫자는 profile/full 한 번으로 계산돼서 나와요.
curl -s "https://www.socialcrawl.dev/v1/youtube/profile/full?handle=syukaworld&posts=25&include=computed" \
-H "x-api-key: $SOCIALCRAWL_API_KEY" \
-H "Cache-Control: no-cache"
실제 응답의 computed와 legs예요 (5크레딧, req-xnvO1Agmd6xm9aXn):
{
"computed": {
"avg_engagement_rate": 0.013681280000000002,
"posts_per_week": 5.45,
"cadence_window_days": 32.1,
"top_post": {
"url": "https://www.youtube.com/watch?v=3ectdcH1a-Q",
"engagement_total": 874133
},
"format_mix": { "video": 25 }
},
"legs": [
{ "endpoint": "/v1/youtube/channel", "status": 200, "credits_used": 1, "latency_ms": 534, "error": null },
{ "endpoint": "/v1/youtube/channel/videos", "status": 200, "credits_used": 1, "latency_ms": 4961, "error": null }
],
"credits_used": 5,
"credits_remaining": 170384,
"request_id": "req-xnvO1Agmd6xm9aXn"
}
최근 25편 기준 평균 참여율 1.37%, 주당 5.45편(32.1일 관측), 톱 영상 참여 합계 874,133 — 대시보드 개요 화면의 숫자가 한 번의 호출로 계산돼서 나와요. legs[]가 안쪽에서 어떤 엔드포인트를 몇 크레딧·몇 ms에 밟았는지도 그대로 보여줘요.
정직한 한계: 여기서 나오는 값은 전부 지금 시점의 스냅샷이에요. 구독자 추이 그래프, 지난달 대비 증감, 조회수 시계열 — 분석 사이트가 매일 저장해 두는 그 부분은 이 응답에 없어요. 필요하면 직접 저장하거나 Monitors(/v1/monitors/*)로 같은 레시피를 주기 실행해 웹훅으로 받아야 해요.
검색어 하나로 14개 플랫폼에서 동시에
여기서부터는 분석 사이트에는 아예 없는 기능이에요. 채널명 하나를 유튜브뿐 아니라 여러 소셜 플랫폼에 동시에 질의할 수 있어요. 낱개로 유튜브 검색 API를 부르는 것과 달리, 한 번의 요청이 나머지 13개 소스까지 함께 훑어요.
curl -s -G "https://www.socialcrawl.dev/v1/search/everywhere" \
--data-urlencode "query=슈카월드" \
--data-urlencode "lookback_days=30" \
-H "x-api-key: $SOCIALCRAWL_API_KEY" \
-H "Cache-Control: no-cache"
20크레딧, 실측 약 35초 걸렸어요 (req-YV88Fy5rhzwOzJQd).
{
"data": {
"sources_called": ["tiktok","linkedin","youtube","tavily","youtube-hashtag","pinterest","perplexity","instagram","rumble","tiktok-hashtag","threads","reddit","twitter-ai-search","instagram-hashtag"],
"sources_succeeded": ["linkedin","youtube","tavily","youtube-hashtag","pinterest","perplexity","instagram","rumble","tiktok-hashtag","threads","reddit"],
"sources_failed": {
"tiktok": "fanout source tiktok/search has unsupported upstream kind \"tiktok-api23\"",
"twitter-ai-search": "per-source timeout after 11000ms",
"instagram-hashtag": "per-source timeout after 12000ms"
},
"coverage": 0.7857142857142857,
"partial_failure": false
},
"credits_used": 20,
"credits_remaining": 170364,
"request_id": "req-YV88Fy5rhzwOzJQd"
}
14개 소스 중 11개가 성공하고 3개가 실패했는데, 실패 사유가 응답에 그대로 적혀서 와요. TikTok 검색은 업스트림이 이 종류를 지원하지 않고, X(twitter-ai-search)는 11초, Instagram 해시태그는 12초에서 타임아웃이 났어요. 융합·재랭킹을 거친 상위 항목 중 5개만 발췌하면 이래요.
| 순위 | 소스 | 제목 |
|---|---|---|
| 1 | tavily | 슈카월드 (위키백과) |
| 2 | youtube-hashtag | '슈카월드' 슈카, 당신이 몰랐던 6가지 사실 |
| 4 | threads | 대한민국 경제 유튜브 채널 / 슈카월드 500만 조회수 영상… |
| 5 | threads | 직장인이 사치 좀 부리는 유튜브 30 / 1. 슈카월드… |
| 6 | youtube | 코스피 무빙에 엄청난 손실을 입은 개미 군단 |
6번 항목이 앞에서 다룬 바로 그 영상(tT1Km_wKo_M)이에요. 여기서도 한국어 원문 제목 그대로 상위에 올라와요.
정직한 한계: "14개 플랫폼 전부에서 결과가 온다"고는 못 해요. 이번 실측 커버리지는 0.786이었고, 요금은 성공·실패와 무관하게 정액 20크레딧이 부과됐어요(완전 실패이거나 전부 빈 결과일 때만 전액 환불돼요).
YouTube Data API v3 할당량에 막혔을 때
공식 유튜브 데이터 API로 검색 대시보드를 직접 만들려고 하면 곧 벽에 부딪혀요. 2026년 6월 1일부터 search.list가 독립된 쿼터 버킷으로 분리됐어요. 하루 100회, 1회당 1유닛이고, maxResults를 50으로 채워도 하루 최대 5,000행이 무료 한도의 천장이에요. 페이지를 넘기는 것도 그 100회를 그대로 깎아먹고, 잘못된 요청도 최소 1점이 과금돼요. 리셋은 태평양 표준시 자정이라 한국 시간으로는 오후 4~5시쯤이에요 — 오전에 다 쓰면 그날 저녁까지 복구되지 않아요. 증액은 쿼터 연장 신청 폼을 내고 구글 심사를 거쳐야 해요. 이 한계 때문에 직접 대시보드를 만들다가 데이터를 감싸 파는 사이트나 외부 API로 옮겨가는 경우가 많아요.
시작하는 법
1. 키 받기. socialcrawl.dev에서 가입하면 API 키가 바로 발급되고, 무료 크레딧도 함께 받아요. 정확한 크레딧 수는 자주 바뀌니 가격 페이지에서 확인하는 게 맞아요.
2. 가장 작은 첫 호출. 코드를 짜기 전에 키가 살아 있는지부터 0크레딧으로 확인할 수 있어요.
curl -s "https://www.socialcrawl.dev/v1/credits/balance" \
-H "x-api-key: $SOCIALCRAWL_API_KEY"
{
"success": true,
"data": { "balance": 170401, "recent_deductions": 360 },
"credits_used": 0,
"credits_remaining": 170401,
"request_id": "req-8Hk6U8i1wKOBBaXd",
"cached": false
}
3. 이 글 재현하기. 아래 한 줄을 붙여넣으면 이 글의 대시보드 개요 호출(5크레딧)이 그대로 재현돼요. 숫자는 그 시점의 라이브 값이라 이 글과는 달라져요.
export SOCIALCRAWL_API_KEY=sc_... # socialcrawl.dev/dashboard 에서 발급
curl -s "https://www.socialcrawl.dev/v1/youtube/profile/full?handle=syukaworld&posts=25&include=computed" \
-H "x-api-key: $SOCIALCRAWL_API_KEY" -H "Cache-Control: no-cache" | jq .data.computed
4. 다음으로 갈 곳. 비주얼 익스플로러에서 코드 없이 응답부터 눈으로 확인하거나, API 문서, YouTube 엔드포인트 전체 목록으로 넘어가면 돼요.
이 글의 호출을 정리하면, 채널 개요·최근 영상·영상 상세·댓글·자막을 한 채널에 한 번씩 돌리면 11크레딧이에요. 여기에 대시보드 개요(profile/full)까지 더하면 16크레딧, 통합 검색까지 더하면 36크레딧이에요.
자주 묻는 질문
YouTube API는 무료로 사용할 수 있나요?
공식 YouTube Data API는 쿼터 안에서는 무료예요. SocialCrawl은 그 위에 통합 스키마와 계산된 필드(engagement_rate, estimated_reach 등)를 얹은 크레딧 기반 유료 API고요. 서로 다른 계층의 제품이에요.
유튜브 API의 일일 할당량은 얼마인가요?
2026년 6월 1일부터 search.list는 하루 100회, 1회당 1유닛으로 제한돼요. maxResults를 50으로 채워도 하루 최대 5,000행이 한도예요. videos.list, channels.list 같은 조회 계열은 대부분 1유닛으로 훨씬 저렴해요.
유튜브 API 비용은 얼마인가요?
공식 API는 쿼터 안에서는 무료고, 초과분은 결제가 아니라 쿼터 연장 신청 폼으로 구글 심사를 거쳐야 늘어나요. SocialCrawl은 엔드포인트별로 크레딧이 정해져 있어요 — 채널 개요 1, 영상 목록 1, 영상 상세 5, 댓글 1, 자막 3, 대시보드 개요 5, 통합 검색 20. 자세한 표는 가격 페이지에서 볼 수 있어요.
유튜버 채널을 어떻게 분석하나요?
대시보드 축에서는 블링·플레이보드 같은 유튜브 데이터 분석 사이트를 열어 채널 이름만 검색하면 돼요. 원본 수치가 필요하거나 여러 채널을 반복해서 돌려야 한다면, 이 글의 예제처럼 API를 직접 호출하는 쪽이 맞아요.
SocialCrawl로 예상 수익도 확인할 수 있나요?
아니요. SocialCrawl은 수익을 추정하지 않고 원본 통계만 보여줘요. 수익 추정이 필요하면 분석 사이트가 자체 모델로 계산해 보여주는 값을 쓰는 게 맞아요.
유튜브 말고 다른 플랫폼 데이터도 API로 받을 수 있나요?
네, 21개 플랫폼을 하나의 통합 스키마로 받을 수 있어요. 이 글의 /v1/search/everywhere 예제가 그중 여러 플랫폼을 한 번에 훑는 방식이에요.
함께 읽으면 좋은 글
유튜브 댓글 크롤링, API로 5분 만에 끝내는 방법
유튜브 댓글 크롤링, API 호출 한 번이면 끝나요. 공식 API 할당량 계산법과 대댓글 5개 제한의 함정, 4가지 방법 비교표까지 코드로 정리했어요.
소셜 리스닝, API 하나로 모든 SNS를 한 번에 보는 법
소셜 리스닝을 API 하나로 직접 만드는 법이에요. 인스타그램·유튜브·틱톡 공식 데이터 접근의 진짜 제약과 코드 예제, 썸트렌드 비교까지 담았어요.
인스타 해시태그 몇 개? 1,077개를 세어봤어요
한국어 게시물 1,077개를 세어 보니 해시태그 중앙값은 5개였어요. 47%가 정확히 5개를 달았고, 20개를 넘긴 건 6.6%뿐이에요. 2026년 8월 7일 실측이에요.
