Skip to content

Masriyan/CrotDalam

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

9 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

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

Basic Search

# 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

Mode Screenshots Comments Downloads Archive Pivot
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
Loading
Feature Description
Human Delays Log-normal distributed timing (0.5-3.0s)
Bezier Mouse Natural curved mouse movements
Natural Scroll Variable speed with reading pauses
Fingerprint Rotation Random viewport, timezone, WebGL, UA
Proxy Pool Health-checked rotating proxies
Session Cookies Persistent 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

Language Categories Example Terms
๐Ÿ‡ฎ๐Ÿ‡ฉ Indonesian 7 undian berhadiah, transfer dulu, slot gacor
๐Ÿ‡บ๐Ÿ‡ธ English 5 seed phrase, crypto double, verify wallet
๐Ÿ‡ฒ๐Ÿ‡พ Malay 2 hadiah percuma, bayar dahulu
๐Ÿ‡ป๐Ÿ‡ณ Vietnamese 2 trรบng thฦฐแปŸng, ฤ‘แบงu tฦฐ sinh lแปi
๐Ÿ‡น๐Ÿ‡ญ Thai 2 เธ–เธนเธเธฃเธฒเธ‡เธงเธฑเธฅ, เธชเธฅเน‡เธญเธ•เน€เธงเน‡เธšเธ•เธฃเธ‡
๐Ÿ‡ต๐Ÿ‡ญ Filipino 2 libre 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]
Loading

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
Loading

๐Ÿ“ 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

Variable Description Default
CROT_DEBUG Enable debug mode false
CROT_HEADLESS Run headless browser true
CROT_LOCALE Browser locale en-US
CROT_LIMIT Default video limit 60
CROT_ANTIDETECT Enable anti-detection true
CROT_PROXY_LIST Comma-separated proxies โ€”
CROT_GUI_PORT GUI server port 5000

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

About

CROT DALAM is a Python CLI that performs OSINT on TikTok without any API keys. It drives a real Chromium browser (via Playwright) to search public TikTok pages by keyword, extracts video metadata, applies scam/phishing risk heuristics (EN/ID), and exports JSONL + CSV (optionally screenshots for evidence).

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages