TubeScout Hero

MCN 8곳, 매주 반복되는 15분

지금 협업하는 MCN이 8군데다. 매주 "이 채널 어때요?", "요즘 이 크리에이터 핫해요" 같은 메시지가 온다.

유튜브 채널에 들어간다. 구독자 수를 본다. 최근 영상을 하나하나 눌러 조회수를 본다. 댓글 분위기를 읽는다. 쇼츠랑 롱폼은 성과가 다르니까 따로 본다. 그걸 정리하고 다음 채널로 넘어간다. 채널 하나에 15분에서 20분이 걸린다.

그러고 나서 결국 감으로 고른다. 구독자 50만인데 최근 영상 조회수가 3천인 채널, 구독자 5만인데 영상마다 2만 조회를 찍는 채널이 있다고 치자. 숫자로는 후자가 훨씬 낫다. 근데 구독자 수라는 허영 지표에 눈이 가면 전자를 고른다.

문제는 제안받은 인플루언서를 평가할 기준이 명확하지 않다는 거였다. 콘텐츠가 통할지를 숫자로 완벽히 예측할 수 없다는 건 안다. 크리에이터의 톤, 시청자층 성향, 브랜드와의 핏 같은 건 알고리즘이 판단할 영역이 아니다.

그래도 1차로 거를 잣대는 필요했다. "이 채널이 숫자로 보면 건강한가?"를 3초 안에 판단할 기준이다. 그게 있어야 브랜드 핏이나 콘텐츠 퀄리티처럼 진짜 중요한 판단에 시간을 쓸 수 있다.

그래서 만든 게 TubeScout이다.

채널 하나에 3초

유튜브 채널 페이지에 들어가면 오른쪽 위에 점수 카드가 자동으로 뜬다. 총점과 VPS, Cadence, Momentum이 한 번에 보인다.

TubeScout 스코어 카드 데모

15~20분에서 3초로

채널 하나 평가하는 데 걸리던 시간이다. 영상 눌러 보고 댓글 읽고 정리하던 일이 페이지에 들어가는 순간 끝난다.

MCN 8곳, 잣대는 하나

MCN마다 올라오는 후보를 같은 기준으로 비교한다. 1차 필터링이 일관되니 회의도 짧아진다.

팀에서 실제로 쓰는 도구가 됐다

MVP를 팀원에게 넘겼다. 팀원이 디벨롭한 버전이 지금 인플루언서 선정 실무에 쓰인다.

바이브코딩 첫 작품, 하루 8시간

이 프로젝트는 내 바이브코딩 첫 작품이다. 지금은 클로드 코드(Claude Code)와 Antigravity를 매일 쓰지만, 이걸 만들 땐 둘 다 써본 적이 없었다. 손에 있던 건 Cursor와 Gemini뿐이었다.

5년째 하는 스터디 모임이 있다. 이름은 마개이너. 이름 그대로 마케팅·개발·디자인 하는 사람들이 모여 같이 공부한다. 그 안에 주식, 크립토, 최근엔 AI 활용까지 다루는 커뮤니티가 따로 생겼다.

거기서 "바이브코딩으로 하루 만에 MVP 만들기" 공유회가 열렸다. 나는 실무에서 제일 답답했던 문제 하나를 들고 갔다.

PRD부터 썼다. 스코어링 지표의 가중치와 정규화 공식, API 쿼터를 아끼는 호출 전략(비용 100인 search.list 대신 비용 1인 playlistItems.list 사용), Shorts와 Videos를 duration으로 나누는 방식까지. 설계 결정은 전부 문서에 먼저 적었다.

구현은 Cursor와 Gemini가 했다. Chrome Extension Manifest V3 구조, Content Script의 UI 렌더링, Service Worker의 API 호출 로직, 스켈레톤 애니메이션까지. 나는 설계와 방향만 잡았다.

1시간

PRD/TRD 작성과 스캐폴드. manifest, content script, service worker, 기본 카드 UI.

2시간

YouTube Data API 연동. channels.list, playlistItems.list, videos.list를 차례로 부른다. 채널 하나에 쿼터 3만이 든다.

2시간

스코어링 엔진. VPS, Cadence, Momentum을 계산해 가중 합산한다. 로딩 중 스켈레톤이 사라지고 실데이터가 페이드인되게 바꿨다.

3시간

찜하기, 에러 처리, 캐시(5분 TTL, LRU 50개), 지수 백오프 재시도, 패키징.

합쳐서 8시간이다. PRD 작성부터 돌아가는 크롬 확장까지.

뭘 기준으로 점수를 매기나

솔직히 구현보다 이 고민이 훨씬 오래 걸렸다.

인플루언서를 평가하는 지표는 수십 가지다. 구독자 수, 조회수, 좋아요율, 댓글 참여율, 업로드 빈도, 성장 추세, 시청 시간, 클릭률. 전부 넣을 수도 있었다. 근데 지표가 많다고 점수 체계가 좋아지진 않는다.

인플루언서를 직접 골라본 경험으로 진짜 중요한 질문 세 개를 정했다.

  1. 이 채널은 살아 있나? (구독자 대비 실제 조회가 나오나)
  2. 이 채널은 꾸준한가? (협업 콘텐츠를 제때 올려줄 수 있나)
  3. 이 채널은 지금 뜨고 있나? (상승세인가, 하락세인가)

이 질문이 그대로 지표가 됐다.

Scoring Breakdown

지표 1: VPS, 구독자 대비 조회율 (가중치 50%)

Views Per Subscriber. 구독자 1,000명당 영상 하나에 조회가 몇 번 나오는지 본다.

마케터가 인플루언서에게 기대하는 건 결국 노출이다. 다른 지표가 아무리 좋아도 영상 조회수가 구독자에 비해 너무 낮으면 협업 효과가 없다.

