Communitygithub.com

tauseefau/podcast-video

주제를 입력하면 로컬 VoiceStudio 음성과 HyperFrames를 사용하여 두 명의 진행자가 대화하는 팟캐스트 형식의 1080p MP4 비디오를 생성합니다. 사용자가 팟캐스트 비디오, AI 음성 대화 비디오 또는 YouTube 설명 영상을 요청할 때 사용하세요.

podcast-video란 무엇인가요?

이 스킬은 사용자가 제공한 주제를 바탕으로 두 명의 AI 진행자가 대화하는 팟캐스트 스타일의 1080p MP4 비디오를 자동으로 생성합니다. 주요 기능으로는 각 주제별 배경 사진, 제목 카드, 아이콘, 스피커 라벨 및 애니메이션 음성 막대를 포함하며, 주제 전환 시 전체 화면 와이프 효과와 함께 '휙' 소리, 아이콘 등장 시 '팝' 효과를 지원합니다. 마지막 장면에는 구독 버튼과 크레딧이 포함됩니다. 사용자의 목소리를 VoiceStudio로 복제하여 오프닝에 사용할 수도 있습니다. 이 도구는 Claude Code, Cursor, Codex 등 다양한 AI 에이전트 플랫폼에서 사용할 수 있으며, HyperFrames 기술을 기반으로 동작합니다. 작업을 시작하기 전에 사용자와의 인터뷰를 통해 주제, 시청자, 길이, 진행자 구성, 톤, 오프닝 방식 등 모든 결정을 사전에 확정한 후 비디오 제작을 진행합니다. 이를 통해 불필요한 재작업을 방지합니다.

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

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

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

문서

Podcast Video

두 명의 진행자가 주제에 대해 대화하는 1920x1080 비디오를 만듭니다. 각 주제마다 고유한 배경 사진, 제목 카드, 아이콘 및 애니메이션 음성 막대가 있는 스피커 레이블이 제공됩니다. 주제가 변경되면 전체 화면 와이프와 휙 소리가 나고, 아이콘은 팝과 함께 나타나며, 마지막 장면에는 구독 버튼과 크레딧이 표시됩니다. 사용자의 복제된 목소리로 시작할 수도 있습니다.

구성을 변경하기 전에 /hyperframes를 읽으십시오. 아래 스크립트는 이 스킬의 scripts/ 폴더에 있습니다. 비디오 프로젝트 폴더에서 실행하십시오.

0. 먼저 인터뷰

이 단계가 완료될 때까지 리서치, 작성 또는 생성을 하지 마십시오. 렌더링된 비디오는 다시 만들기 느리므로, 결정을 먼저 확정하십시오. 이 방법은 Matt Pocock의 grilling skill에서 비롯되었습니다.

결정은 트리 구조를 이룹니다. 어떤 질문은 다른 질문이 확정된 후에만 물을 수 있습니다. 라운드 방식으로 진행하십시오:

  1. 현재 전제 조건을 충족할 수 있는 모든 질문을 하고, 아직 듣지 못한 답변에 의존하는 질문은 하지 마십시오. 그 질문은 이후 라운드를 기다립니다.
  2. 각 질문에 번호를 매기고 권장 답변을 제공하십시오. "예"라고 답하면 수락하는 방식으로 작성하십시오.
  3. 답변을 기다린 후, 무엇이 해결되었는지 파악하고 다음 라운드 질문을 하십시오. 답변으로 인해 계획된 질문이 무의미해질 수도 있습니다. 그런 질문은 제거하십시오.

각 질문은 다음과 같은 형식으로 작성하십시오:

❓ **Q1** - **<제목>**: <질문>

➡️ <권장 답변>

사실은 당신의 일이고, 결정은 그들의 일입니다. 스스로 찾을 수 있는 것은 절대 묻지 마십시오: VoiceStudio가 실행 중인지, 어떤 음성 프로필이 있는지(GET /profiles), 폴더에 무엇이 있는지, 리서치 내용 등을 묻지 마십시오. 결정을 대신 내리지 마십시오. 평문으로 질문하여 사용자가 자신의 언어로 답변할 수 있도록 하십시오.

대략 다음 순서로 결정을 다루어야 합니다:

라운드결정
1주제와 구체적인 관점. 누가 시청하는지, 그들이 이미 알고 있는 것. 시청자가 이후에 해야 할 행동. 목표 길이.
2두 명의 진행자: 그들의 정체성과 관계(예: 전문가와 고객). 톤. 쇼 이름. 사용자의 목소리로 시작할지 여부.
3사용자의 목소리로 시작하는 경우: 어떤 프로필, 정확한 문구. 디자인된 진행자의 억양과 음성 특성.
4리서치 후: 사용할 결과물과 제외할 주장. 주제 목록(순서대로).
5비주얼과 사운드: 사진 종류, 각 주제의 아이콘, 와이프, 휙, 팝의 변경 사항. 비디오를 게시할 위치.

요청에 이미 답변된 내용은 건너뛰십시오. 사용자가 "그냥 진행" 또는 "당신이 결정"이라고 말하면 질문을 중단하고 권장 답변을 적용한 후 목록으로 제시하십시오. 질문 수에는 제한이 없지만, 의미 없는 질문은 하지 마십시오. 모든 질문은 비디오에 변화를 주어야 합니다.

