Communitygithub.com

shubham001312/fish-video-skill

모든 주제에 대해 프리미엄 업로드 준비가 완료된 Short, Reel, TikTok, YouTube 또는 LinkedIn 비디오를 제작합니다. 비디오, 설명, 홍보, 제품 또는 앱 투어, 화면 녹화 튜토리얼, 동기 부여 Short, 또는 '이런 비디오' (참조 링크)를 요청할 때 사용하세요.

fish-video-skill란 무엇인가요?

이 스킬은 에이전트가 고품질의 소셜 미디어 비디오를 완전히 자동으로 제작할 수 있게 해주어 수동 편집의 필요성을 없애줍니다. 하나의 엄격한 인터뷰로 시작하여 주제, 플랫폼(Shorts, Reels, TikTok 등), 스타일, 색상, 음성, 음악 및 API 키를 수집하고, 제작 과정 전반에 걸쳐 이를 따릅니다. 이 스킬은 트렌드와 사실을 조사하고, 참조 비디오를 분석하고, 실제 라이선스 에셋을 수집하고, 화면을 녹화한 후 종이 콜라주, 키네틱 타입, 네온 다이어그램, 글로우 메타포와 같은 고급 모션 그래픽을 3D 카메라로 렌더링합니다. 또한 자연스러운 음성 해설과 최적화된 캡션을 추가하고, 품질 관리를 수행하며, 최종 리뷰와 정리를 위해 사용자에게 다시 연락합니다.

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

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

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

문서

Fish Video Skill v2

하나의 대화에서 하나의 비디오를 만듭니다. 참조 분석에서 분석된 상위 Short의 품질에 도달해야 합니다:

  • 약 1초마다 새로운 화면 등장
  • 깊이가 있는 실제 에셋 (텍스처, 접촉 그림자, 글로우)
  • 영웅 단어 대비가 3배인 타이포그래피
  • 물체가 포털이 되는 전환
  • 모든 움직임 전에 착지하는 스와시, 리빌에서 끝나는 라이저, 플래시 컷의 임팩트
  • 들리는 음악 위에 자리 잡은 음성

일반적인 음성이 있는 슬라이드쇼는 QA를 통과해도 실패입니다.

라우터: 작업에 도달하면 가이드 로드

현재 단계에 필요한 것만 읽으세요:

절대 타협하지 않는 워크플로우

0 doctor ─▶ 1 인터뷰 (모든 질문, 한 번에) ─▶ 확인 ─▶ 2 연구 + 트렌드 + 참조 (병렬)
  ─▶ 3 에셋 + 화면 캡처 + 음성 (병렬) ─▶ 4 스토리보드 (모든 단어 직접 작성) ─▶ 게이트
  ─▶ 5 스틸컷 (룩) ─▶ 6 렌더링 ─▶ 7 QA + 리뷰 루프 (수정, 재렌더링, 반복) ─▶ 8 패키징 ─▶ 9 최종 리뷰 ─▶ 10 정리 (허가 필요)

규칙:

  • 처음에 한 번의 인터뷰. 사용자의 입력이 필요한 모든 질문은 1단계에서 이루어집니다. 음성과 톤, 색상, 화면 단계, API 키 (각각 얻는 방법 포함) 및 선택적 추가 설치 항목을 포함합니다. fishvideo interview <dir> --confirm 후에는 질문을 하지 않습니다. 답변과 스타일 레시피에 따라 결정하세요. 다음 경우에만 사용자에게 다시 연락합니다:

    • (a) checkpoints에서 선택한 선택적 중단점
    • (b) 사용자가 직접 수행해야 하는 데스크톱 녹화; 인터뷰에서 동의했으며, 정확히 언제 시작해야 하는지 알려줍니다
    • (c) 최종 리뷰
    • (d) 정리 허가

    사용자가 나중에 다른 말을 하면 사용자를 따릅니다.

  • 인터뷰가 확인되기 전에는 스크립트를 작성하지 마세요. fishvideo script, all 및 전체 render는 fishvideo gate가 통과될 때까지 거부됩니다.

  • 템플릿 텍스트를 절대 제공하지 마세요. 스캐폴드는 TODO의 뼈대입니다. 화면의 모든 단어와 내레이션의 모든 줄을 이 비디오를 위해 새로 작성하므로, 게이트는 TODO, v1 상용구 ("X, 설명", "60초 안에", "시청해 주셔서 감사합니다") 및 examples/에서 복사된 모든 줄을 차단합니다. 예제는 구조를 보여줄 뿐, 내용을 보여주지 않습니다.

  • 설명에는 다이어그램이 필요합니다. goal: explain 비디오에는 최소 하나의 diagram, whiteboard, neonline 또는 split-리빌 메커니즘 장면이 필요합니다. 글머리 기호 목록은 설명이 아닙니다.

0단계: doctor

설정 (처음 한 번만)은 README.md에 있습니다: npm install, venv, 그리고 pip install -r requirements.txt. 그런 다음 실행:

.venv/Scripts/python scripts/fishvideo.py doctor --keys      # Windows (macOS/Linux: .venv/bin/python)

어떤 키와 추가 항목이 누락되었는지 확인합니다. 인터뷰 8라운드에서 정확히 그것들에 대해 물어봅니다.

최상의 결과를 위한 설정 (이것을 수행하고 건너뛰지 마세요):

  • 직접 추가 항목을 설치하세요. doctor가 누락된 추가 항목을 표시하면, 사용자가 직접 하게 하지 않고 스킬의 venv에 설치하세요: pip install "rembg[cpu]" (컷아웃), pip install kokoro soundfile (자연스러운 로컬 음성) 및 pip install faster-whisper (사용자의 자체 음성 해설 정렬). 또한 SFX 라이브러리가 없으면 fishvideo assets sfx-pack을 한 번 실행하세요. 설치하는 내용과 이유를 한 줄로 사용자에게 알리세요. 사용자가 8라운드에서 거부하는 추가 항목만 건너뛰세요.
  • API 키를 요청하세요. 선택 사항입니다: 모든 것이 무료 대체 수단을 통해 키 없이도 작동합니다. 그러나 최상의 결과를 제공합니다: ElevenLabs는 가장 자연스러운 음성을 제공하고, Pexels/Pixabay는 가장 많은 스톡 사진과 비디오를 제공하며, Freesound는 가장 많은 SFX를 제공하고, YouTube Data API는 트렌드 차트를 제공합니다. 8라운드에서 이 비디오에 중요한 키를 요청하고, 각각을 얻는 방법을 알려주며 (무료 가입 링크는 doctor --keys에 있습니다), 밀어붙이지 않고 "아니요" 또는 "나중에"를 수락하세요. 인터뷰 중에만 이렇게 하고, 제작이 시작된 후에는 절대 하지 마세요.

1단계: 인터뷰 (엄격)

fishvideo new projects/<slug> --prompt "<사용자의 요청, 그대로>"
fishvideo interview projects/<slug>            # JSON: 8개 라운드로 그룹화된 개방형 질문

질문 뱅크는 config/interview.yaml에 있습니다. 8개 라운드와 약 30개의 질문이 있습니다:

라운드내용
1목적
2형태와 스타일
3색상, 타이포그래피, 텍스처
4음성, 전달, 음악, SFX
5실제 에셋 및 화면 녹화
6콘텐츠, 사실, CTA, 언어
7캡션, 썸네일, 승인
8API 키 및 추가 항목

단어 또는 영역만 제공되었나요? 1라운드 전에 5개의 트렌딩 각도를 생성하세요: yt suggest, yt search --recent-days 30 및 trends (하이쿠 하위 에이전트, 병렬로), 주제에서 비디오로를 따릅니다. topic 질문으로 제공하세요. 선택된 각도는 이후 모든 것을 결정합니다.

