Communitygithub.com

atlantis-mk/remotion-video-template

以单一主题全自动生成深色信息图风格的口播视频:撰写口播稿、豆包配音、分镜与素材、Remotion 动画、渲染成片、封面与发布文案。用户说「开始制作」或需要制作口播/信息图/财经科技解说视频时使用。支持横屏与竖屏。

remotion-video-template란 무엇인가요?

本技能是一个基于 Remotion 的全自动信息图口播视频生成工具,用户只需提供一个选题,即可自动完成从撰稿、配音、分镜、动画、渲染到发布文案的全部流程。它专为深色信息图风格设计,适合财经、科技等解说类视频制作,支持横屏(1920×1080)和竖屏(1080×1440)两种画幅。 技能采用模块化流水线架构,包含 10 个固定步骤:环境检查、选题确认、稿件撰写、豆包配音、分镜设计、素材获取、工程搭建、项目自检、渲染输出、发布文案交付。每个步骤都有对应的 Python 脚本和校验机制(validator),确保产出质量。配音依赖豆包 TTS API(通过 `.env` 配置),动画基于 Remotion 与注册表内的 15 个组件,样式令牌统一管理,禁止硬编码色值或随机数。 技能还内置了严格的数据合规和安全性规则:所有数字必须有来源,屏幕显示带有来源角标;API Key 仅从 `.env` 读取,不允许在聊天中暴露或更换配音引擎;不发布、不上传任何内容到外部平台;用户从选题确认后到交付前无需任何交互。此外,技能包含资产授权与署名复核机制,确保素材使用合规。 该技能适用于 Cursor、Claude Code 等支持技能定义的 AI 代理工作流,需要通过 Node 18+、Python 3、ffmpeg 和 npm 等环境运行。

지원 대상~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/atlantis-mk/remotion-video-template/tree/HEAD/.agents/skills/remotion-infographic-video

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

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

문서

정보그래픽 구술 영상

위치 및 전달 구조 (아키텍처 v1.11)

  • 전달 저장소 루트에는 반드시 AGENTS.md가 있어야 함(이 템플릿 사용법); 이 스킬은 .agents/skills/remotion-infographic-video/에 고정됨.
  • tests/는 저장소 루트(.agents/와 같은 수준)에 있으며, 개발 게이트/CI 용도로 런타임에 속하지 않으며, '스킬만 설치' 시 복사되지 않음.
  • .env는 이 스킬 디렉토리에만 있으며, 저장소 루트에 있지 않음.

사용 전 준비 (복사 후 바로 사용)

  1. 복사:
    • 전체 저장소 사용: 전달 저장소 루트를 클론/복사하여 열기(루트 AGENTS.md 및 tests/ 포함).
    • 스킬만 설치: .agents/skills/remotion-infographic-video/를 대상 프로젝트의 동일 경로로 복사(하위 scripts/ 및 lib/ 포함).
    • 스킬 패키지 자체는 pip/npm 설치가 필요하지 않음; scripts/는 Python 표준 라이브러리만 사용하며, .env 설정 후 단계 0–5를 실행할 수 있음.
  2. .env 설정: 이 스킬 디렉토리에서 cp .env.example .env 실행 후 .env를 편집하여 입력:
    • 필수: DOUBAO_TTS_API_KEY=(등호 뒤에 Key를 쓰고 따옴표 없음)
    • 선택: DOUBAO_SPEAKER=(기본 음색은 VOICE 참조)
    • .env는 .gitignore에 포함되어 Key를 채팅에 붙여넣지 말고, 다른 TTS 엔진으로 교체하지도 마십시오.
  3. 환경 전제 조건(직접 설치, 스크립트가 대신 설치하지 않음): Node 18+, Python 3, ffmpeg, ffprobe, 네트워크.
  4. 제작 시작: 사용자가 '제작 시작' 또는 동등한 의도를 말하면:
    • 먼저 python3 scripts/check_env.py 실행(--skill-dir <이 스킬 패키지 절대 경로> 사용 가능; 기본값은 현재 디렉토리).
    • 종료 코드 3: .agents/skills/remotion-infographic-video/.env(또는 이 스킬의 절대 경로 아래 .env)에 DOUBAO_TTS_API_KEY를 입력하라는 메시지를 표시하고, 사용자가 '작성 완료'라고 응답하면 다시 실행; 그 전까지는 음성 및 프로젝트 생성을 수행하지 않음.
    • 통과 후: 메시지에 이미 주제가 있으면 바로 고정 단계로 진행; 그렇지 않으면 한 번만 주제를 물어봄('세로' 명시 가능; 기본값은 가로 1920×1080, 세로 1080×1440, 규칙은 LAYOUT 참조). 플랫폼 이름은 화면 비율에 영향을 주지 않음.

엄격한 규칙

  • Key는 이 스킬 디렉토리의 .env(전달 저장소의 경우 .agents/skills/remotion-infographic-video/.env)에 있는 DOUBAO_TTS_API_KEY에서만 읽음; 사용자가 채팅에 Key를 붙여넣지 못하게 하며, TTS 엔진을 교체하지 말고, 어떤 출력에도 Key를 표시하지 않음.
  • 게시/업로드 금지: 완성된 영상, 커버 및 카피 파일만 생성.
  • 숫자에는 반드시 출처가 있어야 함; 화면에 표시되는 숫자에는 출처 각주가 포함됨; 아이콘은 '예시'로 표시.
  • 각 스크립트 stdout의 마지막 줄은 JSON 요약; 종료 코드에 따라 처리: 3 Key 누락(.env 입력 안내 후 중지), 4 인증 실패(중지), 5 이전 산출물 수정, 6 실패한 항목만 재실행, 7 수정 모드 진입.