마지막으로 계획을 몇 줄로 요약하십시오: 주제, 시청자, 길이, 진행자, 오프닝, 주제 목록 및 행동 촉구. 1단계를 시작하기 전에 사용자의 확인을 기다리십시오. 나중에 결정이 다시 열릴 수 있는 경우(예: 리서치가 관점을 약화시키는 경우), 중단하고 질문하십시오.

1. 설정 확인

  • curl -s "$VOICESTUDIO_URL/profiles"가 응답해야 합니다. 기본 URL: http://localhost:3000. 서버에 API 키가 있는 경우 VOICESTUDIO_API_KEY가 설정되어야 합니다. 절대 키를 프로젝트 파일에 기록하지 마십시오.
  • ffmpeg와 node가 PATH에 있어야 하며, HyperFrames 스킬이 설치되어 있어야 합니다.

무언가 누락된 경우 중단하고 사용자에게 이 스킬의 README를 안내하십시오.

2. 프로젝트 생성

npx hyperframes init <dir>를 실행한 다음 templates/script.example.json을 <dir>/script.json으로 복사하십시오.

3. 리서치 및 script.json 작성

먼저 주제를 리서치하십시오. 모든 통계는 실제 출처가 필요합니다. 해당 장면의 source 필드에 출처를 기록하고 숫자를 지어내지 마십시오. 자연스러운 대사를 작성하십시오(분당 약 150단어).

필드의미
show모든 장면에 표시되는 쇼 이름
chips마지막 장면의 크레딧 레이블
voices스피커당 하나의 항목. name, role, color, 그리고 profile_id 또는 instruct와 seed 중 하나
scenes나타나는 순서대로. kicker, title, icon, 선택적 sub와 source. 마지막 장면은 아웃트로
lines말하는 순서대로: who, scene, text. 한 장면의 라인은 연속적이어야 함

icon은 주제에 맞는 Lucide 아이콘 이름입니다(예: phone-call).

사용자의 복제된 목소리로 시작하려면 VoiceStudio profile_id( GET /profiles에서 확인)로 음성을 추가하고, 고유한 첫 번째 장면을 할당한 후 "시작해 볼까요!"와 같은 인계 멘트로 라인을 끝내십시오. 소유자의 허락 없이 목소리를 복제하지 마십시오.

음성을 생성하기 전에 사용자에게 스크립트를 보여주십시오.

4. 음성 생성

python3 <skill>/scripts/make_voice.py

이 명령은 assets/audio/와 assets/lines.json을 작성합니다. 오디오는 캐시되므로 스크립트를 편집한 후 변경된 부분만 생성됩니다. 사용자가 음성을 다시 복제하는 경우 assets/audio/에서 해당 오디오를 삭제하여 다시 생성되도록 하십시오. 먼저 프로필의 ref_audio_path가 변경되었는지 확인하십시오: 저장되지 않은 복제는 이전 음성을 그대로 둡니다. 렌더링하기 전에 사용자가 오디오를 듣도록 하십시오.

5. 이미지, 아이콘 및 사운드 추가

이미지: 각 장면에는 assets/img/<장면-id>.jpg, 가로 방향, 최소 1920px 너비가 필요하며, 이전 장면과 다른 사진을 사용하여 모든 주제 변경이 시각적으로 구분되도록 하십시오. 사용자가 게시할 수 있는 이미지만 사용하십시오(예: Wikimedia Commons의 CC 라이선스 사진). 각 이미지를 assets/img/credits.json에 다음과 같이 기록하십시오: {"<장면-id>": {"artist": "...", "license": "...", "page": "..."}}. 마지막 장면에 작가 이름이 표시됩니다.

아이콘:

npm pack [email protected] --silent && tar xzf lucide-static-0.460.0.tgz
mkdir -p assets/icons && cp package/LICENSE assets/icons/LICENSE
cp package/icons/<아이콘-이름>.svg assets/icons/   # 장면 아이콘당 한 번
rm -rf package lucide-static-0.460.0.tgz

사운드: 다음 명령을 실행하고 각각 출력된 파일을 복사하십시오:

npx hyperframes media-use resolve --type sfx --intent "짧은 휙 전환" --project .
npx hyperframes media-use resolve --type sfx --intent "빠른 팝 배지" --project .
mkdir -p assets/sfx
cp <휙 경로> assets/sfx/whoosh.mp3
cp <팝 경로> assets/sfx/pop.mp3

CC BY 사운드가 있는 경우 마지막 장면에서 chips를 통해 크레딧을 표시하십시오.

6. 빌드 및 확인

python3 <skill>/scripts/build.py를 실행한 다음 npx hyperframes check를 실행하십시오. 모든 오류를 수정하십시오. 그런 다음 npx hyperframes snapshot --at <초>를 실행하고 렌더링 전에 장면 전환 시 프레임을 확인하십시오. 와이프는 build.py가 출력하는 장면 시작 시간에 전체 화면으로 표시됩니다.

7. 렌더링

npx hyperframes render를 실행하십시오. MP4 파일은 renders/ 폴더에 생성됩니다. 비디오 1분당 몇 분이 소요될 수 있습니다.

파일을 확인한 후 측정 결과를 사용자에게 알리십시오: npx hyperframes audio <비디오> --json 명령으로 사운드 존재 여부와 음량 범위를 확인할 수 있습니다. 소리를 들을 수는 없으므로 사용자에게 직접 듣도록 요청하십시오.

관련 스킬