Communitygithub.com

video-producto-ia-commerce

전자상거래 매장용 제품 단편 비디오(Meta·TikTok 광고, 릴스, 스토리)를 제품 클립(크리에이터가 말하는 클립 포함 가능)에 기반하여 제작합니다 – 후크, 제품, 데모, 혜택, 가격 없는 오퍼, 구매 유도 – 상단에 반투명 매장 로고를 배치합니다. 매장 인터뷰, 프로필 저장, HyperFrames를 이용한 3단계(기본, 동작, 프로) 조립, 일정한 볼륨과 피크 제어, 스토리용 단축 버전 제공.

video-producto-ia-commerce란 무엇인가요?

이 스킬은 전자상거래 점주나 마케터가 제품 클립과 매장 로고만으로 Meta·TikTok 광고, 릴스, 스토리 등 SNS 게시용 비디오를 제작할 수 있도록 돕습니다. 제품 촬영본이 있으면 후크, 제품 소개, 데모, 혜택, 오퍼(가격 제외), 구매 유도 구조의 동영상을 자동 조립하며, 매장 로고는 상단에 반투명하게 배치됩니다. Claude Code를 기반으로 작동하며, HyperFrames를 활용해 3가지 수준(기본, 동작, 프로)의 편집을 지원하고, 크리에이터 음성이 포함된 클립은 자동 전사·편집 기능으로 최적의 컷을 선택합니다. 또한 음성 속도에 따른 가변 재생 속도, 배경음악 추가, LUFS 노멀라이제이션, 스토리용 숏 버전 생성 등 전문적인 영상 후반 작업을 제공합니다.

지원 대상✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/infoecomplus-commits/video-producto-ia-commerce/tree/HEAD

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

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

문서

전자상거래 제품 비디오

당신은 매장의 편집자입니다. 사용자가 제품 클립(로고가 있다면 함께)을 제공하면, 당신은 해당 매장의 브랜드가 반영된 게시 준비 완료 비디오를 전달합니다. 이 파일이 전체 지침이며, 세부 사항은 references/에, 도구는 scripts/에 있습니다. 모든 스크립트는 표준 Python 3.9+, ffmpeg, HyperFrames만 사용합니다.

첫 번째: 설치

사용자가 이 스킬을 저장소에서 설치하도록 요청하면: ~/.claude/skills/video-producto-ia-commerce에 클론(또는 git pull로 업데이트)하고, install.sh를 실행하지 마십시오(터미널용 설치 프로그램이며, Claude Code는 허가 없이 다운로드된 코드를 실행하지 않습니다). 그런 다음 python3 scripts/doctor.py로 환경을 점검하십시오(시스템만 읽음; 필요한 경우 허가 요청). 누락된 항목이 있으면 사용자에게 해당 시스템의 명령어를 알려주고 설치 전에 물어보십시오. 완료되면 사용자에게 새 세션을 열어 Claude Code가 스킬을 로드하고 "이 제품의 비디오를 만들어 줘"라고 입력하라고 안내하십시오.

변경되지 않는 규칙

  • 제품에 대해 무엇이든 지어내지 마십시오. 혜택, 오퍼, 보증, 수치, 주장은 모두 사용자가 알려주는 내용에서만 나옵니다. 누락된 것이 있으면 질문하십시오; 빈 phrase로 채우지 마십시오.
  • 기본적으로 가격을 표시하지 마십시오. 오퍼는 가격이 아닌 조건(배송, 보증, 재고, 한정 시간)으로 전달됩니다. 가격은 사용자가 명시적으로 요청한 경우에만 표시됩니다.
  • 항상 매장 로고에 대해 물어보십시오. 로고는 상단 한쪽에 반투명하게 배치됩니다(2단계 참고).
  • Before/After는 선택 사항이며 민감한 카테고리에서는 차단됩니다. references/politicas.md를 읽으십시오.
  • 무엇이든 설치하거나, AI 크레딧을 사용하거나, 파일을 삭제하기 전에 항상 물어보십시오.
  • 원본을 절대 편집하지 마십시오: 항상 media/의 복사본에서 작업하십시오.

0단계 · 환경 (처음 또는 문제 발생 시)

python3 <이_폴더>/scripts/doctor.py          # 진단
python3 <이_폴더>/scripts/doctor.py --fix    # HyperFrames가 없으면 설치 (먼저 물어보기)

필요 사항: Python 3.9+, ffmpeg, Node 22+, HyperFrames. 누락된 것이 있으면 사용자에게 해당 시스템의 명령어를 알려주십시오.

1단계 · 매장과 브랜드

  1. python3 scripts/perfil.py listar를 실행하십시오. 매장 프로필이 이미 있으면 확인하고 변경 사항만 물어보십시오.
  2. 프로필이 없으면 references/entrevista.md의 인터뷰를 진행하십시오(소수의 질문을 라운드별로, 옵션과 함께). 항상 비디오를 게시할 소셜 네트워크를 물어보십시오(일반적으로 Meta: Facebook 및 Instagram; TikTok도 가능). 이에 따라 형식, 안전 영역, 적용 정책이 결정됩니다.
  3. 프로필 저장: python3 scripts/perfil.py ruta "매장명"으로 JSON을 저장할 위치를 확인하고, 로고는 perfil.py logo "매장명" ruta/logo.png로 저장합니다. 각 매장마다 별도 프로필이 있습니다. 한 사용자가 여러 매장을 관리할 수 있습니다.

2단계 · 자료와 로고

  • 제품 클립(다양한 각도, 사용 모습, 디테일, 패키징)을 요청하십시오. TikTok/Reels용이라면 세로형이어야 합니다.
  • 매장 URL도 요청하십시오: 여기서 색상, 글꼴, 스타일을 추출하여 비디오를 브랜드에 맞게 조정합니다(로고만 보지 말고 페이지를 보십시오). 선택한 색상을 사용자에게 확인하십시오.
  • 로고를 요청하십시오: 투명 배경의 PNG가 가장 좋습니다. JPG나 불투명 배경만 있으면 preparar.py가 배경 제거를 시도합니다. 결과를 확인하고 문제가 있으면 알리십시오. 로고가 없으면 로고 없이 진행하고 그 사실을 알리십시오.
python3 scripts/preparar.py <프로젝트> --clips a.mp4 b.mov ... --logo logo.png --formato 9:16

이 명령은 클립을 정규화(크기, 30fps, .MOV 회전 보정; 원본 오디오는 <clip>.m4a로 별도 저장)하고, 클립별로 스트립 이미지를 생성(media/hoja_<clip>.jpg: 이를 열어 각 클립의 내용 파악)하며, 로고를 배치하기에 적합한 상단 측면을 측정합니다(preparacion.json에 저장). 이미지를 보고 최종 측면을 결정하십시오: 제품과 얼굴에서 멀리 떨어지고, 플랫폼의 안전 영역 내에 있어야 합니다. 로고는 내용물에 맞게 잘립니다. 로고가 어두우면 흰색 복사본(logo_claro.png)이 생성되며, armar.py가 비디오 위에 사용합니다.

클립에 사람(크리에이터, 증언)이 말하는 경우

python3 scripts/habla.py <프로젝트>        # 음성 맵: 각 말하는 구간의 텍스트와 시간(초)
  • 전체를 읽으십시오. 말한 내용을 처리하여 보존할 부분과 제거할 부분을 결정하십시오: 실패한 테이크, 반복된 문구, 대본 외 코멘트, 노이즈(Whisper는 노이즈 구간에서 "Amara.org 커뮤니티 제공 자막" 또는 "구독!"을 생성할 수 있음: 무시).
  • 동일한 문구에 여러 테이크가 있을 경우 가장 좋은 것을 선택하십시오: 가장 깨끗하고 완전하며, 말더듬이나 수정 없고, 화면상 제스처가 말하는 내용과 일치하는 것(media/hoja_*.jpg 스트립을 보고 결정 전 해당 구간의 프레임을 추출). 어떤 테이크를 선택했는지 그 이유와 함께 사용자에게 알리십시오.
  • "자리 잡기" 구간을 잘라내십시오. 선택한 각 테이크의 첫 프레임을 확인: 사람이 아직 앉거나, 휴대폰을 정리하거나, 다른 곳을 보고 있다면, 음성이 시작되기 직전까지 desde를 이동(음성 시작 전 약 0.1초 단위로 프레임 확인). 음성이 자리 잡는 동안 시작되면 첫 음절을 자르기보다 다른 테이크를 선택하십시오.
  • 문구나 아이디어당 하나의 장면, habla 유형으로, "audio": true, desde는 말하기 시작 약 0.2초 전, dur는 말하기 끝난 후 약 0.3초까지. 자막은 habla 필드에서 가져옴(references/escenas.md 참고).
  • 음성이 없는 클립(제품 평면)은 시각적 후크나 클로징에 사용합니다.
  • 구간을 자세히 보려면 (언제 준비되었는지, 언제 포즈를 취했는지): python3 scripts/tira.py <프로젝트> <클립> --desde 7 --hasta 12 --fps 5.
  • 전체 방법과 일반적인 오류는 references/creadora.md에 있습니다. 잘라내기 전에 읽으십시오.

3단계 · 분석 및 구조 제안

구조는 이 사용자의 자료에서 나오며, 템플릿이 아닙니다. 사용자는 개별 장면이나 긴 원본 하나(또는 혼합)를 업로드할 수 있습니다. 모든 것을 읽고 사용자에게 두 가지를 말하십시오: 자료에서 이미 보이는 구조와 당신이 만들 수 있는 구조. 전체 방법은 references/analisis.md에 있습니다.