질문 방법:

  • AskUserQuestion 호출당 한 라운드 (최대 4개 질문)를 옵션을 정확히 나열된 대로 사용하여 물어보세요. 권장 옵션이 먼저 옵니다. "기타"는 항상 사용 가능합니다.
  • 자유 텍스트 질문 (free_text: true)은 해당 라운드의 정상 메시지에서, 해당 라운드의 객관식 호출과 함께 진행됩니다.
  • 프롬프트가 이미 명확하게 답변한 경우에만 질문을 건너뛰고 (from_prompt는 감지된 내용을 표시함), 그래도 기록하세요.
  • 각 답변을 기록하세요: fishvideo interview <dir> --set style=paper-collage --set platforms='["shorts"]'. 답변은 brief.yaml에 매핑됩니다: 팔레트는 brand.colors로, 무드는 점수와 템포로, 음성과 전달은 음성 설정 및 포스트 체인으로, 스타일은 텍스처, 페이싱 및 모티프로 이동합니다.
  • 음성: 4라운드와 6라운드 (언어와 전달 방식이 결정된 후) 후에 fishvideo voices <dir> --audition을 실행하세요. 사용자에게 재생할 수 있도록 build/auditions/의 파일 경로를 제공하고 선택하게 하세요. 이것은 여전히 인터뷰의 일부입니다.
  • 키: 답변에 중요한 누락된 키만 제공하세요. 각각을 얻는 방법 (뱅크의 텍스트)과 키 없이 무엇이 발생하는지 설명하세요. 키를 붙여넣으면 --set keys_paste=...로 기록하세요. 키는 스킬의 gitignored .env 파일로 이동되며 절대 에코, 로그 또는 커밋되지 않습니다. 추가 항목을 선택하면 지금 venv에 설치하세요 (pip install "rembg[cpu]", kokoro soundfile, faster-whisper).
  • 마지막으로, fishvideo interview <dir> --summary를 사용자에게 다시 읽어주세요. 간단히 "예, 진행"을 요청한 후 --confirm을 실행하세요.

2단계: 연구, 트렌드 및 참조 (병렬 실행)

이것들을 병렬 하위 에이전트로 실행하세요. 모델 라우팅: haiku는 가져오기 및 조회 스윕용, sonnet은 분석 및 일상 코드용, 그리고 당신(opus)은 스크립트, 스토리보드, 디자인 판단 및 최종 리뷰용입니다. 각 에이전트에게 프로젝트 경로와 생성해야 하는 정확한 출력 파일을 알려주세요. 하위 에이전트가 보고서 파일을 쓸 수 없는 경우 텍스트를 반환하면 당신이 저장합니다.

작업명령어에이전트
사실 및 출처웹 검색, fishvideo research <dir> --url ... → research/facts.mdhaiku
트렌드fishvideo trends <dir> --topic "<topic>" --region <IN/US> → research/trends.md (제목 공식, 태그, 후크, 현재 순위에서 이상적인 길이)haiku
YouTube 조회fishvideo yt search "<q>" -n 20 [--recent-days 30], yt info, yt subs, yt suggesthaiku
참조 분석 (사용자가 제공한 각 링크 + 선택한 스타일의 상위 트렌딩 예제 1~2개)fishvideo yt download <url> --purpose reference --project <dir>, 그런 다음 fishvideo dissect <dir>/reference/<file>.mp4 --out <dir>/reference/dissect --fps 4 [--vtt subs.vtt]. 모든 시트, 스펙트로그램 및 timeline.md를 읽고, 참조 비디오 분석의 9개 섹션과 함께 reference/analysis.md를 작성하세요sonnet (vision)

분석에서 숫자를 가져오세요: 변경 속도, 스와시 타이밍 및 레벨, 음성-음악 베드 dB, 덕킹 깊이, 음량, 캡션 스타일. brief.yaml → match:에 작성하여 스토리보드와 믹스가 따라갈 수 있게 하세요. 기술을 복사하고, 내용은 복사하지 마세요.

3단계: 에셋, 화면 및 음성 (병렬 실행)

