{"id":"6f415f53-49c6-450b-9f0f-e91723b48daf","shortId":"fgkfxA","kind":"skill","title":"tiktok-automation","tagline":"Automate TikTok tasks via Rube MCP (Composio): upload/publish videos, post photos, manage content, and view user profiles/stats. Always search tools first for current schemas.","description":"# TikTok Automation via Rube MCP\n\nAutomate TikTok content creation and profile operations through Composio's TikTok toolkit via Rube MCP.\n\n## Prerequisites\n\n- Rube MCP must be connected (RUBE_SEARCH_TOOLS available)\n- Active TikTok connection via `RUBE_MANAGE_CONNECTIONS` with toolkit `tiktok`\n- Always call `RUBE_SEARCH_TOOLS` first to get current tool schemas\n\n## Setup\n\n**Get Rube MCP**: Add `https://rube.app/mcp` as an MCP server in your client configuration. No API keys needed — just add the endpoint and it works.\n\n\n1. Verify Rube MCP is available by confirming `RUBE_SEARCH_TOOLS` responds\n2. Call `RUBE_MANAGE_CONNECTIONS` with toolkit `tiktok`\n3. If connection is not ACTIVE, follow the returned auth link to complete TikTok OAuth\n4. Confirm connection status shows ACTIVE before running any workflows\n\n## Core Workflows\n\n### 1. Upload and Publish a Video\n\n**When to use**: User wants to upload a video and publish it to TikTok\n\n**Tool sequence**:\n1. `TIKTOK_UPLOAD_VIDEO` or `TIKTOK_UPLOAD_VIDEOS` - Upload video file(s) [Required]\n2. `TIKTOK_FETCH_PUBLISH_STATUS` - Check upload/processing status [Required]\n3. `TIKTOK_PUBLISH_VIDEO` - Publish the uploaded video [Required]\n\n**Key parameters for upload**:\n- `video`: Video file object with `s3key`, `mimetype`, `name`\n- `title`: Video title/caption\n\n**Key parameters for publish**:\n- `publish_id`: ID returned from upload step\n- `title`: Video caption text\n- `privacy_level`: 'PUBLIC_TO_EVERYONE', 'MUTUAL_FOLLOW_FRIENDS', 'FOLLOWER_OF_CREATOR', 'SELF_ONLY'\n- `disable_duet`: Disable duet feature\n- `disable_stitch`: Disable stitch feature\n- `disable_comment`: Disable comments\n\n**Pitfalls**:\n- Video upload and publish are TWO separate steps; upload first, then publish\n- After upload, poll FETCH_PUBLISH_STATUS until processing is complete before publishing\n- Video must meet TikTok requirements: MP4/WebM format, max 10 minutes, max 4GB\n- Caption/title has character limits; check current TikTok guidelines\n- Privacy level strings are case-sensitive and must match exactly\n- Processing may take 30-120 seconds depending on video size\n\n### 2. Post a Photo\n\n**When to use**: User wants to post a photo to TikTok\n\n**Tool sequence**:\n1. `TIKTOK_POST_PHOTO` - Upload and post a photo [Required]\n2. `TIKTOK_FETCH_PUBLISH_STATUS` - Check processing status [Optional]\n\n**Key parameters**:\n- `photo`: Photo file object with `s3key`, `mimetype`, `name`\n- `title`: Photo caption text\n- `privacy_level`: Privacy setting for the post\n\n**Pitfalls**:\n- Photo posts are a newer TikTok feature; availability may vary by account type\n- Supported formats: JPEG, PNG, WebP\n- Image size and dimension limits apply; check current TikTok guidelines\n\n### 3. List and Manage Videos\n\n**When to use**: User wants to view their published videos\n\n**Tool sequence**:\n1. `TIKTOK_LIST_VIDEOS` - List user's published videos [Required]\n\n**Key parameters**:\n- `max_count`: Number of videos to return per page\n- `cursor`: Pagination cursor for next page\n\n**Pitfalls**:\n- Only returns the authenticated user's own videos\n- Response includes video metadata: id, title, create_time, share_url, duration, etc.\n- Pagination uses cursor-based approach; check for `has_more` and `cursor` in response\n- Recently published videos may not appear immediately in the list\n\n### 4. View User Profile and Stats\n\n**When to use**: User wants to check their TikTok profile info or account statistics\n\n**Tool sequence**:\n1. `TIKTOK_GET_USER_PROFILE` - Get full profile information [Required]\n2. `TIKTOK_GET_USER_STATS` - Get account statistics [Optional]\n3. `TIKTOK_GET_USER_BASIC_INFO` - Get basic user info [Alternative]\n\n**Key parameters**: (no required parameters; returns data for authenticated user)\n\n**Pitfalls**:\n- Profile data is for the authenticated user only; cannot view other users' profiles\n- Stats include follower count, following count, video count, likes received\n- `GET_USER_PROFILE` returns more details than `GET_USER_BASIC_INFO`\n- Stats may have slight delays; not real-time\n\n### 5. Check Publish Status\n\n**When to use**: User wants to check the status of a content upload or publish operation\n\n**Tool sequence**:\n1. `TIKTOK_FETCH_PUBLISH_STATUS` - Poll for status updates [Required]\n\n**Key parameters**:\n- `publish_id`: The publish ID from a previous upload/publish operation\n\n**Pitfalls**:\n- Status values include processing, success, and failure states\n- Poll at reasonable intervals (5-10 seconds) to avoid rate limits\n- Failed publishes include error details in the response\n- Content moderation may cause delays or rejections after processing\n\n## Common Patterns\n\n### Video Publish Flow\n\n```\n1. Upload video via TIKTOK_UPLOAD_VIDEO -> get publish_id\n2. Poll TIKTOK_FETCH_PUBLISH_STATUS with publish_id until complete\n3. If status is ready, call TIKTOK_PUBLISH_VIDEO with final settings\n4. Optionally poll status again to confirm publication\n```\n\n### Pagination\n\n- Use `cursor` from previous response for next page\n- Check `has_more` boolean to determine if more results exist\n- `max_count` controls page size\n\n## Known Pitfalls\n\n**Content Requirements**:\n- Videos: MP4/WebM, max 4GB, max 10 minutes\n- Photos: JPEG/PNG/WebP\n- Captions: Character limits vary by region\n- Content must comply with TikTok community guidelines\n\n**Authentication**:\n- OAuth tokens have scopes; ensure video.upload and video.publish are authorized\n- Tokens expire; re-authenticate if operations fail with 401\n\n**Rate Limits**:\n- TikTok API has strict rate limits per application\n- Implement exponential backoff on 429 responses\n- Upload operations have daily limits\n\n**Response Parsing**:\n- Response data may be nested under `data` or `data.data`\n- Parse defensively with fallback patterns\n- Publish IDs are strings; use exactly as returned\n\n## Quick Reference\n\n| Task | Tool Slug | Key Params |\n|------|-----------|------------|\n| Upload video | TIKTOK_UPLOAD_VIDEO | video, title |\n| Upload multiple videos | TIKTOK_UPLOAD_VIDEOS | videos |\n| Publish video | TIKTOK_PUBLISH_VIDEO | publish_id, title, privacy_level |\n| Post photo | TIKTOK_POST_PHOTO | photo, title, privacy_level |\n| List videos | TIKTOK_LIST_VIDEOS | max_count, cursor |\n| Get profile | TIKTOK_GET_USER_PROFILE | (none) |\n| Get user stats | TIKTOK_GET_USER_STATS | (none) |\n| Get basic info | TIKTOK_GET_USER_BASIC_INFO | (none) |\n| Check publish status | TIKTOK_FETCH_PUBLISH_STATUS | publish_id |\n\n## When to Use\nThis skill is applicable to execute the workflow or actions described in the overview.\n\n## Limitations\n- Use this skill only when the task clearly matches the scope described above.\n- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.\n- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.","tags":["tiktok","automation","antigravity","awesome","skills","sickn33","agent-skills","agentic-skills","ai-agent-skills","ai-agents","ai-coding","ai-workflows"],"capabilities":["skill","source-sickn33","skill-tiktok-automation","topic-agent-skills","topic-agentic-skills","topic-ai-agent-skills","topic-ai-agents","topic-ai-coding","topic-ai-workflows","topic-antigravity","topic-antigravity-skills","topic-claude-code","topic-claude-code-skills","topic-codex-cli","topic-codex-skills"],"categories":["antigravity-awesome-skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/sickn33/antigravity-awesome-skills/tiktok-automation","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add sickn33/antigravity-awesome-skills","source_repo":"https://github.com/sickn33/antigravity-awesome-skills","install_from":"skills.sh"}},"qualityScore":"0.700","qualityRationale":"deterministic score 0.70 from registry signals: · indexed on github topic:agent-skills · 34460 github stars · SKILL.md body (6,808 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-04-22T06:52:02.253Z","embedding":null,"createdAt":"2026-04-18T21:46:24.601Z","updatedAt":"2026-04-22T06:52:02.253Z","lastSeenAt":"2026-04-22T06:52:02.253Z","tsv":"'-10':668 '-120':323 '/mcp':86 '1':106,153,175,346,432,526,632,696 '10':296,770 '2':118,188,329,356,536,706 '3':126,197,415,545,717 '30':322 '4':141,504,729 '401':807 '429':822 '4gb':299,768 '5':610,667 'account':398,522,542 'action':946 'activ':58,131,146 'add':83,100 'altern':555 'alway':21,68 'api':96,811 'appear':499 'appli':410 'applic':817,940 'approach':485 'ask':984 'auth':135 'authent':463,564,572,787,802 'author':797 'autom':3,4,29,33 'avail':57,111,394 'avoid':671 'backoff':820 'base':484 'basic':549,552,599,917,922 'boolean':749 'boundari':992 'call':69,119,722 'cannot':575 'caption':234,377,774 'caption/title':300 'case':313 'case-sensit':312 'caus':685 'charact':302,775 'check':193,304,361,411,486,516,611,620,746,925 'clarif':986 'clear':959 'client':93 'comment':260,262 'common':691 'communiti':785 'complet':138,285,716 'compli':782 'composio':10,41 'configur':94 'confirm':113,142,735 'connect':53,60,64,122,128,143 'content':16,35,625,682,763,780 'control':758 'core':151 'count':445,583,585,587,757,899 'creat':474 'creation':36 'creator':246 'criteria':995 'current':26,76,305,412 'cursor':453,455,483,491,739,900 'cursor-bas':482 'daili':827 'data':562,568,832,837 'data.data':839 'defens':841 'delay':605,686 'depend':325 'describ':947,963 'detail':595,678 'determin':751 'dimens':408 'disabl':249,251,254,256,259,261 'duet':250,252 'durat':478 'endpoint':102 'ensur':792 'environ':975 'environment-specif':974 'error':677 'etc':479 'everyon':240 'exact':318,850 'execut':942 'exist':755 'expert':980 'expir':799 'exponenti':819 'fail':674,805 'failur':661 'fallback':843 'featur':253,258,393 'fetch':190,279,358,634,709,929 'file':185,212,369 'final':727 'first':24,73,273 'flow':695 'follow':132,242,244,582,584 'format':294,401 'friend':243 'full':532 'get':75,80,528,531,538,541,547,551,590,597,703,901,904,908,912,916,920 'guidelin':307,414,786 'id':226,227,472,645,648,705,714,846,880,933 'imag':405 'immedi':500 'implement':818 'includ':469,581,657,676 'info':520,550,554,600,918,923 'inform':534 'input':989 'interv':666 'jpeg':402 'jpeg/png/webp':773 'key':97,206,221,365,442,556,642,858 'known':761 'level':237,309,380,883,892 'like':588 'limit':303,409,673,776,809,815,828,951 'link':136 'list':416,434,436,503,893,896 'manag':15,63,121,418 'match':317,960 'max':295,298,444,756,767,769,898 'may':320,395,497,602,684,833 'mcp':9,32,47,50,82,89,109 'meet':290 'metadata':471 'mimetyp':216,373 'minut':297,771 'miss':997 'moder':683 'mp4/webm':293,766 'multipl':868 'must':51,289,316,781 'mutual':241 'name':217,374 'need':98 'nest':835 'newer':391 'next':457,744 'none':907,915,924 'number':446 'oauth':140,788 'object':213,370 'oper':39,629,653,804,825 'option':364,544,730 'output':969 'overview':950 'page':452,458,745,759 'pagin':454,480,737 'param':859 'paramet':207,222,366,443,557,560,643 'pars':830,840 'pattern':692,844 'per':451,816 'permiss':990 'photo':14,332,341,349,354,367,368,376,387,772,885,888,889 'pitfal':263,386,459,566,654,762 'png':403 'poll':278,637,663,707,731 'post':13,330,339,348,352,385,388,884,887 'prerequisit':48 'previous':651,741 'privaci':236,308,379,381,882,891 'process':283,319,362,658,690 'profil':38,507,519,530,533,567,579,592,902,906 'profiles/stats':20 'public':238,736 'publish':156,169,191,199,201,224,225,267,275,280,287,359,428,439,495,612,628,635,644,647,675,694,704,710,713,724,845,874,877,879,926,930,932 'quick':853 'rate':672,808,814 're':801 're-authent':800 'readi':721 'real':608 'real-tim':607 'reason':665 'receiv':589 'recent':494 'refer':854 'region':779 'reject':688 'requir':187,196,205,292,355,441,535,559,641,764,988 'respond':117 'respons':468,493,681,742,823,829,831 'result':754 'return':134,228,450,461,561,593,852 'review':981 'rube':8,31,46,49,54,62,70,81,108,114,120 'rube.app':85 'rube.app/mcp':84 'run':148 's3key':215,372 'safeti':991 'schema':27,78 'scope':791,962 'search':22,55,71,115 'second':324,669 'self':247 'sensit':314 'separ':270 'sequenc':174,345,431,525,631 'server':90 'set':382,728 'setup':79 'share':476 'show':145 'size':328,406,760 'skill':938,954 'skill-tiktok-automation' 'slight':604 'slug':857 'source-sickn33' 'specif':976 'stat':509,540,580,601,910,914 'state':662 'statist':523,543 'status':144,192,195,281,360,363,613,622,636,639,655,711,719,732,927,931 'step':231,271 'stitch':255,257 'stop':982 'strict':813 'string':310,848 'substitut':972 'success':659,994 'support':400 'take':321 'task':6,855,958 'test':978 'text':235,378 'tiktok':2,5,28,34,43,59,67,125,139,172,176,180,189,198,291,306,343,347,357,392,413,433,518,527,537,546,633,700,708,723,784,810,862,870,876,886,895,903,911,919,928 'tiktok-autom':1 'time':475,609 'titl':218,232,375,473,866,881,890 'title/caption':220 'token':789,798 'tool':23,56,72,77,116,173,344,430,524,630,856 'toolkit':44,66,124 'topic-agent-skills' 'topic-agentic-skills' 'topic-ai-agent-skills' 'topic-ai-agents' 'topic-ai-coding' 'topic-ai-workflows' 'topic-antigravity' 'topic-antigravity-skills' 'topic-claude-code' 'topic-claude-code-skills' 'topic-codex-cli' 'topic-codex-skills' 'treat':967 'two':269 'type':399 'updat':640 'upload':154,165,177,181,183,203,209,230,265,272,277,350,626,697,701,824,860,863,867,871 'upload/processing':194 'upload/publish':11,652 'url':477 'use':161,335,422,481,512,616,738,849,936,952 'user':19,162,336,423,437,464,506,513,529,539,548,553,565,573,578,591,598,617,905,909,913,921 'valid':977 'valu':656 'vari':396,777 'verifi':107 'via':7,30,45,61,699 'video':12,158,167,178,182,184,200,204,210,211,219,233,264,288,327,419,429,435,440,448,467,470,496,586,693,698,702,725,765,861,864,865,869,872,873,875,878,894,897 'video.publish':795 'video.upload':793 'view':18,426,505,576 'want':163,337,424,514,618 'webp':404 'work':105 'workflow':150,152,944","prices":[{"id":"6428aa3c-b0ba-466e-aafb-4b223cd091b7","listingId":"6f415f53-49c6-450b-9f0f-e91723b48daf","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"sickn33","category":"antigravity-awesome-skills","install_from":"skills.sh"},"createdAt":"2026-04-18T21:46:24.601Z"}],"sources":[{"listingId":"6f415f53-49c6-450b-9f0f-e91723b48daf","source":"github","sourceId":"sickn33/antigravity-awesome-skills/tiktok-automation","sourceUrl":"https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/tiktok-automation","isPrimary":false,"firstSeenAt":"2026-04-18T21:46:24.601Z","lastSeenAt":"2026-04-22T06:52:02.253Z"}],"details":{"listingId":"6f415f53-49c6-450b-9f0f-e91723b48daf","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"sickn33","slug":"tiktok-automation","github":{"repo":"sickn33/antigravity-awesome-skills","stars":34460,"topics":["agent-skills","agentic-skills","ai-agent-skills","ai-agents","ai-coding","ai-workflows","antigravity","antigravity-skills","claude-code","claude-code-skills","codex-cli","codex-skills","cursor","cursor-skills","developer-tools","gemini-cli","gemini-skills","kiro","mcp","skill-library"],"license":"mit","html_url":"https://github.com/sickn33/antigravity-awesome-skills","pushed_at":"2026-04-22T06:40:00Z","description":"Installable GitHub library of 1,400+ agentic skills for Claude Code, Cursor, Codex CLI, Gemini CLI, Antigravity, and more. Includes installer CLI, bundles, workflows, and official/community skill collections.","skill_md_sha":"117c1f89fdd30d901da1c1601677c4dbbdcfcc9a","skill_md_path":"skills/tiktok-automation/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/tiktok-automation"},"layout":"multi","source":"github","category":"antigravity-awesome-skills","frontmatter":{"name":"tiktok-automation","description":"Automate TikTok tasks via Rube MCP (Composio): upload/publish videos, post photos, manage content, and view user profiles/stats. Always search tools first for current schemas."},"skills_sh_url":"https://skills.sh/sickn33/antigravity-awesome-skills/tiktok-automation"},"updatedAt":"2026-04-22T06:52:02.253Z"}}