Communitygithub.com

dvcrn/viraloop

TikTok과 Instagram 캐러셀 성장을 위한 OpenClaw AI 에이전트 스킬입니다. 웹사이트 URL을 분석하여 브랜드, 경쟁사, 가치 제안을 추출한 후, 업로드-포스트 API를 통해 자동 게시 및 트렌딩 음악과 함께 바이럴 슬라이드를 생성합니다. 내장된 분석 피드백 루프를 제공합니다.

viraloop란 무엇인가요?

Viraloop은 완전 자율적인 일일 캐러셀 게시를 통해 TikTok 및 Instagram 계정을 성장시키도록 설계된 AI 에이전트 스킬입니다. 웹사이트 URL을 분석하여 브랜드 아이덴티티, 경쟁사 및 가치 제안을 추출한 후, Gemini의 이미지 생성 기능을 사용하여 시각적으로 일관된 6개의 슬라이드 캐러셀을 생성합니다. 그런 다음 Upload-Post API를 사용하여 트렌딩 음악과 함께 피드에 직접 게시하므로, 사용자는 확인하지 않고 게시됩니다. 이 스킬은 성능 데이터를 분석하고, 가장 효과적인 후크, 최적의 게시 시간 및 시각적 스타일에 대한 통찰력을 'learnings.json' 파일에 축적하는 자체 개선 루프를 포함합니다. 이 데이터는 향후 캐러셀을 지속적으로 개선하여 시간이 지남에 따라 더 효과적으로 만듭니다.

지원 대상✓Claude Code~Codex CLI~Cursor✓Gemini CLI
npx skills add https://github.com/dvcrn/openclaw-skills-marketplace/tree/main/plugins/mutonby--viraloop/skills/viraloop

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

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

문서

viraloop은(는) 무엇을 하나요?

웹사이트를 분석하고 시각적으로 일관된 6슬라이드 캐러셀을 생성하여 TikTok/Instagram에 게시합니다. (드래프트 없이) 피드에 직접 게시되며 자동 트렌딩 음악이 추가됩니다. Gemini와 Upload-Post.com API 모두 무료 플랜을 제공하므로 시작하는 데 신용카드가 필요하지 않습니다.

철학: 일일 자동화 루프

성장의 핵심은 일관성 + 학습입니다. 이 스킬은 매일, 완전히 자율적으로 실행되도록 설계되었습니다. 에이전트는 연구에서 게시에 이르기까지 확인을 요청하지 않고 전체 파이프라인을 실행하며, 마지막에 게시된 TikTok 및 Instagram URL로만 사용자에게 알립니다.

  1. 하루에 1개의 캐러셀 게시 - 일관성이 바이럴을 이깁니다.
  2. 모든 것을 추적하세요 - 모든 게시물이 데이터를 생성합니다.
  3. 데이터에서 배우세요 - 어떤 후크가 효과적입니까? 어떤 시간? 어떤 시각 자료?
  4. 반복하고 개선하세요 - 각 캐러셀은 이전보다 더 좋아집니다.
1일차: 게시 → 분석 → 학습
2일차: 게시 (개선됨) → 분석 → 학습
3일차: 게시 (더 나아짐) → 분석 → 학습
...
30일차: 30개의 데이터 포인트와 정제된 전략을 갖게 됩니다.

이 스킬은 모든 게시물의 통찰력을 축적하는 learnings.json을 유지 관리합니다.

  • 가장 효과적인 후크
  • 최적의 게시 시간
  • 효과적인 시각적 스타일
  • 전환율이 높은 CTA

이것은 일회성 도구가 아닙니다. 성장 엔진입니다.

시작 전: 계정 워밍업

TikTok 또는 Instagram 계정이 새 계정이라면 첫날에 캐러셀을 게시하지 마세요. 두 플랫폼 모두 갑자기 콘텐츠 게시를 시작하는 신규 계정의 도달 범위를 제한합니다.

