Solusi Lengkap Troubleshooting Aplikasi Python: Atasi Semua Error!

Troubleshooting Guide
🔍 Langkah Debugging
1. Cek Konfigurasi
python3 check_config.py
Script ini akan mengecek:
- ✅ YouTube API Key sudah diset atau belum
- ✅ WhatsApp Gateway URL
- ✅ Admin Phone
- ✅ Database ada atau tidak
- ✅ Template files lengkap
- ✅ Dependencies terinstall
2. Test Koneksi API
python3 test_api.py
Script ini akan test:
- ✅ WhatsApp Gateway connection
- ✅ YouTube API Key valid
- ✅ Flask server running
3. Cek Log Flask
Saat menjalankan python3 app.py
, perhatikan output:
================================================== YouTube API Dashboard - Starting... ================================================== YouTube API Key: ✅ Set WhatsApp Gateway: http://10.122.25.172:5000 Admin Phone: 6281241314446 Database: ✅ Ready ==================================================
Jika ada ❌, perbaiki konfigurasi di app.py
.
❌ Masalah Umum
Masalah 1: Menu tidak muncul / Fitur YouTube tidak bisa dipakai
Gejala:
- Dashboard tampil tapi menu kosong
- Klik fitur search/trending tidak ada reaksi
- Console browser menunjukkan error JavaScript
Penyebab:
- YouTube API Key belum diset atau salah
- JavaScript error di browser
- Session invalid
Solusi:
A. Cek YouTube API Key
# Edit app.py line ~18 YOUTUBE_API_KEY = "YOUR_KEY_HERE" # Ganti dengan API key asli
Test API key:
python3 test_api.py
B. Cek Browser Console
- Buka browser (Chrome/Firefox)
- Tekan F12 (Developer Tools)
- Klik tab "Console"
- Lihat error yang muncul
Common errors:
❌ Unauthorized (401) → API Key salah/expired ❌ Forbidden (403) → YouTube API belum enabled ❌ Network Error → Server mati atau CORS issue
C. Clear Session & Re-login
# Stop Flask server (Ctrl+C) # Hapus database rm youtube_app.db # Restart python3 app.py # Login ulang
Masalah 2: OTP tidak terkirim
Gejala:
- Klik "Kirim Kode OTP" tapi tidak ada WA masuk
- Error "Gagal mengirim OTP"
Penyebab:
- WhatsApp Gateway mati/tidak bisa diakses
- Nomor WA format salah
Solusi:
A. Test WhatsApp Gateway
curl http://10.122.25.172:5000/api/status
Harus return JSON:
{ "bot_connected": true, "status": "running" }
B. Cek Format Nomor
✅ Benar:
- 81234567890
- 081234567890
- +6281234567890
❌ Salah:
- 0812-3456-7890 (ada strip)
- +62 812 3456 7890 (ada spasi)
Masalah 3: Database Error
Gejala:
sqlite3.OperationalError: table users already exists
Solusi:
# Backup database (opsional) cp youtube_app.db youtube_app.db.backup # Hapus database rm youtube_app.db # Restart app (akan buat database baru) python3 app.py
Masalah 4: Admin Panel tidak bisa diakses
Gejala:
- Klik "Admin Panel" → Error 403 Forbidden
- Atau redirect ke dashboard
Penyebab:
- User bukan admin
- Session invalid
Solusi:
A. Cek role di database
sqlite3 youtube_app.db SELECT phone, name, role FROM users;
B. Ubah role jadi admin
UPDATE users SET role='admin' WHERE phone='6281234567890';
C. Atau login dengan nomor admin
Login dengan: +6281241314446 (default admin)
Masalah 5: Session expired terus
Gejala:
- Login berhasil tapi langsung logout
- Harus login berulang kali
Penyebab:
- Secret key berubah setiap restart (karena random)
- Browser clear cookies
Solusi: Edit app.py
line ~14, ganti dengan fixed key:
# Dari ini: app.secret_key = secrets.token_hex(32) # Jadi ini: app.secret_key = "your-fixed-secret-key-here-minimal-32-characters-long"
🔧 Debug Mode
Enable Verbose Logging
Edit app.py
, tambahkan di awal file:
import logging logging.basicConfig(level=logging.DEBUG)
Check Network Requests
Di browser console:
// Tab "Network" // Filter: XHR // Lihat semua request/response
Manual Test API Endpoints
# Test search (harus login dulu) curl -X POST http://localhost:5000/api/search \ -H "Content-Type: application/json" \ -d '{"query":"python tutorial","max_results":5}' \ --cookie "session=YOUR_SESSION_COOKIE" # Test trending curl http://localhost:5000/api/trending?region=ID \ --cookie "session=YOUR_SESSION_COOKIE"
📞 Getting Help
Jika masih ada masalah:
- Jalankan diagnostic tools:
python3 check_config.py python3 test_api.py
- Screenshot error:
- Browser console (F12)
- Terminal output Flask
- Network tab di browser
- Info yang perlu disertakan:
- OS & Python version
- Output dari check_config.py
- Error message lengkap
- Screenshot jika ada
✅ Checklist Sebelum Deploy
- [ ] YouTube API Key sudah diset dan valid
- [ ] WhatsApp Gateway running dan bisa diakses
- [ ] Database sudah ada dan ada admin user
- [ ] Template files lengkap (login.html, index.html, admin.html)
- [ ] Dependencies terinstall semua
- [ ] Test login berhasil
- [ ] Test OTP WhatsApp terkirim
- [ ] Test fitur YouTube API (search, trending, dll)
- [ ] Test Admin Panel bisa diakses
- [ ] Browser console tidak ada error JavaScript
Jika semua ✅, aplikasi siap digunakan!