August 19, 2026
Streaming Assistant.
Cerita bikin bot live chat YouTube sendiri supaya penonton bisa dapat perhatian streamer tanpa harus donasi — cukup aktif di chat, kumpulkan point, lalu tukar jadi alert di OBS.
Di live stream, cara paling ampuh untuk dapat perhatian streamer biasanya cuma satu: donasi. Pesanmu muncul di layar, dibacakan, dan streamer merespons. Penonton yang tidak donasi? Komentarnya sering tenggelam di antara ratusan chat lain.
Aku sendiri punya channel YouTube , dan menurutku penonton yang setia hadir dan aktif di chat juga layak dapat panggung. Jadi aku bikin Streaming Assistant: penonton tidak perlu bayar — cukup aktif di live chat, kumpulkan point, lalu tukarkan point itu jadi alert yang muncul di layar stream.
Kenapa Bikin Sendiri?
- Tanpa bayar untuk penonton. Idenya memang alternatif dari alert berbasis donasi.
- Tool yang ada sering berbayar atau butuh akses API penuh ke channel. Aku ingin sesuatu yang bisa membaca chat dari live stream publik mana pun, tanpa API key dan tanpa kuota.
- Self-hosted. Bisa jalan 24/7 di server kecil sendiri.
Rancangan
YouTube live chat ──(masterchat)──▶ Backend Fastify ──WebSocket──▶ Overlay (OBS)
│ SQLite └▶ Dashboard
└──/nb/*──▶ Nightbot $(urlfetch)
- Backend Fastify (Node.js + TypeScript) membaca live chat, menghitung point, dan menyimpan semuanya di SQLite.
- WebSocket mendorong alert dan update ke overlay OBS dan dashboard secara real-time.
- Nightbot tetap dipakai untuk balasan command umum dan moderasi — bot ini sengaja tidak menulis ke chat.
Langkah 1 — Membaca Chat Tanpa Login
Bagian yang paling menentukan. Aku memakai masterchat, yang bisa membaca live chat hanya dari URL atau ID video live, tanpa OAuth dan tanpa kuota YouTube Data API.
Masalahnya, masterchat itu tidak resmi — kalau YouTube mengubah format chat internalnya, dia bisa rusak. Jadi pembacanya aku taruh di belakang interface ChatReader. Kalau suatu hari rusak, backend-nya bisa diganti ke YouTube Data API resmi (dengan key dan kuota) tanpa menulis ulang aplikasi.
Langkah 2 — Ekonomi Point
Aturannya sederhana:
- +1 point per komentar, dengan cooldown supaya tidak bisa di-spam.
- Bonus untuk command tertentu.
- Leaderboard untuk melihat siapa penonton paling aktif.
Lalu intinya: !alert <pesan>. Point penonton dipotong, dan pesannya muncul sebagai alert di OBS — lengkap dengan gambar, suara, dan TTS yang bisa dikustom, mirip alert donasi. Semua aturan (biaya !alert, cooldown, kata kasar, dan lain-lain) bisa diubah dari dashboard.
Langkah 3 — Overlay & Dashboard
- Overlay OBS bergaya neobrutalism dengan antrian alert satu per satu, supaya alert tidak menumpuk saat banyak penonton menukar point bersamaan.
- Overlay tambahan: live chat, leaderboard ringkas, dan ticker alert terbaru.
- Dashboard (React + Vite + Tailwind): monitor chat, leaderboard, pengaturan aturan, dan editor template alert dengan tombol Test Alert.
Karena bot tidak menulis ke chat, command seperti !point dan !rank dijawab lewat Nightbot yang memanggil endpoint /nb/* dengan $(urlfetch).
Langkah 4 — Penonton Bisa Cek Point Sendiri
Fitur opsional: penonton bisa login dengan akun Google. Sistem membaca ID channel YouTube-nya lalu mencocokkannya dengan authorChannelId dari live chat — jadi pencocokannya pasti, bukan tebak-tebakan nama. Setelah login, penonton bisa melihat saldo, riwayat, dan (opsional) menukar reward dari web.
Login admin dan login penonton dipisah total: admin memakai session token, sedangkan identitas penonton selalu diambil dari sesi HttpOnly di server, tidak pernah dari data yang dikirim client.
Deploy 24/7
Di produksi semuanya jalan di satu port — dashboard hasil build disajikan langsung oleh server. Bisa lewat Docker:
echo "ADMIN_PASSWORD=passwordku" > .env
docker compose up -d --build
atau PM2 tanpa Docker. Supaya Nightbot dan penonton dari luar bisa mengakses server lokal, cukup pakai tunnel
seperti cloudflared atau ngrok.
Yang Aku Pelajari
- Desain untuk dependensi yang rapuh. Mengisolasi pembaca chat di balik interface membuat perubahan dari YouTube tidak otomatis jadi bencana.
- Tahu kapan tidak membangun sesuatu. Nightbot sudah bagus untuk balasan dan moderasi; bot ini cukup fokus pada point dan overlay.
- Menjalankan service 24/7 itu banyak detailnya — dari session token yang tetap hidup setelah restart sampai menyajikan SPA dari port yang sama dengan API.
- OAuth Google
punya aturan sendiri. Scope
youtube.readonlytermasuk sensitive, jadi selama consent screen masih mode Testing, hanya test user terdaftar yang bisa login dan aksesnya kedaluwarsa tiap minggu sampai lolos verifikasi Google.
Keterbatasan & Rencana
masterchattidak resmi dan bisa rusak kapan saja jika YouTube mengubah format chat-nya.- Login penonton masih terbatas sampai verifikasi Google selesai.
- Screenshot dan live preview menyusul.
Ringkasan teknis project-nya ada di halaman Streaming Assistant .

Hey! I’m Fanny, the software engineer tending to this digital garden. You can read more about me, or subscribe by email.