Skip to content

About

TikTok comment scraper & intelligence dashboard — sentiment, intent, risk scoring, and trend analysis built with Python, Apify, SQLite, and Streamlit.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

scraper — TikTok Comment Scraper & Trend Analysis

Social listening & comment analytics platform untuk TikTok — scrape, simpan, analisis, dan visualisasikan komentar TikTok dalam satu pipeline terintegrasi.

Python Streamlit Plotly SQLite Apify License Status


📌 Tentang Project

TikTok Comment Intelligence adalah sistem social listening end-to-end yang mengumpulkan komentar video TikTok melalui Apify, menyimpannya ke SQLite, lalu menganalisisnya dengan berbagai teknik NLP ringan (tanpa library berat) dan menampilkannya dalam dashboard interaktif Streamlit.

Project ini dirancang untuk menjawab pertanyaan bisnis/riset seperti:

  • 🗣️ Apa yang sedang dibicarakan audiens? (Top Keywords & Frasa)
  • 📈 Kapan komentar melonjak? (Trend & Spike Detection)
  • 😊 Bagaimana emosi audiens terhadap konten? (Sentiment Analysis)
  • 🎯 Apa niat di balik komentar? (Intent Detection: kritik, pertanyaan, ajakan, spam, dll.)
  • 🚨 Komentar mana yang berisiko dan perlu moderasi? (Risk Scoring)
  • 🕒 Jam berapa audiens paling aktif? (Peak Hours Analysis)

🖼️ Dokument

Dashboard Overview

🔹 NLP & Intelligence (Ringan, tanpa model berat)

  • ✅ Text cleaning: URL, mention, hashtag, simbol, angka
  • ✅ Normalisasi bahasa gaul Indonesia (bgt → banget, amrik → amerika, dll.)
  • ✅ Light stemming Bahasa Indonesia (tanpa library eksternal)
  • ✅ Sentiment analysis berbasis kamus + deteksi emoji (🤲 😡 )
  • ✅ Intent detection: spam, toxic, permintaan, ajakan, pertanyaan, kritik, pujian, diskusi
  • ✅ Risk scoring & flag needs_moderation

🔹 Trend Analysis / Time Series

  • ✅ Volume komentar per jam / hari / minggu / bulan (granularitas otomatis)
  • ✅ Spike detection (z-score) dengan guard anti false-positive
  • ✅ Peak hours audiens
  • ✅ Top keywords & frasa (unigram + bigram)
  • ✅ Trend sentimen per periode

🔹 Dashboard Interaktif (Streamlit + Plotly)

  • ✅ Metrik ringkasan (total komentar, user unik, moderasi, risk score)
  • ✅ Filter per akun TikTok
  • ✅ Grafik interaktif: trend volume, jam aktif, pie sentimen, top keywords
  • ✅ Tabel komentar lengkap + export CSV sekali klik

Quick Start (Windows)

  1. Buat virtual environment dan aktifkan:
python -m venv venv
venv\Scripts\Activate.ps1
  1. Install dependensi:
pip install -r requirements.txt
pip install -r requirements-dashboard.txt  # jika ingin dashboard
  1. Jalankan scraper (contoh):
python main.py
  1. Jalankan dashboard (opsional):
streamlit run dashboard.py

🗂️ Struktur Repository

tiktok-comment-intelligence/
├── data/                      # Database SQLite (auto-generated)
├── output/                    # Hasil export analisis (CSV/Excel)
├── src/
│   ├── __init__.py
│   ├── config.py              # Konfigurasi, env, validasi URL
│   ├── utils.py               # Utility helpers
│   ├── scraper.py             # Client Apify TikTok scraper
│   ├── database.py            # Layer SQLite + migrasi skema
│   ├── preprocessing.py       # Cleaning, slang, stemming
│   ├── insights.py            # Sentiment, intent, risk score
│   ├── trend.py               # Time series, spike, keywords
│   └── report.py              # Export & ringkasan CLI
├── main.py                    # Pipeline CLI (python main.py --scrape)
├── dashboard.py               # Aplikasi Streamlit
├── refresh_analysis.py        # Hitung ulang NLP tanpa scrape ulang
├── requirements.txt           # Dependensi inti
├── requirements-dashboard.txt # Dependensi dashboard (streamlit, plotly)
├── .env.example               # Template environment variables
├── .gitignore
└── README.md


## Konfigurasi

- `src/config.py` berisi konfigurasi aplikasi (database path, API keys, setelan scraping).
- Beberapa parameter bisa dikendalikan lewat environment variables atau langsung di `config.py`.

Contoh variabel environment yang mungkin perlu di-set:

- `APIFY_TOKEN` — token untuk Apify (jika digunakan)
- `DATABASE_URL` — path SQLite kustom (default: `data/database.db`)

## 🚀 Instalasi & Setup

### 1. Prasyarat
- Python **3.11+** (disarankan 3.11 untuk stabilitas maksimal)
- Akun & API Token [Apify](https://console.apify.com/account#/integrations)

### 2. Clone & Install
```bash
git clone https://github.com/salimz-arch/tiktok-comment-intelligence.git
cd tiktok-comment-intelligence

python -m venv venv

# Windows
venv\Scripts\Activate.ps1
# Linux / macOS
source venv/bin/activate

pip install --upgrade pip
pip install -r requirements.txt
pip install -r requirements-dashboard.txt

3. Konfigurasi Environment

copy .env.example .env     # Windows
cp .env.example .env       # Linux / macOS

Isi file .env:

APIFY_TOKEN=apify_api_xxxxxxxxxxxxxxxxxxxxxxxx
ACTOR_ID=BDec00yAmCm1QbMEI
TIMEZONE=Asia/Jakarta

📖 Cara Penggunaan

🖥️ Mode Dashboard (Rekomendasi)

streamlit run dashboard.py
  1. Paste satu atau beberapa URL video TikTok di sidebar.
  2. Klik 🚀 Mulai Scrape & Analisis.
  3. Dashboard otomatis memperbarui seluruh grafik & insight.

⌨️ Mode CLI

# Scraping + analisis penuh
python main.py --scrape

# Analisis ulang dari database (tanpa scraping)
python main.py

# Terapkan ulang engine NLP ke data lama
python refresh_analysis.py

Hasil export tersimpan otomatis di folder output/.


📄 Lisensi

LICENSE


👤 Author

[salim-arch]

Dibuat dengan untuk komunitas data Indonesia

About

TikTok comment scraper & intelligence dashboard — sentiment, intent, risk scoring, and trend analysis built with Python, Apify, SQLite, and Streamlit.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages