Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NerdTikTok Screenshot

NerdTikTok - TikTok Engagement Testing Tool

EDUCATIONAL PURPOSES ONLY !!!

Overview

NerdTikTok is a high-performance TikTok engagement simulation tool built for authorized security researchers and platform analysts. It simulates organic user interactions at scale, allowing professionals to evaluate TikTok's rate limiting, analytics processing, and engagement detection systems under controlled conditions.

This tool is designed exclusively for use on accounts and content you own or have explicit written permission to test. Unauthorized use violates TikTok's Terms of Service and applicable laws.


Features

  • Two engagement vectors: view count manipulation and share count simulation
  • Device fingerprint pool of 50,000 pre-generated mobile, tablet, and desktop profiles
  • Realistic device rotation across 42 Android models, 12 iOS devices, and 13 laptop configurations
  • Multi-region simulation spanning 96 countries and 48 timezones
  • Version code randomization across 9 TikTok build versions
  • Live terminal-based statistics with real-time throughput monitoring
  • Configurable view targets with automatic termination
  • Continuous share mode with graceful Ctrl+C interrupt handling
  • Connection pooling with 10 client pools for optimal resource distribution
  • Custom terminal UI with color-coded status indicators

Engagement Vectors

# Mode Mechanism Use Case
1 View Bot Sends play_delta statistics to TikTok's analytics endpoint with randomized device fingerprints Tests view count processing pipelines and duplicate detection
2 Share Bot Sends share_delta statistics continuously with rotating device profiles Evaluates share count tracking and engagement rate calculations

Technical Architecture

Device Fingerprinting System

Each simulated request carries a complete device profile:

  • Device ID & Install ID: 19-digit randomized identifiers
  • Hardware Profiles: Model, brand, screen resolution, DPI from real device specs
  • OS Fingerprints: Android 10-14, iOS 14.8-17.0, desktop platforms
  • Carrier Data: Region codes, app store channels, WiFi connection type
  • Build Versions: 9 TikTok version codes (247-466) with corresponding manifest versions

Request Structure

POST /aweme/v1/aweme/stats
Host: api19.tiktokv.com
X-SS-REQ-TICKET: <unix_millis>
User-Agent: <device_specific_ua>
Content-Type: application/x-www-form-urlencoded; charset=UTF-8

play_delta=1&item_id=<video_id>&version_code=<build>&aweme_type=0

Connection Management

  • 10 distinct HTTP client pools with configurable connection limits
  • Per-pool transport configuration for MaxIdleConns, MaxIdleConnsPerHost, MaxConnsPerHost
  • 5-second request deadline with automatic timeout tracking
  • Failed/timeout/error request categorization in live statistics

Requirements

  • Go 1.19+ (compiled binary)
  • No external dependencies (uses only standard library packages)
  • Works on Windows, Linux, and macOS
  • Outbound internet access to api19.tiktokv.com
  • ~25MB memory for device pool initialization (50,000 profiles)

Quick Start

# Clone the repository
git clone https://github.com/nerdblud/NerdTikTok.git
cd NerdTikTok

# Build from source
go build -o NerdTikTok

# Run the tool
./NerdTikTok

# Or run directly
go run main.go

Example Session

  ┌──────────────────────────────────────────────────────────┐
  │  ◈  SELECT AN OPTION                                     │
  ├──────────────────────────────────────────────────────────┤
  │   1  TikTok Viewer           (Layer 7 - View Bot)        │
  │   2  TikTok Share            (Layer 7 - Share Bot)       │
  ├──────────────────────────────────────────────────────────┤
  │   q  Quit                                                │
  └──────────────────────────────────────────────────────────┘

  ❯ NerdTikTok > 1

  ┌──────────────────────────────────────────────────────────┐
  │  🔗  Enter TikTok Video URL or ID                        │
  ├──────────────────────────────────────────────────────────┤
  │ ❯ https://www.tiktok.com/@user/video/7234567890123456789 │
  └──────────────────────────────────────────────────────────┘

  ┌──────────────────────────────────────────────────────────┐
  │  👁  Enter Number of Views to Send                       │
  ├──────────────────────────────────────────────────────────┤
  │ ❯ 1000                                                   │
  └──────────────────────────────────────────────────────────┘

  ┌──────────────────────────────────────────────────────────┐
  │  ℹ  Target Video ID: 7234567890123456789                 │
  └──────────────────────────────────────────────────────────┘

  ┌──────────────────────────────────────────────────────────┐
  │  ↻  Sending 1000 views to target...                      │
  ├──────────────────────────────────────────────────────────┤
  │ ⚡ Views: 847/1000 (85%)  Rate: 423/s                     │
  └──────────────────────────────────────────────────────────┘

Configuration Parameters

Video URL or ID

Supports three input formats:

  • Full URL: https://www.tiktok.com/@user/video/7234567890123456789
  • Short URL: https://vm.tiktok.com/abc123/ (auto-resolves via redirect)
  • Raw ID: 7234567890123456789 (19-digit numeric string)

View Count Target

Number of successful view registrations to send. The tool automatically stops when this target is reached. Default threads: 3,000 concurrent workers.

Share Mode

Continuous operation until manually stopped with Ctrl+C. No target limit. Uses the same 3,000 thread pool.


Device Profile Distribution

Android Models (42 devices)

