Communitygithub.com

비디오 팟캐스트 메이커 나노

개인용 내레이션 설명 비디오를 제작하는 7단계 파이프라인입니다. 주제 → 연구 ∥ 자료 수집 → 스크립트 → TTS → 비디오 → 4K 렌더 ∥ 게시 정보 + 표지 이미지를 생성합니다. TTS 백엔드와 비디오 도구에 의존하지 않으며, 모든 검사 지점은 자체 검증 또는 사람 승인 방식으로 설정할 수 있습니다.

비디오 팟캐스트 메이커 나노란 무엇인가요?

이 스킬은 개인용 내레이션 설명 비디오를 제작하기 위한 완전히 자동화된 7단계 파이프라인을 정의합니다. 주제 조사, 자료 수집, 스크립트 작성, TTS 음성 합성, 비디오 편집, 그리고 4K 렌더링 및 게시 정보 생성을 포함합니다. 가장 큰 특징은 도구 독립성입니다. TTS 백엔드(Azure, Edge, fish 등)와 비디오 도구(Remotion, HyperFrames, CapCut 등)를 프로젝트별로 자유롭게 선택할 수 있으며, 파이프라인 로직은 스킬 자체가 소유합니다. 또한 세 가지 검사 지점(스크립트, 오디오, 미리보기)을 통해 품질을 보장하며, 기본값은 에이전트가 자체 검증하지만 프로젝트 정책 파일(AGENTS.md/CLAUDE.md)을 통해 사람 승인으로 전환할 수 있습니다. 오디오를 마스터 클록으로 사용하여 비디오 길이가 음성 내레이션과 ±0.5초 이내로 일치하도록 강제하며, 스크립트가 변경되면 모든 하위 단계를 다시 실행해야 합니다. Claude Code, Cursor, Codex 등 에이전트 기반 개발 환경에서 사용하기 적합하며, 오디오 전용 팟캐스트나 대규모 멀티 포맷 제작에는 사용하지 않습니다.

지원 대상✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Agents365-ai/video-podcast-maker/tree/HEAD/skills/video-podcast-maker-nano

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

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

문서

비디오 팟캐스트 메이커 나노은(는) 무엇을 하나요?

개인용 7단계 파이프라인: 연구 ∥ 자료 → 스크립트 → TTS → 오디오 검사 → 비디오 → 미리보기 검사 → 4K 렌더 ∥ 게시 키트. 번들 스크립트 없음, 하드코딩된 백엔드 없음, 템플릿 없음. 스킬은 로직을 소유하며 기본적으로 자율적으로 실행됩니다. TTS 백엔드와 비디오 도구는 비디오별로 선택됩니다(도구 선택 참조).

도구 선택과 관계없이 작동하게 만드는 세 가지 불변 요소:

  1. 검사 지점은 절대 건너뛰지 않지만, 누가 검사할지는 정책에 따릅니다. 세 가지 검사 지점이 있습니다: 스크립트(2단계 후), 오디오(3단계 후), 미리보기(렌더링 전). 기본 검사자는 에이전트 자체입니다(자체 검증, 검사 지점별로 정의됨). 프로젝트의 AGENTS.md/CLAUDE.md는 모든 검사 지점을 사람 승인으로 업그레이드할 수 있습니다. 감독 정책을 참조하세요.
  2. 오디오는 마스터 클록입니다. 최종 비디오의 길이는 내레이션 오디오와 ±0.5초 이내로 일치해야 합니다(ffprobe로 둘 다 확인). 시각 자료는 오디오에 맞춰 자르며, 그 반대는 절대 안 됩니다.
  3. 스크립트 변경은 모든 하위 항목을 무효화합니다. 스크립트 편집 → 스크립트 검사 지점 재실행, 그런 다음 TTS → 오디오 검사 지점 → 시각 자료 → 미리보기 검사 지점 → 렌더링. 절대 수동으로 타이밍을 패치하지 마십시오.

감독 정책

기본 모드는 자율적입니다: 파이프라인이 처음부터 끝까지 실행되며, 에이전트가 모든 검사 지점의 자체 검증을 수행합니다. 작업 중인 프로젝트의 AGENTS.md/CLAUDE.md는 검사 지점당 한 줄씩 재정의할 수 있습니다:

  • Checkpoint 1 (script): human — 2단계 후 중단하고 사용자가 스크립트를 승인할 때까지 기다립니다. 이 점을 고려할 가치가 있습니다: 늦은 스크립트 변경은 전체 재실행 비용이 듭니다.
  • Checkpoint 2 (audio): human — 사용자가 시각 자료 전에 전체 오디오를 듣습니다. TTS 오독을 나중에 발견하기 어려울 때 유용합니다.
  • Checkpoint 3 (preview): human — 사용자가 렌더링 전에 초안을 검토합니다. 스타일에 민감한 채널에 유용합니다.

언급되지 않은 검사 지점은 에이전트 검증 상태로 유지됩니다. 프로젝트 정책 파일은 AGENTS.template.md(이 SKILL.md 옆에 있음)에서 시작합니다: 비디오 프로젝트 루트에 AGENTS.md(그리고 Claude Code용 CLAUDE.md 복사본)로 복사하여 도구 바인딩을 채웁니다. 스킬은 어디에도 업로드하거나 게시하지 않습니다 — 게시 키트는 디스크의 파일입니다. 게시는 항상 이 파이프라인 외부에서 사람이 수행하는 행위입니다.

도구 선택 (비디오별)

3단계 전에 TTS 백엔드와 비디오 도구를 한 번 결정하며, 다음 우선순위로 결정합니다:

  1. 프로젝트 바인딩이 우선합니다. 작업 중인 프로젝트의 채워진 AGENTS.md/CLAUDE.md(감독 정책 참조)는 사용자의 상시 사양입니다 — 이를 사용하고, 스캔하지 않으며, 의심하지 않습니다. 사용자가 세션에서 도구를 명명하면 파일보다 우선합니다. 정책 파일이 없거나 여전히 템플릿 플레이스홀더(/absolute/path/to/...)를 포함하는 경우, 규칙 2-3을 통해 바인딩을 해결한 다음 해결된 값을 프로젝트 정책 파일에 다시 작성하여 다음 실행이 바인딩된 상태로 시작되도록 합니다.
  2. 설치된 스킬 자동 감지. 작업을 수행할 수 있는 항목을 위해 세션의 사용 가능한 스킬을 스캔합니다 — 비디오: 저작 도구(Remotion, HyperFrames, CapCut ...)를 래핑하는 스킬; TTS: TTS 엔진을 래핑하는 모든 스킬. 엔드 투 엔드 파이프라인 스킬을 제외합니다 (예: 설치된 다른 video-podcast-maker 변형): 이들은 이 파이프라인과 같은 파이프라인이며 백엔드가 아닙니다 — 여기서 호출하면 워크플로가 중첩되고 검사 지점이 두 배가 됩니다. 하나가 맞으면 → 사용합니다; 여러 개면 → 프로젝트의 언어 및 출력 요구 사항에 가장 잘 맞는 것을 선택합니다. 선택 사항을 research.md에 기록합니다. 최종 요약에 표시합니다. 도구 확인을 위해 차단하지 마십시오.
  3. 찾을 수 없음. 사용자가 이미 가지고 있는 일반 CLI(ffmpeg + 모든 TTS CLI)로 대체하고 그렇게 말합니다 — 프롬프트 없이 새 도구를 설치하지 마십시오. TTS CLI가 자막 타이밍을 생성할 수 없는 경우, 전체 오디오 길이에 걸쳐 스크립트를 균등하게 분할하여 큐를 파생시키고 2단계 검사 지점에서 근사치에 플래그를 지정합니다. 사용자가 지정한 도구가 없거나 기능 기준을 충족할 수 없는 경우, 그렇게 말하고 즉흥적으로 대응하는 대신 규칙 2로 대체합니다.

기능 기준(규칙 1-3에 적용): TTS 선택은 내레이션 오디오와 자막 타이밍을 생성해야 합니다. 비디오 선택은 초안 비디오 파일(검사 지점 3 확인용)과 4K를 내보내야 합니다. 라이브 미리보기는 보너스일 뿐, 초안 내보내기를 대체하지 않습니다. 보조 작업은 선택이 필요하지 않습니다: 연구는 내장된 웹 검색을 사용하고, 스틸/표지는 비디오 도구의 스틸 내보내기 또는 모든 이미지 도구를 사용하며, 길이 확인은 ffprobe를 사용합니다. ffmpeg/ffprobe가 없으면 보고하고 중지합니다 — ±0.5초 불변 요소는 타협할 수 없으며 실행을 유지하기 위해 건너뛰지 않습니다.

작업 레이아웃

하나의 비디오에 대한 모든 아티팩트는 videos/{name}/에 있습니다({name} = 소문자 영어, 하이픈으로 구분). 오디오/타이밍 파일 이름은 선택한 백엔드에 맞게 조정됩니다. 중요한 것은 세트입니다:

videos/{name}/
├── research.md          # 1단계 — 사실 + 출처
├── podcast.txt          # 2단계 — 내레이션 스크립트
├── podcast_audio.wav    # 3단계 — 내레이션 오디오   (백엔드별 이름)
├── podcast_audio.srt    # 3단계 — 자막 타이밍  (또는 백엔드의 동등한 파일)
├── assets/              # 1단계 — 이미지/BGM + sources.md (자산별 출처 + 라이선스)
├── video-project/       # 5단계 — 비디오 도구가 생성하는 모든 것
├── final_4k.mp4         # 7단계 — 3840×2160 렌더
├── cover.png            # 7단계 — 비디오 표지
└── publish_info.md      # 7단계 — 제목 / 설명 / 태그 / 챕터

워크플로

진입점 확인(1단계 전). 프로젝트 루트(또는 사용자가 명명한 디렉토리)에서 videos/{name}/을 찾습니다. 이전 세션의 아티팩트가 이미 포함되어 있으면 반복입니다 — 영향을 받은 가장 이른 단계부터 재개하고(Iterating 참조), 1단계를 다시 실행하지 않습니다. 아티팩트가 없을 때만 1단계에서 시작합니다.

1단계 — 연구 ∥ 자료 수집

한 번의 조사 패스에서 두 가지 병렬 출력(사실과 자산은 동일한 출처에서 옴):

연구 → research.md. 주제 조사(웹 검색, 논문, 사용자의 포인터). research.md로 증류: 사실, 수치 및 해당 출처. 스크립트가 주장할 모든 숫자는 여기로 추적 가능해야 합니다 — 출처가 없는 정확한 숫자는 조작된 것입니다. 삭제하거나 속성을 부여하십시오.

자료 → assets/. 시각 자료와 표지가 사용할 모든 것을 videos/{name}/assets/로 수집: 섹션별 이미지/일러스트레이션/스크린샷, 브랜드 로고, BGM. 두 출처, 우선순위 순서:

  1. 사용자 제공 — 사용자가 전달하거나 가리키는 파일; assets/에 복사하고 원래 위치를 참조하지 마십시오.
  2. 자동 수집 — 공식 자료 우선(제품 배너, 사양 카드, 스크린샷), 그 외 무료/라이선스 세트(unDraw SVG, Pixabay/Pexels, OpenMoji / Microsoft Fluent Emoji / Google Noto Emoji, 브랜드 로고용 @lobehub/icons).

수집 시점에 각 자산의 출처 URL + 라이선스를 assets/sources.md에 기록합니다(속성 필수 세트는 7단계에서 비디오 설명에 크레딧을 표시해야 함). 섹션에 적합한 자산이 없습니까? 스크린샷을 조작하지 마십시오 — 해당 섹션에 대해 텍스트 전용 레이아웃(또는 일반 무료 라이선스 일러스트레이션)으로 대체하고, 결정을 assets/sources.md에 기록하고 계속 진행합니다. 사람 모드에서 사용자에게 묻는 것은 선택 사항입니다. 누락된 자산은 5단계 이전에 언제든지 추가할 수 있습니다.

2단계 — 스크립트 → podcast.txt, 그런 다음 검사 지점 1

말하기 텍스트만, 마크다운 없음. 스크립트를 [SECTION:xxx|display-label] 마커(소문자 영어 이름, 예: [SECTION:hero|intro])로 세그먼트로 분할합니다 — 비디오 세그먼트당 하나의 섹션. 이 마커 규칙은 스크립트, TTS 청킹 및 시각적 레이아웃 간의 이식 가능한 계약입니다. 모든 TTS/비디오 도구가 이를 사용할 수 있습니다. 마커는 구조적 메타데이터입니다: 절대 말하지 않으며, 자막 텍스트로 표시되지 않습니다 — TTS와 자막은 마커 사이의 텍스트만 사용합니다.

스타일 규칙(언어에 구애받지 않음): 스크립트 스타일(언어 중립적) 참조.

검사 지점 1 — 스크립트 자체 검토(필수). 모든 스크립트 스타일 규칙에 대해 스크립트를 확인한 다음, 해당 섹션을 assets/와 대조합니다: 일치하는 자산이 없는 섹션을 나열하고, 위의 자산 없음 규칙에 따라 수집하거나 대체하고, 어떤 것이 없이 진행되는지 기록합니다. 사람 모드(프로젝트 정책)에서는 대신 중단하고 스크립트를 넘깁니다 — 사용자가 명시적으로 승인할 때까지 TTS를 실행하지 마십시오. 오디오, 타이밍 및 시각적 진입은 모두 스크립트에서 파생됩니다. 늦은 스크립트 변경은 전체 재실행 비용이 듭니다.

3단계 — TTS

선택한 TTS 백엔드(Azure, Edge, fish, minimax, ... — 세션이 선택한 모든 것)를 실행합니다. 생성:

  • 내레이션 오디오 (WAV/MP3)
  • 자막 타이밍 (SRT 또는 동등한 것, 큐 텍스트 = 스크립트 그대로)

합성 전 발음 위생, 모든 내레이션 언어: 기계적으로 파생될 수 없는 브랜드/용어 읽기(Qwen은 중국어 브랜드 이름으로 읽고, MoE는 문자별로 철자)는 백엔드의 메커니즘에 따라 별칭/음소 목록에 들어갑니다 — 스크립트 텍스트에 절대 넣지 마십시오(자막으로 누출될 수 있음).

4단계 — 오디오 검사 — 검사 지점 2

에이전트 자체 검증(자율 모드): ffprobe를 사용하여 오디오 길이를 스크립트의 대략적인 추정치(언어별 말하기 속도; 묵음 또는 잘린 파일과 같은 심각한 오류를 잡는 데만 사용)와 비교합니다. 스크립트의 모든 브랜드/용어 토큰에 별칭/음소 항목이 있는지 확인합니다(적용 범위 확인 — 실제 발음은 사람 모드 검사 지점 2의 용도입니다). 합성 실패를 암시하는 묵음 또는 잘린 세그먼트가 있는지 확인합니다(silencedetect/volumedetect 사용). 별칭 목록의 간격을 수정하고 발견되면 다시 합성합니다. 사람 모드에서는 사용자가 전체 오디오를 대신 듣습니다. 오독 → 별칭 목록을 수정하고(스크립트 아님), 다시 합성하고, 다시 확인합니다.

5단계 — 비디오 제작

선택한 도구(Remotion, HyperFrames, CapCut, ...)로 시각 자료를 내레이션 오디오에 맞추어 자르고, assets/를 자료 풀로 사용합니다. podcast.txt의 섹션 마커는 레이아웃을 구동합니다. 자막 큐는 텍스트 진입을 구동합니다. 초안 파일을 videos/{name}/에 보관합니다.

6단계 — 미리보기 검사 — 검사 지점 3

에이전트 자체 검증(자율 모드): 초안 내보내기를 검사합니다(검색 가능한 비디오 파일 — 기능 기준이 하나를 보장함): 섹션당 한 프레임을 추출하고(ffmpeg -ss <mid-section-time> -i draft.mp4 -frames:v 1) 각각 레이아웃 오버플로, 누락된 자막, 손상된 자산 참조가 있는지 봅니다. 초안 길이가 내레이션 오디오와 ±0.5초 이내로 일치하는지 확인합니다. 모든 변경 후 수정하고 다시 확인합니다. 사람 모드에서는 사용자가 직접 초안을 검토합니다(도구에 라이브 미리보기가 있으면 그것을, 그렇지 않으면 초안 내보내기를 사용). 명시적 확인("render")이 있을 때만 렌더링하고, 변경이 있을 때마다 새로운 확인이 필요합니다.

7단계 — 4K 렌더 ∥ 게시 키트