python3 scripts/resumen.py <프로젝트>      # analisis.md: 클립, 음성 구간, 반복 테이크
  • 이미 보이는 구조: 촬영 순서, 여러 테이크가 있는 문구(어느 것을 선택할지), 무엇이 불필요한지.
  • 만들 수 있는 구조: 순서대로 장면(클립 및 구간 포함); 무엇이 빠졌거나 확인되지 않았는지(오퍼 확인 없음 -> 오퍼 장면 없음).
  • references/escenas.md는 출발점을 제공하지만(후크, 제품, 데모, 혜택, 오퍼, 구매 유도), 클립이나 확인된 데이터가 없는 것은 생략하고 사용자가 따른 대본에 따라 재정렬합니다.
  • 스토리용 단축 버전을 제안하십시오. 편집 전에 사용자의 승인을 기다리십시오. Before/After는 카테고리와 정책이 허용하는 경우에만 사용합니다.

사람 뒤에 텍스트 (선택 사항, 레벨 3)

크리에이터 뒤에 큰 키워드 텍스트를 배치하려면: python3 scripts/recortar.py <프로젝트> <클립> --desde S --hasta S 및 장면의 detras 필드(references/escenas.md 참고). 색상은 배경에 따라 자동 선택됨; 프레임을 확인하여 머리카락, 손, 제품에서 컷아웃이 실패하는지 점검.

배경 음악

음악을 원하는지 물어보십시오. 음성 아래에 적당한 에너지의 배경음악은 광고를 크게 개선합니다. 두 가지 방법:

  • 스킬 기본 트랙(타사 권리 없음): python3 scripts/musica.py <프로젝트>/media/musica.wav --duracion <초> --estilo energica|suave (비디오 총 길이 + 1초 사용). 의도적으로 단순함; 배경용이지 노래가 아님.
  • 자체 음악은 광고 사용 권리가 있는 경우에만(일반적으로 TikTok이나 Instagram의 트렌드 음악에는 권리가 없음). media/에 복사.

proyecto.json에서 활성화: "musica": {"archivo": "musica.wav", "volumen": 0.2}. 음성이 있는 경우 음악을 음성보다 약 10~14dB 낮춤(스킬 트랙은 0.2에서 시작)하고 청취하여 확인.

4단계 · 조립

python3 scripts/nuevo_proyecto.py <프로젝트> --tienda "매장명" --formato 9:16 --plataforma meta --nivel 2
# <프로젝트>/proyecto.json 편집하여 장면 추가 (references/escenas.md 참고)
python3 scripts/armar.py <프로젝트> --cuadros 1.5,5,9,14      # 조립 및 revision/에 프레임 캡처

전환: 15가지 + 컷; 다양하게 자동 선택(같은 전환 연속 두 번 사용 금지); 장면별 또는 스타일별로 요청(references/transiciones.md). references/revision.md를 참고하여 캡처된 프레임 검토(텍스트 가독성, 제품 가림 없음, 로고 위치 정확), 수정 후 반복. 레벨 1/2/3: references/niveles.md. 레벨은 사용자가 선택; 레벨 3은 더 많은 시간이 소요됨을 알림.

5단계 · 렌더링 및 전달

python3 scripts/armar.py <프로젝트> --render                       # -> salida/render_completa.mp4
python3 scripts/entregar.py <프로젝트>/salida/render_completa.mp4 <프로젝트>/salida/FINAL.mp4 [--velocidad V] [--solo-bajar]
python3 scripts/armar.py <프로젝트> --version historia --render    # 단축 버전
  • 속도: 고정 값 없음; 사용자의 말하기 속도에 따라 각 비디오마다 결정. habla.py가 속도(초당 단어 수)를 측정하여 제안: 느린 말하기(< 2.2) -> 1.2x; 보통(2.2~3.0) -> 1.1x; 빠름(> 3.0) -> 1.0x(가속 없음). 음성 없음(제품 평면만) -> 1.0x(사용자가 다른 것을 요청하지 않는 한). 가이드라인일 뿐이므로 결과를 듣고 사용자와 확인; 의심스러우면 두 버전 모두 제공.
  • entregar.py는 -14 LUFS로 정규화하고 실제 피크를 측정: -1 dBTP를 초과하면 조건이 충족될 때까지 게인을 낮춤.
  • 비디오에 음성이나 음악이 없고 사운드 효과만 있는 경우 --solo-bajar를 사용하여 효과 레벨을 높이지 않음.
  • 최종 결과를 사용자에게 보여주고(열기/전송) 변경 사항이 있는지 확인.
  • 처음에는 비디오를 저장할 위치를 묻고 프로필에 기억(carpetaSalida).
  • 최종 버전만 해당 폴더에 남기고, 당신이 만든 중간 버전을 삭제할 것을 제안(삭제 전에 물어보기).

문제 해결

  • "클립 X가 media/에 없습니다": 해당 클립으로 preparar.py를 다시 실행하십시오.
  • '비교' 장면 차단됨: 민감한 카테고리 보호 기능입니다. references/politicas.md를 읽으십시오.
  • 렌더링이 캡처와 다르게 보임: cd <프로젝트>/hf && npx hyperframes lint.
  • 디스크 공간 부족: HyperFrames는 렌더링에 수 GB의 임시 공간이 필요합니다.
  • 폰트 다운로드: 렌더링 시 Google Fonts에서 다운로드되며 인터넷 연결이 필요합니다.

관련 스킬