Communitygithub.com

Viraloop

TikTokとInstagramのカルーセル投稿を自動化するOpenClaw AIエージェントスキル。任意のウェブサイトURLを分析してブランド、競合、価値提案を抽出し、トレンド音楽を自動設定したバイラルスライドを生成・自動公開します。内蔵の分析フィードバックループで継続的に改善。

Viraloop とは?

Viraloopは、TikTokとInstagram向けに完全に自動化されたカルーセル投稿パイプラインを提供するAIエージェントスキルです。このスキルは、まず指定されたウェブサイトURLを詳細に分析し、ブランド情報(ロゴ、CSSカラー、タイポグラフィなど)、コンテンツ(見出し、機能、証言)、競合他社、そしてストーリーテリング要素を抽出します。次に、Gemini 3.1 Flash Image Previewモデルを使用して、視覚的に一貫性のある6枚のスライド(フック、問題提起、問題増幅、解決策、機能、CTA)を生成します。生成後、エージェントは画像認識モデルで各スライドを自動レビューし、問題があれば自動修正します。最後に、Upload-Post API(無料プランあり)を介して、トレンド音楽を自動追加しながらTikTokとInstagramのフィードに直接公開します。公開後は、各投稿のパフォーマンスデータを収集・分析し、`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 は何をしますか?

任意のウェブサイトを分析し、TikTok/Instagram用の6スライドカルーセルを視覚的に一貫性を持って生成します。トレンド音楽を自動設定してフィードに直接投稿します(下書きはありません)。両方のAPI(Gemini + upload-post.com)には無料プランがあり、開始にクレジットカードは不要です。

哲学:毎日の自動ループ

成長の鍵は一貫性 + 学習です。このスキルは毎日、完全に自律的に実行されるように設計されています。エージェントは、確認を求めることなく、リサーチから公開までのパイプライン全体を実行し、最後に公開されたTikTokとInstagramのURLのみを通知します。

  1. 1日1カルーセルを投稿 - 一貫性はバイラル性に勝る
  2. すべてを追跡 - すべての投稿がデータを生成する
  3. データから学習 - どのフックが効果的か?どの時間帯か?どのビジュアルか?
  4. 反復して改善 - 各カルーセルは前回より良くなる
Day 1: 投稿 → 分析 → 学習
Day 2: 投稿(改善) → 分析 → 学習
Day 3: 投稿(より良い) → 分析 → 学習
...
Day 30: 30のデータポイントと洗練された戦略が手に入る

このスキルは、すべての投稿から得た洞察を蓄積する learnings.json を維持します:

  • 最も効果のあったフック
  • 最適な投稿時間
  • 効果的なビジュアルスタイル
  • コンバージョンに繋がるCTA

これは単発のツールではありません。成長エンジンです。

開始前:アカウントのウォームアップ

TikTokやInstagramのアカウントが新しい場合、初日からカルーセルを投稿しないでください。どちらのプラットフォームも、投稿コンテンツにすぐに飛びつく新しいアカウントのリーチを制限します。

TikTok(7〜14日間のウォームアップ)

  • 毎日30〜60分間、TikTokを通常通り使用します:スクロール、いいね(動画10件につき1件程度)、自分のニッチのアカウントをフォロー
  • おすすめフィードが自分のニッチなコンテンツで占められるまで待ちます。これはアルゴリズムがあなたのアカウントをプロファイリングしたことを意味します
  • その後でのみ投稿を開始します。最初の投稿は埋もれることなく、適切なオーディエンスにリーチします

Instagram(5〜7日間のウォームアップ)

  • 毎日リールと探索ページを閲覧し、自分のニッチのコンテンツとエンゲージします
  • 関連アカウントをフォローし、いいねやコメントを誠実に行います
  • 最初のカルーセルの前に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、Eコマース、アプリ)
  • ニッチを検出(ソーシャルメディアツール、開発者ツールなど)
  • 顧客のペインポイントに基づいてフックを生成
  • 機能からペインポイントを定義
  • 変革のストーリーを作成(Before → After)

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

⚠️ 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
    

    → 1日あたりの総ビュー

  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全般「まだこれを手動でやってるの?」
Eコマース「TikTokが勧めるのをやめない商品」
アプリ「もっと早く見つけたかったアプリ」
開発者ツール「あなたのコードを変えるAPI」

なぜViraloopなのか?

Viraloop他のスキル
公開フィードに直接下書きのみ
音楽自動トレンド音楽手動
プラットフォームTikTok + Instagram単一プラットフォーム
リサーチ自動URL分析手動説明
画像一貫性画像間変換参照独立したスライド
画像生成Gemini(無料枠)有料プロバイダー
投稿upload-post.com(無料、CC不要)有料または自己ホスト
テキストオーバーレイAIネイティブ(Geminiがレンダリング)外部スクリプト
プロンプト構造化テンプレート自由形式
設定3つの環境変数複雑なマルチツール設定

注意事項

  • 分析はウェブサイトのコンテンツ自体から競合他社を抽出します(20以上の既知のSaaS)
  • 画像間変換は一貫性を維持しますが、約20秒かかります

Individual skills in this repo

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

関連スキル