Communitygithub.com

zappurenfuro/movie-recap

사용자가 제공한 로컬 영화나 에피소드로부터 전체 내레이션이 포함된 영화 요약본과 짧은 Instagram Reel을 제작합니다. 자막, 썸네일 및 업로드용 카피를 포함합니다.

movie-recap란 무엇인가요?

이 스킬은 사용자가 로컬에 보유한 영화나 에피소드 파일을 분석하여 전체 스토리를 커버하는 내레이션 요약본(Full Recap)과 인스타그램 릴(Reel)을 제작하는 AI 에이전트 워크플로우입니다. Claude Code, Codex 등에서 사용할 수 있으며, '/movie-recap' 또는 '$movie-recap' 명령어를 통해 호출합니다. 제공된 영상 파일을 분석하고, Kokoro TTS를 사용하여 영어 내레이션을 합성하며, Faster-Whisper로 음성을 정렬하고, FFmpeg/PyAV를 사용해 자막과 비디오를 렌더링합니다. Full Recap은 전체 영화의 스토리를 담고, Reel은 클라이맥스 직전까지 짧게 편집된 버전으로, 두 결과물 모두 자막, 썸네일, 업로드 카피를 함께 제공합니다. 이 스킬은 기존 분석이나 데이터를 재사용하지 않고 매 요청마다 새로운 분석과 합성을 수행하며, 자체적인 런타임 환경(runtime.json)을 통해 종속성 관리를 자동화합니다.

지원 대상✓Claude Code✓Codex CLI~Cursor
npx skills add https://github.com/zappurenfuro/movie-recap/tree/HEAD

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

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

문서

영화 요약본 제작

호출 및 기본 범위

Claude Code: /movie-recap Lucky. Codex: $movie-recap Lucky (또는 호스트의 스킬 선택기에서 이 스킬 선택). 따옴표로 묶인 비디오 경로나 폴더도 사용 가능합니다. 호출 메시지에서 제목/경로와 선택적 범위를 읽습니다. Claude Code 인자: $ARGUMENTS. 호스트가 해당 토큰을 확장하지 않는 경우, 리터럴 토큰을 파일 이름으로 사용하지 말고 사용자의 실제 메시지를 사용하세요.

기본값: 아래 파일을 포함하여 전체 요약본과 릴(Reel)을 모두 완료합니다. 이것을 스크립트, 개요 또는 편집 계획을 작성하는 것이 아닌 실제 작업을 실행하라는 지시로 간주하십시오. 전체 요약본 전용 또는 릴 전용은 사용자가 명시적으로 요청한 경우에만 적용됩니다. 누군가가 이 스킬을 검사, 설치, 설명 또는 수정하도록 요청했다는 이유만으로 렌더링을 시작하지 마십시오.

이 파일에는 현재 요약본 템플릿이 통합되어 있으며, 더 이상 사용되지 않는 기본 설정 기록은 제외되었습니다. 전체 요약본 전용 편집 규칙이 릴에 절대 유출되어서는 안 됩니다. 명시적인 현재 사용자 지시 사항이 이러한 기본값을 재정의합니다. 일반 실행 중에 원본 템플릿이나 다른 영화 프로젝트를 변경하지 마십시오.