TikTok (7-14일 워밍업)

  • 매일 30-60분 동안 TikTok을 정상적으로 사용하세요: 스크롤, 좋아요 (약 10개 동영상 중 1개), 내 틈새 시장의 계정 팔로우
  • For You 페이지가 내 틈새 시장의 콘텐츠로 가득 찰 때까지 기다리세요. 알고리즘이 계정을 프로파일링했다는 의미입니다.
  • 그런 다음에야 게시를 시작하세요. 첫 게시물이 묻히지 않고 올바른 대상에게 도달할 것입니다.

Instagram (5-7일 워밍업)

  • 매일 Reels와 Explore 페이지를 탐색하고, 내 틈새 시장의 콘텐츠와 소통하세요.
  • 관련 계정을 팔로우하고, 진정성 있게 좋아요와 댓글을 남기세요.
  • 첫 캐러셀 전에 스토리를 2-3개 게시하여 계정이 활성 상태임을 알리세요.

이것이 중요한 이유

플랫폼은 활동이 전혀 없다가 자동 게시로 전환하는 계정을 플래그 지정합니다. 워밍업된 계정은 차가운 계정보다 초기 도달 범위가 5-10배 더 높습니다. 이 단계는 지루하지만 첫 캐러셀에서 조회수 500과 50,000의 차이를 만듭니다.

계정이 이미 활성화되어 있고 잘 정착되어 있다면 이 단계를 건너뛰고 빠른 시작으로 바로 가십시오.

빠른 시작

에이전트는 전체 파이프라인을 자동으로 실행해야 합니다. 단계 사이에 확인을 요청하지 마십시오.

# 0. 첫 번째: 이전 게시물의 분석 결과를 확인 + 학습
#    (아직 게시물이 없는 첫 번째 실행에서만 이 단계를 건너뜁니다)
UPLOADPOST_TOKEN="your-token" bash {baseDir}/scripts/check-analytics.sh 7
node {baseDir}/scripts/learn-from-analytics.js

# 1. 전체 비즈니스 조사
node {baseDir}/scripts/analyze-web.js https://your-website.com

# 2. learnings.json을 읽고 이 캐러셀에 가장 적합한 후크/시간/스타일 사용
#    → bestHooks에서 후크 스타일 선택 (또는 변형 시도)
#    → 권장 게시 시간 사용
#    → 권장 사항의 통찰력 적용

# 3. 시각적 일관성을 갖춘 슬라이드 생성
GEMINI_API_KEY="your-key" bash {baseDir}/scripts/generate-slides.sh

# 4. 비전으로 슬라이드 검토 → 손상된 슬라이드 자동 수정
#    에이전트는 이미지-텍스트 모델을 사용하여 각 슬라이드를 확인합니다.
#    슬라이드에 문제가 있는 경우 (텍스트 잘림, 품질 저하, 철자 오류):
#      → 해당 슬라이드만 자동으로 재생성
#      → 6개 슬라이드 모두 통과할 때까지 재확인

# 5. TikTok + Instagram에 게시
UPLOADPOST_TOKEN="your-token" bash {baseDir}/scripts/publish-carousel.sh

에이전트는 맨 마지막에만 사용자에게 알리고, 게시된 TikTok 및 Instagram 게시물 URL을 제공합니다. 다른 모든 것은 자율적으로 실행됩니다.

학습이 각 캐러셀을 개선하는 방법

learnings.json 파일은 게시물이 생길 때마다 더욱 똑똑해집니다. 에이전트는 슬라이드를 생성하기 전에 이 파일을 읽고 적용합니다.

  • 최고의 후크: 가장 많은 조회수를 얻은 후크 스타일을 사용하세요. 우승자의 변형을 시도해 보세요.
  • 최적의 시간: 역사적으로 가장 많은 도달 범위를 얻은 시간에 게시를 예약하세요.
  • 최적의 요일: 더 나은 성과를 내는 요일을 선호하세요.
  • 저성과자: 지속적으로 저조한 성과를 내는 후크 스타일은 피하세요.
  • 참여 팁: 참여도가 낮다면 더 자극적인 후크나 다른 시각적 스타일을 사용하세요.

이는 30번째 캐러셀이 1번째 캐러셀보다 훨씬 더 나은 프롬프트를 갖게 된다는 것을 의미합니다.