병렬로 실행(렌더는 긴 블로킹 작업이며 게시 키트는 이에 의존하지 않음):

  • 렌더 3840×2160 → final_4k.mp4. 완료를 호출하기 전에 길이가 내레이션 오디오와 ±0.5초 이내로 일치하는지 확인합니다.
  • 게시 키트 → publish_info.md(제목 / 설명 / 태그 / 챕터 타임스탬프 — 각 챕터는 해당 섹션의 첫 번째 큐의 SRT 시간에서 시작) 및 cover.png(비디오 도구의 스틸 프레임에서 사용 가능하면 생성하고, 그렇지 않으면 모든 이미지 도구를 사용, assets/ 자료를 재사용할 수 있음). publish_info.md의 자산-출처 섹션은 assets/sources.md에서 복사합니다.

스크립트 스타일 (언어 중립적)

출처: 전체 스킬의 video-podcast-maker/references/natural-narration.md (AI-취향 방지) + script-polish.md (심층 편집)이 정식 출처입니다. 이것은 언어에 구애받지 않는 증류판입니다. 먼저 해당 규칙을 편집한 다음, 여기에 미러링하십시오 — 규칙을 포크하여 표류시키지 마십시오.

내레이션 언어는 사용자의 스크립트가 무엇이든 간에 — 이 파이프라인은 기본적으로 중국어로 설정되지만 아래 규칙은 모든 언어의 구어체에 적용됩니다. 이 규칙은 검사 지점 1에서 시행됩니다. 각 섹션을 소리 내어 읽어보십시오. 더듬거리면 문장을 나누십시오.

  • 일상적인 구어체 산문, 서면 산문이 아님. 문장당 하나의 아이디어, 주어 먼저, 중첩된 절 없음, 접속사로 — 또는 · 사용 금지. 문장 길이를 다양하게 함. 가벼운 1인칭 사용은 괜찮음.
  • 접속사 교체. 책 같은 접속사(게다가 / 그러나 / 따라서 / 요약하자면)를 일상적인 동등어로 바꾸거나 삭제합니다. 열거형 시작어(첫째 / 둘째 / 마지막으로)를 삭제하고 다음 요점으로 이동합니다.
  • 킬 목록. 공식적인 채우기 단어를 삭제합니다: 기업 유행어, "주목할 가치가 있는", "모두가 알다시피", "혁명적인", "게임 체인저", "원활한", "두고 보자" — 및 내레이션 언어의 동등어.
  • 구조적 신호. 동사-명사 껍데기("최적화 수행") → 구체적인 행동 + 결과("승인을 세 단계에서 하나로 줄임"). "X가 아니라 Y" → Y를 진술합니다. 세 부분 병렬("A와 B와 C 모두") → 가장 유익한 항목만 유지합니다. 둘이 셋보다 낫습니다. 모호한 강화어("상당히") → 숫자나 지각 가능한 결과. 모호한 귀인("전문가들은 말합니다") → 명명된 출처 + 날짜, 그렇지 않으면 문장 삭제. 슬로건 결말("미래는 밝습니다") → 구체적인 사실, 숫자 또는 다음 행동으로 끝냅니다.
  • 숫자는 아라비아 숫자 (86.1, 1.5G, 9B) — 자막은 스크립트 그대로이므로 화면에 표시되어야 하는 것을 작성하십시오. 오독을 수정하기 위해 TTS 구어체 형식을 스크립트에 절대 쓰지 마십시오. 백엔드의 별칭/음소 레이어를 사용하십시오.
  • 숫자는 추적 가능해야 함 research.md로 — 출처가 없는 정확한 숫자는 조작된 것입니다. 삭제하거나 속성을 부여하십시오.

반복

  • 스크립트 변경됨 → 검사 지점 1(사람 모드에서는 사람) 재실행, 그런 다음 3단계(TTS)부터 검사 지점 2와 3을 거쳐 렌더링까지. 절대 수동으로 타이밍을 편집하지 마십시오.
  • 오디오 재합성됨(동일한 스크립트, 다른 음성/속도) → 검사 지점 2 재실행; 타이밍이 변경되지 않았으면 시각 자료는 유지 가능; 렌더링 전에 검사 지점 3 재실행.
  • 시각 자료만 변경됨 → 편집하고 검사 지점 3 재실행.
  • 동일한 videos/{name}/ 디렉토리 재사용.

이 문서는 video-podcast-maker 스킬의 SKILL.md를 기반으로 합니다.

Individual skills in this repo

This repo contains 2 individual skills — each has its own dedicated page.

관련 스킬