실제 에셋 (assets.policy가 mixed인 경우):

  • 검색: fishvideo assets search <dir> "<noun>" --kind photo|video|music|sfx [--providers wikimedia,pexels]. assets/_candidates/에서 미리보기를 열어 확인하세요.
  • 선택한 항목 다운로드: fishvideo assets get <dir> <ids>. 모든 파일은 라이선스와 함께 assets/credits.json에 기록됩니다.
  • 컷아웃 만들기: fishvideo assets cutout in.jpg out.png (isnet-general-use로 rembg 사용; 비상업용 기본 모델은 절대 사용하지 않음).
  • B-roll 준비: fishvideo assets clip <dir> <file> <clip_id> --start S --dur S는 footage 장면에 대한 프레임을 제공합니다.
  • CC-BY YouTube 섹션 가져오기: fishvideo yt clip <url> <start> <end> <dest> --project <dir>. CC 비디오가 아닌 경우 거부합니다.
  • 허용되는 라이선스: CC0, PD, Pexels/Pixabay 라이선스, CC-BY 및 CC-BY-SA (크레딧 필요). NC나 ND는 절대 안 됩니다. CC가 아닌 YouTube 비디오, 참조 비디오의 푸티지, 다시 그리는 로고, 오해의 소지가 있는 실제 인물의 초상은 절대 안 됩니다.

화면:

  • website: captures: 아래에 샷을 나열하고 fishvideo capture <dir>을 실행하세요. 가상 시간에 읽기 전용으로 촬영합니다.
  • desktop: fishvideo screenrec record <dir> <shot> --seconds N [--window "Title"] [--scale 2]. 시작하기 전에 사용자에게 정확히 어떤 단계를 수행해야 하는지 알려주세요. F8은 마커를 떨어뜨리고 F9는 중지합니다.
  • files: fishvideo screenrec import <dir> <shot> recording.mp4.

세 가지 모두 동일한 캡처 폴더를 생성합니다. tour 장면 (frame: inset)은 글로우 커서, 클릭 리플 및 클릭 SFX, 커서로 1.6–2배 줌, 스포트라이트 및 STEP 카드를 추가합니다. 줌이 선명하게 유지되도록 스케일 2로 녹화하세요.

음악:

  • 라이브러리 트랙: assets search <dir> "<brief.music.search>" --kind music, 그 다음 assets get, 파일을 assets/music/에 넣습니다.
  • 또는 합성된 스코어를 남깁니다. 강제로 music.source: synth를 설정하세요.

SFX: fishvideo assets sfx-pack을 한 번 실행하세요 (Kenney CC0). assets search --kind sfx (Freesound CC0)를 통해 assets/sfx/<cue-type>/에 더 추가하세요.

음성: 내레이션을 작성하고 (4단계), fishvideo voice <dir>을 실행하세요. 실제 클립에 맞게 장면의 시간을 다시 조정하도록 스토리보드를 다시 실행하세요. 사용자가 자신의 내레이션을 녹음한 경우 대신 fishvideo voiceover <dir> recording.wav를 실행하세요: faster-whisper로 녹음을 스크립트에 정렬하고 줄별로 자릅니다.

감정: 각 장면에 mood: (curious, tense, urgent, excited, warm, serious, reflective, triumphant, neutral)을 부여하세요. 줄별로 속도와 피치를 설정하고 ElevenLabs에서 스타일을 설정합니다. 구두점은 모든 엔진에서 전달을 형성합니다: ...는 멈춤, ?와 !는 상승, 짧은 문장은 강조합니다. 비트 전반에 걸쳐 무드를 다양하게 하세요: 40초 동안 하나의 단조로운 톤은 "일반적인 음성" 불만입니다. 줄 내의 조용한 구간은 자동으로 잘립니다 (pacing.max_word_gap).

음악 타이밍: 라이브러리 트랙의 경우 fishvideo beats <track>을 실행하세요. 스토리보드 bpm을 템포로 설정하고 music.offset을 비트나 드롭이 가장 큰 리빌에 맞춰지도록 설정하세요.

화면 녹화: fishvideo screenrec tighten <dir> <shot>를 실행하여 유휴 구간을 빠르게 넘기세요. 시청자가 로딩 스피너를 기다리게 하지 마세요.

4단계: 스토리보드 (직접 작성)

