Communitygithub.com

explainer-shorts-게시

폴더에 있는 세로형 설명 동영상 중 가장 입소문이 잘 날 에피소드를 선택하고, 시선을 사로잡는 커버와 캡션을 만들어 Chrome의 Claude를 통해 YouTube Shorts와 Instagram Reels에 게시합니다. 사용자가 에피소드/쇼츠/릴스를 게시, 발행 또는 업로드하거나 채널의 프로필 및 브랜딩을 새로고침해 달라고 요청할 때 사용하세요.

explainer-shorts-게시란 무엇인가요?

이 스킬은 **Only Sci Facts** 채널(YouTube `@onlyfactsci`, Instagram `onlyfactsci`)을 위해 설계된 종단 간 워크플로우로, 9:16 MP4 설명 동영상이 있는 모든 폴더에서 작동합니다. 주요 기능은 다음과 같습니다: (1) 인벤토리, 콘텐츠 시트 및 점수 매기기를 통해 가장 입소문이 잘 날 에피소드를 선별하고, (2) `ffmpeg`를 사용하여 3.8 MB 미만으로 압축하며, (3) 세 가지 스타일(blackhole, galaxy, frame)의 맞춤형 커버를 생성하고, (4) 후크, 페이오프, 댓글 유도 질문이 포함된 플랫폼별 캡션을 작성하며, (5) Chrome의 Claude(브라우저 자동화)를 통해 YouTube Studio 및 Instagram에 직접 게시하고, (6) 게시 여부를 확인하고 이미 게시된 에피소드는 건너뜁니다. 브랜딩 에셋 생성 및 프로필 업데이트도 지원합니다. 관련 스크립트를 실행하려면 `ffmpeg`, `ffprobe`, Python 3(Pillow, numpy), Inter Display 글꼴이 필요하며, 스킬 디렉토리 내 `scripts/` 폴더에 위치합니다.

지원 대상✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/pranaykrpiyush/video-publishing-skill/tree/HEAD/publish-explainer-shorts

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

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

문서

설명형 쇼츠 & 릴스 게시하기

Only Sci Facts 채널(YouTube @onlyfactsci, Instagram onlyfactsci)을 위한 종단 간 워크플로우: 에피소드 선택 → 업로드용 압축 → 커버 제작 → 캡션 작성 → YouTube Shorts 및 Instagram Reels에 게시 → 확인. 9:16 MP4 설명 동영상이 있는 모든 폴더에서 작동합니다.

스크립트는 이 파일 옆에 있는 scripts/ 디렉토리에 있습니다. 없으면 https://github.com/pranaykrpiyush/video-publishing-skill을 클론하고 publish-explainer-shorts/scripts/를 사용하세요.

스크립트에는 ffmpeg, ffprobe, Python 3(Pillow, numpy), Inter Display 글꼴이 필요합니다. 굵은 산세리프 글꼴이면 FONT_DIR 환경 변수를 가리키기만 하면 됩니다.

0. 시작하기 전에

  • 에피소드 폴더를 요청하거나 찾으세요. 에피소드 이름은 NN-slug.mp4 형식입니다(예: 14-falling-into-a-black-hole.mp4).
  • 요청에 명시되지 않은 경우, 게시할 에피소드 수와 플랫폼을 물어보세요.
  • 사용자가 Chrome에서 YouTube Studio와 Instagram에 로그인되어 있는지 확인하세요. 각 사이트를 한 번씩 열어 확인하세요.
  • 이미 게시됨? YouTube Studio의 Shorts 목록과 Instagram 그리드를 확인하여 에피소드를 두 번 게시하지 않도록 하세요.

1. 가장 입소문이 잘 날 에피소드 선택

  1. 인벤토리: scripts/inventory.sh <폴더>를 실행하면 각 파일의 재생 시간, 해상도, 오디오 레벨이 출력됩니다.

  2. 제외 기준:

    • 60초 초과(쇼츠로 작동은 하지만 완료율이 떨어짐) 또는 1080×1920이 아닌 경우;
    • 무음이거나 오디오가 클리핑되는 경우(max_volume이 −0.5 dB 초과);
    • 플랫폼에서 억제하는 주제(예: 마약, "LSD 거울" 에피소드; 그래픽 또는 의학 콘텐츠);
    • 이미 게시된 에피소드.
  3. 콘텐츠를 확인하세요. scripts/contact_sheet.sh <비디오> <출력.jpg> 명령은 4초마다 한 프레임씩 이미지를 만듭니다. 시트를 읽어보세요.

  4. 각 남은 에피소드에 대해 다음 항목별로 5점 만점으로 평가하세요:

    • 첫 1초의 후크: 큰 숫자, 역설, 또는 "~하면 어떻게 될까?"
    • 호기심 갭: 직관에 반하는 답변.
    • 시각적 드라마: 블랙홀, 은하 또는 폭발이 다이어그램보다 우수.
    • 댓글 유도: 열린 질문 또는 여러 경쟁 답변.
    • 광범위한 매력: 우주와 인체가 틈새 주제보다 우수.

    우주 역설(블랙홀, 페르미 역설, 별먼지, 암흑 물질)이 일반적으로 가장 높은 점수를 받습니다.

  5. 사용자에게 각 선택의 근거를 한 줄씩 알려주고 계속 진행하세요. 사용자가 선택을 요청하지 않는 한 승인을 기다리지 마세요.

