Communitygithub.com

dvcrn/tiktok-carousel-creator

Pexels APIとFFmpegを使用してテキストオーバーレイ付きのTikTok画像カルーセルを作成し、PostBridge APIでアップロードします。

tiktok-carousel-creator とは?

このスキルは、AIエージェント向けに設計されたTikTok画像カルーセル作成ツールです。Pexels APIから高品質なストック画像を検索・ダウンロードし、FFmpegを用いてプロフェッショナルなテキストオーバーレイを追加し、TikTokの9:16縦長フォーマット(1080×1920px)にリサイズします。その後、PostBridge APIを使用してTikTokアカウントに直接アップロードします。画像の自動ホスティングにはImgBBの無料APIを利用でき、スライドの公開URLを生成します。開発者にとっては、カスタマイズ可能なPythonスクリプト一式として提供され、CLIから簡単に操作できます。5~10枚のスライドで構成するのが最適で、最初のスライドで視聴者の注意を引き、ストーリー性のある進行でエンゲージメントを高めることが推奨されています。このスキルはClaude Code、Codex、CursorなどのAIエージェントプラットフォームで動作し、環境変数でAPIキーを設定するだけで利用可能です。

対応~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/dvcrn/openclaw-skills-marketplace/tree/main/plugins/oyi77--tiktok-carousel-creator/skills/tiktok-carousel-creator

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

TikTok Carousel Creator (Pexels + FFmpeg + PostBridge)

BerkahKarya向けカスタム実装 - プロフェッショナルなテキストオーバーレイでTikTokカルーセルを作成します。

アーキテクチャ

フロー:

トピック調査 → Pexels画像検索 → FFmpegテキストオーバーレイ → PostBridgeアップロード → TikTokカルーセル

スタック:

  • 画像検索: Pexels API(高品質なストック写真・動画)
  • テキストオーバーレイ: FFmpeg(プロフェッショナルなテキストレンダリング)
  • アップロード: PostBridge API(マルチプラットフォーム投稿)
  • フォーマット: TikTokカルーセル 1080×1920px(9:16縦長)

前提条件

1. Pexels APIキー

無料のAPIキーを取得: https://www.pexels.com/api/

環境変数を設定:

export PEXELS_API_KEY="your_pexels_api_key_here"

重要: このキーは画像検索に必要です。キーがないとスクリプトは失敗します。

2. PostBridge APIキー

PostBridgeクライアントで既に設定済み:

export POST_BRIDGE_API_KEY="pb_live_Kyc2gafDF7Qc8c2ALELtEC"
export POST_BRIDGE_BASE_URL="https://api.post-bridge.com/v1"

3. Python PIL (Pillow)

インストールされているか確認:

python3 -c "from PIL import Image; print('PIL available')"

インストール:

pip3 install Pillow

4. FFmpeg(オプションのリサイズ用)

インストールされているか確認:

ffmpeg -version

インストール(オプション - PILがほとんどの処理を担当):

# Debian/Ubuntu
sudo apt update && sudo apt install ffmpeg

# macOS
brew install ffmpeg

4. ImgBB APIキー(オプション - 自動ホスティング用)

無料のAPIキーを取得: https://api.imgbb.com/

環境変数を設定(オプション - ImgBBへの自動アップロード用):

export IMGBB_API_KEY="your_imgbb_api_key_here"

なぜImgBBか?

  • 無料枠: 画像アップロードあたり32MB
  • 無料枠に厳格なレート制限なし
  • シンプルなREST API
  • 永続的な画像ホスティング
  • ソーシャルメディアプラットフォーム向けの公開URL

5. ディレクトリ構成

スキルが自動的に作成:

~/.tiktok-slideshow/
├── images/          # Pexelsからダウンロード
├── rendered/        # FFmpegでレンダリングされたスライド
├── scripts/         # ヘルパースクリプト
└── projects/        # プロジェクトメタデータ

TikTokカルーセルのベストプラクティス(2026年)

アルゴリズムの指標(最新の調査に基づく):

  • スワイプスルー率: すべてのスライドをスワイプするユーザーの割合
  • 滞在時間: 各スライドの視聴時間
  • 逆スワイプ: 再視聴のために戻るユーザー

最適なフォーマット:

解像度: 1080 × 1920px(9:16縦長)
スライド数: 5~10枚(最もエンゲージメントが高い)
画像サイズ: 各スライド100KB未満(高速読み込み)
アスペクト比: 9:16(TikTokネイティブ)

エンゲージメント向上のヒント:

  1. 最初のスライドでフック: 大胆で注意を引くテキスト
  2. ストーリーテリングの進行: 各スライドが前のスライドを発展させる
  3. 最後のスライドでCTA: フォロー、保存、共有、リンク
  4. 一貫したビジュアルスタイル: 同じフォント、カラーパレット
  5. 高品質な画像: 高解像度のPexels画像を使用

テキストオーバーレイのベストプラクティス:

  • フォントサイズ: タイトル32~48px、サブタイトル24~32px
  • 位置: 中央揃え、余白あり
  • 色: 白いテキストに黒い輪郭(高コントラスト)
  • 背景: 読みやすさのための半透明の暗いボックス
  • 長さ: スライドあたり最大2~3行

使用方法

スライドショーの作成

python3 tiktok_slideshow.py create "morning routine" "Your routine is broken" 5

パラメータ:

  • topic: Pexels画像の検索テーマ
  • hook: 最初のスライドのフックテキスト(注意を引く)
  • num_slides: スライド数(5~10推奨)

例:

python3 tiktok_slideshow.py create "productivity tips" "You're doing productivity wrong" 7

プロジェクト一覧

python3 tiktok_slideshow.py list

既存のすべてのプロジェクトをメタデータとともに表示します。

画像のみホスティング(ImgBB)

すべてのカルーセル画像をImgBBホスティングにアップロード:

# IMGBB_API_KEYが必要
# export IMGBB_API_KEY="your_imgbb_api_key"

python3 tiktok_slideshow.py host <project_id>

すべてのスライドの公開URLを出力:

🖼️  5つのスライドをImgBBホスティングにアップロード中...
✅ ImgBBにアップロード完了: slide_1.jpg
✅ ImgBBにアップロード完了: slide_2.jpg
✅ ImgBBにアップロード完了: slide_3.jpg
✅ ImgBBにアップロード完了: slide_4.jpg
✅ ImgBBにアップロード完了: slide_5.jpg

✅ 5つのスライドをImgBBにアップロード完了!

メディアURL:
  1. https://i.ibb.co/xxx/slide-1.jpg
  2. https://i.ibb.co/yyy/slide-2.jpg
  3. https://i.ibb.co/zzz/slide-3.jpg
  4. https://i.ibb.co/aaa/slide-4.jpg
  5. https://i.ibb.co/bbb/slide-5.jpg

📝 URLを保存: /home/openclaw/.tiktok-slideshow/projects/project_id_urls.txt

TikTokにアップロード

オプション1: 自動ホスティング+アップロード(推奨)

python3 tiktok_slideshow.py upload <project_id>

画像をImgBBに自動アップロードし、PostBridge経由でTikTokに投稿します。

オプション2: 手動ホスティング+アップロード

# ステップ1: 画像を手動でホスティング(ImgBB、S3、Cloudinaryなどを使用)
python3 tiktok_slideshow.py host <project_id>

# ステップ2: TikTokにアップロード(ホスティングをスキップ)
python3 tiktok_slideshow.py upload <project_id> --no-host

注意: ImgBBホスティングは無料で、ソーシャルメディアアップロードに推奨されます。


完全な例

# 1. Pexels APIキーを設定
export PEXELS_API_KEY="563492ad6f91700001000001234567890"

# 2. スライドショーを作成
python3 tiktok_slideshow.py create "fitness motivation" "Stop making this mistake" 5

# 出力:
# ==================================================
# 📱 TikTokスライドショーを作成中
# ==================================================
# 🎯 トピック: fitness motivation
# 🪝 フック: Stop making this mistake
# 📊 スライド数: 5
# ==================================================
#
# 🔍 Pexelsで画像を検索中...
# 📸 fitness motivationの画像を5枚見つけました
# ✅ ダウンロード完了: temp_0.jpg
# ✅ レンダリング完了: slide_1.jpg
# ✅ ダウンロード完了: temp_1.jpg
# ✅ レンダリング完了: slide_2.jpg
# ...
#
# ==================================================
# ✅ スライドショーが正常に作成されました!
# ==================================================
# 📦 プロジェクトID: fitness_motivation_20260306_044512
# 📁 スライド数: 5
# 📂 保管場所: /home/openclaw/.tiktok-slideshow/rendered/
# 💾 メタデータ: /home/openclaw/.tiktok-slideshow/projects/fitness_motivation_20260306_044512.json
# ==================================================

