Viraloop は何をしますか?
任意のウェブサイトを分析し、TikTok/Instagram用の6スライドカルーセルを視覚的に一貫性を持って生成します。トレンド音楽を自動設定してフィードに直接投稿します(下書きはありません)。両方のAPI(Gemini + upload-post.com)には無料プランがあり、開始にクレジットカードは不要です。
哲学:毎日の自動ループ
成長の鍵は一貫性 + 学習です。このスキルは毎日、完全に自律的に実行されるように設計されています。エージェントは、確認を求めることなく、リサーチから公開までのパイプライン全体を実行し、最後に公開されたTikTokとInstagramのURLのみを通知します。
- 1日1カルーセルを投稿 - 一貫性はバイラル性に勝る
- すべてを追跡 - すべての投稿がデータを生成する
- データから学習 - どのフックが効果的か?どの時間帯か?どのビジュアルか?
- 反復して改善 - 各カルーセルは前回より良くなる
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 | 機能 | 主なメリット。 |
| 6 | CTA | 「プロフィールのリンクへ👆」+行動喚起。 |
視覚的一貫性
- スライド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[]=instagramauto_add_music=true- TikTokで音楽を自動追加tiktok_title- 短いタイトル(最大90文字)+ハッシュタグtitle- Instagram用の完全なキャプションprivacy_level=PUBLIC_TO_EVERYONEmedia_type=IMAGE- Instagramでフォトカルーセルasync_upload=true- バックグラウンドで処理photos[]- 6枚のスライドJPG
⚠️ Instagramで重要: 公開後、ユーザーはInstagramにアクセスして手動でバイラル音楽を追加する必要があります:
- Instagramを開く → プロフィール → その投稿
- 編集 → 音楽を追加
- トレンド/バイラルな曲を検索
出力: 追跡のために request_id を post-info.json に保存。
ステップ5:パフォーマンス分析(check-analytics.sh)
何が効果的かを確認するために、TikTokとInstagramの分析情報を取得します。
UPLOADPOST_TOKEN="your-token" bash {baseDir}/scripts/check-analytics.sh 7
使用されるエンドポイント:
-
プロフィール分析:
GET /api/analytics/{user}?platforms=tiktok→ フォロワー、いいね、コメント、シェア、インプレッション
-
総インプレッション:
GET /api/uploadposts/total-impressions/{user}?platform=tiktok&breakdown=true→ 1日あたりの総ビュー
-
投稿ごとの分析:
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_USER | Upload-Postユーザー名(必須) |
ニッチ別フック例
| ニッチ | フック例 |
|---|---|
| ソーシャルメディアツール | 「まだソーシャルメディアに一つずつ投稿してるの?😩」 |
| SaaS全般 | 「まだこれを手動でやってるの?」 |
| Eコマース | 「TikTokが勧めるのをやめない商品」 |
| アプリ | 「もっと早く見つけたかったアプリ」 |
| 開発者ツール | 「あなたのコードを変えるAPI」 |
なぜViraloopなのか?
| Viraloop | 他のスキル | |
|---|---|---|
| 公開 | フィードに直接 | 下書きのみ |
| 音楽 | 自動トレンド音楽 | 手動 |
| プラットフォーム | TikTok + Instagram | 単一プラットフォーム |
| リサーチ | 自動URL分析 | 手動説明 |
| 画像一貫性 | 画像間変換参照 | 独立したスライド |
| 画像生成 | Gemini(無料枠) | 有料プロバイダー |
| 投稿 | upload-post.com(無料、CC不要) | 有料または自己ホスト |
| テキストオーバーレイ | AIネイティブ(Geminiがレンダリング) | 外部スクリプト |
| プロンプト | 構造化テンプレート | 自由形式 |
| 設定 | 3つの環境変数 | 複雑なマルチツール設定 |
注意事項
- 分析はウェブサイトのコンテンツ自体から競合他社を抽出します(20以上の既知のSaaS)
- 画像間変換は一貫性を維持しますが、約20秒かかります