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ネイティブ)
エンゲージメント向上のヒント:
- 最初のスライドでフック: 大胆で注意を引くテキスト
- ストーリーテリングの進行: 各スライドが前のスライドを発展させる
- 最後のスライドでCTA: フォロー、保存、共有、リンク
- 一貫したビジュアルスタイル: 同じフォント、カラーパレット
- 高品質な画像: 高解像度の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: https://www.pexels.com/api/
- FFmpegドキュメント: https://ffmpeg.org/documentation.html
- PostBridgeドキュメント: ローカルのスキルドキュメントを確認
- TikTokカルーセルのベストプラクティス: アルゴリズムの変更を定期的に調査(メタは頻繁に更新されます)
- 公開ヘルプ: https://docs.openclaw.ai/tools/clawhub
トラブルシューティング
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