mcpField
T
tt-caption-writer

tt-caption-writer

github.com/sergebulaevマーケティング・グロース9878 回インストール1 日前に更新
リポジトリ

tt-caption-writer について

tt-caption-writerは、動画や台本をもとにTikTokのキャプション、ハッシュタグ、投稿設定を作成するスキルです。APIの文字数上限を守り、動画ファイルとPubloraがある場合は公開フローも準備できます。

主な機能

  1. 01簡潔なTikTokキャプションを作成
  2. 02リーチの異なるハッシュタグを選定
  3. 03TikTokの投稿フラグを設定
  4. 04キャプションとタグの文字数を確認
  5. 05下書き、アップロード、予約投稿を準備

活用シーン

  1. 01完成動画のキャプションを作成
  2. 02投稿前に公開範囲と交流設定を指定
  3. 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 の設定と一致します。

設定値/デフォルト機能
viewerSettingPUBLIC_TO_EVERYONE(デフォルト)、MUTUAL_FOLLOW_FRIENDS、FOLLOWER_OF_CREATOR、SELF_ONLY視聴できるユーザーを指定します。実質的に必須で、値が空だと拒否されます
allowCommentstrue(デフォルト)視聴者がコメントできます
allowDuetfalse(デフォルト)視聴者がデュエットできます
allowStitchfalse(デフォルト)視聴者がスティッチできます
commercialContentfalse(デフォルト)動画が商用コンテンツであることを示します
brandOrganicfalse(デフォルト)自社ブランドを宣伝することを示します
brandedContentfalse(デフォルト)有料パートナーシップ/スポンサー付きコンテンツであることを示します
必ずユーザーに伝えるべき 2 つの注意点
  1. ブール値の反転バグ。 Publora は現在、allowComments、allowDuet、allowStitch を TikTok の disable_* フラグに割り当てているため、ブール値が反転して反映される可能性があります(allowDuet: true を送ると、デュエットが無効になる場合があります)。API だけでは状態を確認できません。これらの値を信頼する前に、SELF_ONLY の下書きでテストしてください。 フラグを変更する際は、必ずこのことをユーザーに伝えてください。
  2. 商用コンテンツの開示。 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 を使えば、いくつかの投稿からユーザーの声を学習できることを一度だけ伝えてから、汎用のボイスルールに従います。

具体的な情報を決して捏造しないでください。 以下のルールでは、具体的な数字、日付、固有名詞を求めています。これらが、実際の投稿と生成された投稿を分ける要素だからです。この会話でユーザーが実際に話した内容から取得してください。数値、日付、クライアント名、結果を捏造したり、曖昧な主張をもっともらしい数字で補強したりしないでください。 具体的な内容がない場合は、一度だけ尋ねてください。それでも何もなければ、飾り立てずにその主張を削除します。公開した数字の捏造は訂正が必要になりますが、数字を入れない場合は投稿の説得力が少し弱まるだけです。

  1. 入力を集めます。まず目標を確認します。 キャプションで何を得たいのかを尋ねる(または推測する)とともに、その目標に合わせて構成します。コメントを得たい場合は、動画に関連する具体的な質問で締めくくります。保存を促したい場合は、参考になる情報があることを伝えます(「設定3つはキャプションにあります」)。シェアを促したい場合は、誰かに見せたくなる主張を入れます。プロフィールへのアクセスを促したい場合は、固定動画で答えが分かる未解決の問いを残します。次に、動画のトピック/台本、ニッチ、商用コンテンツかどうか、レンダリング済みの .mp4 のパスがあるかを確認します。
  2. キャプションを下書きします。 最初に表示される行には、続きを読みたくなる理由、またはコメントしたくなる具体的な質問を置きます。簡潔にまとめます。エムダッシュは上限内に収めます(約100語につき1つ。短いキャプションなら不要なことがほとんどです)。AI用語を固めて使わないでください。必要に応じて、フックの未解決の問いをコメントを促す文として言い換えます。
  3. ハッシュタグを選びます。 リーチの幅を混ぜて3~5個選びます。幅広いタグを1つ、ニッチを定義するタグを1~2個、動画に特化したタグを1~2個にします。最後に配置し、詰め込みません。
  4. フラグを設定します。 デフォルトは PUBLIC_TO_EVERYONE、コメントはオン、デュエット/スティッチはオフ、商用フラグはなしです。ユーザーの希望に応じて調整し、注意点を2つ伝えます。lib.tiktok_settings(...) を使って設定を作成します。
  5. 文字数を確認します。 キャプションとハッシュタグの合計を2,200文字以内にします。超えている場合は短くします。
  6. ヒューマナイザーで仕上げます。 2026年のAI用語を密度に応じて削り、エムダッシュを上限内に収め(約100語につき1つ。ピリオドへの置き換えは禁止)、三項表現の連続、汎用的な書き出し、ネタばらしにつなぐ表現、誠実さを前置きする表現(「正直に言うと」など)を崩します。リズムはそのまま保ち、勢いを出すために行を途中で切らないでください。正式なルールは tt-humanizer V3 です。
  7. 承認カードを提示します。 キャプション、文字数、ハッシュタグのセット、設定の概要、解決済みの viewerSetting を表示します(非公開で投稿される可能性がある場合は明示します)。
  8. 承認後の処理。 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 - 投稿週を通じてキャプションのスケジュールを設定します

コメント