입력 해결

  1. 사용자가 선택한 프로젝트 폴더에서 시작합니다. 제공된 로컬 비디오 파일(.mkv, .mp4, .mov, .m4v, .webm, .avi) 및 사이드카 자막을 검색합니다. 명시적으로 제공된 경로를 선호합니다. Lucky와 같은 제목의 경우, 파일 이름과 관련 하위 폴더를 일치시키고 구두점/대소문자 및 일반적인 릴리스 접미사는 무시합니다.
  2. 이전 요약본 내보내기, 트레일러, 샘플, 썸네일 및 임시 작업 파일을 소스 선택에서 제외합니다. 미디어를 선택하기 전에 후보를 조사하고, 단지 파일이 가장 길다는 이유로 선택하지 마십시오. 푸티지, 크레딧 및 자막을 통해 정체를 확인합니다.
  3. 요청된 제목에 대해 정확히 하나의 적절한 소스가 있는 경우, 묻지 않고 진행합니다. Lucky가 여러 에피소드와 일치하거나 두 개의 다른 영화가 여전히 가능성이 있는 경우, 후보를 식별하는 하나의 간결한 질문을 합니다. 조용히 에피소드를 결합하거나 임의의 것을 선택하지 마십시오. 제목이 없으면 유일한 명확한 소스를 사용하고, 그렇지 않으면 질문합니다. 소스가 없으면 어디를 살펴보았는지 보고하고 경로를 요청합니다. 자동으로 영화를 다운로드하지 마십시오.
  4. 소스를 변경하지 않고 그대로 유지합니다. 소스 옆에 새 <Title>-Full-Recap 및 <Title>-Reel-Recap 폴더를 만듭니다. 둘 중 하나가 이미 존재하는 경우, 이전 작업을 덮어쓰지 않고 일관된 미사용 -Edit-2, -Edit-3 등의 쌍을 선택합니다. 해당하는 경우 이름에 에피소드 식별자를 사용합니다.
  5. 최종 폴더 외부에 범위가 지정된 작업 폴더를 만듭니다. 적용 가능한 프로젝트 지침을 읽지만, 두 모드 계약을 분리하여 유지합니다. 관련 없는 기존 AGENTS.md를 덮어쓰지 마십시오. 프로젝트 지침을 유지해야 하는 경우, 최종 출력물이 아닌 소스 루트 또는 별도의 작업 공간 내에 보관합니다.

도구, 음성 및 실제 실행

자동으로 설치된 런타임

전역 도구를 검색하기 전에 설치된 이 SKILL.md 옆에 있는 runtime.json을 읽습니다. 해당 manifest_path를 따르고 공유 매니페스트를 다시 읽습니다. status: ready가 필요합니다. 절대 경로인 python, ffmpeg, kokoro_model, kokoro_voices, source_whisper_model(다국어 소스 영상 인식), whisper_model(영어 내레이션 정렬)을 사용합니다. 이러한 경로는 사용자가 가상 환경을 활성화하거나 모델을 수동으로 찾을 필요가 없게 합니다. 프로빙에는 이 Python 환경의 PyAV를 사용하십시오. 설치 프로그램은 별도의 ffprobe 실행 파일을 제공하지 않습니다. 기본적으로 CPU를 선호하고, GPU가 작동하는 것을 확인한 후에만 사용 가능한 GPU를 사용합니다.

포인터가 없으면 ~/.movie-recap/runtime-v1/runtime.json도 확인한 후 아래의 휴대용 검색을 수행합니다. 공유 매니페스트가 없거나, 오래되었거나, 준비되지 않은 경우 실제 설정 오류를 설명하고 사용자에게 이 저장소의 python install.py --target claude 또는 --target codex(--update 포함하여 스킬 교체 시)를 실행하도록 안내합니다. 사용자가 종속성을 설정하도록 요청했고 저장소를 사용할 수 있는 경우, 설치 프로그램을 직접 실행합니다. 매니페스트 파일이 존재한다는 이유만으로 설정이 성공했다고 보고하지 마십시오. 참조된 실행 파일/모델을 확인하십시오. runtime.json에는 기계별 경로가 포함되어 있으므로 공개 저장소에 절대 포함하지 마십시오.

이것은 독립형 비디오 렌더링 프로그램이 아니라 에이전트 워크플로우입니다. 누락된 편집 로직을 작성하기 전에 호환되는 프로덕션 헬퍼를 검사하고 재사용하십시오. FFmpeg/ffprobe(또는 PyAV 프로빙), Python, TTS 엔진 및 ASR/정렬 도구를 검색하십시오. 긴 렌더링을 시작하기 전에 짧은 인코딩을 테스트하십시오. NVENC를 사용할 수 없는 경우 호환되는 CPU 인코딩을 사용하십시오. 텍스트 지침만 생성되었을 때 완성된 비디오라고 주장하지 마십시오.

기본 내레이터: 로컬 Kokoro am_michael, 영어, 1.00x 속도로 합성. 전체 요약본: 정확히 한 번의 atempo=1.10 조정을 적용합니다. 릴: 1.00x를 선호하고, 최대 1.30x까지 고려하기 전에 스크립트를 줄입니다. 출력 간에 조용히 음성을 전환하거나 정확한 Instagram 음성이라고 주장하지 마십시오. 설치된 모델을 재사용하고, 유료 서비스는 사용 전에 질문하십시오. 필수 로컬 실행 또는 사용 가능한 음성을 사용할 수 없는 경우, 독립형 SKILL.md가 이러한 기능을 설치한다고 가장하지 말고 특정 차단 요소를 보고하십시오. 저장소 설치 프로그램이 자동 설정을 제공합니다.

