New: Earn 20% as an AgentAlley affiliate. Share your link and earn on every sale you refer. Join now New: Earn 20% as an affiliate. Join now

Publish organic TikTok content through the TikTok-compliant

by hyperfx-ai · MIT license · ★ 90 on GitHub

Tiktok cover

Publish organic TikTok content (videos, photos, carousels) through the TikTok-compliant interactive posting form via the Hyper MCP. Use when the user wants to post a video to TikTok, share photos on TikTok, upload to TikTok, or any…

---
name: tiktok
description: Publish organic TikTok content (videos, photos, carousels) through the TikTok-compliant interactive posting form via the Hyper MCP. Use when the user wants to post a video to TikTok, share photos on TikTok, upload to TikTok, or any phrase like "post this to TikTok" / "share on TikTok" / "put this on my TikTok". For paid TikTok advertising campaigns, use the `tiktok-ads` skill instead.
requires_toolkits:
  - tiktok
icon: tiktok
short_description: Publish organic TikTok videos, photos, and carousels through the compliance posting form.
---

# TikTok

End-to-end skill for publishing organic content to TikTok through the **TikTok Content Sharing Guidelines-compliant** interactive posting form.

## Out of scope — defer to other skills

| Request | Send them to |
| --- | --- |
| TikTok ad campaign, Spark Ads, paid promotion | `tiktok-ads` |

Overview

End-to-end skill for publishing organic content to TikTok through the TikTok Content Sharing Guidelines-compliant interactive posting form.

Manual install (npx, ZIP)
Claude Codenpx skills add hyperfx-ai/marketing-skills --skill tiktok -g -a claude-code
Claude Code (degit)npx degit hyperfx-ai/marketing-skills/skills/tiktok#main ~/.claude/skills/tiktok
Claude.ai / desktopZip the folder and upload it under Settings → Capabilities → Skills.
Codex, Cursor, other agentsPoint them at SKILL.md. The other files are plain text.

Connects with Agent Alley MCP · agentalley.io/mcp

Files included

  • SKILL.md7.1 KB
Read SKILL.md here
hyperfx-ai/main1 file shown
SKILL.md
Show the full text163 lines

TikTok

End-to-end skill for publishing organic content to TikTok through the TikTok Content Sharing Guidelines-compliant interactive posting form.

Out of scope — defer to other skills

Request Send them to
TikTok ad campaign, Spark Ads, paid promotion tiktok-ads
Instagram post / Reel / story instagram
LinkedIn document or carousel post linkedin

Requirements

If search("tiktok_post_form_open") does not find tiktok_post_form_open, stop and tell the user to enable Hyper MCP and connect TikTok.

How to run the tools in this skill

Every tool in this skill is named by its canonical tool name. Run it with the call your surface gives you:

Surface Find a tool Run it
MCP client (Claude, Cursor, Codex, ChatGPT) search("<what you want to do>"), then describe("<name>") call("<name>", {...})
Hyper CLI hyperai search "<what you want to do>", then hyperai describe <name> hyperai call <name> --json '{...}'

If a tool is not found, its integration is not connected or not enabled for the workspace: stop and tell the user which integration to connect.

Tool surface

Tool Purpose
tiktok_post_form_open The only entrypoint when a user wants to post. Opens the compliance form.
tiktok_videos_send_from_url, tiktok_post_video_from_file, tiktok_photos_send Final posting tools — call ONLY after the user submits the form.
tiktok_current_user_get Authenticated user profile (does not require the form).
tiktok_creator_info_get Check posting capabilities and limits.
tiktok_videos_list, tiktok_videos_query Browse the user's published videos.
tiktok_posts_status_get Check the status of a previously submitted post.
tiktok_videos_upload_from_url, tiktok_videos_upload_from_file, tiktok_photos_upload Send to inbox as draft (user posts manually in the TikTok app — bypasses the form intentionally).

Critical Rules

CRITICAL: ALWAYS use tiktok_post_form_open when a user wants to post to TikTok. NEVER call tiktok_videos_send_from_url, tiktok_photos_send, or tiktok_post_video_from_file directly in response to a user request. The posting form is required for TikTok compliance.

CRITICAL: Do NOT ask the user about privacy, policies, captions, or branded content settings before opening the form. The form handles all of this interactively.

CRITICAL: Call tiktok_post_form_open immediately when the user wants to post. Do not gather information first.

When the User Wants to Post

If the user says ANY of:

  • "post this video/photo to TikTok"
  • "share this on TikTok"
  • "upload to TikTok"
  • "put this on my TikTok"

Immediately call tiktok_post_form_open:

tiktok_post_form_open(
    media_type="video",            # or "photo"
    media_url="<url>",             # single video / single photo URL
    media_urls=["<url>", ...]      # for photo carousels (max 35)
)

DO NOT:

  • Ask about privacy settings before opening the form.
  • Ask about caption / title before opening the form.
  • Ask about policy acknowledgments before opening the form.
  • Request any metadata — just open the form.
  • Call tiktok_videos_send_from_url or tiktok_photos_send directly.

What the Form Handles

The interactive posting form is TikTok Content Sharing Guidelines compliant and handles:

  • Creator identity display (username, avatar).
  • Media preview (video player or photo grid).
  • Caption / title entry with character limits (#hashtags and @mentions).
  • Privacy level selection (filtered to account-eligible options).
  • Interaction settings (comments, duet, stitch).
  • AI-generated content labeling.
  • Commercial content disclosure (branded / promotional).
  • Music Usage Confirmation acknowledgment.
  • Branded Content Policy acknowledgment.
  • Posting restrictions / ban detection.
  • Video duration validation.

Pre-fill Parameters

When calling tiktok_post_form_open, provide what you know:

Parameter When to provide
media_type Always ("video" or "photo").
media_url Single video or single photo.
media_urls Photo carousel (list of URLs, max 35).
video_duration_sec If known — enables duration validation.
title If the user mentioned a caption.
is_aigc If you generated the media (Veo, Seedance, image gen, etc.).

After Form Submission

When the user fills out and submits the form, you receive a message containing all their chosen settings. At that point, call the appropriate posting tool with the exact parameters from their submission:

  • Video from URL: tiktok_videos_send_from_url
  • Video from file: tiktok_post_video_from_file
  • Photos: tiktok_photos_send

The posting tool will automatically poll status and return a completion message.

Media Format Requirements

Videos:

  • Format: MP4 + H.264 recommended.
  • Resolution: 720p minimum, 4K maximum.
  • Aspect ratio: 9:16, 16:9, or 1:1.
  • Duration: 3s minimum, max varies by account (checked by the form).

Photos:

  • Format: WebP or JPEG only (PNG is NOT supported).
  • Resolution: 1080p maximum.
  • Size: 20MB per photo maximum.
  • Carousel: up to 35 photos.

Domain verification:

  • All media URLs must be from verified domains in the TikTok Developer Portal.
  • Unverified domains will fail with an authentication error.

Example Flow

  1. User: "Post this video to TikTok".
  2. You: call tiktok_post_form_open(media_type="video", media_url="<url>").
  3. The posting form opens in the artifact panel.
  4. User configures privacy, caption, policies, etc.
  5. User clicks "Post to TikTok".
  6. You receive their settings as a message.
  7. You: call tiktok_videos_send_from_url(...) with the submitted parameters.
  8. Tool auto-polls and returns status (complete, failed, or timeout).

Inbox / Draft Path (no form required)

These tools intentionally bypass the form — they send content to the user's TikTok app for manual posting:

  • tiktok_videos_upload_from_url — send video to inbox as draft.
  • tiktok_videos_upload_from_file — upload file to inbox as draft.
  • tiktok_photos_upload — send photos to inbox as draft.

Use these only when the user explicitly asks to "send to my TikTok drafts" or "I want to post manually in the app". Otherwise, default to the form path.

1---
2name: tiktok
3description: Publish organic TikTok content (videos, photos, carousels) through the TikTok-compliant interactive posting form via the Hyper MCP. Use when the user wants to post a video to TikTok, share photos on TikTok, upload to TikTok, or any phrase like "post this to TikTok" / "share on TikTok" / "put this on my TikTok". For paid TikTok advertising campaigns, use the `tiktok-ads` skill instead.
4requires_toolkits:
5 - tiktok
6icon: tiktok
7short_description: Publish organic TikTok videos, photos, and carousels through the compliance posting form.
8---
9 
10# TikTok
11 
12End-to-end skill for publishing organic content to TikTok through the **TikTok Content Sharing Guidelines-compliant** interactive posting form.
13 
14## Out of scope — defer to other skills
15 
16| Request | Send them to |
17| --- | --- |
18| TikTok ad campaign, Spark Ads, paid promotion | `tiktok-ads` |
19| Instagram post / Reel / story | `instagram` |
20| LinkedIn document or carousel post | `linkedin` |
21 
22## Requirements
23 
24- **Hyper MCP installed and connected.** [https://app.hyperfx.ai/mcp](https://app.hyperfx.ai/mcp)
25- **TikTok integration connected** at [https://app.hyperfx.ai/apps](https://app.hyperfx.ai/apps) — this skill uses the TikTok Login Kit / Content Posting API (NOT the TikTok Marketing API).
26 
27If `search("tiktok_post_form_open")` does not find `tiktok_post_form_open`, stop and tell the user to enable Hyper MCP and connect TikTok.
28 
29### How to run the tools in this skill
30 
31Every tool in this skill is named by its canonical tool name. Run it with the call your surface gives you:
32 
33| Surface | Find a tool | Run it |
34| --- | --- | --- |
35| MCP client (Claude, Cursor, Codex, ChatGPT) | `search("<what you want to do>")`, then `describe("<name>")` | `call("<name>", {...})` |
36| Hyper CLI | `hyperai search "<what you want to do>"`, then `hyperai describe <name>` | `hyperai call <name> --json '{...}'` |
37 
38If a tool is not found, its integration is not connected or not enabled for the workspace: stop and tell the user which integration to connect.
39 
40## Tool surface
41 
42| Tool | Purpose |
43| --- | --- |
44| `tiktok_post_form_open` | **The only entrypoint when a user wants to post.** Opens the compliance form. |
45| `tiktok_videos_send_from_url`, `tiktok_post_video_from_file`, `tiktok_photos_send` | Final posting tools — call ONLY after the user submits the form. |
46| `tiktok_current_user_get` | Authenticated user profile (does not require the form). |
47| `tiktok_creator_info_get` | Check posting capabilities and limits. |
48| `tiktok_videos_list`, `tiktok_videos_query` | Browse the user's published videos. |
49| `tiktok_posts_status_get` | Check the status of a previously submitted post. |
50| `tiktok_videos_upload_from_url`, `tiktok_videos_upload_from_file`, `tiktok_photos_upload` | Send to inbox as draft (user posts manually in the TikTok app — bypasses the form intentionally). |
51 
52## Critical Rules
53 
54> **CRITICAL**: ALWAYS use `tiktok_post_form_open` when a user wants to post to TikTok. NEVER call `tiktok_videos_send_from_url`, `tiktok_photos_send`, or `tiktok_post_video_from_file` directly in response to a user request. The posting form is required for TikTok compliance.
55 
56> **CRITICAL**: Do NOT ask the user about privacy, policies, captions, or branded content settings before opening the form. The form handles all of this interactively.
57 
58> **CRITICAL**: Call `tiktok_post_form_open` immediately when the user wants to post. Do not gather information first.
59 
60## When the User Wants to Post
61 
62If the user says ANY of:
63 
64- "post this video/photo to TikTok"
65- "share this on TikTok"
66- "upload to TikTok"
67- "put this on my TikTok"
68 
69**Immediately call `tiktok_post_form_open`:**
70 
71```python
72tiktok_post_form_open(
73 media_type="video", # or "photo"
74 media_url="<url>", # single video / single photo URL
75 media_urls=["<url>", ...] # for photo carousels (max 35)
76)
77```
78 
79**DO NOT:**
80- Ask about privacy settings before opening the form.
81- Ask about caption / title before opening the form.
82- Ask about policy acknowledgments before opening the form.
83- Request any metadata — just open the form.
84- Call `tiktok_videos_send_from_url` or `tiktok_photos_send` directly.
85 
86## What the Form Handles
87 
88The interactive posting form is TikTok Content Sharing Guidelines compliant and handles:
89 
90- Creator identity display (username, avatar).
91- Media preview (video player or photo grid).
92- Caption / title entry with character limits (`#hashtags` and `@mentions`).
93- Privacy level selection (filtered to account-eligible options).
94- Interaction settings (comments, duet, stitch).
95- AI-generated content labeling.
96- Commercial content disclosure (branded / promotional).
97- Music Usage Confirmation acknowledgment.
98- Branded Content Policy acknowledgment.
99- Posting restrictions / ban detection.
100- Video duration validation.
101 
102## Pre-fill Parameters
103 
104When calling `tiktok_post_form_open`, provide what you know:
105 
106| Parameter | When to provide |
107| --- | --- |
108| `media_type` | Always (`"video"` or `"photo"`). |
109| `media_url` | Single video or single photo. |
110| `media_urls` | Photo carousel (list of URLs, max 35). |
111| `video_duration_sec` | If known — enables duration validation. |
112| `title` | If the user mentioned a caption. |
113| `is_aigc` | If you generated the media (Veo, Seedance, image gen, etc.). |
114 
115## After Form Submission
116 
117When the user fills out and submits the form, you receive a message containing all their chosen settings. At that point, call the appropriate posting tool with the exact parameters from their submission:
118 
119- **Video from URL**: `tiktok_videos_send_from_url`
120- **Video from file**: `tiktok_post_video_from_file`
121- **Photos**: `tiktok_photos_send`
122 
123The posting tool will automatically poll status and return a completion message.
124 
125## Media Format Requirements
126 
127**Videos:**
128- Format: MP4 + H.264 recommended.
129- Resolution: 720p minimum, 4K maximum.
130- Aspect ratio: 9:16, 16:9, or 1:1.
131- Duration: 3s minimum, max varies by account (checked by the form).
132 
133**Photos:**
134- Format: WebP or JPEG only (PNG is NOT supported).
135- Resolution: 1080p maximum.
136- Size: 20MB per photo maximum.
137- Carousel: up to 35 photos.
138 
139**Domain verification:**
140- All media URLs must be from verified domains in the TikTok Developer Portal.
141- Unverified domains will fail with an authentication error.
142 
143## Example Flow
144 
1451. User: "Post this video to TikTok".
1462. You: call `tiktok_post_form_open(media_type="video", media_url="<url>")`.
1473. The posting form opens in the artifact panel.
1484. User configures privacy, caption, policies, etc.
1495. User clicks "Post to TikTok".
1506. You receive their settings as a message.
1517. You: call `tiktok_videos_send_from_url(...)` with the submitted parameters.
1528. Tool auto-polls and returns status (complete, failed, or timeout).
153 
154## Inbox / Draft Path (no form required)
155 
156These tools intentionally bypass the form — they send content to the user's TikTok app for manual posting:
157 
158- `tiktok_videos_upload_from_url` — send video to inbox as draft.
159- `tiktok_videos_upload_from_file` — upload file to inbox as draft.
160- `tiktok_photos_upload` — send photos to inbox as draft.
161 
162Use these only when the user explicitly asks to "send to my TikTok drafts" or "I want to post manually in the app". Otherwise, default to the form path.
163 
View all files on GitHub →

Details

License
MIT
Stars on the repo
★ 90
Checked
Source
hyperfx-ai/marketing-skills ↗
Creator
hyperfx-ai · 11 listings
View creator

Similar skills

See all →
SkillResearch what people actually say about any topicSTEP 0: STALE-CLONE SELF-CHECK — RUN BEFORE READING BELOWmvanhorn/last30days-skill · by mvanhornResearch what people actually say about any topic in the last 30 days. Pulls posts and engagement from Reddit, X, YouTube, TikTok, Hacker News, Polymarket, GitHub, and the web. Includes a doctor health check to diagnose broken or missing sources.★ 63.5k GitHub starsSkillScrapes social platforms, business dataApifydanielmiessler/LifeOS · by danielmiesslerScrapes social platforms, business data, and e-commerce via Apify actors — Instagram, LinkedIn, TikTok, YouTube, Facebook, Google Maps, Amazon, and web crawls — filtering in code. USE WHEN scrape Instagram, scrape LinkedIn, scrape TikTok, scrape YouTube, scrape Facebook, Google Maps leads, Amazon reviews, business intelligence, multi-platform social listening, competitive analysis, lead generation, social monitoring, Apify actors, web crawl, extract contacts. NOT FOR X/Twitter account operations like posting, threads, or bookmarks (those need a dedicated X API client), 4-tier progressive scraping with proxy escalation (use BrightData), or real-Chrome bot bypass and computer use (use Interceptor).★ 19.3k GitHub starsSkill微信公众号长文增长闭环 ——tsingyuai/growth-lab · by tsingyuai微信公众号长文增长闭环 —— 从读者问题与复刻锚选题、写出可验证的公众号长文、预览与合规检查、同步微信草稿、三重确认下受控发布,到回收阅读与转化数据并复盘。用户要求写公众号、把内容改成公众号、同步或发布微信草稿、查看公众号数据或复盘时使用。★ 2k GitHub starsSkillSearch and retrieve content from Twitter/XTwitter/X SkillReScienceLab/opc-skills · by ReScienceLabSearch and retrieve content from Twitter/X. Get user info, tweets, replies, followers, communities, spaces, and trends via twitterapi.io. Use when user mentions Twitter, X, or tweets.★ 1.8k GitHub starsSkillSays 'YouTube script', 'video script'🎬 YouTube Script: Writing retention-optimized video script...cwinvestments/memstack · by cwinvestmentsUse this skill when the user says 'YouTube script', 'video script', 'write script for YouTube', 'YouTube video outline', or is creating scripted content for a YouTube video with hooks, chapters, and CTAs. Do NOT use for TikTok/Reels short-form scripts or webinar presentations.★ 423 GitHub starsSkillAgent Reach — 互联网能力路由器Ootto-AI/claude-content-skills · by Ootto-AIMUST USE when user wants to 调研/research/搜索/search/查/找/look up anything on the internet — e.g. 全网调研 X / 帮我调研一下 X / 查一下 X / 搜搜 X / 看看大家怎么评价 X / X 上有什么讨论 / research this topic。 Also MUST USE when user mentions any platform or shares any URL/链接: 小红书/xiaohongshu/xhs, Twitter/推特/X, B站/bilibili, Reddit, V2EX, LinkedIn/领英/招聘/求职/jobs, YouTube, GitHub code search, 小宇宙播客, 雪球/股票行情, RSS feeds, or any web URL. 13 platforms, multi-backend routing (OpenCLI / per-platform CLIs / APIs). Zero config for 6 channels. Run `agent-reach doctor --json` to see which backend serves each platform right now. NOT for: 写报告/数据分析/翻译等内容加工(本 skill 只负责从互联网获取内容); 发帖/评论/点赞等写操作;已有专门 skill 的平台(先用专门 skill)。 【路由方式】SKILL.md 包含路由表和常用命令,复杂场景需按需阅读对应分类的 references/*.md。 分类:search / social (小红书/推特/B站/V2EX/Reddit) / career(LinkedIn) / dev(github) / web(网页/文章/RSS) / video(YouTube/B站/播客)。★ 139 GitHub stars

More from hyperfx-ai

SkillGenerate on-brand ad creativesAd creative generationhyperfx-ai/marketing-skills · by hyperfx-aiGenerate on-brand ad creatives — visuals + copy — for Google, Meta (Facebook / Instagram), and other paid platforms via the Hyper MCP. Extracts brand identity from a website, writes ad copy variants, and produces brand-consistent images using reference-based image generation. Use when the user asks for ad creative, ad copy variants, RSA headlines, Meta ad creative, display ads, carousel ads, or A/B test variants.★ 90 GitHub starsSkillPlan and create Amazon Sponsored Products campaignsAmazon adshyperfx-ai/marketing-skills · by hyperfx-aiPlan and create Amazon Sponsored Products campaigns end-to-end via the Hyper MCP. Use when the user wants to launch Amazon Ads, set up Sponsored Products, manage keyword targeting and bids, configure ASIN or category product targeting, add negative keywords, automate budget rules, analyze ACoS / ROAS, or generate Sponsored Products reports. Also triggers on amazon ppc, amazon campaign, amazon keywords, or amazon report.★ 90 GitHub starsSkillRun end-to-end B2B cold-email outreach through the Hyper MCPhyperfx-ai/marketing-skills · by hyperfx-aiRun end-to-end B2B cold-email outreach through the Hyper MCP — enrich prospects with Apollo, scrape per-prospect signals from company sites and LinkedIn, draft personalized emails using proven hook frameworks, send via Gmail with safe defaults, and route replies into labeled folders. Use when the user wants to write cold emails, run an outbound sequence, prospect a list, build a follow-up cadence, "reach out to leads," or asks why nobody is replying to their cold emails.★ 90 GitHub starsSkillPlan and create new Google Ads campaignshyperfx-ai/marketing-skills · by hyperfx-aiPlan and create new Google Ads campaigns and report on existing accounts via the Hyper MCP. Use when the user wants to launch Search, Display, Performance Max, Video, Demand Gen, Shopping, or App campaigns, build Google Ads reports or dashboards, diagnose conversion tracking, or mentions Google Ads, AdWords, search ads, display ads, Performance Max, PMax, PPC, Google campaigns, search term reports, budget analysis, conversion funnels, negative keywords, or manager accounts (MCC).★ 90 GitHub starsSkillManage Instagram professional accounts via the Hyper MCPhyperfx-ai/marketing-skills · by hyperfx-aiManage Instagram professional accounts via the Hyper MCP — publish photos, Reels, Stories, and carousels; moderate comments and mentions; send Direct Messages; pull account and media insights. Uses the Instagram API with Instagram Login (Business Login). Use when the user mentions Instagram posts, Reels, Stories, carousels, IG DMs, Instagram comments, mentions, profile, or analytics. For paid Instagram advertising, use `meta-ads`.★ 90 GitHub starsSkillPublish and manage LinkedIn content via the Hyper MCPhyperfx-ai/marketing-skills · by hyperfx-aiPublish and manage LinkedIn content via the Hyper MCP — text posts, article / link previews, document and PDF posts, organization (company page) posts, and AI-generated text-to-carousel posts. Use when the user wants to post on LinkedIn, share an article on LinkedIn, post to a LinkedIn company page, upload a PDF / document to LinkedIn, or build a LinkedIn carousel from text.★ 90 GitHub stars