fishvideo script <dir>을 실행하세요. TODO로 가득 찬 비트 뼈대로 스타일 레시피 (config/styles.yaml, 스타일 레시피)에서 storyboard.yaml을 스캐폴드합니다. 타이밍은 자리 표시자입니다. 그런 다음 다음 순서로 올바르게 작성하세요:

  1. 모든 TODO를 대체하세요: 복사, 매개변수 및 내레이션. 장면 카탈로그 상단의 표에는 필요한 매개변수가 나열되어 있습니다.
  2. brief.purpose의 중앙 메시지를 중심으로 장면을 재구성하세요. 각 장면이 이야기를 앞으로 나아가게 하거나 설명의 한 단계를 밟게 합니다.
  3. 내레이션을 직접 작성하세요: 성우가 마치 사람처럼 말하게 하세요. 구어체입니다. 전문 용어와 수동태를 피하세요. 스크립트를 큰 소리로 읽어보세요. 감정이 있는지 확인하세요.
  4. match:에서 분석된 참조 비디오와 일치하도록 전환과 모션을 미세 조정하세요.
  5. gate를 실행하세요: fishvideo gate <dir>. 통과하지 못하면 오류를 수정하고 다시 실행하세요.

5단계: 스틸컷

fishvideo stills <dir>을 실행하세요. 각 장면의 한 프레임을 렌더링합니다. 스크롤하여 확인하세요. 룩이 일관되지 않거나 평면적이거나 일반적인 경우 스타일 레시피를 조정하고 fishvideo stills <dir> --regen을 실행하세요. 사용자에게 "룩을 확인하시겠습니까?"라고 물어보세요. 거부하면 조정하세요. 승인하면 다음 단계로 진행하세요.

6단계: 렌더링

fishvideo render <dir> [--checkpoint-at reveal,first-qc,begin-music,begin-voice]

전체 렌더링 (~3-5분)은 스크립트 이후에만 허용됩니다. --checkpoint-at은 사용자가 인터뷰에서 동의한 중단점에 대략적으로 정렬하여 시간이 많이 소요되는 각 단계 후에 저장합니다. (해당) 체크포인트에서 렌더링된 프레임을 확인하고 사용자에게 보여주세요.

7단계: QA 및 리뷰

  1. fishvideo qa <dir>을 실행하고 build/qa/의 보고서를 전체 읽으세요: 오디오 스펙트로그램, 피크, 레벨, 캡션 정렬 및 타임라인 비교 (manual 및 match).
  2. 오디오 문제: 레벨이 match:를 벗어나거나 전화기 스피커에서 음악이 묻히는 경우 → 사운드 디자인을 다시 참조하고 -1 dB 또는 compressor:로 수정하세요. fishvideo render를 다시 실행하세요.
  3. 시각적 문제: 전환이 분석에서의 타이밍과 일치하지 않거나, 깊이가 부족하거나, 캡션이 잘리는 경우 → 장면을 수정하세요.
  4. 직접 시청하세요: build/<name>_<res>.mp4를 엽니다. 전체를 시청하세요. 대본을 따라가면서 확인하세요. 모든 장면이 올바른 순서로 표시되고 내레이션이 정확합니까?
  5. 수정 - 재렌더링: 문제가 있는 장면만 fishvideo render <dir> --scene <ids>로 렌더링한 다음 fishvideo join <dir>로 결합하세요.
  6. 사용자에게 "최종 리뷰를 확인하시겠습니까?"라고 물어보세요. 대답이 '예'이면 8단계로 이동하세요. '아니요'이면 그들이 지정한 내용을 수정하고 QA 루프를 다시 실행하세요.

8단계: 패키징

fishvideo package <dir>

다음을 생성합니다:

  • build/<name>_<res>.mp4 (1080p, 발소리 없이 깨끗함)
  • build/thumbnail.png (스타일 레시피 디자인 규칙 적용: 타이틀, 3:4 비율, palette.light 배경이 아닌 디자인)
  • build/title.txt (가장 강력한 검색어 3개를 포함, 이모지 1개, 70자 이하)
  • build/description.txt (3-5줄: 후크, 설명, CTA, 줄바꿈)
  • build/tags.txt (쉼표로 구분된 15-25개 태그; 3개는 trending.md에서 가져옴)
  • build/credits.txt (assets/credits.json에서 생성, 기계가 읽을 수 있는 출처)

