Bot WhatsApp berbasis Go (whatsmeow) buat nelpon + streaming musik/video ke call, dengan multi-sender, antrian, dan fitur prank. Pakai meowcaller (WhatsApp 1:1 calling stack, pure Go, di-fork & dipatch lokal) buat signaling/RTP/codec-nya.
🙏 Tidak berafiliasi dengan API theresav / nexray / spotify — bot ini cuma pakai API publiknya sebagai sumber lagu/video.
✨ Fitur
📞 Panggilan Audio
| Command | Fungsi |
|---|---|
m!playcall <judul> |
Reply chat target + judul, ATAU m!playcall 628xxx, judul. Otomatis pilih sender nganggur |
m!skip [sender] |
Lanjut ke lagu berikutnya di antrian |
m!stopcall [sender] |
Hangup + bersihin antrian |
m!antrian [sender] |
Lihat antrian lagu (publik, gak perlu owner) |
m!prank <sender> |
Reply audio → sisipin ke call yang lagi jalan, lagu lama lanjut abis itu 😹 |
🎬 Panggilan Video (eksperimental)
| Command | Fungsi |
|---|---|
m!playvideo <link YouTube> |
Video call + streaming video, multi-sender (otomatis pilih sender nganggur, gak nabrak .playcall) |
m!skipvideo [sender] |
Lanjut ke video berikutnya di antrian |
m!stopvideo [sender] |
Hangup + bersihin antrian video |
m!antrianvideo |
Lihat semua video call yang jalan + antrian |
Video call render beneran di HP target (bukan cuma ring+audio) — butuh bundling SPS/PPS jadi 1 paket STAP-A biar decoder WhatsApp nerima stream-nya. Detail teknis ada di komentar meowcaller/engine_media.go.
🤖 Manajemen Sender
| Command | Fungsi |
|---|---|
m!addsender 628xxx |
Tambah akun penelpon baru (pairing code, bukan QR) |
m!canceladd <sender> |
Batalin pairing yang belum kelar / salah nomor |
m!listsender |
Status semua sender: online/offline, lagi nelpon siapa |
Bisa daftarin banyak akun buat nelpon/video call. Kalau sender 1 lagi sibuk (audio ATAU video call), permintaan berikutnya otomatis pindah ke sender 2, dst. Kalau semua sibuk, masuk antrian — otomatis jalan begitu ada yang nganggur.
⚙️ Umum & Pengaturan
| Command | Fungsi |
|---|---|
m!allmenu |
Tampilin menu (isinya beda buat owner vs non-owner) |
m!ping |
Cek latency + uptime |
m!self |
Bot cuma respon owner |
m!public |
Command umum (allmenu, ping, antrian) kebuka buat semua orang |
📦 Requirement
- Go 1.25+
- ffmpeg (
sudo apt install -y ffmpeg) — buat encode video & prank audio - apikey theresav (buat
m!playvideo) — daftar gratis di https://api.theresav.biz.id
🚀 Setup
git clone <repo-url>
cd yamzzbot_vid
# 1. Isi apikey theresav (buat .playvideo) di config.go -> TheresavAPIKey
# atau: export THERESAV_APIKEY="apikey_kamu" (env selalu menang)
# 2. Download dependency + build
go mod tidy
go build -o yamzzbot .
# 3. Jalanin — pertama kali keluar QR, scan di:
# WhatsApp -> Perangkat Tertaut -> Tautkan Perangkat
./yamzzbot
Pakai PM2 biar jalan permanen:
pm2 start ./yamzzbot --name yamzzbot
pm2 logs yamzzbot
⚙️ Config (config.go)
OwnerNumber = "628xxxxxxxx" // nomor owner (command owner-only)
Prefix = "m!" // prefix command
PlaycallCooldownSeconds = 30 // anti-spam .playcall per pengirim
TheresavAPIKey = "" // apikey theresav (buat .playvideo)
TheresavResolution = "720" // resolusi SOURCE download (bukan resolusi final call)
📁 Struktur
yamzzbot_vid/
├── main.go # entry point + multi-device loader
├── sender.go # sender pool (multi akun), pairing, cek sibuk (audio+video)
├── commands.go # router command, playcall, antrian, menu
├── features.go # addsender, listsender, prank
├── playvideo.go # video call (multi-sender, antrian, sync audio/video)
├── videoencode.go # ffmpeg: download+encode H.264 + audio
├── spotify.go # sumber lagu (audio)
├── theresav.go # sumber video (apikey di config.go)
├── keepalive.go # heartbeat call (pakai koneksi sender yang benar)
├── config.go # SEMUA setting bot dalam satu file
└── meowcaller/ # library calling WhatsApp (pure Go, fork lokal + patch)
⚠️ Batasan & Catatan Teknis
- Durasi video call max 10 menit (
maxVideoSecondsdivideoencode.go). Video lebih panjang bakal di-loop dari titik itu, bukan diputer full — encode video lama juga makan waktu & RAM lebih banyak, jadi ada batesnya. - LID (privacy ID WhatsApp): kalau reply chat di grup dan orangnya pakai LID (
@lid, bukan nomor asli), bot otomatis coba resolve ke nomor asli. Kalau gagal (belum ke-cache), bakal dikasih pesan error yang jelas — bukan asal nge-dial LID yang gak bisa ditelpon. - Video call cuma 1 aktif per sender — kalau mau lebih banyak video call bareng, tambah sender lain (
.addsender). - Session tersimpan di
yamzzbot.db— JANGAN di-commit / sebarin (itu kredensial login WA). Udah ke-cover di.gitignore. - Butuh
ffmpegdi PATH server.
Dibuat dengan ❤️
Comments