구독자 100만 채널의 최근 영상이 평균 5천 조회면 그 채널은 "죽었다." 반대로 구독자 3만인데 영상마다 1만 조회가 나오면 활성 팬덤이 있는 거다.

medianViews / max(1000, subscribers) * 1000

평균 대신 중앙값(median)을 쓴다. 바이럴 영상 하나가 평균을 끌어올리는 걸 막으려는 거다. 상하위 10%를 잘라내는 이상치 제거도 넣었다. MCN이 "이 영상 조회수 100만이에요!" 하고 영상 하나만 내세울 때가 있는데, 중앙값이면 그런 착시가 걸러진다.

가중치를 50%로 제일 높게 잡은 이유도 이거다. 이 지표 하나만 봐도 채널이 실제로 얼마나 영향력이 있는지 대략 보인다.

지표 2: Cadence, 업로드 주기 안정성 (가중치 30%)

꾸준히 올리는 채널인지, 띄엄띄엄 올리는 채널인지 본다.

이 지표는 순전히 실무 경험 때문에 넣었다. 업로드 주기가 불규칙한 채널은 협업 콘텐츠도 불규칙하게 올린다. 납품일을 맞추기 어렵다. 주 2회, 주 3회처럼 꾸준히 올리는 채널은 콘텐츠 운영에 진심이고 협업 일정도 잘 지킨다.

CV(변동계수) = 표준편차 / 평균 업로드 간격
score = max(0, 100 * (1 - CV / 0.5))

변동계수(Coefficient of Variation)를 썼다. 0이면 완벽하게 규칙적인 업로드고, 0.5 이상이면 0점이다. 단순한데 잘 맞는다. 일주일에 한 번이든 이틀에 한 번이든, 얼마나 자주 올리는지는 안 보고 얼마나 일정한지만 잰다.

지표 3: Momentum, 성장 추세 (가중치 20%)

점수가 같아도 최근 성과가 오르는 채널과 내려가는 채널은 완전히 다르다.

ratio = avg(최근 3개 조회수) / avg(이전 5개 조회수)
score = min(100, max(0, (ratio - 0.8) * 250))

ratio가 1.0이면 현상 유지, 1.2 이상이면 확실한 상승세, 0.8 이하면 하락세다. 지금 뜨는 채널을 잡으려면 이 지표가 꼭 있어야 한다. 한때 잘 나갔다가 내리막에 들어선 채널을 걸러낼 때도 쓴다.

가중치를 20%로 제일 낮게 잡은 데는 이유가 있다. 모멘텀은 출렁임이 크다. 영상 하나가 우연히 바이럴 되면 모멘텀이 확 뛰는데, 그게 계속 갈 성장인지는 모른다. 참고 지표로는 좋은데 핵심 판단 근거로 삼기엔 불안하다.

뺀 것과 나눈 것

처음엔 지표 5가지를 다 넣으려고 했다. VPS, Cadence, Momentum에 좋아요율, 댓글 참여율까지.

근데 데이터를 실제로 돌려보니 문제가 보였다.

좋아요 수를 비공개로 해 둔 채널이 꽤 많다. YouTube가 좋아요 수 비공개 옵션을 준 뒤로 특히 기업 채널이 이걸 많이 끈다. 핵심 지표에 넣으면 이런 채널은 점수가 깨진다.

댓글 참여율은 장르마다 차이가 너무 크다. 뷰티나 먹방 채널은 댓글이 활발하고 테크나 교육 채널은 원래 댓글이 적다. 장르 보정 없이 똑같이 적용하면 점수가 한쪽으로 쏠린다.

그래서 MVP에는 장르와 상관없이 공정하게 돌아가는 지표 3가지만 남겼다.

대신 꼭 나눠야 하는 게 하나 있었다. 같은 채널이어도 쇼츠와 롱폼은 성과가 완전히 다르다. 쇼츠에서 100만 조회를 찍는 채널이 롱폼에선 5천 조회도 안 나오는 경우가 흔하다. 반대도 있다.

TubeScout은 YouTube Data API의 contentDetails.duration을 파싱해 60초 미만은 Shorts, 60초 이상은 Videos로 자동 분류한다. Videos 탭에선 롱폼 점수, Shorts 탭에선 쇼츠 점수로 알아서 바뀐다. SocialBlade나 Noxinfluencer는 채널 전체 통계만 보여주고 쇼츠와 롱폼을 나눠 점수를 매기진 않는다.

8년차 마케터의 8시간

공유회에서 만든 건 뼈대만 잡은 MVP였다.

그 뼈대를 팀원에게 넘겼다. 스코어링 로직의 의도와 가중치를 그렇게 잡은 근거, API 구조를 설명했다. 팀원은 그걸 바탕으로 더 다듬은 툴을 만들었고, 지금 내부에서 인플루언서를 고를 때 실제로 쓴다.

하루 만에 만든 MVP가 그대로 완성된 도구가 된 건 아니다. 근데 "이런 기준으로 채널을 평가하자"는 틀을 잡은 게 컸다. 틀이 있으니 팀원이 어디를 고도화할지도 분명해졌다. MCN에서 제안이 오면 "이건 됨, 이건 안 됨"을 같은 기준으로 판단하게 됐다.

VPS·Cadence·Momentum 세 지표는 알고리즘이 고른 게 아니다. 8년 동안 인플루언서 마케팅을 하며 쌓인 판단으로 골랐다. 좋아요율을 뺀 것도, 쇼츠와 롱폼을 나눈 것도 그렇다. 이 설계가 없었으면 Cursor와 Gemini가 코드를 아무리 빨리 짜도 팀에서 쓰는 도구는 안 나왔다.

코드는 AI가 짰지만 무엇을 만들지는 내가 정했다.