Li Wei

TikTok Uploader

AI Agentv0.1.0
By Li WeiUpdated 2026-05-11tiktok-uploader@clawhub_xmuweili/tiktok-uploader
Task Automation#Browser Automation#Batch#Schedule

According to AlphaMoat, as of 2026-09, TikTok Uploader has 3,277 downloads and 6 stars — ranked #3,466 of 5,078 AI skills overall, and #712 of 969 in AI Agent.

Installs
101
Downloads
3.3K
Stars
6
Overall Rank
#3,466
Top 69% overall · Top 74% in AI Agent
PlatformInstallsDownloadsStarsComments
ClawHub ↗1013.1K5-
SkillHub ↗1003.3K6—

Platforms count differently and update at different times.

What this skill does

The workflow supports authentication with a cookie file, session ID, or cookie list, and options for captions, visibility, and scheduling. Cookies and session IDs can grant account access and should be protected like passwords. Review videos, captions, visibility, and times before batch publishing. This relies on TikTok’s web interface rather than an official API; interface changes or repeated uploads can cause failures or throttling.

Profile published 2026-10-29

What you can do with it

  • Upload one video through browser automation.
  • Plan publishing times or submit a batch of videos.
  • Scan a directory and identify video files for upload.

When to use it

  • When uploading or scheduling a TikTok post through the web interface.
  • When organizing multiple videos with their captions, visibility, or publishing times.
  • When handling cookie/session credentials, batch publishing, throttling, or selector errors, when credentials and publishing settings need careful review.

Example prompts

Generated from the skill’s documentation as examples; not results of actual runs.

Summarize the uploader’s upload, scheduling, and batch capabilities, and explain the credential risk.
Draft a pre-publication checklist for a video batch, covering files, captions, visibility, timing, and throttling risks.

Monthly Trend

Downloads3.3K
1.4K2.4K3.4K2026-03 · Downloads 1.6K2026-05 · Downloads 2.5K2026-06 · Downloads 2.6K2026-07 · Downloads 2.9K2026-08 · Downloads 3.0K2026-09 · Downloads 3.3K26-0326-09
Stars6
4562026-03 · Stars 42026-05 · Stars 52026-06 · Stars 52026-07 · Stars 62026-08 · Stars 62026-09 · Stars 626-0326-09

The counting method changed in 2026-09: skills with the same name are now counted separately by author, and the full catalog is covered. Dashed lines show months before the change; they are not compared with later months, and no growth is computed across the change.

MonthDownloadsMoMStars
2026-093.3K—6
2026-083.0K+4.2%6
2026-072.9K+9.8%6
2026-062.6K+7.3%5
2026-052.5K—5
2026-031.6K—4

SKILL.md (original)

The author’s original file, shown as plain text without edits or review by AlphaMoat. Links are not clickable; check commands before running them. Fetched 2026-10-23.

4.4 KB · ClawHub v0.1.0
---
name: tiktok-uploader
description: "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 upload multiple TikTok videos, or scan a directory for uploadable videos. NOT for: TikTok analytics, downloading videos, or managing comments/followers."
homepage: https://github.com/wkaisertexas/tiktok-uploader
user-invocable: true
metadata: {"openclaw":{"emoji":"🎬","requires":{"bins":["python3","playwright"],"env":[]},"install":[{"id":"pip","kind":"pip","package":"tiktok-uploader","bins":["tiktok-uploader"],"label":"Install tiktok-uploader (pip)"},{"id":"playwright","kind":"pip","package":"playwright","bins":["playwright"],"label":"Install Playwright"}]}}
---

# TikTok Video Uploader
Show all (121 lines)
Upload, schedule, and batch-manage TikTok videos using the `tiktok-uploader` Python library (Playwright-based browser automation wrapping TikTok's web upload page).

## Setup

```bash
pip install tiktok-uploader
playwright install
```

## Authentication

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

| Method | How to get it |
|---|---|
| **Cookie file** (recommended) | Export `cookies.txt` from browser using the "Get cookies.txt LOCALLY" extension. |
| **Session ID** | DevTools → Application → Cookies → `.tiktok.com` → copy `sessionid` value. |
| **Cookie list** | List 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

```python
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

```python
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

```python
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`:

```python
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

| Problem | Fix |
|---|---|
| Auth/login error | Cookies expired → export fresh cookies.txt |
| Upload hangs | Try `headless=False` to see what's happening |
| Throttled/rate limited | Wait a few hours between batches |
| Selector errors | tiktok-uploader may need an update (`pip install -U tiktok-uploader`) |

Popular in AI Agent

Data month: 2026-09 · Downloads, stars and installs are aggregated monthly from public skill registries (ClawHub, SkillHub). See methodology.