2. 업로드용 압축

Chrome 확장 프로그램의 file_upload 도구는 3.8 MB를 초과하는 파일을 거부합니다. 재인코딩된 파일은 사용자가 직접 파일을 선택하는 경우에도 사용됩니다.

scripts/compress_for_upload.sh <입력.mp4> <출력.mp4>

스크립트는 x264를 CRF 26, -preset slow, AAC 96k, +faststart로 실행합니다. 그런 다음 원본 대비 SSIM과 크기를 출력합니다:

  • 목표 SSIM은 최소 0.995로, 시각적으로 무손실입니다.
  • 파일이 여전히 3.8 MB를 초과하면 CRF=28로 다시 실행하세요.

출력 파일은 에피소드 폴더 내 upload-ready/ 하위 폴더에 넣으세요. 원본 파일을 절대 덮어쓰지 마세요.

3. 커버 만들기

python3 scripts/make_cover.py --style blackhole \
  --kicker "만약" --headline "블랙홀에|떨어진다면?" \
  --tagline "두 가지 결말.|모두 사실입니다." --out 14-cover.png

python3 scripts/make_cover.py --style galaxy \
  --kicker "100,000,000,000개의 별" --headline "모두|어디 있나요?" \
  --tagline "우주선도 없고.|신호도 없습니다." --out 12-cover.png

python3 scripts/make_cover.py --style frame --video 05-why-the-sky-is-blue.mp4 --at 12 \
  --kicker "왜" --headline "하늘이|파란가요?" --tagline "바다를|반사하는 게 아닙니다." --out 05-cover.png

인수 작동 방식:

  • --headline에서 |는 줄을 바꿉니다.
  • --tagline에서 |는 텍스트를 흰색 부분과 주황색 부분으로 나눕니다.
  • --style frame은 에피소드의 내장 자막 사이에 있는 아트워크를 가져옵니다. 아트 가장자리에 라벨이 보이면 --art-top / --art-bottom으로 밴드를 이동하세요. 기본값은 소스 프레임의 420px과 1300px입니다.

각 커버는 1080×1920이며, 모든 텍스트는 중앙 1080×1350 영역 내에 유지되어 Instagram의 그리드 자르기가 유지됩니다.

카피라이팅 규칙:

  • 헤드라인은 질문 또는 충격적인 숫자입니다. 대문자로 2~4단어로 유지하세요.
  • 키커는 헤드라인을 설정합니다.
  • 태그라인은 결과를 알려주지 않고 암시합니다.

사용하기 전에 모든 커버를 확인하세요: Read로 여세요.

4. 캡션 작성

YouTube 제목. 70자 미만으로 유지하고 비디오가 답하는 질문 형식으로 작성하고 이모지와 #shorts를 추가하세요. 예: 블랙홀에 떨어지면 어떻게 될까? 🕳️ #shorts

설명 및 Instagram 캡션. 두 플랫폼에서 동일한 템플릿을 사용하세요:

<후크 라인: 역설 또는 큰 숫자> <이모지>

<2문장: 결과를 평이한 말로>

<댓글 유도 질문: "어느 쪽을 믿으세요? 👇" / "어느 버전을 경험하고 싶으세요? 👇">

(IG에서 @onlyfactsci 팔로우) 매일 새로운 과학 상식을 만나보세요 🚀

#<주제> #<주제2> #우주 #과학 #우주상식 #shorts|#reels

