TikTok Content Pipeline

# TikTok Content Pipeline — OpenClaw Skill

Safety Notice

This listing is from the official public ClawHub registry. Review SKILL.md and referenced scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "TikTok Content Pipeline" with this command: npx skills add matttandy855/tiktok-content-pipeline

TikTok Content Pipeline — OpenClaw Skill

Automated TikTok carousel content generation, publishing, scheduling, and analytics-driven optimization for any niche.

Overview

This skill provides a complete content pipeline for TikTok accounts. It handles:

  • Content Generation — AI-generated carousel slides with hooks, CTAs, and keyword overlays
  • Smart Scheduling — Research-backed posting times with account-age-aware frequency
  • Publishing — Post to TikTok via Postiz API (supports drafts, scheduled posts, multi-platform)
  • Analytics & Optimization — Track performance, diagnose issues, auto-implement improvements

Required Credentials

CredentialPurposeHow to Obtain
Postiz API KeyPublishing & analytics via Postiz CLISign up at postiz.com → Settings → API Keys
TikTok Integration IDLinks your TikTok account to PostizPostiz dashboard → Integrations → Add TikTok

Credential Storage (Important)

Recommended: Set POSTIZ_API_KEY as an environment variable (e.g. in ~/.zshrc or ~/.bashrc) rather than storing it in config files. The pipeline checks for this env var first.

Alternative: Store in accounts/<your-account>/config.json under postiz.apiKey. If using this approach, ensure the file is not committed to version control (add to .gitignore).

The Integration ID is account-specific and stored in per-account config.json.

Security Notes

  • This skill executes the postiz CLI via shell commands. All arguments are escaped to prevent injection.
  • The skill writes files only within its own accounts/ and output/ directories.
  • auto-improve mode can modify account configs and auto-post — test on a throwback account first.
  • Run npm audit after installing dependencies to check for known vulnerabilities.

Quick Setup

  1. Set your Postiz API key: export POSTIZ_API_KEY="your-key-here"
  2. Copy config.example.json to accounts/<your-account>/config.json
  3. Fill in your TikTok integration ID
  4. Create or adapt a template in templates/ for your niche
  5. Run: node cli.js create <account> --template <template-name>

See SETUP.md for the full setup guide.


How to Use This Skill

1. Create a New Account

node cli.js create my-brand --template example-nostalgia

This copies the template into accounts/my-brand/ and sets createdAt to now.

2. Configure the Account

Edit accounts/my-brand/config.json:

{
  "account": { "name": "my-brand", "handle": "@mybrand", "niche": "your-niche", "createdAt": "2026-01-15T00:00:00Z" },
  "postiz": { "apiKey": "YOUR_KEY", "integrationId": "YOUR_TIKTOK_ID" },
  "posting": { "timezone": "Europe/London" }
}

Or use the CLI:

node cli.js config my-brand --handle @mybrand --integration-id YOUR_ID --api-key YOUR_KEY

3. Generate Content

node cli.js generate my-brand --type showcase
node cli.js generate my-brand --type showcase --post  # Generate and post as draft

The generator uses the template's generator.js to create carousel slides, applies hooks from config, adds keyword overlays for TikTok SEO, and outputs to accounts/my-brand/output/.

4. Check the Posting Schedule

node cli.js schedule my-brand          # This week's schedule
node cli.js schedule my-brand --next   # Next optimal posting slot

The scheduler automatically adjusts frequency based on account age:

  • Days 0-24: Daily posting (building momentum)
  • Days 25-30: Taper from 7 → 4 posts/week
  • Day 31+: 3-4 posts/week on optimal days

5. Run Analytics

node cli.js analytics my-brand --days 7
node cli.js analytics my-brand --days 7 --auto-improve  # Auto-implement fixes

Research-Backed Viral Mechanics

These findings are baked into the framework's scheduling, optimization, and content scoring:

Algorithm Priority Signals

  1. Watch time & completion rate — most critical signal. 80%+ completion = 5x reach.
  2. First 3-second hook — determines whether content gets distributed at all.
  3. Shares — strongest engagement signal for virality.
  4. Saves — growing importance. 15%+ save-to-view = high-value content.
  5. Comment engagement — quality conversations > generic comments.

Posting Strategy

  • 3-4 posts/week is optimal for established accounts (NOT 3/day — that hurts reach)
  • Best days: Wednesday, Tuesday, Thursday
  • Best times: Tue 5pm, Wed 2-5pm, Thu 3-5pm
  • New accounts: Post daily for first 30 days to build momentum
  • Max 1 post/day for established accounts (2/day max for new accounts)

Carousel Advantages

  • 3x more saves than standard video
  • 40% longer dwell time when users engage
  • Lower production barrier — slides are easier to produce than video
  • 5-7 slides optimal for maintaining attention
  • First slide is everything — must hook immediately

Hook Patterns That Work

