ClawKit Logo
ClawKitReliability Toolkit
Back to Registry
Official Verified

tiktok-poster

TikTok automation via browser. Upload videos, add captions, hashtags. Schedule for optimal engagement times.

skill-install — Terminal

Install via CLI (Recommended)

clawhub install openclaw/skills/skills/sa9saq/tiktok-poster
Or

TikTok Poster

TikTokブラウザ自動化。動画アップロード、キャプション、ハッシュタグ。

機能

投稿機能

  • 動画アップロード(最大10分)
  • キャプション追加
  • ハッシュタグ設定
  • サウンド追加
  • スケジュール投稿

分析機能

  • 視聴数追跡
  • エンゲージメント率
  • フォロワー増減
  • トレンド分析

使用方法

基本投稿

「TikTokに動画を投稿して
 動画: [video_url]
 キャプション: [text]」

詳細設定

「TikTok投稿
 動画: [video_url]
 キャプション: [text]
 ハッシュタグ: #tag1 #tag2 #tag3
 公開範囲: [public/friends/private]
 コメント: [on/off]
 デュエット: [on/off]」

Puppeteer実装(ローカル版)

前提条件

npm install puppeteer

基本投稿

const puppeteer = require('puppeteer');
const fs = require('fs');

async function postToTikTok(videoPath, caption) {
  const client = await createClient({ headless: false }); // TikTokは表示推奨

  // Cookie復元(あれば)
  if (fs.existsSync('tiktok-cookies.json')) {
    const cookies = JSON.parse(fs.readFileSync('tiktok-cookies.json'));
    await client.setCookies(cookies);
  }

  await client.executeSequence([
    { type: 'navigate', url: 'https://www.tiktok.com/creator-center/upload' },
    { type: 'wait', ms: 3000 }
  ]);

  // ファイルアップロード
  const fileInput = await client.page.$('input[type="file"]');
  await fileInput.uploadFile(videoPath);

  await client.executeSequence([
    { type: 'wait', ms: 15000 }, // アップロード+処理待機
    { type: 'waitForSelector', selector: '[data-testid="caption-input"]' },
    { type: 'type', selector: '[data-testid="caption-input"]', text: caption },
    { type: 'wait', ms: 1000 },
    { type: 'click', selector: '[data-testid="post-button"]' },
    { type: 'wait', ms: 5000 },
    { type: 'screenshot' }
  ]);

  // Cookieを保存
  const cookies = await client.getCookies();
  fs.writeFileSync('tiktok-cookies.json', JSON.stringify(cookies));

  await client.close();
}

// 使用例
postToTikTok('/path/to/video.mp4', 'キャプション #fyp #viral');

ログインフロー

async function loginToTikTok(client) {
  await client.executeSequence([
    { type: 'navigate', url: 'https://www.tiktok.com/login' },
    { type: 'wait', ms: 3000 },
    // TikTokはQRコード/電話番号/SNS連携が主流
    // 手動ログイン後にCookieを保存
    { type: 'screenshot' }
  ]);

  // 手動ログイン完了後
  const cookies = await client.getCookies();
  fs.writeFileSync('tiktok-cookies.json', JSON.stringify(cookies));
  console.log('TikTok cookies saved');
}

セレクタ一覧(2026年版)

const SELECTORS = {
  // アップロード関連
  fileInput: 'input[type="file"]',
  captionInput: '[data-testid="caption-input"]',
  postButton: '[data-testid="post-button"]',

  // 設定関連
  visibilitySelector: '[data-testid="visibility-selector"]',
  commentToggle: '[data-testid="comment-toggle"]',
  duetToggle: '[data-testid="duet-toggle"]',

  // プレビュー
  videoPreview: '[data-testid="video-preview"]',
  uploadProgress: '[data-testid="upload-progress"]'
};

コンテンツ戦略

バイラル要素

1. 最初の1秒でフック
2. 3秒以内にペイオフ(価値提示)
3. ループ可能な構造
4. トレンドサウンド使用
5. テキストオーバーレイ

人気カテゴリ

カテゴリ特徴
エデュテインメント学び + エンタメ
Before/Afterビフォーアフター変化
Day in Life日常 vlog
Tutorialsハウツー
Storytimeストーリーテリング

Metadata

Author@sa9saq
Stars1133
Views1
Updated2026-02-18
View Author Profile
AI Skill Finder

Not sure this is the right skill?

Describe what you want to build — we'll match you to the best skill from 16,000+ options.

Find the right skill
Add to Configuration

Paste this into your clawhub.json to enable this plugin.

{
  "plugins": {
    "official-sa9saq-tiktok-poster": {
      "enabled": true,
      "auto_update": true
    }
  }
}
Safety NoteClawKit audits metadata but not runtime behavior. Use with caution.