TikTok Uploader

v0.1.0

Upload, schedule, and batch-manage TikTok videos via browser automation. Use when: user wants to upload a video to TikTok, schedule a TikTok post, batch uplo...

4· 1.8k·7 current·7 all-time
byLi Wei@xmuweili

Install

OpenClaw Prompt Flow

Install with OpenClaw

Best for remote or guided setup. Copy the exact prompt, then paste it into OpenClaw for xmuweili/tiktok-uploader.

Previewing Install & Setup.
Prompt PreviewInstall & Setup
Install the skill "TikTok Uploader" (xmuweili/tiktok-uploader) from ClawHub.
Skill page: https://clawhub.ai/xmuweili/tiktok-uploader
Keep the work scoped to this skill only.
After install, inspect the skill metadata and help me finish setup.
Required binaries: python3, playwright
Use only the metadata you can verify from ClawHub; do not invent missing requirements.
Ask before making any broader environment changes.

Command Line

CLI Commands

Use the direct CLI path if you want to install manually and keep every step visible.

OpenClaw CLI

Canonical install target

openclaw skills install xmuweili/tiktok-uploader

ClawHub CLI

Package manager switcher

npx clawhub@latest install tiktok-uploader
Security Scan
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Benign
high confidence
Purpose & Capability
Name and description (upload/schedule/batch TikTok videos via browser automation) match the provided SKILL.md and the included helper script. Requiring python3 and Playwright is appropriate for a Playwright-based uploader. The script is a thin wrapper around the tiktok-uploader library and only exposes operations that map to the described functionality.
Instruction Scope
Instructions ask the user to provide cookies (cookies.txt, sessionid, or cookie list) and to point to local video directories; the included wrapper reads the cookie file path and enumerates video files when asked. This is within scope for an uploader, but it does mean the skill will read any cookie file or directories you give it — those artifacts are sensitive and should only be provided from trusted accounts.
Install Mechanism
No registry install spec in the manifest, but SKILL.md recommends 'pip install tiktok-uploader' and 'playwright install'. Installing from PyPI and running Playwright is expected for this functionality; it is a common but moderate-risk install vector (third‑party PyPI packages should be vetted). No downloads from unknown URLs or archive extraction were found in the skill files.
Credentials
The skill does not request arbitrary environment variables or unrelated credentials. It requires the user to supply session cookies (or sessionid), which are necessary for authenticating the browser session to TikTok; the number and type of credentials requested are proportional to the task.
Persistence & Privilege
always is false and the skill does not request persistent system-wide changes or access to other skills' credentials. It does not attempt to modify other skill configurations or claim elevated platform privileges.
Assessment
This skill appears to do what it says, but it requires you to provide TikTok session cookies (cookies.txt or sessionid). Those are sensitive: only export/provide cookies from accounts you trust (preferably a throwaway or account dedicated to automated uploads). Before installing: (1) verify the tiktok-uploader package source (review the GitHub/PyPI project and its recent changes), (2) install in a virtual environment, (3) avoid pasting sessionid or cookie contents into public places, and (4) consider using a dedicated account or limited-permission setup in case credentials are mishandled. The skill will read any cookie file or directory paths you give it and uses browser automation (Playwright), which is expected for this functionality.

Like a lobster shell, security has layers — review code before you run it.

Runtime requirements

🎬 Clawdis
Binspython3, playwright
latestvk973h32xz0r7fzt6t14tmf2e7582htvz
1.8kdownloads
4stars
1versions
Updated 1mo ago
v0.1.0
MIT-0

TikTok Video Uploader

Upload, schedule, and batch-manage TikTok videos using the tiktok-uploader Python library (Playwright-based browser automation wrapping TikTok's web upload page).

Setup

pip install tiktok-uploader
playwright install

Authentication

The user must provide one of these. Ask if not yet configured:

MethodHow to get it
Cookie file (recommended)Export cookies.txt from browser using the "Get cookies.txt LOCALLY" extension.
Session IDDevTools → Application → Cookies → .tiktok.com → copy sessionid value.
Cookie listList of dicts: [{name, value, domain, path}].

Session cookies expire — if uploads fail with auth errors, the user needs fresh cookies.

Operations

Upload a single video

from tiktok_uploader.upload import TikTokUploader

with TikTokUploader(cookies="cookies.txt", headless=True) as uploader:
    success = uploader.upload_video(
        filename="video.mp4",
        description="Check this out #fyp #viral @friend ",
        visibility="everyone",   # "everyone" | "friends" | "only_you"
        comment=True,
        stitch=True,
        duet=True,
        cover="thumbnail.png",   # optional
    )
    print("Uploaded!" if success else "Failed.")

Schedule a video

from datetime import datetime, timezone

with TikTokUploader(sessionid="abc123...", headless=True) as uploader:
    uploader.upload_video(
        filename="video.mp4",
        description="Dropping soon! #scheduled ",
        schedule=datetime(2026, 3, 10, 14, 30, tzinfo=timezone.utc),
    )

Rules: must be 20 min – 10 days in the future; minutes are rounded to nearest 5.

Batch upload

videos = [
    {"path": "vid1.mp4", "description": "First #batch "},
    {"path": "vid2.mp4", "description": "Second", "schedule": datetime(2026, 3, 10, 15, 0, tzinfo=timezone.utc)},
    {"path": "vid3.mp4", "description": "Third", "visibility": "friends"},
]

with TikTokUploader(cookies="cookies.txt", headless=True) as uploader:
    failed = uploader.upload_videos(videos)
    if failed:
        print(f"{len(failed)} videos failed")

Using the wrapper module

This skill ships a convenience wrapper at scripts/tiktok_manager.py:

from scripts.tiktok_manager import TikTokManager

mgr = TikTokManager(cookies="~/cookies.txt")
# Upload
mgr.upload("video.mp4", description="Hello TikTok! #fyp ")
# Schedule
mgr.upload("video.mp4", description="Scheduled!", schedule="2026-03-10T14:30")
# Batch
mgr.upload_batch([
    {"path": "v1.mp4", "description": "First"},
    {"path": "v2.mp4", "description": "Second", "schedule": "2026-03-10T15:00"},
])
# Scan directory for uploadable videos
videos = TikTokManager.scan_videos("~/Videos/tiktok", recursive=True)

Important Notes

  • Hashtags & @mentions: Include in description, each tag followed by a space. Verify they exist.
  • Description limit: ~150 characters.
  • Rate limiting: TikTok throttles after many uploads. Space them out; wait hours if throttled.
  • Headless mode: Set headless=False to watch the browser for debugging.
  • Proxy: Pass proxy={"host": "...", "port": "..."} — Chrome only.
  • Supported formats: .mp4, .mov, .avi, .wmv, .flv, .webm, .mkv, .m4v, .3gp, .3g2, .gif
  • Fragility: Browser automation, not an official API. TikTok UI changes can break it.

Troubleshooting

ProblemFix
Auth/login errorCookies expired → export fresh cookies.txt
Upload hangsTry headless=False to see what's happening
Throttled/rate limitedWait a few hours between batches
Selector errorstiktok-uploader may need an update (pip install -U tiktok-uploader)

Comments

Loading comments...