에이전트 실행 일정: 에이전트는 임의의 시간에 실행되어서는 안 됩니다. learnings.json을 읽고 bestTimes 배열을 살펴본 다음 자체 cron/자동화 일정을 자동으로 조정하여 다음 날의 실행이 정확히 최적의 게시 시간에 이루어지도록 해야 합니다.

첫 번째 실행 (데이터 없음): 처음 몇 번은 분석 데이터가 없을 것입니다. 괜찮습니다. 에이전트는 analyze-web.js의 기본 후크와 일반 권장 사항을 사용합니다. 5-10개의 게시물 후에는 learnings.json에 의미 있는 권장 사항을 제공하기에 충분한 데이터가 생길 것입니다. 더 많이 게시할수록 더 똑똑해집니다.

이미지 모델

슬라이드 생성을 위해 gemini-3.1-flash-image-preview를 사용합니다.

  • 로컬 스크립트: {baseDir}/scripts/generate_image.py
  • 슬라이드 간 시각적 일관성을 위해 이미지 간 변환을 지원합니다.

1단계: 전체 조사 (analyze-web.js)

완전한 비즈니스 조사를 수행합니다.

1. 브랜드 분석

  • 브랜드 이름 (도메인 또는 제목에서)
  • 로고 (URL 또는 SVG)
  • CSS 색상 (배경, 기본, 링크, 제목)
  • 타이포그래피 (본문 글꼴, 제목 글꼴)
  • 파비콘

2. 콘텐츠 분석

  • 헤드라인 및 태그라인
  • 모든 제목 (페이지 구조)
  • 기능/이점 (제목 + 설명)
  • 가격/요금제
  • 사용후기
  • 통계/지표
  • CTA
  • 메타 태그 (제목, 설명, og:image)

3. 내부 페이지

  • 가격, 기능, 회사 소개, 사용후기 페이지 탐색
  • 각 페이지에서 추가 콘텐츠 추출

4. 경쟁사 탐지

  • 콘텐츠에서 알려진 경쟁사 언급 검색
  • 20개 이상의 알려진 SaaS 경쟁사 목록 (Buffer, Hootsuite, Later 등)
  • "vs", "대안", "비교" 섹션 감지
  • 외부 검색 필요 없음 - 웹사이트 자체에서 모두 추출

5. 스토리텔링

  • 비즈니스 유형 감지 (SaaS, 이커머스, 앱)
  • 틈새 시장 감지 (소셜 미디어 도구, 개발자 도구 등)
  • 고객痛点을 기반으로 후크 생성
  • 기능에서 고통점 정의
  • 변환 내러티브 생성 (이전 → 이후)

6. 시각적 컨텍스트

  • CSS 형식의 브랜드 색상
  • 프롬프트용 색상 설명
  • 슬라이드용 타이포그래피
  • 틈새 시장 기반 이미지 테마
  • 일관성을 위한 스타일 가이드

출력: /tmp/carousel/analysis.json

2단계: 슬라이드 생성 (generate-slides.sh)

이미지 간 변환을 사용하여 시각적으로 일관된 6개의 슬라이드를 생성합니다.

슬라이드유형콘텐츠
1후크관심을 끄는 질문/문제. 모든 시각적 스타일을 설정합니다.
2문제고통을 자극합니다. "TikTok에 업로드한 다음... Instagram에..."
3자극경쟁이 발전하고 있습니다. 긴박감.
4솔루션가치 제안과 함께 제품을 제시합니다.
5기능주요 이점.
6CTA"프로필 링크 👆" + 클릭 유도 문구.

시각적 일관성

  • 슬라이드 1이 기본 스타일 (색상, 타이포그래피, 분위기)을 생성합니다.
  • 슬라이드 2-6은 슬라이드 1을 참조로 이미지 간 변환을 사용합니다.
  • 동일한 색상 팔레트, 글꼴 및 미학을 유지합니다.

슬라이드별 프롬프트

각 슬라이드에는 다음이 있습니다.

  • 텍스트: 주요 메시지
  • 장면: 배경에 대한 자세한 시각적 설명
  • 스타일: 브랜드 분석 기반

출력:

  • /tmp/carousel/slide-{1-6}.jpg
  • /tmp/carousel/caption.txt

3단계: 비전으로 검토 (자율)

