channel laboratory / distribution report
게시 후 경과일별 조회 분포: 단면 사진이 말하는 것과 말하지 못하는 것
수집 시점 기준 게시 후 경과일 구간별 조회수 분포를 공개 코퍼스로 정리한 리서치. 성장 곡선이 아니라 단면 자료라는 정체와 표본 구성 편향을 함께 해석합니다.
research question
수집 시점 기준 게시 후 경과일 구간별로 조회수 분포는 어떻게 다른가. 이 단면 분포는 영상 조회수가 시간에 따라 쌓이는 모양을 어디까지 대신 보여줄 수 있는가?
distribution plate
분포 판독표
| 경과일 구간 | 영상 수 | p10 조회 | 중앙 조회 | p90 조회 | 분포 절개도 |
|---|---|---|---|---|---|
| 게시 후 7일 이내 | 75편 | 307회 | 34,792회 | 2,035,400회 | |
| 8~30일 | 116편 | 20,230회 | 137,571회 | 4,627,709회 | |
| 31~90일 | 113편 | 29,180회 | 1,116,665회 | 122,612,870회 | |
| 91~365일 | 132편 | 74,967회 | 1,933,265회 | 15,089,522회 | |
| 1년 초과 | 39편 | 821,526회 | 3,176,498회 | 14,572,019회 |
게시 후 7일 이내 · 채널 구성
| 채널 | 영상 수 |
|---|---|
| Vox | 15편 |
| Linus Tech Tips | 14편 |
| TED | 13편 |
| MIT OpenCourseWare | 10편 |
| National Geographic | 5편 |
| BBC Earth | 4편 |
| CrashCourse | 3편 |
| Mark Rober | 2편 |
| Marques Brownlee | 2편 |
| Veritasium | 2편 |
| Computerphile | 1편 |
| Kurzgesagt – In a Nutshell | 1편 |
| MrBeast | 1편 |
| Numberphile | 1편 |
| colinfurze | 1편 |
8~30일 · 채널 구성
| 채널 | 영상 수 |
|---|---|
| National Geographic | 20편 |
| TED | 12편 |
| BBC Earth | 11편 |
| Linus Tech Tips | 11편 |
| Vox | 10편 |
| Veritasium | 8편 |
| MIT OpenCourseWare | 7편 |
| Marques Brownlee | 7편 |
| Kurzgesagt – In a Nutshell | 6편 |
| MrBeast | 6편 |
| Computerphile | 5편 |
| CrashCourse | 4편 |
| Mark Rober | 3편 |
| Numberphile | 3편 |
| Practical Engineering | 2편 |
| SmarterEveryDay | 1편 |
31~90일 · 채널 구성
| 채널 | 영상 수 |
|---|---|
| MrBeast | 18편 |
| Kurzgesagt – In a Nutshell | 14편 |
| Marques Brownlee | 14편 |
| Veritasium | 13편 |
| BBC Earth | 10편 |
| CrashCourse | 10편 |
| MIT OpenCourseWare | 8편 |
| Computerphile | 7편 |
| Mark Rober | 5편 |
| Numberphile | 5편 |
| Practical Engineering | 4편 |
| colinfurze | 3편 |
| SmarterEveryDay | 1편 |
| Vsauce | 1편 |
91~365일 · 채널 구성
| 채널 | 영상 수 |
|---|---|
| Vsauce | 24편 |
| Practical Engineering | 18편 |
| Numberphile | 16편 |
| Mark Rober | 15편 |
| colinfurze | 15편 |
| Computerphile | 12편 |
| NileRed | 11편 |
| CrashCourse | 8편 |
| SmarterEveryDay | 5편 |
| Kurzgesagt – In a Nutshell | 4편 |
| Marques Brownlee | 2편 |
| Veritasium | 2편 |
1년 초과 · 채널 구성
| 채널 | 영상 수 |
|---|---|
| SmarterEveryDay | 18편 |
| NileRed | 14편 |
| colinfurze | 6편 |
| Practical Engineering | 1편 |
집계 감사. 원자료 475편 가운데 475편을 경과일 구간에 배정했고, 게시 시각 누락·미래 시각으로 제외된 영상은 0편입니다. 어느 구간에도 배정되지 않은 영상은 0편이며, 구간 표본이 15편 미만이면 분위수는 숨깁니다.
pathology notes
판독 소견
소견 01
먼저 이 자료의 정체를 분명히 해야 합니다. 이것은 한 영상을 오래 추적한 성장 곡선이 아니라 2026.06.26 (UTC) 하루에 찍은 단면 사진입니다. 7일 이내 구간과 1년 초과 구간에는 서로 다른 영상들이 들어 있습니다. 구간 사이 중앙값 차이를 한 영상이 시간이 지나며 이만큼 자란다로 읽으면 해석이 뒤집힙니다. 읽을 수 있는 것은 경과일이 다른 영상들이 지금 어디에 놓여 있는가까지입니다.
소견 02
구간 구성에는 편향이 하나 심겨 있습니다. 코퍼스가 채널마다 최근 업로드 25편을 담는 방식이라, 오래된 구간에 남은 영상은 업로드 주기가 긴 채널의 것뿐입니다. 매주 올리는 채널의 1년 전 영상은 이 표본에 아예 없습니다. 오래된 구간의 분포는 오래된 영상의 성질이라기보다 뜸하게 올리는 채널의 성질을 상당 부분 반영한다고 봐야 합니다. 구간별 채널 구성표를 함께 공개하는 이유입니다.
소견 03
그 한계를 얹은 채로도 읽을 만한 소견은 있습니다. 이른 구간의 중앙값 (34,792회)과 오래된 구간의 중앙값(3,176,498회)을 견주면, 이 표본의 영상들이 조회수를 초기에 몰아 받는지 긴 꼬리에서 계속 쌓는지에 대한 대략의 인상은 잡힙니다. 다만 이 인상은 채널 구성이 뒤섞인 평균적 그림일 뿐, 어떤 영상이 롱테일을 타는지는 이 자료가 답하지 못합니다.
소견 04
시각의 정의도 한 줄 적어둡니다. publishedAt은 영상이 게시된 시각이고, 공식 문서는 이것이 업로드 시각과 다를 수 있다고 명시합니다. 예약 공개나 비공개에서 전환된 영상이라면 경과일이 체감과 어긋날 수 있습니다. 수집 시각과의 차이로 계산한 경과일은 그 오차를 포함한 값입니다.
measurement ledger
무엇을 어떻게 쟀나
| 지표 | 원본 파일 | JSON 위치 | API 필드 유래 | 계산 | 검증 범위 |
|---|---|---|---|---|---|
| 게시 후 경과일(구간 분류 기준) | corpus-raw.json | fetchedAt과 channels[].videos[].publishedAt의 차 | videos.list snippet.publishedAt (게시 시각, 업로드 시각과 다를 수 있음) | ageDays = floor((Date(fetchedAt) − Date(publishedAt)) ÷ 86,400,000ms) | 빌드 시 원자료 파생 |
| 경과일 구간별 조회수 중앙값·p10·p90 | corpus-raw.json | channels[].videos[].viewCount를 AGE_BUCKETS로 그룹 | videos.list statistics.viewCount | 구간별 viewCount의 p10·p50·p90(선형보간 분위수, Math.round) | 빌드 시 원자료 파생 |
| 경과일 구간별 영상 수 | corpus-raw.json | AGE_BUCKETS 그룹별 개수 | 표본 구성 공개용 | 구간별 영상 수 집계 | 빌드 시 원자료 파생 |
- 전 영상에 대해 ageDays = floor((Date(raw.fetchedAt) − Date(video.publishedAt)) ÷ 86,400,000)을 계산한다.
- publishedAt이 없거나 미래(음수 경과일)인 영상은 제외하고 제외 건수를 기록한다(이 스냅샷에서는 0편 예상).
- AGE_BUCKETS 정의대로 구간에 배정한다(minDays 이상, maxDays 이하; maxDays null은 무제한).
- 구간별 영상 수와 viewCount의 p10·p50·p90을 낸다(compute-corpus.mjs와 같은 선형보간, Math.round).
- 구간 영상 수가 MIN_AGE_BUCKET_VIDEOS(15) 미만이면 분위수를 null로 두고 편수만 표시한다.
- 구간별로 어떤 채널의 영상이 몇 편인지 구성표도 함께 산출한다(구성 편향 공개용).
구조화 데이터 판정. 수치가 커밋된 corpus-raw.json의 publishedAt·viewCount·fetchedAt에서 결정적으로 재현되므로 Dataset 마크업 적합. verify-corpus.mjs 미대조 파생치이므로 빌드 검증 추가를 권한다. 정본 Dataset 노드를 isBasedOn으로 참조할 것.
owner-only confirmation
Studio에서 최종 확인할 자리
Studio › 콘텐츠 › 영상 선택 › 도달범위/개요
시간 경과에 따른 조회수 그래프(영상별)
이 페이지가 못 보여주는 진짜 성장 곡선이 여기에 있다. 내 영상 몇 편의 곡선 모양(초기 집중형 대 롱테일형)을 직접 확인하는 것이 단면 자료보다 정확하다.
Studio › 분석 › 개요 › 기간 비교
첫 24~48시간 조회수와 이후 누적
최근 영상 여러 편의 첫 48시간 조회 비중을 기록해 두면, 내 채널이 초기 몰림형인지 꼬리 축적형인지 내 데이터로 판정할 수 있다.
specimen provenance
검체 출처와 표본 기록
운영자가 지명도·카테고리 다양성을 기준으로 손으로 고른 영어권 대형 채널 시드 목록에서 출발한 편의표본. 각 채널의 업로드 재생목록(UU…)에서 수집 시점 기준 최근 업로드 최대 25편을 담았다. 무작위 표본이 아니며 한국어 채널·소형 채널은 포함되지 않았다.
source
YouTube Data API v3수집 2026-06-26T13:07:47.870Z
사람 확인 2026-06-26
sampling frame
20개 시드해결 19개 · 미해결 1개 (TheGameTheorists)
제외 기준과 스냅샷에서의 실제 영향
| 제외·미공표 기준 | 강제 코드 | 스냅샷 영향 |
|---|---|---|
| 시드 핸들 중 channels.list?forHandle resolve에 실패한 채널은 코퍼스에서 제외 | scripts/build-corpus.mjs resolveChannels() — 실패 시 로그 후 스킵, 조작 금지 | 시드 20개 중 @TheGameTheorists 1개 제외, 19채널 확정 |
| contentDetails.duration이 없거나 0초(예: P0D)인 영상은 길이대 분석에서 제외 | scripts/compute-corpus.mjs bandOf() — unknown 밴드로 분류 후 미집계 | 475편 중 1편(P0D) 제외, 길이대 분석은 474편 기준 |
| viewCount가 0 이하이거나 likeCount·commentCount가 비공개(null)인 영상은 참여율 분석에서 제외 | scripts/compute-corpus.mjs — engagement를 null로 두고 미집계 | 이 스냅샷에서는 해당 영상 0편(475편 전부 참여율 계산 가능) |
| 표본이 MIN_CAT_VIDEOS(15편) 미만인 카테고리는 분위수를 발행하지 않고 skippedCategories에 기록 | scripts/compute-corpus.mjs + scripts/verify-corpus.mjs 전수 대조 | 음악(10) 카테고리 1편이 제외 기록됨 |
| 길이대 표본이 MIN_BAND_VIDEOS(3편) 미만이면 그 밴드의 중앙값·분위수를 null로 발행 | scripts/compute-corpus.mjs medOf()/bands | 채널별 밴드 중앙값 다수가 null(예: 쇼츠형 0편 채널의 배수 미산출) |
공개 API 엔드포인트와 사용 필드
| 엔드포인트 | 사용 목적 | 공식 문서 |
|---|---|---|
| channels.list | 채널 통계(subscriberCount·viewCount·videoCount·hiddenSubscriberCount)와 채널 개설일 | developers.google.com |
| playlistItems.list | 업로드 재생목록(UU…)에서 최근 업로드 영상 ID 수집 | developers.google.com |
| videos.list | 영상별 조회수·좋아요·댓글 수·길이(ISO 8601)·카테고리·게시 시각 | developers.google.com |
재현 절차와 공개 API가 주지 않는 값
reproduction
- node scripts/build-corpus.mjs — 공개 API로 원자료 수집(corpus-raw.json)
- node scripts/compute-corpus.mjs — 분포 산출(corpus-analysis.json)
- node scripts/verify-corpus.mjs — 발행 수치 전수를 원자료와 독립 구현으로 대조(불일치 시 비정상 종료)
studio-only excluded
- RPM
- 유효 시청시간·평균 시청 지속률
- 노출수·CTR
- 트래픽 소스
limitations register
이 자료가 말하지 못하는 것
모든 판독에 공통인 한계
- 이 코퍼스는 무작위 표본이 아니다. 운영자가 지명도를 기준으로 고른 시드 20개 중 resolve에 성공한 영어권 대형 채널 19개의 편의표본이며, 한국어 채널과 소형 채널은 아예 들어 있지 않다. 여기서 나온 분포를 YouTube 전체의 대표값으로 읽으면 안 된다.
- 표본 전원이 이미 살아남은 채널이다. 사라진 채널, 삭제되거나 비공개로 전환된 영상은 수집 자체가 불가능해 분포에 없다. 이 분포를 "노력하면 도달하는 범위"로 읽는 순간 생존편향을 그대로 삼키게 된다.
- 모든 수치는 2026-06-26(UTC) 수집 시점의 스냅샷이다. 조회수·좋아요·구독자는 계속 변하므로 지금 같은 API를 부르면 다른 숫자가 나온다. 이 페이지는 수집·확인 시점을 명시하는 방식으로만 그 한계를 관리한다.
- 이 자료는 분포와 상관의 기록이지 인과의 증명이 아니다. "길이를 바꾸면, 카테고리를 옮기면, 구독자를 모으면 조회수가 오른다" 같은 처방은 여기서 도출되지 않는다. 수익이나 성장을 보장하는 공식은 더더욱 아니다.
게시 후 경과일 판독의 고유 한계
- 단일 시점 스냅샷이라 조회 속도(velocity)나 감쇠 곡선은 계산할 수 없다. 같은 영상을 두 시점 이상 관측해야 가능한 분석이며, 이 페이지는 그것을 흉내 내지 않는다.
- 업로드 재생목록에서 수집하므로 삭제·비공개 전환된 영상은 표본에 없다. 오래된 구간일수록 살아남은 영상만 남는 영상 단위 생존편향이 겹친다.
- 구간별 채널 구성이 균질하지 않다. 오래된 구간은 업로드 주기가 긴 채널에 치우쳐, 경과일 효과와 채널 효과가 분리되지 않는다.
- 표본 15편 미만 구간은 분위수를 표시하지 않는다. 재수집 시 구간별 편수가 달라질 수 있다.
cross-reference
다음 판독으로 이어 보기
record custody
기록·검수 책임
record & editorial
장민석
TubeAnatomy의 편집 필명으로, 공개 필드의 범위를 넘는 경력이나 성과를 주장하지 않습니다. 숫자는 저장소의 원자료와 계산 코드에 묶어 관리합니다.
correction channel
오류 제보
필드 정의, 계산, 표기에서 어긋난 부분을 발견하면 실제 수신 가능한 운영 메일로 알려주세요. 재현 가능한 오류는 원자료와 함께 바로잡습니다.