동영상 데이터 수집
크리에이터 대시보드는 현재 누적 값만 보여주고 어제 값은 확인할 수 없습니다. 매일 같은 시간에 스냅샷을 저장해야 일일 증가량과 변경 전후의 변화를 계산할 수 있습니다.
수집은 playwright-cli를 통해 사용자가 이미 로그인한 Chrome에 연결하여 대시보드 페이지를 열고 로드된 데이터를 읽은 후 종료합니다. 읽기 전용이며 어떤 버튼도 클릭하지 않고 설정도 변경하지 않습니다.
준비
- playwright-cli와 이에 맞는 Chrome 확장 프로그램; Chrome에서는 대상 플랫폼에 로그인되어 있어야 합니다. 정기 수집 시 Chrome이 실행 중이어야 하며 컴퓨터가 절전 모드로 전환되지 않아야 합니다.
- 동영상 프로젝트 루트 디렉토리에
video-data.json파일을 넣습니다 (video-data.example.json을 참고하여 수정):
| 필드 | 기본값 | 설명 |
|---|---|---|
time | "12:10" | 매일 수집 시간, HH:MM 형식 (로컬 시간대 기준) |
timezone | 로컬 시간대 | 스냅샷 파일의 날짜 결정 기준 |
platforms | 세 플랫폼 모두 수집 | douyin, weixin, xiaohongshu 중 선택 |
outDir | data/snapshots | 스냅샷 디렉토리, 프로젝트 루트 기준 상대 경로 |
수집 시간은 게시 시간 이후의 고정된 시간을 선택합니다. 각 플랫폼 대시보드의 데이터에는 지연이 있으므로 저녁에 게시된 동영상은 다음 날 정오에 수집하는 것이 안정적입니다.
수집
프로젝트 루트 디렉토리에서 실행합니다 (<skill>은 이 스킬의 디렉토리):
node <skill>/scripts/collect.mjs # 설정된 모든 플랫폼 수집
node <skill>/scripts/collect.mjs douyin # 특정 플랫폼만 보충 수집
- 출력:
<outDir>/<날짜>.json. 같은 날에 다시 실행하면 병합됩니다: 수집된 데이터는 기존 데이터를 덮어쓰고, 실패한 플랫폼은 해당 날짜의 기존 데이터를 유지합니다. - 각 플랫폼 수집이 끝날 때마다 파일에 기록되므로 중간에 중단되어도 수집된 데이터가 손실되지 않습니다.
- 플랫폼이 실패하면 종료 코드는 1이고, 터미널에 어떤 플랫폼에서 어떤 오류가 발생했는지 표시됩니다.
not_logged_in은 로그인 만료를 의미하므로 사용자가 Chrome에서 다시 로그인해야 합니다; 다른 오류는 먼저 수동으로 다시 실행해 보세요 (TikTok은 가끔 일시적으로 실패할 수 있습니다). - 사용자가 Chrome에서 아직 게시하지 않은 폼을 작성 중일 때는 실행하지 마세요: 수집이 새 탭을 열면 폼에서 포커스가 이동될 수 있습니다.
스케줄링
node <skill>/scripts/schedule.mjs는 time 설정에 따라 cron 표현식과 crontab 한 줄을 출력합니다 (출력만 하고 시스템 설정을 변경하지 않습니다). 시간을 변경하려면 video-data.json을 수정하고 스케줄을 다시 만드세요. 다음 두 가지 방법 중 하나를 선택할 수 있습니다:
- 에이전트 내장 스케줄러 (권장): 출력된 cron 표현식을 사용하여 스케줄을 만들고, 프롬프트에 "<프로젝트 경로>에서 video-data 수집을 실행하고, 실패한 플랫폼은 한 번 재시도하며, 각 플랫폼의 게시물 수와 팔로워 수를 보고하세요"라고 작성합니다. 에이전트가 오류를 읽고 보충 수집할 수 있습니다.
- 시스템 crontab: 사용자가 출력된 한 줄을
crontab -e에 직접 추가합니다. 로그는 스냅샷 디렉토리의collect.log에 기록됩니다.
스케줄이나 crontab을 생성/수정하기 전에 먼저 시간과 명령을 사용자에게 보여주세요.
스냅샷 내용
각 플랫폼은 한 섹션으로 구성됩니다: account (닉네임, 팔로워 수), works[] (각 작업의 id, desc, publishedAt, durationSec, metrics) 및 error 또는 warning. 모든 비율은 소수점으로 표시됩니다 (0.55는 55%를 의미).
| 플랫폼 | 추가 데이터 | 제한 사항 |
|---|---|---|
| TikTok | 최근 30일 작업 (최대 12개)의 트래픽 소스, 챕터 클릭률, 검색어, 유지율 곡선 | 작업 목록 최대 5페이지까지 읽음 |
| 위챗 | 계정 일일 조회 수, 좋아요, 공유, 팔로워 추세 (소스별 구분) | 작업 목록 첫 페이지만 읽음; 한 페이지 이상이면 warning 기록 |
| 샤오홍슈 | 노출 수, 썸네일 클릭률, 2초 이탈률, 5초 완전 시청률 | 최근 30일의 동영상 노트만 수집 (최대 12개); 조회 수 100 미만이면 소스 분석 없음 |
측정 기준이 다른 지표는 직접 비교할 수 없습니다: TikTok과 샤오홍슈의 초반 이탈률은 "2초 이탈률"이고, 위챗은 "빠른 스크롤률"(fast_flip_rate)입니다.
데이터 보기
node <skill>/scripts/stats.mjs는 모든 스냅샷을 작업별로 테이블로 정리합니다: 일일 조회 수, 신규 조회 수, 평균 시청 시간(초), 완전 시청률, 초반 이탈률, 상호작용 및 팔로워 증가. 그리고 최신 트래픽 소스, 검색어, 유지율 곡선을 함께 제공합니다.
샘플이 적은 경우, 결론에 "샘플 부족"이라고 표시합니다. 두 동영상을 비교할 때는 먼저 게시 후 동일한 시간을 기준으로 비교하고, 그 다음 변경 사항을 확인합니다.
전달 시 설명할 사항
- 수집된 플랫폼별 게시물 수, 팔로워 수, 실패한 플랫폼과 그 이유.
- 스냅샷 파일 경로.
- 스케줄 설정 시: cron 표현식, 트리거 시간의 시간대, 사용된 스케줄링 방법.