Output:

February 15, 2026 ยท View on GitHub

CROT DALAM Banner

๐Ÿ” CROT DALAM v3.0

Collection & Reconnaissance Of TikTok โ€” Discovery, Analysis, Logging, And Monitoring

Features Quick Start Anti-Detection License

Enterprise-grade TikTok OSINT platform with CAPTCHA bypass, anti-detection,
real-time monitoring, and tactical command center GUI. No API keys required.


๐Ÿ“‹ Table of Contents


โœจ Features

๐ŸŽฏ Core Capabilities

  • No API Keys Required โ€” Scrapes public TikTok pages
  • Keyword-Based Search โ€” Multiple keywords per scan
  • Video Metadata Extraction โ€” Full metrics & engagement
  • User Profile Analysis โ€” Deep profile reconnaissance
  • Comment Collection โ€” With sentiment analysis

๐Ÿ›ก๏ธ Protection & Stealth

  • Human-Like Behavior โ€” Bezier mouse movements
  • Fingerprint Rotation โ€” Viewport, timezone, WebGL
  • Proxy Pool Support โ€” Rotating proxy management
  • Session Persistence โ€” Cookie reuse across runs
  • Adaptive Rate Limiting โ€” Smart request throttling

๐Ÿ“Š Analysis & Detection

  • Multi-Language Risk Scoring โ€” 6 languages supported
  • Entity Extraction โ€” Phones, wallets, emails, URLs
  • Sentiment Analysis โ€” Comment mood detection
  • Network Mapping โ€” Hashtag & mention graphs
  • Custom Risk Terms โ€” Add your own indicators

๐Ÿ“ฆ Output & Evidence

  • Modern Web GUI โ€” Real-time dashboard
  • Multiple Export Formats โ€” JSONL, CSV, HTML
  • Screenshot Capture โ€” Full-page evidence
  • Video Downloads โ€” Via yt-dlp integration
  • Web Archive โ€” Archive.today snapshots

๐Ÿš€ Quick Start

Prerequisites

  • Python 3.10+
  • Chromium (installed via Playwright)

Installation

# Clone the repository
git clone https://github.com/Masriyan/CrotDalam.git
cd CrotDalam

# Install dependencies
pip install -r requirements.txt

# Install Playwright browsers
playwright install chromium

# (Optional) Install yt-dlp for video downloads
pip install yt-dlp

First Run

# CLI Mode - Quick search
python -m crot_dalam.cli search "undian berhadiah" --mode quick --limit 10

# GUI Mode - Launch dashboard
python -m crot_dalam.cli gui

๐Ÿ–ฅ๏ธ GUI Dashboard

The modern web GUI provides a complete investigation management interface.

Launch the Dashboard

python -m crot_dalam.cli gui --port 5000

Then open http://localhost:5000 in your browser.

Dashboard Features

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  ๐Ÿ” CROT DALAM Dashboard                                        โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚                                                                 โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”   โ”‚
โ”‚  โ”‚  ๐Ÿš€ New Investigation                                    โ”‚   โ”‚
โ”‚  โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”โ”‚   โ”‚
โ”‚  โ”‚  โ”‚ Keywords: undian berhadiah, giveaway              โ–ผ โ”‚โ”‚   โ”‚
โ”‚  โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜โ”‚   โ”‚
โ”‚  โ”‚  Mode: [Deep โ–ผ]   Limit: [60]   Locale: [en-US โ–ผ]       โ”‚   โ”‚
โ”‚  โ”‚  โ˜‘ Anti-Detection  โ˜ Screenshots  โ˜ Downloads          โ”‚   โ”‚
โ”‚  โ”‚                                    [๐Ÿ” Start]           โ”‚   โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜   โ”‚
โ”‚                                                                 โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”          โ”‚
โ”‚  โ”‚    45    โ”‚ โ”‚    12    โ”‚ โ”‚     8    โ”‚ โ”‚   2m 35s โ”‚          โ”‚
โ”‚  โ”‚  Videos  โ”‚ โ”‚ HighRisk โ”‚ โ”‚ MedRisk  โ”‚ โ”‚ Duration โ”‚          โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜          โ”‚
โ”‚                                                                 โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”   โ”‚
โ”‚  โ”‚ Video ID  โ”‚ Description       โ”‚ Risk โ”‚ Engagement โ”‚ ...โ”‚   โ”‚
โ”‚  โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”ค   โ”‚
โ”‚  โ”‚ 73829...  โ”‚ Transfer dulu...  โ”‚  8   โ”‚ โค๏ธ 12K     โ”‚ ...โ”‚   โ”‚
โ”‚  โ”‚ 82910...  โ”‚ Hadiah gratis...  โ”‚  5   โ”‚ โค๏ธ 8.2K    โ”‚ ...โ”‚   โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜   โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

Real-Time Updates

The dashboard uses WebSocket for live progress updates:

  • Progress bar with percentage
  • Live status messages
  • Instant results on completion

โšก CLI Usage

# Single keyword search
python -m crot_dalam.cli search "crypto giveaway" --limit 50

# Multiple keywords
python -m crot_dalam.cli search "undian" "hadiah gratis" --limit 30 --locale id-ID

# Deep investigation mode
python -m crot_dalam.cli search "transfer dulu" --mode deep --limit 100

Investigation Modes

ModeScreenshotsCommentsDownloadsArchivePivot
quickโŒโŒโŒโŒโŒ
moderateโœ…5โŒโŒโŒ
deepโœ…15โœ…โœ…3
deeperโœ…30โœ…โœ…5

Full Options

python -m crot_dalam.cli search "keyword" \
  --mode deep \
  --limit 100 \
  --locale id-ID \
  --headless \
  --screenshot \
  --download \
  --archive \
  --comments 20 \
  --pivot-hashtags 5 \
  --antidetect \
  --aggressive \
  --proxy "http://user:pass@host:port" \
  --out "out/investigation_001"

Risk Analysis (Standalone)

# Analyze text for risk indicators
python -m crot_dalam.cli analyze "Transfer dulu untuk klaim hadiah undian berhadiah"

# Output:
# Risk Score: 8
# Risk Level: HIGH
# Matches:
#   โ€ข transfer dulu (financial_scam, indonesian)
#   โ€ข undian berhadiah (financial_scam, indonesian)
#   โ€ข hadiah (financial_scam, indonesian)

๐Ÿ›ก๏ธ Anti-Detection

CROT DALAM implements comprehensive anti-detection to reduce TikTok bot detection.

Features

flowchart LR
    subgraph AntiDetect["๐Ÿ›ก๏ธ Anti-Detection System"]
        A[Human Delays] --> B[Mouse Curves]
        B --> C[Fingerprint Rotation]
        C --> D[Proxy Rotation]
        D --> E[Session Persistence]
    end

    User --> AntiDetect --> TikTok
FeatureDescription
Human DelaysLog-normal distributed timing (0.5-3.0s)
Bezier MouseNatural curved mouse movements
Natural ScrollVariable speed with reading pauses
Fingerprint RotationRandom viewport, timezone, WebGL, UA
Proxy PoolHealth-checked rotating proxies
Session CookiesPersistent login state

Configuration

# Standard anti-detection
python -m crot_dalam.cli search "keyword" --antidetect

# Aggressive mode (slower but stealthier)
python -m crot_dalam.cli search "keyword" --antidetect --aggressive

โš ๏ธ Note: Anti-detection reduces but cannot guarantee 100% evasion. TikTok may still detect automated access.


๐Ÿ”Ž Risk Analysis

Supported Languages

LanguageCategoriesExample Terms
๐Ÿ‡ฎ๐Ÿ‡ฉ Indonesian7undian berhadiah, transfer dulu, slot gacor
๐Ÿ‡บ๐Ÿ‡ธ English5seed phrase, crypto double, verify wallet
๐Ÿ‡ฒ๐Ÿ‡พ Malay2hadiah percuma, bayar dahulu
๐Ÿ‡ป๐Ÿ‡ณ Vietnamese2trรบng thฦฐแปŸng, ฤ‘แบงu tฦฐ sinh lแปi
๐Ÿ‡น๐Ÿ‡ญ Thai2เธ–เธนเธเธฃเธฒเธ‡เธงเธฑเธฅ, เธชเธฅเน‡เธญเธ•เน€เธงเน‡เธšเธ•เธฃเธ‡
๐Ÿ‡ต๐Ÿ‡ญ Filipino2libre Regalo, bayad muna

Risk Categories

  • Financial Scam โ€” Fake giveaways, lottery scams
  • Investment Fraud โ€” Crypto scams, fake ROI promises
  • Gambling โ€” Illegal online gambling promotion
  • Loan Scam โ€” Predatory lending, fake loans
  • Job Scam โ€” Work-from-home fraud
  • Contact Urgency โ€” Pressure to contact "admin"

Entity Extraction

The tool automatically extracts:

  • ๐Ÿ“ฑ Phone numbers (Indonesian, international)
  • ๐Ÿ’ณ Crypto wallets (BTC, ETH, TRX)
  • ๐Ÿ“ง Email addresses
  • ๐Ÿ’ฌ Telegram/WhatsApp links
  • ๐Ÿ”— Shortened URLs (bit.ly, etc.)

๐Ÿ“Š Architecture

Package Structure

CrotDalam/
โ”œโ”€โ”€ crot_dalam/
โ”‚   โ”œโ”€โ”€ __init__.py          # Package init, version
โ”‚   โ”œโ”€โ”€ cli.py               # Typer CLI commands
โ”‚   โ”œโ”€โ”€ core/
โ”‚   โ”‚   โ”œโ”€โ”€ antidetect.py    # Anti-detection system
โ”‚   โ”‚   โ”œโ”€โ”€ scraper.py       # Playwright scraper
โ”‚   โ”‚   โ”œโ”€โ”€ risk_analyzer.py # Multi-language risk detection
โ”‚   โ”‚   โ””โ”€โ”€ exporters.py     # JSONL/CSV/HTML export
โ”‚   โ”œโ”€โ”€ gui/
โ”‚   โ”‚   โ”œโ”€โ”€ app.py           # Flask + WebSocket server
โ”‚   โ”‚   โ””โ”€โ”€ static/          # Frontend assets
โ”‚   โ”œโ”€โ”€ models/
โ”‚   โ”‚   โ””โ”€โ”€ data.py          # Dataclasses & schemas
โ”‚   โ””โ”€โ”€ utils/
โ”‚       โ”œโ”€โ”€ config.py        # Configuration management
โ”‚       โ””โ”€โ”€ helpers.py       # Utility functions
โ”œโ”€โ”€ assets/
โ”‚   โ””โ”€โ”€ banner.png           # Project banner
โ”œโ”€โ”€ requirements.txt
โ”œโ”€โ”€ README.md
โ”œโ”€โ”€ CONTRIBUTING.md
โ”œโ”€โ”€ SECURITY.md
โ”œโ”€โ”€ CHANGELOG.md
โ””โ”€โ”€ LICENSE

๐Ÿง  How It Works

High-Level Flow

flowchart TD
    A[๐ŸŽฏ Start Investigation] --> B{Mode Selection}
    B --> |CLI| C[Parse Arguments]
    B --> |GUI| D[Flask Dashboard]

    C --> E[Configure Scan]
    D --> E

    E --> F[๐Ÿš€ Launch Browser]
    F --> G[Apply Anti-Detection]
    G --> H[Accept Cookies]

    H --> I[Search Keywords]
    I --> J[Scroll & Collect URLs]

    J --> K{For Each Video}
    K --> L[Extract Metadata]
    L --> M[Analyze Risk]
    M --> N[Collect Comments]

    N --> O{Evidence Options}
    O --> |Screenshot| P[๐Ÿ“ธ Capture]
    O --> |Download| Q[๐Ÿ“ฅ yt-dlp]
    O --> |Archive| R[๐Ÿ—„๏ธ Archive.today]

    P --> S[Next Video]
    Q --> S
    R --> S
    S --> K

    K --> |Done| T[Export Results]
    T --> U[๐Ÿ“„ JSONL]
    T --> V[๐Ÿ“Š CSV]
    T --> W[๐ŸŒ HTML Report]

    W --> X[โœ… Complete]

Sequence Diagram

sequenceDiagram
    autonumber
    participant U as User
    participant CLI as CLI/GUI
    participant AD as AntiDetect
    participant PW as Playwright
    participant TT as TikTok

    U->>CLI: search "keyword" --mode deep
    CLI->>AD: Initialize anti-detection
    AD->>AD: Generate fingerprint
    CLI->>PW: Launch browser

    loop For each keyword
        PW->>TT: GET /search?q=...
        AD->>PW: Human delay
        AD->>PW: Natural scroll
        PW-->>CLI: Video URLs
    end

    loop For each video
        PW->>TT: GET /video/...
        AD->>PW: Bezier mouse move
        PW-->>CLI: Metadata
        CLI->>CLI: Risk analysis
        opt Evidence
            PW->>PW: Screenshot
            CLI->>CLI: yt-dlp download
        end
    end

    CLI-->>U: Export JSONL, CSV, HTML

๐Ÿ“ Output Files

Directory Structure

out/
โ”œโ”€โ”€ crot_dalam.jsonl        # Structured JSON Lines
โ”œโ”€โ”€ crot_dalam.csv          # Flat table for Excel/Sheets
โ”œโ”€โ”€ crot_dalam.html         # Styled investigation report
โ”œโ”€โ”€ screenshots/            # Full-page PNGs
โ”‚   โ”œโ”€โ”€ 7382918273.png
โ”‚   โ””โ”€โ”€ 8291038271.png
โ””โ”€โ”€ videos/                 # Downloaded videos
    โ”œโ”€โ”€ 7382918273.mp4
    โ””โ”€โ”€ 8291038271.mp4

HTML Report Preview

The HTML report features:

  • ๐ŸŒ™ Dark theme with glassmorphism
  • ๐Ÿ“Š Statistics cards (total, high/medium/low risk)
  • ๐Ÿ“‹ Sortable results table
  • ๐Ÿ”— Clickable video links
  • ๐Ÿท๏ธ Risk level badges
  • ๐Ÿ“ฑ Responsive design

โš™๏ธ Configuration

Environment Variables

VariableDescriptionDefault
CROT_DEBUGEnable debug modefalse
CROT_HEADLESSRun headless browsertrue
CROT_LOCALEBrowser localeen-US
CROT_LIMITDefault video limit60
CROT_ANTIDETECTEnable anti-detectiontrue
CROT_PROXY_LISTComma-separated proxiesโ€”
CROT_GUI_PORTGUI server port5000

Config File

Create ~/.config/crot_dalam/config.json:

{
  "headless": true,
  "locale": "id-ID",
  "default_limit": 100,
  "antidetect_enabled": true,
  "antidetect_aggressive": false,
  "proxy_list": ["http://proxy1:8080", "http://proxy2:8080"]
}

๐Ÿค Contributing

We welcome contributions! See CONTRIBUTING.md for guidelines.

Quick Contribute

# Fork & clone
git clone https://github.com/Masriyan/CrotDalam.git
cd CrotDalam

# Create branch
git checkout -b feature/my-feature

# Make changes, test, commit
git commit -m "Add my feature"

# Push & create PR
git push origin feature/my-feature

Areas for Contribution

  • ๐ŸŒ Additional language risk terms
  • ๐Ÿ”ง Improved TikTok selectors
  • ๐Ÿ“Š New export formats
  • ๐Ÿงช Test coverage
  • ๐Ÿ“š Documentation

๐Ÿ” Security & Ethics

See SECURITY.md for full policy.

โš ๏ธ IMPORTANT: This tool is for legitimate OSINT research only. Use responsibly and respect:

  • TikTok Terms of Service
  • Local laws and regulations
  • Privacy of individuals

๐Ÿ“„ License

MIT License โ€” see LICENSE for details.


Made with โค๏ธ by sudo3rs
For the security research community