Communitygithub.com

비디오 노트

녹화된 화면 데모, 제품 시연 또는 사용자가 지정한 모든 동영상을 타임스탬프와 번호가 매겨진 펀치 리스트로 변환하고 스틸 이미지를 첨부하여 로컬에서 처리합니다. 사용자가 '비디오 파일 확인', '피드백을 영상으로 남겼어요', '데모 분석' 등을 말하거나 .mov, .mp4, .webm 경로를 드롭할 때 사용하세요.

비디오 노트란 무엇인가요?

이 스킬은 사용자가 제공한 동영상 파일을 분석하여 타임스탬프와 번호가 매겨진 펀치 리스트를 생성합니다. Whisper와 ffmpeg을 로컬에서 실행하므로 동영상이나 오디오 데이터가 클라우드로 전송되지 않아 프라이버시와 보안이 보장됩니다. 주로 화면 녹화를 통한 피드백, 제품 데모 분석 등에 사용되며, 생성된 결과물은 이후 세션에서 영상을 다시 보지 않고도 바로 실행 가능한 작업 목록으로 활용됩니다. Claude Code, Cursor 등 다양한 개발 환경에서 사용할 수 있습니다.

지원 대상~Claude Code~Codex CLI✓Cursor
npx skills add https://github.com/weeeha/video-notes/tree/HEAD/skills/video-notes

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

비디오 노트은(는) 무엇을 하나요?

사용자는 화면을 녹화하면서 음성으로 피드백을 남깁니다. 한 번에 몇 분 정도 녹화하며, 커서가 느려질 때 같은 내용을 반복하기도 합니다. 최종 산출물은 다른 세션이 영상을 시청하지 않고도 실행할 수 있는 펀치 리스트입니다. Whisper와 ffmpeg은 로컬에서 실행되며, 어떤 비디오나 오디오도 클라우드 음성 또는 비전 API로 전송되지 않습니다.

단계

  1. 헬퍼를 실행합니다 (이 파일 옆에 위치).
    python3 "<이 스킬의 폴더>/video-notes.py" "<video>"
    
    파일 옆에 <video>.srt가 있으면 이를 재사용하고, 없으면 CPU에서 whisper --model base.en을 실행합니다 (Apple Silicon 노트북에서 5분 영상 기준 약 2.5분 소요). 출력은 <stem>.notes/ 폴더에 저장됩니다. transcript.md (병합된 세그먼트당 한 행, 프레임 이름 포함) 및 1600px 스틸 이미지. <stem>.notes/가 비디오보다 최신이면 그대로 재사용하며, --force로 강제 재구성, --model turbo로 기본 트랜스크립트가 깨졌을 때, --every 10으로 내레이션이 없는 데모, --sheet로 2x2 접촉 시트, --max-row 5로 말과 화면이 빠를 때 더 많은 프레임 (행은 8초로 제한, 행당 한 프레임), --max-frames 40 기본값.
  2. transcript.md를 읽은 다음 프레임을 봅니다. --sheet를 사용하면 먼저 sheet_NN.jpg를 훑어보고 (한 번에 4프레임; 타일은 왼쪽에서 오른쪽, 위에서 아래로, 프레임 순서대로 배열되므로 시트 01은 프레임 1~4를 담고 왼쪽 위 타일이 가장 이릅니다), 그런 다음 화면을 가리키는 단어( "이 영역", "여기", "이 두 아이콘")가 있거나 텍스트를 읽어야 하는 모든 행의 단일 프레임을 읽습니다. 시트는 위치를 찾는 역할을 하고, 레이블이나 크기의 증거는 단일 프레임만이 제공합니다.
  3. 비디오 옆에 <stem>.notes.md를 절대 경로로 작성합니다. 세션의 작업 디렉토리와 관계없습니다. 형식:
    # <비디오 이름> · <녹화 날짜> · <길이> · <프레임에 보이는 앱 또는 URL>
    
    ## 펀치 리스트
    ### <화면 영역, 화면에 표시된 대로: 왼쪽 레일, 헤더, 설정 패널>
    1. [mm:ss] <한 문장으로 된 명령형 수정 사항>. 말한 내용: "<짧은 원문>". 프레임: frame_mmss.jpg
    2. ...
    
    ## 보류
    <"나중에", "언젠가", "지금은 안 함"으로 표시된 항목, 같은 줄 형식>
    
    ## 불명확
    <사용자의 답변이 필요한 항목당 한 줄>
    
    번호는 전체 목록에 걸쳐 연속되므로 사용자가 "3번과 7번"이라고 답할 수 있습니다. 영역은 방문한 순서대로 정리됩니다. 반복된 노트는 하나의 항목으로, 반복이 중요할 때는 "3번 말함"이 추가됩니다.
  4. 파일 경로, 영역 헤더와 항목 수, 처음 세 항목을 답변합니다. 불명확 항목이 없으면 아무것도 묻지 않습니다.
  5. 화면을 렌더링하는 저장소가 열려 있으면 ## 코드 위치를 추가합니다: 항목 번호와 파일 경로. 프레임에 보이는 컴포넌트 이름과 레이블을 grep하여 찾습니다. 저장소가 없으면 이 섹션을 건너뜁니다. 경로를 추측하지 마십시오.

규칙

  • 스틸 이미지에서 읽을 수 없는 텍스트는 다시 캡처하며, 절대 추론하지 않습니다: --width 2400 또는 ffmpeg으로 해당 영역을 크롭합니다.
  • .notes/ 폴더와 .notes.md는 비디오 옆에 유지됩니다. 저장소 내에서는 해당 폴더를 무시해야 합니다 (.git/info/exclude). 그래야 큰 녹화 파일이 git에 들어가지 않습니다.
  • 경쟁사 또는 제품 데모: 동일한 단계를 따르며, 목록은 "수정" 대신 "그들이 하는 일"로 읽힙니다.
  • 전사는 ~/.cache/whisper의 로컬 Whisper 모델로 실행됩니다. 클라우드 음성 API, 비전 API 없음; 세션 모델이 스틸 이미지를 읽습니다.

완료 확인

  • transcript.md가 생성되고 항목을 작성하기 전에 모든 프레임을 읽었습니까?
  • <stem>.notes.md가 작성되었습니까?: 전체 번호, 방문 순서의 영역, 모든 항목에 타임스탬프와 프레임
  • 반복이 병합되고 보류 및 불명확이 펀치 리스트에서 분리되었습니까?
  • 비디오나 오디오가 기기 밖으로 전송되지 않았습니까?

관련 스킬