1. 소개
Most Replayed 히트맵은 YouTube가 제공하는 시청자 행동 데이터로, 영상의 어느 구간이 가장 많이 재시청되었는지를 시각적으로 보여줍니다.
💡 YouTube 동영상 플레이어 하단의 진행 바 위에 표시되는 그래프 형태의 막대가 바로 Most Replayed 히트맵입니다. 높이가 높을수록 해당 구간을 많이 다시 봤다는 의미입니다.
본 도구는 이 히트맵 데이터를 SVG Path 형태로 추출하여 다음과 같은 분석을 수행합니다:
- 재시청 피크: 가장 많이 다시 본 구간
- 이탈 구간: 시청자가 스킵하거나 이탈한 지점
- 시청 안정성: 구간별 시청 집중도 변동
- 하이라이트 구간: 자동 감지된 인기 구간
👉 이 분석은 YouTube Studio의 내부 Retention 데이터가 아닌, 공개된 히트맵 데이터를 기반으로 한 근사 분석입니다.
2. 데이터 수집 및 품질
YouTube 히트맵은 SVG Path 형식으로 제공됩니다. 이 도구는 Playwright를 사용하여 동영상 페이지에서 SVG 데이터를 실시간으로 스크래핑합니다.
Popularity 정규화
SVG의 Y 좌표(낮을수록 인기 높음)를 분석에 적합한 Popularity 값(0~100)으로 변환합니다.
Y 좌표를 0~100 범위의 popularity로 변환
최소값 5를 적용하여 일관성을 유지하며, 영상 시작/끝점은 0으로 고정됩니다.
타임스탬프 계산
각 데이터 포인트의 위치는 인덱스 기반으로 계산됩니다.
인덱스 기반 타임스탬프 계산
데이터 품질 기준
| 품질 수준 | 기준 | 설명 |
|---|---|---|
| High | ≥ 3 포인트/분 | 정상 분석 가능 |
| Medium | 1~3 포인트/분 | 일부 구간 정확도 저하 가능 |
| Low | < 1 포인트/분 | 분석 결과 신뢰도 낮음 |
품질이 낮은 경우, Cubic Bezier 곡선 기반 보간을 적용하여 데이터 해상도를 향상시킬 수 있습니다.
3. Engagement Curve
Engagement Curve는 영상 전반에 걸친 시청 집중도의 연속 곡선입니다. 시간대별로 시청자들이 얼마나 해당 구간에 집중했는지를 보여줍니다.
입력 데이터
DataPoint[]— position, timestamp, popularity- 출처: 히트맵 SVG 파싱 결과
계산 방식
원본 popularity 값을 0~1 범위로 정규화합니다.
popularity를 0~1 범위로 변환
👉 이동평균을 적용하지 않습니다. 이동평균 적용 시 피크값이 희석되어 Replay Peak와 불일치가 발생하기 때문입니다.
해석 가이드
해당 구간에서 시청자 집중도가 높음. 재시청이 많이 발생한 구간
평균적인 시청 집중도
시청자들이 해당 구간을 스킵하거나 관심이 적었음
시각화 예시
🔥 2:30 지점이 가장 높은 시청 집중도 (Replay Peak)
4. Replay Peak Index
Replay Peak Index는 영상 내에서 시청자가 가장 많이 다시 본 단일 지점을 식별합니다.
입력 데이터
DataPoint[]— popularity 배열
계산 방식
원본 데이터에서 직접 최대 popularity 지점을 탐색합니다.
최대 popularity를 가진 인덱스 탐색
score는 0~1 범위로 정규화
출력 값
- position: 타임라인 상 위치 (0~1)
- timestamp: 초 단위 시간
- score: 정규화된 점수 (0~1)
해석 가이드
매우 인기 있는 순간. 영상의 하이라이트 또는 핵심 콘텐츠일 가능성이 높음
다른 구간들도 비슷하게 인기 있거나, 전체적으로 평탄한 시청 패턴
5. Drop Rate Index & Max Drop Path
Drop Rate Index는 특정 구간에서 시청 집중도가 급격히 감소하는 정도를 측정합니다. 이탈 또는 스킵 가능성이 높은 지점을 식별하는 데 활용됩니다.
노이즈 스무딩 전처리
SVG 데이터는 근사치이므로 미세한 노이즈(Jitter)가 포함될 수 있습니다. 단순 1차 차분은 노이즈를 증폭시키므로, 먼저 3점 이동평균 필터를 적용합니다.
3점 이동평균 스무딩 (중간 포인트)
Drop Rate 계산
스무딩된 데이터에서 1차 차분을 계산하고, 감소분만 추출합니다.
음수(감소)인 경우만 drop score로 변환
최대 drop score로 정규화 → 0~1 범위
Max Drop Path
Max Drop Path는 가장 큰 하락이 발생한 구간의 시작점과 끝점을 반환합니다.
하락폭 (percentage points)
해석 가이드
해당 구간에서 급격한 이탈 발생. 콘텐츠가 흥미를 잃게 하거나, 스킵하고 싶은 부분일 수 있음
시청 흐름이 자연스럽게 유지됨. 이탈이 적은 구간
시각화 예시
📉 2:30 → 3:00 구간에서 최대 이탈 발생 (Max Drop Path)
6. Stability Score
Stability Score는 특정 구간에서 시청자 반응이 얼마나 안정적으로 유지되는지를 측정합니다.
- 변동이 적을수록 안정적 (높은 점수)
- 변동이 클수록 불안정 (낮은 점수)
시간 기반 윈도우 (Time-based Window)
인덱스 고정 방식은 영상 길이에 따라 분석 단위가 달라지는 문제가 있습니다. 이를 해결하기 위해 시간 기반 윈도우(기본 5초)를 사용합니다.
영상 길이에 따라 윈도우 크기를 동적으로 계산
윈도우 크기는 최소 2, 최대 10으로 제한됩니다.
Absolute Threshold 정규화
상대적 Min-Max 정규화는 잔잔한 영상(ASMR 등)에서 미세한 변동을 과대 표현하는 문제가 있습니다. 이를 방지하기 위해 절대적 기준값(Critical Variance)을 사용합니다.
로컬 윈도우 분산 계산
CRITICAL_VARIANCE = 400 (표준편차 약 20에 해당)
평균 안정성
해석 가이드
시청자 반응이 일정하게 유지됨. 콘텐츠 흐름이 자연스러움
일부 구간에서 변동이 있지만 전반적으로 안정적
시청 반응 변동이 큼. 급격한 관심 변화나 불안정한 콘텐츠 구조
시각화 예시
1:30~2:00 구간에서 안정성 저하 (시청 반응 변동 큼)
7. Highlight Density & Segments
Highlight Density는 영상 전체에서 하이라이트 구간이 차지하는 시간 비율을 측정합니다.Highlight Segments는 자동 감지된 개별 하이라이트 구간 목록입니다.
IQR 기반 임계값
YouTube 시청 그래프는 L자형, 스파이크형 등 비정규 분포를 보이는 경우가 많습니다. 평균(Mean)과 표준편차(Std)는 이상치에 취약하므로,중앙값(Median)과 IQR(Interquartile Range)을 사용합니다.
사분위범위: 75번째 백분위수 - 25번째 백분위수
기본 α = 0.5
적응형 임계값 (안정적인 패턴)
시청 패턴이 균일한 영상에서는 IQR이 너무 작아져 거의 모든 구간이 하이라이트로 잡힙니다. 이 경우 상위 25% 백분위수를 임계값으로 사용합니다.
안정적인 패턴으로 판단 시 상위 25% 기준 적용
구간 탐지 알고리즘
- 로컬 피크 탐지: 임계값 이상이면서 양옆보다 높은 포인트
- 양방향 확장: 각 피크에서 임계값의 80%까지 확장
- 인접 구간 병합: 적응형 gap (영상 길이의 0.5%, 최소 3초, 최대 30초)
- 긴 구간 분할: 로컬 딥(상대적 저점)에서 분할
- 필터링: 최소 3초 미만 구간 제외
Density 계산
하이라이트 구간의 총 길이 / 전체 영상 길이
해석 가이드
영상의 많은 부분이 하이라이트로 감지됨. 전반적으로 인기 있는 콘텐츠
몇 개의 뚜렷한 하이라이트 구간이 존재
특정 구간에만 관심이 집중되거나, 전체적으로 낮은 시청 집중도
시각화 예시
✨ 3개의 하이라이트 구간 감지 · Highlight Density: 35%
8. 용어 정리
| 용어 | 설명 |
|---|---|
| Popularity | 0~100 범위로 정규화된 재시청 빈도 |
| Position | 타임라인 상 위치 (0~1) |
| IQR | Interquartile Range, 사분위범위 (Q3 - Q1) |
| Critical Variance | 안정성 판단 기준값 (400, 표준편차 약 20) |
| Time-based Window | 영상 길이에 따라 조정되는 분석 윈도우 |
| Local Dip | 구간 내 상대적 저점 (하이라이트 분할 기준) |
| Cubic Bezier 보간 | 데이터 포인트 부족 시 SVG 곡선 기반 포인트 생성 |