고정 단계

  1. 전제 검사: python3 scripts/check_env.py. 종료 코드 3이면 위 안내에 따라 .env를 작성한 후 다시 실행.
  2. 주제 수집: topic, slug, 화면 비율 결정 후 <slug>/job.json 작성(화면 비율 미지정 시 기본값 가로); 사용자가 플랫폼을 명시하면 platforms를 작성하고, 그렇지 않으면 PUBLISH의 기본 플랫폼을 따름.
  3. 원고 작성: script.md(## Sxx 단계명 + - [01] 텍스트 {context: … | rate: 0 | pause: 300}) 및 sources.md(마지막 json 블록) 작성 후 python3 scripts/validate.py sources <slug>/script.md <slug>/sources.md 실행; 출처 없는 숫자는 삭제하거나 출처를 추가해야 함.
  4. 음성 더빙: 환경에 입출력이 동일한 MCP 음성 도구(tts_synthesize)가 있으면 사용, 그렇지 않으면 python3 scripts/tts_doubao.py <slug>/script.md --out-dir <slug>/voice 실행; 두 방식 모두 생성된 timeline.json은 동일한 Schema(assets/schemas/)로 검증: python3 scripts/validate.py timeline <slug>/voice/timeline.json. 실패한 문장은 --only로 재실행.
  5. 스토리보드: storyboard.json 작성(각 문장은 최소 하나의 장면에 포함되며, 단계 전환 및 장면 진입은 열거형 값 사용), python3 scripts/validate.py storyboard <slug>/storyboard.json --timeline <slug>/voice/timeline.json 실행.
  6. 에셋: python3 scripts/fetch_asset.py의 add 명령으로 각 에셋 등록, prune 명령으로 사용되지 않은 에셋 제거; 라이선스가 불명확한 에셋은 사용 금지.
  7. 프로젝트 생성: python3 scripts/scaffold_project.py --job <slug>/job.json --out <slug>/project로 프로젝트 생성 후 예시(assets/example/)에 따라 각 장면 작성, 그 후 python3 scripts/build_timeline.py --timeline <slug>/voice/timeline.json --storyboard <slug>/storyboard.json --subtitles <slug>/voice/subtitles.json --manifest <slug>/assets-manifest.json --project <slug>/project 실행, 그 후 프로젝트 내에서 npm ci 실행.
  8. 자체 점검: bash scripts/check_project.sh <slug> 실행; 실패 시 check/report.json을 읽어 수정 후 재실행, 최대 3회까지 시도, 그래도 실패하면 중단 후 보고.
  9. 렌더링: bash scripts/render.sh <slug>로 완성 영상(<slug>/out/video.mp4) 및 커버(<slug>/publish/cover_<W>x<H>.png) 생성 후 자동 검수.
  10. 게시 카피 및 전달: PUBLISH에 따라 각 대상 플랫폼별로 publish/<platform>/title.txt, description.txt 작성, 태그는 플랫폼별로 publish/<platform>/tags.txt(한 줄에 하나)에 작성 후 python3 scripts/validate.py publish <slug>, python3 scripts/validate.py deliverable <slug>, python3 scripts/validate.py leak <slug> 실행, 그 후 python3 scripts/fetch_asset.py credits-diff --manifest <slug>/assets-manifest.json --slug-dir <slug>로 저작자 표시 재확인.

스타일 엄격 규칙 요약

  • 색상, 폰트 크기, 애니메이션 값은 assets/tokens.json에서만 가져오며, 배경색 기준은 #070A0F; 장면 코드에는 색상 값을 직접 쓰지 않음(STYLE 참조).
  • 등장은 통일된 스프링 애니메이션, 단계 전환 5가지, 장면 진입 3가지로 스토리보드 열거형 사용(MOTION 참조).
  • 컴포넌트는 등록된 15개만 사용하며, 목록 외의 것은 프로젝트 내에서 새로 작성하고 tokens + useLayout() 사용(COMPONENTS 참조).
  • 레이어는 background / scene / hud / subtitle 네 개뿐이며, 엔딩 크레딧 화면 없음; 영상 길이 = 음성 길이.
  • 난수는 random(seed)만 사용, Math.random 금지.
  • 레이아웃은 캔버스 너비와 높이에서 유도하며, src/에서 src/layout/presets.ts만 캔버스 크기를 작성 가능(LAYOUT 참조).
  • 원고 작성법은 SCRIPT, 음성 파라미터는 VOICE, 에셋 라이선스 및 저작자 표시는 ASSETS 참조.

금지 사항

  • 어떤 플랫폼에도 게시/업로드하지 않음.
  • Key 유출 금지: 표시하지 말고, 산출물에 쓰지 말고, 사용자가 채팅에 Key를 붙여넣지 못하게 하며, 다른 TTS 엔진으로 교체하지 마십시오.
  • 라이선스가 불명확한 에셋을 사용하지 않음; 저작자 표시, 설명, 제목에 링크를 넣지 않음.
  • 데이터를 조작하지 않음: 출처 없는 숫자는 원고에 포함되지 않고 화면에 표시되지 않음.
  • 주제 결정 후 전달까지 사용자에게 질문하지 않으며, 어떤 에셋도 요청하지 않음.

전달

deliverable.json의 내용을 한 번에 반환: 완성 영상 경로 및 길이, 화면 비율, 커버, 각 플랫폼별 제목 및 설명, 태그, 에셋 저작자 표시, 출력 디렉토리 및 비고.

관련 스킬