Skip to content

feat: Add TikTok platform integration (#5) - #6

Open
adi805 wants to merge 2 commits into
adolfousier:mainfrom
adi805:main
Open

feat: Add TikTok platform integration (#5)#6
adi805 wants to merge 2 commits into
adolfousier:mainfrom
adi805:main

Conversation

@adi805

@adi805 adi805 commented Jul 23, 2026

Copy link
Copy Markdown

Summary

Adds TikTok platform integration to SocialCrabs, following the same patterns as existing Instagram, Twitter/X, and LinkedIn handlers.

What Changed

New files:

  • src/platforms/tiktok.ts — Main TikTokHandler class extending BasePlatformHandler
  • src/platforms/tiktok/login.ts — TikTokLoginHandler with email & QR code login
  • src/platforms/tiktok/post.ts — TikTokPostHandler for video & carousel posts
  • src/platforms/tiktok/engagement.ts — TikTokEngagementHandler for like/comment/follow

Modified files:

  • src/types/index.ts — Added tiktok platform + TikTokPostPayload, TikTokEngagementPayload, TikTokProfile types
  • src/platforms/index.ts — Added TikTokHandler export
  • src/platforms/base.tslogin() now accepts optional username/password args
  • src/index.ts — TikTokHandler initialization, platform routing for all actions
  • src/utils/config.ts — Added TikTok rate limit env vars
  • src/utils/rate-limiter.ts — Added TikTok rate limit defaults

Features

Action Rate Limit
Like 200/hr
Comment 50/hr
Follow 30/hr
DM 10/hr
Post 5/hr
  • Login methods: Email/password + QR code fallback
  • Post types: Video upload, image carousel (up to 35 images)
  • Engagement: Like, comment, follow, unfollow, profile scraping
  • Anti-bot: Human-like typing delays, random pauses, cookie consent handling
  • Real selectors: Uses actual TikTok data-e2e attributes

Breaking Change

BasePlatformHandler.login() signature updated to accept optional credentials:

abstract login(username?: string, password?: string): Promise<boolean>;

Existing implementations (Instagram, Twitter, LinkedIn) remain backward-compatible since the new args are optional.

Related

Closes #5

- TikTokHandler with login, post, carousel, engagement
- Follows existing platform patterns (instagram, twitter, linkedin)
- Supports video posts, image carousels, like/comment/follow
- Anti-bot detection built-in (human typing, delays)
- Cookie consent, QR and email login support
- Rate limits: 200 likes, 50 comments, 30 follows, 10 DMs, 5 posts/hr

BREAKING: BasePlatformHandler.login() now accepts optional username/password args
@adi805
adi805 marked this pull request as ready for review July 23, 2026 15:20
- assign.yml was calling issues/ endpoint for PR events, causing 404
- PRs need pulls/ endpoint, issues need issues/ endpoint
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat: Add TikTok Platform Integration

1 participant