Samsung Galaxy (Z Fold, S21-S23, A53-A54), Google Pixel (6-8, 7a, 8 Pro), Xiaomi (Redmi Note 11-13, POCO F5-F6, POCO X5), OnePlus (9-12), OPPO (Find X5-X6, Reno 8), vivo (X80-X90, Y78), Honor (70, 90, Magic5), Nothing Phone (1-2), Realme (GT 2, 11), Motorola (Edge 40, Razr 40), Sony (Xperia 1 V, 5 V), Nokia (X30, G60)

iOS Devices (12 devices)

iPhone 14 series (5 variants), iPhone 14 Plus/Pro Max, iPad Pro (4 variants), iPad Air

Desktop/Laptop (13 devices)

MacBook Pro 14"/16" (M1 Pro/Max), MacBook Air M1, Dell XPS 15/13, Lenovo ThinkPad X1 Carbon Gen 9/10, Surface Laptop 5, Surface Pro 9, HP Spectre x360, ASUS ZenBook


Geographic Distribution

96 Supported Regions

Covers North America (3), South America (10), Europe (17), Asia (18), Middle East (4), Africa (12), Oceania (11), Central Asia/Caucasus (10), and Pacific Islands (11)

48 Timezones

Distributed across all major UTC offsets from Pacific/Honolulu (UTC-10) to Pacific/Auckland (UTC+12)


Performance Characteristics

Metric Value
Device Pool Size 50,000 pre-generated profiles
Max Concurrent Threads 5,000 (configurable via constant)
Request Timeout 5 seconds
Stats Refresh Rate 250ms
Client Pools 10 with dynamic connection limits
Memory Footprint ~25MB (device pool) + runtime overhead
CPU Usage Scales linearly with thread count

Statistics Tracking

The tool maintains four atomic counters per session:

  • Success (s): HTTP 200 responses with valid Content-Type
  • Failure (f): HTTP non-200 responses or invalid Content-Type
  • Timeout (t): Request deadline exceeded
  • Error (e): Connection failures, DNS errors, protocol errors

Live display shows running rate (requests/second) calculated from elapsed time.


Testing Recommendations

Scenario Recommended Mode Notes
View count integrity View Bot with 1,000-10,000 target Tests duplicate detection and bot filtering
Analytics processing View Bot with staggered targets Evaluate real-time vs. batch processing delays
Rate limiting thresholds Share Bot continuous mode Identify connection/IP-based rate limits
Regional distribution Manual region rotation Test geo-specific analytics accuracy

Safety Guidelines

  1. Test only on accounts and content you own
  2. Start with low targets (100-500) to verify tool behavior
  3. Monitor your testing machine's network utilization
  4. Use in isolated testing environments when possible
  5. Document all testing activities and maintain authorization records
  6. Stop immediately if you receive any platform warnings

Known Limitations

  • Requests target a single API endpoint; does not simulate full user session behavior
  • No proxy support in current build (proxy parameter exists but not exposed in CLI)
  • Device pool uses uniform random distribution, not weighted by real-world market share
  • Does not implement TikTok's newer API authentication mechanisms
  • Success metrics are based on HTTP status only, not actual view registration confirmation
  • Network throughput limited by single-machine bandwidth and file descriptor limits
  • Go runtime's garbage collection may cause periodic latency spikes under extreme load

Technical Implementation Notes

URL Resolution

Short TikTok links (vm.tiktok.com, vt.tiktok.com) are resolved via HTTP GET with redirect following (max 5 redirects). The video ID is extracted from the final URL using regex pattern matching for /video/ paths or v= query parameters.

Thread Safety

All shared state uses sync/atomic operations:

  • Device pool index rotation
  • Client pool round-robin selection
  • Statistics counters

Terminal UI

Custom ANSI escape code implementation with 256-color support. Color palette uses yellow/gold tones (220, 214, 228) for branding. Includes stripANSI() helper for accurate text width calculation in box-drawing routines.


Build & Compilation

# Standard build
go build -ldflags="-s -w" -o NerdTikTok

# Cross-compile for Windows
GOOS=windows GOARCH=amd64 go build -ldflags="-s -w" -o NerdTikTok.exe

# Cross-compile for macOS (Intel)
GOOS=darwin GOARCH=amd64 go build -ldflags="-s -w" -o NerdTikTok-mac

# Cross-compile for macOS (Apple Silicon)
GOOS=darwin GOARCH=arm64 go build -ldflags="-s -w" -o NerdTikTok-m1

# Cross-compile for Linux ARM (Raspberry Pi)
GOOS=linux GOARCH=arm64 go build -ldflags="-s -w" -o NerdTikTok-arm

The -ldflags="-s -w" flags strip debug information and symbol tables, reducing binary size by ~30%.


Legal Notice

This tool is provided for authorized security assessment and educational purposes only. Users must:

  • Obtain explicit written permission before testing any TikTok content or account
  • Comply with TikTok's Terms of Service and all applicable laws and regulations
  • Accept full responsibility for their use of this software
  • Understand that automated interactions violate TikTok's Community Guidelines
  • Acknowledge that misuse may result in account suspension, legal action, or both

The authors assume no liability for misuse, damages, or legal consequences arising from the use of this tool. This software is not affiliated with, endorsed by, or connected to TikTok or ByteDance in any way.


Disclaimer

This tool demonstrates API interaction patterns for educational understanding of client-server architecture. It is not intended to circumvent any security measures, artificially inflate engagement metrics, or interfere with TikTok's services. Use responsibly and ethically.

Remember: With great power comes great responsibility. Stay ethical, stay legendary.

About

NerdTikTok is a high-performance TikTok engagement simulation tool built for authorized security researchers and platform analysts.

Topics

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages