tt-caption-writer について
tt-caption-writerは、動画や台本をもとにTikTokのキャプション、ハッシュタグ、投稿設定を作成するスキルです。APIの文字数上限を守り、動画ファイルとPubloraがある場合は公開フローも準備できます。
主な機能
- 01簡潔なTikTokキャプションを作成
- 02リーチの異なるハッシュタグを選定
- 03TikTokの投稿フラグを設定
- 04キャプションとタグの文字数を確認
- 05下書き、アップロード、予約投稿を準備
活用シーン
- 01完成動画のキャプションを作成
- 02投稿前に公開範囲と交流設定を指定
- 03予約投稿する動画ファイルを準備
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ sergebulaev/ tiktok-skills --skill tt-caption-writerインストール後、Claude Code で/tt-caption-writerを入力して読み込まれたか確認します。
同梱ファイルreferences/settings-matrix.md
詳細
TikTok キャプション作成
動画の下に表示するキャプションを作成します。API の上限である 2,200 文字以内に収めた簡潔なキャプション、リーチを広げるハッシュタグの組み合わせ、リーチとエンゲージメントを制御する platformSettings.tiktok のフラグを用意します。TikTok ではキャプションは動画を補足するものであり、動画そのものの代わりにはなりません。視聴者を引きつけるのはクリップの最初の 1〜3 秒です(tt-hook-scripter を参照)。キャプションの役割は、背景情報を加えてコメントを促すことです。
使用する場面
- 動画(またはスクリプト)があり、キャプション、ハッシュタグ、設定が必要なとき
- まもなくアップロードするため、投稿フラグを正しく設定したいとき
- Claude Code または Codex で、レンダリング済みの .mp4 を Publora 経由で予約投稿したいとき
このスキルで作成するもの
- キャプション(API 上限は 2,200 文字以内。できるだけ短くすることを推奨)。最初の行に、読む理由やコメントする理由を盛り込みます
- ハッシュタグの組み合わせ(リーチを広げるものを 3〜5 個)。末尾に配置します
- platformSettings.tiktok のフラグと、その内容の平易な説明
- 承認後、動画ファイルが提供されていれば投稿処理(下書き → アップロード → 予約投稿)
TikTok の設定(platformSettings.tiktok)
lib.tiktok_settings(...) で設定します。デフォルト値は Publora の設定と一致します。
| 設定 | 値/デフォルト | 機能 |
|---|---|---|
viewerSetting | PUBLIC_TO_EVERYONE(デフォルト)、MUTUAL_FOLLOW_FRIENDS、FOLLOWER_OF_CREATOR、SELF_ONLY | 視聴できるユーザーを指定します。実質的に必須で、値が空だと拒否されます |
allowComments | true(デフォルト) | 視聴者がコメントできます |
allowDuet | false(デフォルト) | 視聴者がデュエットできます |
allowStitch | false(デフォルト) | 視聴者がスティッチできます |
commercialContent | false(デフォルト) | 動画が商用コンテンツであることを示します |
brandOrganic | false(デフォルト) | 自社ブランドを宣伝することを示します |
brandedContent | false(デフォルト) | 有料パートナーシップ/スポンサー付きコンテンツであることを示します |
必ずユーザーに伝えるべき 2 つの注意点
- ブール値の反転バグ。 Publora は現在、
allowComments、allowDuet、allowStitchを TikTok のdisable_*フラグに割り当てているため、ブール値が反転して反映される可能性があります(allowDuet: trueを送ると、デュエットが無効になる場合があります)。API だけでは状態を確認できません。これらの値を信頼する前に、SELF_ONLYの下書きでテストしてください。 フラグを変更する際は、必ずこのことをユーザーに伝えてください。 - 商用コンテンツの開示。
commercialContentが true の場合、brandOrganic(自社ブランド)またはbrandedContent(有料パートナーシップ)の少なくとも一方も true にする必要があります。そうしないと Publora に拒否されます。lib.tiktok_settingsがこの条件を適用します。
投稿時の実情
- 審査を受けていないアプリからの投稿は、非公開のみです。 投稿アプリが TikTok の審査に合格するまでは、
viewerSettingの値にかかわらず、投稿はSELF_ONLYに設定されます。「公開」投稿が非公開になった場合は、ユーザーに警告してください。 - リーチを広げるには
PUBLIC_TO_EVERYONEを使用します。最初から最後までのテストにはSELF_ONLYを使用します。
手順
まずボイスプロファイルを確認します(すべての下書きが対象)。 ../../references/voice-profile.md に filled: yes と記載されている場合は読み込み、全体を通してユーザーの声の特徴、必須ルール、CTA/リンクのスタイルに合わせます。記入されていない場合は、tt-humanizer --mode profile を使えば、いくつかの投稿からユーザーの声を学習できることを一度だけ伝えてから、汎用のボイスルールに従います。
具体的な情報を決して捏造しないでください。 以下のルールでは、具体的な数字、日付、固有名詞を求めています。これらが、実際の投稿と生成された投稿を分ける要素だからです。この会話でユーザーが実際に話した内容から取得してください。数値、日付、クライアント名、結果を捏造したり、曖昧な主張をもっともらしい数字で補強したりしないでください。 具体的な内容がない場合は、一度だけ尋ねてください。それでも何もなければ、飾り立てずにその主張を削除します。公開した数字の捏造は訂正が必要になりますが、数字を入れない場合は投稿の説得力が少し弱まるだけです。
- 入力を集めます。まず目標を確認します。 キャプションで何を得たいのかを尋ねる(または推測する)とともに、その目標に合わせて構成します。コメントを得たい場合は、動画に関連する具体的な質問で締めくくります。保存を促したい場合は、参考になる情報があることを伝えます(「設定3つはキャプションにあります」)。シェアを促したい場合は、誰かに見せたくなる主張を入れます。プロフィールへのアクセスを促したい場合は、固定動画で答えが分かる未解決の問いを残します。次に、動画のトピック/台本、ニッチ、商用コンテンツかどうか、レンダリング済みの
.mp4のパスがあるかを確認します。 - キャプションを下書きします。 最初に表示される行には、続きを読みたくなる理由、またはコメントしたくなる具体的な質問を置きます。簡潔にまとめます。エムダッシュは上限内に収めます(約100語につき1つ。短いキャプションなら不要なことがほとんどです)。AI用語を固めて使わないでください。必要に応じて、フックの未解決の問いをコメントを促す文として言い換えます。
- ハッシュタグを選びます。 リーチの幅を混ぜて3~5個選びます。幅広いタグを1つ、ニッチを定義するタグを1~2個、動画に特化したタグを1~2個にします。最後に配置し、詰め込みません。
- フラグを設定します。 デフォルトは
PUBLIC_TO_EVERYONE、コメントはオン、デュエット/スティッチはオフ、商用フラグはなしです。ユーザーの希望に応じて調整し、注意点を2つ伝えます。lib.tiktok_settings(...)を使って設定を作成します。 - 文字数を確認します。 キャプションとハッシュタグの合計を2,200文字以内にします。超えている場合は短くします。
- ヒューマナイザーで仕上げます。 2026年のAI用語を密度に応じて削り、エムダッシュを上限内に収め(約100語につき1つ。ピリオドへの置き換えは禁止)、三項表現の連続、汎用的な書き出し、ネタばらしにつなぐ表現、誠実さを前置きする表現(「正直に言うと」など)を崩します。リズムはそのまま保ち、勢いを出すために行を途中で切らないでください。正式なルールは
tt-humanizerV3 です。 - 承認カードを提示します。 キャプション、文字数、ハッシュタグのセット、設定の概要、解決済みの
viewerSettingを表示します(非公開で投稿される可能性がある場合は明示します)。 - 承認後の処理。
lib.publish("video", caption, target_url=<upload or profile URL>, video_path=<path or None>, platform_settings=<settings>, scheduled_time=<iso or None>, platforms=[<TIKTOK_PLATFORM_ID>])を呼び出します。動画パスがあり、Publora が設定済みの場合は、下書き作成 -> アップロード -> スケジュール設定を行います。動画パスがない場合は、アプリ内でアップロードするためのキャプションと設定を返します。
必須ルール
全般的なボイスルールについては、ルートの SKILL.md の「Voice rules」を参照してください。スキル固有の追加ルールは以下のとおりです。
- キャプションとハッシュタグを合わせて2,200文字以内にします(APIの上限。ハッシュタグを含みます)。十分に余裕を持って短くしてください。
- ハッシュタグはリーチの幅を混ぜて3~5個にし、最後に配置します。10個以上にしたり、文の途中に入れたりしないでください。
- キャプションでフックの役割を担わせないでください。フックは動画内にあります。
viewerSettingは必ず設定してください。空欄のまま送信しないでください。- インタラクションのフラグを変更する場合は、その都度、真偽値の反転に関する警告を伝えてください。
アンチパターン(スキルが拒否します)
- ハッシュタグの羅列(10個以上)、または文中に詰め込んだハッシュタグ。
- エムダッシュが上限を超えている(約100語につき1つを超える)、またはエムダッシュをピリオドに置き換えている。
- 「その結果は?」でネタばらしする表現や、勢いを出すために追加した「Xは不要。Yも不要。Zだけ。」のような断片的な表現。
- 「パート2をフォロー/いいねとチャンネル登録/シェアをお忘れなく」のような呼びかけを重ねること。
- 話し言葉のフックをそのまま繰り返すキャプション。
- ブランドフラグがどちらも設定されていない状態で
commercialContent: trueにすること。 - アプリが監査されていない状態で、投稿が公開されると主張すること(非公開になります)。
リソース
../../references/voice-rules.md- キャプションとハッシュタグのルール../../references/algorithm-heuristics.md- キャプション、ハッシュタグ、設定に関するヒューリスティックreferences/settings-matrix.md- すべてのplatformSettings.tiktok値、デフォルト値、既知のバグlib/publora_client.py-tiktok_settings(...)、publish_video(...)、create_draft(...)
任意のイラスト
ビジュアルによってリーチが伸びる場合は、生成画像を提案します。プロンプトを作成し、lib.illustrate(prompt, kind="story")を呼び出します。ピクセル単位で正確にオーバーレイするため、Voice & Brand Profileセクション6からブランドのハンドル名と色を取得してください。返されたurlとcostを表示します。TikTokの写真投稿では、media_urls=[url]を指定して画像を添付します(TikTokの写真カルーセル)。動画の場合、TikTokのAPIにはカバー画像のフィールドがないため、カバーはTikTokアプリで設定してください。完全なワークフロー(引用カードを含む):
../tt-humanizer/sub-skills/illustration.md。Pixfaroのキーがない場合は、手動で生成できるようにプロンプトを作成します。
関連スキル
tt-hook-scripter- 動画内のフック(キャプションで代用することはできません)tt-humanizer- 公開前にキャプションを調整しますtt-content-planner- 投稿週を通じてキャプションのスケジュールを設定します