Agent skill
tiktok-poster
workspace/hooks の slot(9am/9pm) を読んで TikTok に投稿する
Install this agent skill to your Project
npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/other/other/tiktok-poster
Metadata
Additional technical details for this skill
- openclaw
-
{ "os": [ "linux" ], "emoji": "\ud83c\udfb5" }
SKILL.md
tiktok-poster
目的
TikTok 投稿の Proposal を作成。steps: draft_content -> verify_content -> post_tiktok。TikTok は投稿のみ。朝は slot 9am、夜は slot 9pm の 1 本だけを使う。
保存先(Anicca 内・読むだけ)
| データ | フルパス |
|---|---|
| キャプション・画像 URL(読む) | morning: ~/.openclaw/workspace/hooks/9am/YYYY-MM-DD.json。evening: ~/.openclaw/workspace/hooks/9pm/YYYY-MM-DD.json。各ファイルの entries のうち platform: "tiktok" の caption、imageUrl、imagePrompt を参照。 |
| 書き戻し(投稿後) | 投稿完了後、同じ hook ファイルの当該エントリに imageUrl(FAL 生成した場合はその URL)と publicUrl(Blotato から取得)を上書き保存する。 |
YYYY-MM-DD は今日の日付(Asia/Tokyo)。imageUrl が空または無い場合: 同じエントリの imagePrompt を FAL API に渡して画像を生成し、得た URL を imageUrl として backend.blotato.com 経由で TikTok に投稿する。呼び出す API は https://backend.blotato.com/v2/...(api.blotato.com は使わない)。投稿後、Blotato の publicUrl が取得できるまでポーリングし、取得したら hook の当該エントリに書き戻す。
必須 env
| キー | 説明 |
|---|---|
BLOTATO_API_KEY |
Blotato API キー(TikTok 投稿に必須) |
BLOTATO_TIKTOK_ACCOUNT_ID |
Blotato 上の TikTok アカウント ID(無い場合は BLOTATO_ACCOUNT_ID_EN) |
FAL_API_KEY または FAL_KEY |
Fal.ai API キー(imageUrl が空のとき imagePrompt で画像生成するために必須)。VPS の ~/.openclaw/.env に FAL_KEY を設定すること。 |
必須 tools
web_fetch(API)- TikTok 投稿は Blotato API のみ(post_tiktok step で
BLOTATO_*使用)。
入力
- cron slot 起動時: trigger で proposal 作成。
skillName: "tiktok-poster",steps: [draft_content, verify_content, post_tiktok]。
実行手順
- 読むパス: cron が morning なら
~/.openclaw/workspace/hooks/9am/YYYY-MM-DD.json、evening なら~/.openclaw/workspace/hooks/9pm/YYYY-MM-DD.json(今日の日付)。 - imageUrl が空の場合: 同じエントリの imagePrompt を FAL に渡して画像を生成 → 得た URL を imageUrl として使ってから投稿する。画像 verify ループ: 生成後、内容を確認し基準を満たさない場合は imagePrompt を調整して再生成。基準を満たすまで繰り返してから投稿。
- TikTok 投稿は Blotato API(backend.blotato.com) のみ。mission-worker が draft_content -> verify_content -> post_tiktok を順実行。投稿後、publicUrl をポーリングで取得し、当該 hook ファイルのエントリに imageUrl(生成した場合はその値)と publicUrl を書き戻す。
- 文字数上限 2000、429/5xx のみリトライ、DLQ に非リトライを退避。
Slack 報告
【絶対】 実行結果を Slack #metrics(チャンネル ID: C091G3PKHL2)に投稿する。要約禁止。以下をそのままこの形式で投稿する。
【Slack #metrics に必ず以下の形式で投稿する。要約禁止。】
1. スキル名と結果
tiktok-poster ({slot}) — :white_check_mark: 投稿成功 / :x: 失敗
2. 日時
日付と投稿実行時刻(例: 2026-02-15 21:00 JST)
3. 内容(省略禁止)
- キャプション: 投稿した caption の全文をそのまま貼る。
- imagePrompt: 使用した画像生成プロンプトの全文をそのまま貼る。
4. TikTok の投稿リンク
Blotato の **publicUrl** のみ(取得できるまでポーリングする)。他 URL は貼らない。
5. 備考(あれば)
スキップ理由・imageUrl 空で FAL 生成した等
出力 / 監査ログ
post_tiktok完了時: 投稿 ID に加え publicUrl を output に含める。- 失敗時: DLQ + ops event。
失敗時処理
- 429/5xx: リトライ(最大3回)。
- その他: DLQ + ops event。
禁止事項
- 返信禁止。投稿のみ。
- 文字数 2000 超禁止。
Cron
tiktok-poster-morning:0 9 * * *tiktok-poster-evening:0 21 * * *
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
agent-ops-spec
Manage specification documents in .agent/specs/. Use when user provides requirements, acceptance criteria, or feature descriptions that need to be tracked and validated against implementation.
agent-ops-state
Maintain .agent state files. Use at session start, after meaningful steps, and before concluding: read/update constitution/memory/focus/issues/baseline consistently.
agent-ops-spec
Manage specification documents in .agent/specs/. Use when user provides requirements, acceptance criteria, or feature descriptions that need to be tracked and validated against implementation.
agent-ops-testing
Test strategy, execution, and coverage analysis. Use when designing tests, running test suites, or analyzing test results beyond baseline checks.
agent-ops-testing
Test strategy, execution, and coverage analysis. Use when designing tests, running test suites, or analyzing test results beyond baseline checks.
agent-ops-state
Maintain .agent state files. Use at session start, after meaningful steps, and before concluding: read/update constitution/memory/focus/issues/baseline consistently.
Didn't find tool you were looking for?