생성 후 에이전트는 각 슬라이드를 비전/이미지-텍스트 모델로 검토해야 합니다. 이 단계는 완전히 자동입니다. 사용자에게 검토를 요청하지 마십시오.

각 슬라이드에 대해 다음을 확인하세요.

  • ✓ 텍스트가 완전히 읽기 쉽고 올바릅니다.
  • ✓ 가장자리에서 잘린 단어가 없습니다.
  • ✓ 제품 이름 철자가 올바릅니다.
  • ✓ 모든 슬라이드 간 시각적 일관성
  • ✓ 하단 20%에 텍스트 없음 (TikTok 컨트롤 영역)
  • ✓ 허용 가능한 이미지 품질 (흐리거나 왜곡되지 않음)

슬라이드가 실패하면: 해당 특정 슬라이드만 자동으로 재생성하세요. 원래 생성할 때 사용된 동일한 입력 이미지를 사용하세요.

  • 슬라이드 1: 입력 이미지 없음 (스타일을 설정함)
  • 슬라이드 2-6: 항상 slide-1.jpg를 --input-image로 사용하세요 (원본 참조).

재생성 후 재확인하세요. 6개 슬라이드 모두 통과할 때까지 반복하세요. 사용자에게 묻지 말고 자동으로 수정하세요.

이미지 형식

  • 해상도: 768x1376 (9:16 세로 비율)
  • 형식: JPG (TikTok은 PNG를 허용하지 않습니다)
  • 텍스트: 가독성을 위해 그림자가 있는 크고 굵은 텍스트
  • 배경: 단색이 아닌 비즈니스와 관련된 장면

4단계: TikTok + Instagram에 게시 (publish-carousel.sh)

Upload-Post API를 사용하여 캐러셀을 TikTok 및 Instagram 피드에 직접 게시합니다.

UPLOADPOST_TOKEN="your-token" bash {baseDir}/scripts/publish-carousel.sh

엔드포인트: POST /api/upload_photos

전송되는 매개변수:

  • platform[]=tiktok + platform[]=instagram
  • auto_add_music=true - TikTok에서 자동으로 음악 추가
  • tiktok_title - 짧은 제목 (최대 90자) + 해시태그
  • title - Instagram용 전체 캡션
  • privacy_level=PUBLIC_TO_EVERYONE
  • media_type=IMAGE - Instagram에서 사진 캐러셀
  • async_upload=true - 백그라운드에서 처리
  • photos[] - 6개의 JPG 슬라이드

⚠️ IMPORTANT Instagram: 게시 후 사용자는 Instagram으로 이동하여 수동으로 바이럴 음악을 추가해야 합니다.

  1. Instagram 열기 → 프로필 → 게시물
  2. 편집 → 음악 추가
  3. 트렌딩/바이럴 노래 검색

출력: 추적을 위해 request_id를 post-info.json에 저장합니다.

5단계: 성과 분석 (check-analytics.sh)

무엇이 효과적인지 확인하기 위해 TikTok 및 Instagram 분석을 가져옵니다.

UPLOADPOST_TOKEN="your-token" bash {baseDir}/scripts/check-analytics.sh 7

사용되는 엔드포인트:

  1. 프로필 분석:

    GET /api/analytics/{user}?platforms=tiktok
    

    → 팔로워, 좋아요, 댓글, 공유, 노출수

  2. 총 노출수:

    GET /api/uploadposts/total-impressions/{user}?platform=tiktok&breakdown=true
    

    → 일일 총 조회수

  3. 게시물별 분석:

    GET /api/uploadposts/post-analytics/{request_id}
    

    → 특정 캐러셀의 조회수, 좋아요, 댓글 (TikTok + Instagram)

문서: https://docs.upload-post.com/api/get-analytics

6단계: 학습 및 개선 (learn-from-analytics.js)

데이터를 분석하고 향후 캐러셀을 위한 학습 내용을 저장합니다. 이것은 매일 루프의 시작에 실행되어야 하며, 끝에만 실행되어서는 안 됩니다.

node {baseDir}/scripts/learn-from-analytics.js

