youtubewc/AI 곡 라벨링
최근 수정 시각: 2026-07-10 22:21:42
AI 곡 라벨링은 youtubewc가 각 곡에 Google Gemini 기반 AI로 분위기·상황·장르 등의 라벨을 붙이는 기능이다. 곡 하나하나에 대해 AI가 제목·채널 등의 정보를 보고 여러 속성을 뽑아내며, 이렇게 만들어진 라벨은 리더보드의 곡별 상세 표시와 자연어 플레이리스트 생성의 필터 재료로 쓰인다. 즉 라벨링은 그 자체가 최종 결과물이라기보다, 곡을 "AI가 이해할 수 있는 형태"로 바꿔 두는 밑작업에 가깝다.
1. 라벨의 구성
한 곡의 라벨은 여러 속성이 묶인 하나의 문서다. 크게 태그형 라벨(여러 개를 붙이는 분류)과 척도·속성 라벨(수치나 단일 값)로 나뉜다.
1.1. 태그형 라벨
곡의 성격을 여러 키워드로 표현하는 라벨이다. 세 종류가 있으며 각각 최소 1개에서 최대 5개까지 붙는다.[1]
| 라벨 | 뜻 | 예시 성격 |
|---|---|---|
| 분위기(moods) | 곡이 자아내는 무드 | 잔잔함, 신남, 몽환적 등 |
| 상황(situations) | 어울리는 순간·장면 | 드라이브, 공부, 새벽 등 |
| 장르(genres) | 음악 장르 | 발라드, 시티팝, 록 등 |
1.2. 척도·속성 라벨
태그 외에, 곡을 요약하거나 수치·단일 값으로 표현하는 라벨들이다.
| 라벨 | 뜻 | 형태 |
|---|---|---|
| 요약(summary) | 곡을 한 줄로 설명 | 짧은 문장 |
| 계절(season) | 곡과 어울리는 계절 | 봄·여름·가을·겨울 중 하나[2] |
| 에너지(energy) | 곡의 활력·강도 | 0~100 |
| 감정가(valence) | 밝음·긍정의 정도 | 0~100 |
| 언어(language) | 가사 언어 | 짧은 문자열 |
| 수위(explicit) | 노골적 표현 여부 | 있음(Explicit) / 없음(Clean) |
| 확신도(confidence) | AI가 이 라벨을 얼마나 확신하는지 | 0~1(백분율로 표시) |
이 밖에 곡을 식별하기 위한 영상 ID·제목·채널명, 그리고 라벨이 만들어진 시각도 함께 기록된다.
2. 라벨링 진행 방식
라벨링은 앱 안에서 곧바로 AI를 돌리는 방식이 아니라, 미라벨 곡 목록을 내보내(export) 앱 바깥에서 배치로 라벨을 만든 뒤 다시 올리는(upload) 방식으로 진행된다. 앱에 내장돼 있던 직접 실행 기능은 비활성화되어 있고, 미라벨 곡을 내보낸 뒤 로컬 배치 결과를 업로드하도록 안내한다.[3]
전체 흐름은 다음과 같다.
- 진행 상황 확인 — 전체 곡 대비 라벨이 채워진 곡의 수와 커버리지(%), 아직 라벨이 없는 곡의 미리보기를 확인한다.
- 내보내기(export) — 아직 라벨이 없는 곡들의 목록을 JSON으로 내보낸다. 이 목록이 배치 라벨링의 입력이 된다.
- 배치 라벨링 — 앱 바깥에서 AI가 각 곡의 라벨을 생성한다(→ 에이전트 API).
- 업로드(upload) — 만들어진 라벨 묶음을 다시 올린다. 이때 각 라벨은 곡 정보와 대조하는 검증을 거치며, 통과한 것만 저장된다.
라벨링은 개별 월드컵(토너먼트) 단위로도, 전체 곡을 아우르는 글로벌 단위로도 진행할 수 있다. 어느 쪽이든 "내보내기 → 배치 → 업로드"라는 골격은 같다.
2.1. 진행률 추적
라벨링이 얼마나 진행됐는지는 커버리지 값으로 추적한다. 리더보드 상단에는 이를 요약한 배지가 표시되는데, 예컨대 라벨 440/472 · 93% 처럼 "라벨이 붙은 곡 수 / 전체 곡 수 · 비율" 형태로 한눈에 보여 준다.[4] 업로드를 반복하며 이 비율을 100%에 가깝게 채워 나가는 것이 라벨링 작업의 목표다.
2.2. 검증과 실패 라벨 재시도
업로드된 라벨은 그대로 저장되는 게 아니라, 곡과 맞는지 하나하나 검증된다. 정의된 속성만 정확히 담고 있는지, 제목·채널이 실제 곡과 일치하는지, 존재하지 않는 곡을 가리키지는 않는지, 배치 안에 중복이 없는지 등을 살핀다. 업로드가 끝나면 저장된 라벨 수·건너뛴 수·유효하지 않은 수와 함께, 문제가 있었던 라벨마다 무엇이 왜 걸렸는지 사유가 리포트로 돌아온다.
- 이미 라벨이 있는 곡은 덮어쓰지 않고 건너뛴다(중복 저장 방지).
- 검증에 실패한 라벨은 리포트의 사유를 보고 고쳐서 다시 올리면 된다 — 문제된 곡만 재라벨링해 재업로드하는 식이다.
- 기존 라벨을 의도적으로 갱신해야 할 때를 위한, 건너뛰지 않고 덮어쓰는 업데이트 경로도 별도로 있다.
3. 라벨이 쓰이는 곳
붙은 라벨은 두 곳에서 활용된다.
3.1. 리더보드의 AI labeling details
리더보드의 각 곡 행에는 "AI labeling details" 상세가 붙는다. 펼치면 그 곡의 요약 문장, 분위기·상황·장르 태그(칩 형태), 그리고 계절·언어·에너지(0100)·감정가(0100)·확신도(%)·수위(Explicit/Clean) 같은 속성이 정리되어 나온다. 라벨이 아직 없는 곡은 "AI labeling not available"로 표시된다.

3.2. 자연어 플레이리스트의 필터 재료
자연어 플레이리스트는 "비 오는 새벽에 어울리는 잔잔한 곡" 같은 문장을 받아 그에 맞는 곡을 골라 주는 기능인데, 이때 AI가 후보를 판단하는 근거가 바로 각 곡의 라벨이다. 곡마다 붙은 요약·분위기·상황·장르·계절·에너지·감정가 등이 통째로 재료가 되어, 문장 속 조건과 맞는 곡이 선택된다. 그래서 라벨링이 채워져 있어야 자연어 플레이리스트를 만들 수 있고, 라벨이 빠진 곡이 남아 있으면 먼저 라벨링을 마치라는 안내가 뜬다.
4. 자동화 라벨링
3단계의 "배치 라벨링"은 사람이 곡을 일일이 보는 대신, 앱 바깥의 자동화로 대량 처리할 수 있다. youtubewc는 별도의 인증 키로 접근하는 에이전트 API를 두어, 외부 자동화(예: Claude Code 스킬)가 미라벨 곡을 내려받아 라벨을 생성하고 다시 업로드하는 과정을 사람 손을 거의 타지 않고 반복하도록 해 준다. 커버리지를 빠르게 100%로 끌어올리는 실질적인 통로다.