TypeExampleAvg Engagement
Contradiction"Everyone thinks X, but actually..."9%+
Challenge"If you used X, you had no skill 😂"11%+
Gatekeeping"Only real ones remember..."8%+
POV"POV: You just discovered..."7%+
Nostalgia"Remember this? 🔥"6%+
Question"Would you do this? Yes or no 👇"8%+

Content Scoring

The ViralOptimizer scores content before posting (0-100):

  • Hook quality (40% weight) — length, power words, emoji, question format
  • Structure (30% weight) — slide count, audio, format
  • Engagement potential (30% weight) — CTA presence, opinion-split, hashtag count

Verdicts:

  • 80+ = 🔥 HIGH VIRAL POTENTIAL — Post immediately
  • 65+ = ✅ GOOD — Ready to post
  • 50+ = ⚠️ DECENT — Consider optimizing
  • 35+ = 🔧 NEEDS WORK — Apply suggestions
  • <35 = ❌ LOW POTENTIAL — Rethink approach

Diagnostic Matrix

When analyzing post performance, use this matrix to decide what to fix:

ViewsEngagementDiagnosisAction
High (>1000)High (>5%)SCALECreate 3 variations of this content. Test same hook with different visuals.
High (>1000)Low (<3%)FIX CTAHook is working — add stronger call-to-action. Add opinion-split or challenge.
Low (<500)High saves (>10%)FIX HOOKContent converts — needs better opening hook. Test trending audio. Stronger first-slide text.
Low (<500)Low (<3%)FULL RESETTry radically different format. Research top creators in niche. Test different posting time.

Key Thresholds

MetricTargetViralPoor
Completion rate80%90%40%
Save-to-view ratio15%25%3%
Share rate8%15%2%
Comment rate5%10%1%
Profile visit rate12%20%3%
Follower conversion8%15%2%

Creating a Custom Template

Templates define the content types, hooks, hashtags, and generation logic for a niche.

Template Structure

templates/your-niche/
├── config.json      # Content types, hooks, hashtags, settings
├── generator.js     # Content generation logic (extends ContentGenerator)
└── README.md        # Template documentation

config.json Required Fields

{
  "account": { "template": "your-niche", "niche": "Your Niche" },
  "content": {
    "types": {
      "your-content-type": { "description": "...", "slides": 6 }
    },
    "hashtagSets": {
      "default": ["#yourniche", "#fyp"]
    }
  },
  "hooks": {
    "your-content-type": ["Hook text 1", "Hook with {placeholder} 2"]
  },
  "posting": { "timezone": "Europe/London" }
}

generator.js Pattern

const ContentGenerator = require('../../core/ContentGenerator');

class YourNicheGenerator extends ContentGenerator {
  getSupportedTypes() {
    return Object.keys(this.config.content.types);
  }

  async _generateContent(contentType, options, outputDir) {
    this._ensureOutputDir(outputDir);
    const hook = this.getSlide1Hook(contentType, options);
    // Generate slides using sharp/canvas/ImageMagick
    // Return { slides: [...paths], hook: hook.text, caption: '...' }
  }
}

module.exports = YourNicheGenerator;

Architecture

tiktok-content-pipeline/
├── cli.js                    # Universal CLI
├── core/
│   ├── ContentGenerator.js   # Abstract base for content generation
│   ├── Publisher.js          # Postiz API integration
│   ├── PostingScheduler.js   # Smart scheduling engine
│   ├── ViralOptimizer.js     # Content scoring & optimization
│   └── AnalyticsEngine.js    # Performance tracking & insights
├── accounts/                 # Per-account configs & output (created at runtime)
└── templates/                # Niche templates
    └── example-nostalgia/    # Example template to fork

Core Components

  • ContentGenerator — Abstract base class. Subclass it per niche. Handles hooks, question hooks, keyword overlays, placeholder replacement.
  • Publisher — Posts to TikTok (and other platforms) via Postiz CLI. Handles media upload, scheduling, draft mode, and post metadata saving.
  • PostingScheduler — Account-age-aware scheduling. Knows optimal days/times from research. Supports weekly schedule generation and overdue detection.
  • ViralOptimizer — Pre-post content scoring. Post-performance diagnostic matrix. Hook pattern library with engagement-weighted selection.
  • AnalyticsEngine — Pulls metrics from Postiz API. Generates reports with alerts, opportunities, and auto-implementable actions.

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

yuqing-bitable-and-label

Incrementally sync data from XiaoAi API to Feishu Bitable and optionally auto-label records with machine-based type and sentiment annotations.

Registry SourceRecently Updated
General

张律师综合套装

张律师法律AI中台 - 中国首个开源法律AI技能库,涵盖刑事辩护、民商事诉讼、合同审查全流程

Registry SourceRecently Updated
General

刑事辩护

刑事辩护全流程AI助手 - 6大阶段21个模板,从接案到执行全覆盖

Registry SourceRecently Updated