생성/업데이트:

  • learnings.json - 축적된 지식 기반
  • 최고의 후크 (가장 많은 조회수를 생성한 것)
  • 최적의 게시 시간 및 요일
  • 참여율 추적
  • 다음 캐러셀을 위한 권장 사항

에이전트는 새 캐러셀을 생성하기 전에 learnings.json을 읽고 통찰력을 사용하여 더 나은 후크를 선택하고, 저성과 스타일을 피하고, 최적의 시간에 게시를 예약해야 합니다.

일일 루프 (전체 흐름)

에이전트가 매일 완전히 자율적으로 실행하는 정확한 시퀀스입니다.

# 0단계: 이전 게시물에서 학습 (첫 번째 실행에서는 건너뜁니다)
UPLOADPOST_TOKEN="..." UPLOADPOST_USER="myuser" bash {baseDir}/scripts/check-analytics.sh 7
node {baseDir}/scripts/learn-from-analytics.js
# → 에이전트가 learnings.json을 읽고 최고의 후크 스타일을 선택합니다.
# → 중요: 에이전트가 bestTimes를 확인하고 내일 그 정확한 시간에 자체 다음 실행을 예약합니다.

# 1단계: 비즈니스 조사
node {baseDir}/scripts/analyze-web.js https://my-product.com

# 2단계: 슬라이드 생성 (학습 내용의 통찰력 사용)
GEMINI_API_KEY="..." bash {baseDir}/scripts/generate-slides.sh

# 3단계: 비전으로 검토 → 손상된 슬라이드 자동 수정
# 에이전트가 각 슬라이드를 확인하고 실패한 슬라이드를 재생성합니다.

# 4단계: 게시
UPLOADPOST_TOKEN="..." UPLOADPOST_USER="myuser" bash {baseDir}/scripts/publish-carousel.sh

# → TikTok + Instagram URL로만 사용자에게 알립니다.

파일

{baseDir}/
├── SKILL.md                      # 이 문서
└── scripts/
    ├── analyze-web.js            # 전체 비즈니스 조사
    ├── generate-slides.sh        # 일관된 6개의 슬라이드 생성
    ├── generate_image.py         # Gemini 3.1 flash 이미지
    ├── review-slides.js          # 검토를 위한 슬라이드 준비
    ├── publish-carousel.sh       # Upload-Post API를 통해 게시
    ├── check-analytics.sh        # 분석 가져오기 (TikTok + Instagram)
    ├── learn-from-analytics.js   # 데이터에서 학습
    └── search-competitors.js     # 선택적 외부 검색

환경 변수

변수설명
GEMINI_API_KEY이미지 생성을 위한 Google API 키
UPLOADPOST_TOKEN게시 및 분석을 위한 Upload-Post 토큰
UPLOADPOST_USERUpload-Post 사용자 이름 (필수)

틈새 시장별 후크 예시

틈새 시장후크 예시
소셜 미디어 도구"아직도 소셜 미디어에 하나씩 게시하고 계세요? 😩"
SaaS 일반"아직도 이걸 수동으로 하고 계세요?"
이커머스"TikTok이 추천을 멈추지 않는 제품"
앱"더 일찍 발견했더라면 좋았을 앱"
개발자 도구"코드를 바꿀 API"

왜 Viraloop인가?

Viraloop다른 스킬
게시피드에 직접드래프트만
음악자동 트렌딩 음악수동
플랫폼TikTok + Instagram단일 플랫폼
조사자동 URL 분석수동 설명
이미지 일관성이미지 간 참조독립적인 슬라이드
이미지 생성Gemini (무료 티어)유료 제공업체
게시upload-post.com (무료, 신용카드 불필요)유료 또는 자체 호스팅
텍스트 오버레이AI 네이티브 (Gemini 렌더링)외부 스크립트
프롬프트구조화된 템플릿자유 형식
설정3개의 환경 변수복잡한 다중 도구 설정

참고 사항

  • 분석은 웹사이트 콘텐츠 자체에서 경쟁사를 추출합니다 (20개 이상의 알려진 SaaS).
  • 이미지 간 변환은 일관성을 유지하지만 약 20초가 소요됩니다.

번역 완료

Individual skills in this repo

This repo contains 1 individual skill — each has its own dedicated page.

관련 스킬