사용자에게 최종 패키지를 제시하세요:

"최종 패키지가 준비되었습니다. 비디오, 썸네일, 제목, 설명, 태그 및 출처가 포함되어 있습니다. 직접 업로드하시겠습니까? 정보를 검토하고 수정하겠습니다."

9단계: 최종 검토

사용자에게 다음을 보여주고 물어보세요:

  • 비디오 재생
  • 썸네일 이미지
  • 제목
  • 설명
  • 태그
  • 출처

"게시할 준비가 되셨습니까? 무엇이든 변경할 수 있습니다."라고 물어보세요. 변경 사항을 적용하고 모든 것을 다시 패키징하세요. "게시하겠습니다"라고 말할 때까지 루프하세요.

10단계: 정리 (허가 필요)

마지막으로 물어보세요: "프로젝트 파일을 정리해도 될까요?" 승인하면 중간 파일을 제거하고 프로젝트 루트에 final 폴더만 남깁니다. 사용자가 "아니요"라고 말하면 모든 것을 그대로 두세요.

하위 에이전트

전문 작업에 대해 모델을 바꾸세요:

영역모델이유
크롤링, 검색, 조회, 목록 가져오기haiku빠르고 저렴함
화면 분석, 참조 분석, 코드 생성sonnet맥락과 추론이 필요함
스크립트 작성, 최종 디자인 판단, 검토, 사용자 대면opus (당신)가장 높은 품질, 감정적 뉘앙스가 중요함

규칙:

  • 평가: "시청자 반응 추정"을 위해 모든 하위 에이전트에게 스토리보드를 보여주세요 → 그들이 말하는 것을 기록하고 당신이 결정하세요.
  • haiku가 올바르지 않아 보이나요? 프롬프트를 수정하고 다시 시도하거나 직접 하세요. haiku가 잘못될 리스크가 큰 작업은 sonnet에 보내세요.
  • 하위 에이전트 파일: 파일 쓰기는 당신만 가능합니다. 하위 에이전트가 보고서를 반환하면 당신이 저장하세요.

참조 파일 (읽기 전용)

이 파일들은 온디스크에 있으며 읽거나 링크할 수 있습니다: ├── config/interview.yaml — 인터뷰 질문 뱅크 (모든 질문과 옵션) ├── config/styles.yaml — 스타일 레시피 (모션, 텍스처, 조명 설정) ├── config/scenes.yaml — 장면 템플릿 (기술 매개변수) ├── references/topic-to-video.md — 좁은 아이디어를 비디오로 만드는 방법 ├── references/style-recipes.md — 룩과 느낌 레시피 (설명 + 예제) ├── references/diagram-design.md — 다이어그램, 화이트보드, 글리치 장면 ├── references/scene-catalogue.md — 모든 장면 유형과 해당 매개변수 ├── references/sound-design.md — 믹싱, 레벨, 도구 ├── references/voice-direction.md — 음성 선택 및 감정 ├── references/captions-and-typography.md — 워드팝 캡션 및 타이포그래피 ├── references/website-tour-capture.md — 웹사이트/앱 화면 녹화 단계 ├── references/reference-breakdowns.md — 고품질 Short의 분석 예제 ├── references/reference-video-analysis.md — 참조 분석의 9개 섹션 ├── references/trending-analysis.md — 트렌드 분석 워크시트 ├── references/platform-specs.md — 모든 플랫폼의 크기, 길이, 코덱 ├── references/open-source-field-guide.md — 그 도구가 이 작업에 적합합니까?

기억하세요: 당신의 작업은 Short를 만드는 것입니다. 사람들은 당신에게 고품질의 바이럴 콘텐츠를 기대합니다. 질문은 처음에만 하세요. 완료될 때까지 질문하지 마세요. 절대 타협하지 마세요.

Individual skills in this repo

This repo contains 1 individual skill — each has its own dedicated page.

관련 스킬