5. YouTube Shorts에 게시 (Chrome의 Claude)

  1. chrome-browser 스킬을 로드하세요. tabs_context_mcp를 실행한 다음 새 탭을 엽니다.
  2. https://studio.youtube.com/channel/<채널_ID>/videos/upload?d=ud로 이동하세요. 채널 ID는 로그인 후 Studio URL에 있습니다.
  3. 파일을 첨부하세요:
    • 먼저 find "file-input"을 시도한 다음, 장치 경로로 file_upload를 시도하세요.
    • 알려진 제한 사항: file_upload는 사용자의 연결된 폴더에 있는 파일을 자주 거부합니다("이 세션이 읽을 수 있는 파일만 허용됨"). 한 번 이상 재시도하지 마세요. 사용자에게 Select files를 클릭하고 upload-ready/<파일>.mp4를 선택하도록 요청하세요. 기본 대화상자가 열리므로 직접 클릭하지 마세요.
  4. 세부 정보:
    • 제목 필드: 클릭하고 ctrl+a를 누른 다음 입력하세요.
    • 설명: 클릭한 다음 입력하세요.
    • #태그를 입력하면 제안 드롭다운이 열립니다. Escape가 아닌 대화상자의 빈 부분을 클릭하여 닫으세요.
    • 시청자: find로 "No, it's not made for kids"를 찾은 다음 scroll_to로 스크롤하여 클릭하세요.
    • 썸네일: 사용자가 썸네일 아래 Upload file을 클릭하고 커버를 선택합니다. Studio는 맞춤형 Short 썸네일을 지원합니다.
  5. Next를 세 번 클릭하세요(비디오 요소, 확인, 공개 설정). Public을 선택한 다음 Publish를 선택하세요.
  6. 확인: /videos/short를 열고 get_page_text를 실행하세요. 새 제목에 Public 및 Published가 표시되어야 합니다.

6. Instagram Reels에 게시 (Chrome의 Claude)

  1. https://www.instagram.com/을 엽니다. "Turn on notifications" 알림은 Not Now로 닫으세요.
  2. 사이드바에서 Create를 클릭한 다음 Post를 클릭하세요.
  3. 사용자가 Select from computer를 클릭하고 MP4를 선택합니다. YouTube와 동일한 파일 선택기 제한 사항입니다.
  4. 자르기 단계: Instagram 기본값은 1:1로, 비디오를 정사각형으로 자릅니다.
    • 미리보기 왼쪽 아래의 자르기 아이콘을 클릭하고 Original을 선택하세요.
    • 미리보기가 세로(9:16)인지 확인한 다음 Next를 클릭하세요.
  5. 편집 단계: 사용자가 "Cover photo" 옆의 Select From Computer를 클릭하고 커버 PNG를 선택합니다.
    • 커버가 비디오와 일치하는지 확인하세요. 미리보기를 재생하고 콘텐츠와 트림 길이(예: 페르미의 경우 55초, 블랙홀의 경우 47초)를 비교하세요. 사용자가 잘못된 커버를 쉽게 선택할 수 있습니다.
    • Next를 클릭하세요.
  6. 캡션 단계:
    • 캡션 상자를 클릭하고 캡션을 입력하세요.
    • 해시태그 드롭다운이 닫히도록 끝에 공백을 추가하세요.
    • 사용자가 요청하지 않는 한 "Share to Facebook"은 끄세요.
  7. Share를 클릭하세요. find로 "Share button in New reel dialog header"를 찾고 ref로 클릭하세요. 대화상자가 크기가 조정될 때 좌표가 이동하기 때문입니다.
  8. "Your reel has been shared." 메시지가 나타날 때까지(20~40초) 기다린 다음 Done을 클릭하세요.

7. 프로필 및 브랜딩 (요청 시)

  • python3 scripts/brand_assets.py --outdir <디렉토리> 명령은 다음을 생성합니다:
    • onlyscifacts-profile-picture.png: 1024², 주황색 고리가 있는 블랙홀;
    • onlyscifacts-youtube-banner.png: 2560×1440, 텍스트는 1546×423 안전 영역 내에 위치.
  • Instagram:
    • 소개: instagram.com/accounts/edit/, 그런 다음 Submit.
    • 이름: accountscenter.instagram.com/profiles/, 그런 다음 계정, Name, Done. 14일 동안 두 번만 변경 가능합니다.
    • 사진: 계정 센터, Profile picture, Upload new photo. 사용자가 파일을 선택합니다.
  • YouTube: studio.youtube.com/channel/<ID>/editing/profile로 이동하세요.
    • 설명: 입력하세요.
    • 사진: Change. 배너: Upload. 사용자가 두 파일을 모두 선택합니다.
    • Publish를 클릭하세요.
    • 채널 이름은 14일 동안 두 번만 변경 가능합니다. 이름 변경 전에 물어보세요.
  • 저장하기 전에 항상 사용자에게 소개와 설명 텍스트를 보여주고 동의를 받으세요. 프로필 변경 사항은 공개됩니다.

규칙

  • 게시는 공개적이며 되돌리기 어렵습니다. 사용자가 요청한 내용만 게시하세요. 이전 게시물 편집, 게시물 보관 또는 채널 이름 변경 등 요청 외의 작업은 먼저 확인하세요.
  • 비밀번호를 절대 입력하지 마세요. 사이트에서 로그인을 요청하면 사용자가 직접 합니다.
  • 무엇이 게시되었는지 제목과 공개 설정과 함께 보고하세요. 파일 선택과 같이 사용자가 처리해야 할 사항이 있으면 언급하세요.

관련 스킬