# 3. スライドを確認
ls /home/openclaw/.tiktok-slideshow/rendered/

# 4. TikTokにアップロード(画像ホスティングの設定が必要)
python3 tiktok_slideshow.py upload fitness_motivation_20260306_044512

動作の仕組み

ステップ1: Pexels APIで画像を検索

POST https://api.pexels.com/v1/search
Authorization: {PEXELS_API_KEY}

クエリパラメータ:
- query: "fitness motivation"
- orientation: "vertical"  # TikTokの9:16用
- size: "large"
- per_page: 5

レスポンス:
{
  "photos": [
    {
      "id": 123456,
      "src": {
        "large": "https://images.pexels.com/photos/123456/large.jpg"
      },
      "photographer": "Joe Smith"
    }
  ]
}

ステップ2: FFmpegでダウンロード&リサイズ

TikTokフォーマットにリサイズし、プロフェッショナルなテキストオーバーレイを追加:

ffmpeg -i input.jpg \
  -vf "scale=1080:1920,drawtext=text='Your Text Here':fontfile=/usr/share/fonts/truetype/dejavu/DejaVuSans-Bold.ttf:fontsize=48:fontcolor=white:x=(w-text_w)/2:y=(h-text_h)/2:borderw=4:bordercolor=black:box=1:[email protected]:boxborderw=10" \
  -q:v 2 \
  output.jpg

FFmpegパラメータの説明:

  • scale=1080:1920: TikTokフォーマットにリサイズ
  • fontsize=48: タイトルのフォントサイズ
  • fontcolor=white: テキストの色
  • borderw=4:bordercolor=black: テキストの輪郭
  • box=1:[email protected]: 半透明の背景
  • boxborderw=10: ボックスのパディング
  • -q:v 2: JPEG品質(2~5推奨)

ステップ3: PostBridge経由でアップロード

from skills_1ai_skills.marketing.post_bridge_client import PostBridgeClient

client = PostBridgeClient(api_key=POST_BRIDGE_API_KEY)
tiktok_accounts = client.get_accounts_by_platform("tiktok")

client.create_post(
    caption="こちらが私のカルーセルです...",
    account_ids=[tiktok_accounts[0]['id']],
    media_urls=[...あなたのホスティング画像URL...]
)

ClawHubへの公開

このスキルを公開した後:

GITHUB_TOKEN="clh_Nf4OK9akiUsJe4mKeVaCJiupZILjii6g35bxs9LX5-w"

clawhub publish \
  ~/.openclaw/workspace/skills/tiktok-carousel-creator \
  --slug tiktok-carousel-creator \
  --name "TikTok Carousel Creator (Pexels + FFmpeg + PostBridge)" \
  --version 1.0.0 \
  --changelog "初回リリース。Pexels API + FFmpeg + PostBridgeを使用したカスタムTikTokカルーセルクリエイター。BerkahKaryaワークフロー向けに設計。" \
  --tags latest,tiktok,carousel,slideshow,pexels,ffmpeg,postbridge

詳細はこちら: https://www.tip.md/oyi77


リソース


トラブルシューティング

Pexels APIキーが設定されていない

エラー: PEXELS_API_KEYが設定されていません

解決策:

export PEXELS_API_KEY="your_key_here"

無料キーはこちらから: https://www.pexels.com/api/

FFmpegが見つからない

エラー: ffmpegが見つかりません

解決策:

sudo apt update && sudo apt install ffmpeg

画像が見つからない

エラー: トピック「xyz」の画像が見つかりませんでした

解決策:

  • 別の検索語を試す
  • Pexels APIキーが有効か確認
  • より一般的な用語を使用する

BerkahKarya カスタム実装 - 2026年 詳細はこちら: https://www.tip.md/oyi77

Individual skills in this repo

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

関連スキル