휴대용 종속성 검색:

  • 활성 환경 또는 사용자가 제공한 경로에서 Python 및 FFmpeg/ffprobe를 찾습니다. 설치된 경우, imageio_ffmpeg.get_ffmpeg_exe()가 FFmpeg 바이너리를 찾을 수 있습니다.
  • 사용자가 설치한 TTS 환경에서 Kokoro ONNX 모델 및 음성 데이터를 찾습니다. 특정 사용자 이름, 다운로드 폴더 또는 운영 체제를 가정하지 마십시오. 파일이 누락된 경우 필요한 자산을 보고하고 경로를 묻거나 필요에 따라 설정을 위한 권한을 요청하십시오.
  • 현재 사용자의 Hugging Face 캐시 또는 사용자가 지정한 모델 디렉토리에서 캐시된 faster-whisper 모델을 찾습니다. CUDA 지원을 테스트하고 필요할 때 CPU로 대체합니다.
  • 각 머신에서 동등한 로컬 도구를 검색하십시오. 모델 가중치, API 자격 증명 또는 영화 푸티지를 이 스킬과 함께 패키징하지 마십시오.

재사용, 새로운 콘텐츠 및 중복 작업

  • 작동하는 범용 코드, 설치된 도구/모델, 스키마, 렌더/필터 빌더, 자막 유틸리티, 검증 및 패키징 로직을 대체 항목을 작성하기 전에 재사용하십시오. 먼저 호환성을 검사하고 누락된 동작만 적응하십시오. 코드를 영화별 데이터와 분리하여 유지하십시오. 이전 영화 경로, 플롯, 스크립트, 소스 시간 맵, 내레이션, 브랜딩 또는 자격 증명을 새 작업이나 공개 헬퍼에 절대 가져오지 마십시오.
  • 새로운 요약본 제작은 매번 제공된 소스에 대한 새로운 분석, 새로 작성된 전체/릴 스크립트 및 새로 합성된 내레이션이 필요합니다. 이전 요약본 분석, 생성된 대본, 스크립트, 샷 선택 또는 음성을 지름길로 읽거나 재사용하지 마십시오. 소스가 제공한 자막은 유효한 입력입니다. 현재 실행의 새로운 분석을 전체 요약본과 릴 간에 공유하되, 스크립트와 편집 계약은 별도로 유지하십시오. "동일한 비디오, 크롭만 변경"과 같은 명시적인 수정은 영향을 받지 않는 콘텐츠를 유지할 수 있습니다. 불필요하게 다시 생성하지 마십시오.
  • 동일 실행 재시도는 검증된 변경되지 않은 결과를 재사용할 수 있습니다. 소스 ID, 스크립트 버전, 음성/모델/속도, 변환, 인코더 설정 및 헬퍼 버전을 중간 결과물과 함께 기록하십시오. 입력이 변경되면 영향을 받는 작업 및 종속된 타이밍, 자막, 사진 및 챕터를 무효화하십시오. 파일 존재 자체만으로 캐시 유효성 검증이 되지 않습니다. 새로운 실행은 이전 콘텐츠 캐시를 상속해서는 안 됩니다.
  • 독립적인 작업을 중복 수행하십시오: 시각적 샘플링과 함께 전사; 승인된 자연스러운 단락의 합성과 샷 검사; 썸네일 및 초안 업로드 카피와 렌더링. 현재 실행 분석 후 전체 요약본과 릴은 독립적으로 진행될 수 있습니다. 관련 음성이 측정/정렬된 후에만 사진 지속 시간과 캡션을 최종 확정하고, 타임라인이 잠긴 후에만 챕터를 확정하십시오. 작업자를 바쁘게 유지하기 위해 검토되지 않은 초안을 합성하지 마십시오.
  • 셸 단계에 도움이 될 때 재사용 가능한 작업 러너를 사용하십시오. 해당 매니페스트 및 워크플로우 가이드를 읽으십시오. 종속성, 제한된 동시성, 독점 리소스 및 단계 타이밍을 제공합니다. 영화를 분석하거나 편집을 구축하지 않습니다. 호환되는 로컬 프로덕션 헬퍼를 다시 만드는 대신 재사용하십시오. 누락된 로직만 작성하십시오. 편집 검토는 에이전트와 함께 유지하십시오. 지원되는 경우 단락 전체에 걸쳐 로드된 모델을 유지하기 위해 장기 실행 TTS 프로세스를 사용하십시오.
  • 제한된 리소스당 두 개의 독립적인 작업과 하나의 무거운 작업으로 보수적으로 시작하십시오. GPU TTS 또는 추가 작업자를 채택하기 전에 벤치마킹하십시오. 발음, 일시 중지, 음성 및 인코딩 품질을 보존하십시오. 메모리 또는 CPU/GPU 경합으로 인해 작업 속도가 느려지면 동시성을 줄이십시오. 작업 중복 프로세스는 에이전트나 유료 서비스를 생성하는 것을 허가하지 않습니다.
  • 소스 검사부터 최종 검증까지 경과 시간을 측정하고, 설정, 수정 및 실패를 포함합니다. 단계 타이밍을 별도로 기록하십시오. 중복 기간을 합산하거나 캐시된 재렌더링을 새로운 제작과 동일시하지 마십시오. 속도 목표를 위해 스토리를 단축하거나, 내레이션 속도 제한을 초과하거나, 내보내기 품질을 낮추거나, 검사를 건너뛰지 마십시오.

공유된 제작 워크플로우

  1. 소스 스트림, 지속 시간, 활성 치수, 프레임 속도, 오디오 언어 및 자막을 조사하십시오. 엔딩을 포함한 전체 스토리의 대화를 읽고 샘플링하십시오. 사용 가능한 자막이 없으면 로컬 ASR을 사용하십시오. ASR 추측에 의존하지 말고 중요한 동작을 시각적으로 확인하십시오. 꿈, 플래시백, 전설 및 불확실한 결과를 실제 사건과 구별하십시오. 웹 검색은 영화 ID/연도를 확인하는 데 도움이 될 수 있습니다. 플롯 추측으로 푸티지 분석을 대체하지 마십시오.
  2. 정확한 인과 관계가 있는 명확하고 구체적인 영어 내레이션을 작성하십시오. AI 슬로건, 쌓아올린 극적인 조각, 지어낸 대화 및 반복적인 내용을 피하십시오. 각 내레이션 이벤트에 대한 정확한 구절이 포함된 소스 시간 맵을 만드십시오. 전체 요약본은 전체 스토리를 다룹니다. 릴은 맥락을 설정하고 클라이맥스 시작 부분에서 중단되며, 자체 스크립트와 스포일러 컷오프가 있습니다.
  3. 짧은 디스플레이 캡션 조각이 아닌 완전한 단락 또는 자연스러운 문장을 합성하십시오. 자연스러운 호흡 간격으로 계속되는 내레이션으로 결합하십시오. 실제 조정된 음성을 측정한 다음 사진 타임라인을 구축하십시오. 음절을 보존하고 임의의 샷 지속 시간에 맞추기 위해 오디오를 늘리지 마십시오.
  4. 생성된 음성에 단어를 정렬하십시오. 누락, 고유 명사 및 예상치 못한 음성을 검토하십시오. faster-whisper를 사용할 때 전체 예상 스크립트를 initial_prompt로 제공하지 마십시오. 단어를 환각하거나 시작 부분을 건너뛸 수 있습니다. PyAV API 불일치로 인해 오디오 디코딩이 실패하면 FFmpeg를 사용하여 모노 16kHz PCM으로 디코딩하고 NumPy 배열을 Whisper에 전달하십시오. 조작된 단어 타임스탬프를 수용하는 대신 신뢰도가 낮은 결과를 검사하십시오.
  5. 소스 in/out, 출력 시작/종료, 내레이션 구절 앵커, 프리즈 포인트 및 변환이 포함된 임시 편집 매니페스트를 유지하십시오. 말해진 구절 또는 약간 그 이전에 명명된 동작을 배치하십시오. 중간 동작 프레임과 렌더링된 샷 경계를 검사하십시오. '그들이 키스한다'를 멈춘 포옹으로 덮거나 'CCTV 검색'을 몇 초 후까지 관련 없는 샷으로 덮지 마십시오.
  6. 파트 A를 사용하여 전체 요약본을 렌더링하고 파트 B를 사용하여 릴을 렌더링하십시오. 독립적인 작업은 머신 한도 내에서 중복될 수 있습니다. 현재 실행의 새로운 소스 분석만 재사용하고 전체 요약본의 변환된 사진은 재사용하지 마십시오. 일관된 CFR, 명시적 프레임 수 및 연결 지속 시간으로 프레임 정확한 타이밍을 유지하십시오. 동일 실행 캐시된 렌더링을 현재 스크립트, 소스 선택 및 설정과 비교하여 확인하십시오. 오래된 파일을 재사용하는 대신 변경된 클립을 무효화하십시오. 호환되는 사진 배치를 한 번 인코딩하고 가능한 경우 스트림 복사하여 조립하십시오. 두 믹스에 대해 릴 사진 스트림을 재사용하십시오. 수정이 허용될 때 영향을 받는 배치만 다시 렌더링한 다음 최종 조립된 내보내기를 다시 확인하십시오.
  7. 명확한 내레이션을 조용하고 적절한 배경 음악과 믹싱하십시오. 절제된 원본 합성 언더스코어는 허용됩니다. 자동으로 Undertow를 추가하지 마십시오. 명시적인 오디오 매핑은 전체 내보내기에서 모든 영화 오디오를 제외해야 합니다. 두 모드 모두 H.264 High, yuv420p, CFR, 정사각형 픽셀, AAC-LC 스테레오(48kHz 적합) 및 MP4 faststart를 사용하십시오.
  8. 동일한 내레이션 단어와 측정된 타이밍에서 자연스러운 구절 TTS SRT와 짧은 디스플레이 SRT를 독립적으로 생성하십시오. 두 가지 모두에 대해 파트 A의 공유 자막 규칙을 사용하십시오. 원본 오디오 없음/전체 전용 내보내기 제한은 파트 B를 재정의하지 않습니다. 모든 단어, 구두점 및 순서를 보존하십시오. 지정된 대로 업로드 카피와 썸네일을 제공하십시오.
  9. 완전한 디코딩, 예상 프레임 수/지속 시간, 치수, 코덱 프로필, 오디오 헤드룸, 겹치지 않는 SRT 타이밍 및 정확한 스크립트 재구성을 검증하십시오. 모든 전체 클립의 총 지속 시간 및 비연속 소스 선택을 검토하십시오. 두 릴 사진 스트림/타이밍을 비교하십시오. 썸네일과 선택된 내레이션 동작을 검사하십시오. 가능한 경우 오디오와 함께 대표적인 움직임을 검토하십시오. 스틸 이미지와 메타데이터만으로는 부드러운 재생을 증명할 수 없습니다. 사용할 수 없는 일반 속도 듣기/시청 패스를 정직하게 보고하십시오.
  10. 검증 후에만 작업 프로젝트 내에서 명시적으로 확인된 경로를 사용하여 작업 생성 임시 파일을 정리하십시오. 소스, 이전 편집, 공유 도구/모델, 지침 및 결과물을 보존하십시오. 공유 캐시를 제거하지 마십시오. 호스트에 의해 정리가 차단된 경우, 차단을 우회하기 위해 다른 셸이나 언어를 통해 재시도하지 마십시오. 유지된 위치와 이유를 보고하십시오. 명시적 승인 없이 게시, 업로드 또는 주장에 이의를 제기하지 마십시오.

최종 패키지 계약

<Title>을 확인된 영화/에피소드 레이블로 바꾸십시오. 기본 전달에는 총 3개의 MP4 파일(전체 요약본 1개, 릴 2개)이 포함됩니다.

<Title>-Full-Recap/
  <Title>-recap-with-narration.mp4
  <Title>-narration-TTS.srt
  <Title>-captions-display.srt
  youtube-upload.txt
  thumbnails/
    thumbnail-01.png
    thumbnail-02.png
    thumbnail-03.png
<Title>-Reel-Recap/
  <Title>-recap-with-narration.mp4
  <Title>-recap-without-narration.mp4
  narration.txt
  <Title>-narration-TTS.srt
  <Title>-captions-display.srt
  instagram-copy.txt

내레이션이 없는 전체 요약본 비디오나 빈 원본 오디오 SRT를 만들지 마십시오. 전체 업로드 카피는 이 통합 워크플로우에서 필수이며 선택 사항이 아닙니다. 명시적 승인 없이 로고, 워터마크 또는 채널 브랜딩을 추가하지 마십시오.

관련 스킬