A modern, lightweight, and robust local streaming scheduler that automatically broadcasts your local video files to YouTube Live on exact schedules, without needing OBS Studio open.
Fitur Utama • Cara Instalasi • Panduan Linux & VPS • Panduan Penggunaan • Mode Durasi • Notifikasi Telegram • System Tray • Lisensi
StreamYT Pro adalah aplikasi server berbasis FastAPI dan FFmpeg yang dirancang khusus untuk kreator konten, podcaster, dan pengelola channel YouTube yang ingin menyiarkan video rekaman ke YouTube Live secara otomatis dan terjadwal 24/7 langsung dari PC Windows atau Server VPS Linux.
Tidak seperti OBS Studio yang berat dan memerlukan konfigurasi manual setiap sesi, StreamYT Pro:
- Ringan & Senyap: Berjalan sangat efisien di latar belakang (background service / system tray).
- Multi-Platform: Mendukung Windows (dengan System Tray & shortcut) dan Linux / VPS Headless (dengan
run.sh/systemd). - Jadwal Presisi: Memiliki penjadwal otomatis berbasis waktu lokal dengan proteksi bentrokan (anti-collision).
- Stream Key Fleksibel: Mendukung Stream Key unik yang berbeda untuk setiap video/sesi.
- Telegram Alert: Mengirimkan notifikasi langsung ke akun Telegram Anda saat siaran dimulai, selesai, atau terjadi gangguan.
- Modern Web Dashboard: Dilengkapi antarmuka web interaktif dengan tema dark glassmorphism.
- 🔑 Stream Key Unik per Sesi: Setiap jadwal sesi memiliki kolom Stream Key masing-masing sehingga Anda bebas menyiarkan video berbeda ke jadwal siaran YouTube Studio yang berbeda tanpa bentrok.
- 🐧 Dukungan Penuh Windows & Linux: Dapat dijalankan di PC Windows maupun server VPS Linux (Ubuntu, Debian, dll.) tanpa modifikasi kode.
- 🔲 System Tray Icon (Windows): Dilengkapi dengan ikon tray di taskbar pojok kanan bawah Windows. Server dapat berjalan 100% senyap di latar belakang tanpa jendela CMD yang mengganggu layar.
- 📌 Pinnable Shortcut ke Taskbar & Start Menu: Dilengkapi skrip pembuat shortcut Windows resmi berikon custom (
icon.ico) yang siap disematkan (pin) ke Taskbar atau Start Menu. - 📱 Notifikasi Telegram Otomatis:
- 🔴 Live Dimulai: Nama sesi, nama file video, mode streaming, jam mulai, estimasi waktu berakhir, dan durasi video.
- ✅ Live Selesai: Nama sesi, total durasi siaran berjalan (Jam-Menit-Detik), dan status selesai sukses normal.
⚠️ Peringatan / Disconnect: Detail peringatan jika koneksi internet terputus atau FFmpeg berhenti tak terduga.
- ⏱️ 3 Mode Durasi & Looping Fleksibel:
- Mode A (Putar Sekali / Selesai Alami): Video diputar 1 kali apa adanya sampai selesai tanpa looping.
- Mode B (Looping Hingga Batas Durasi): Video berulang terus secara otomatis (
-stream_loop -1) hingga target durasi tercapai (contoh:03:00:00). - Mode C (Batas Durasi Tanpa Loop): Video dipotong tepat pada durasi yang ditentukan tanpa pengulangan.
- 📂 Dual-Pane File Explorer Web: Memilih file video PC/Server langsung dari antarmuka web yang intuitif dengan breadcrumb interaktif, filter pencarian live, dan pintasan cepat folder (Videos, Downloads, Documents, Drives Windows, serta direktori Root/Home Linux).
- 💾 Backup & Restore Jadwal Sesi (JSON): Ekspor dan impor seluruh daftar jadwal sesi ke berkas
.jsonuntuk menyimpan dan berganti-ganti profil jadwal siaran (misal: Jadwal_Weekday.json, Jadwal_Weekend.json) dalam 1 klik. - ⏳ Live Countdown Timer: Menghitung mundur waktu secara real-time menuju sesi siaran terdekat berikutnya.
- 📊 Real-time Telemetri & Log: Memantau Bitrate, FPS, Kecepatan Encoding, Processed Time, dan output terminal FFmpeg secara langsung dari browser.
- 🕹️ Kontrol Manual On-Demand: Tombol "Putar & Live Sekarang" untuk memulai siaran secara instan dan "Hentikan Live" untuk graceful stop.
- Backend: Python 3.10+, FastAPI, Uvicorn, Pydantic v2, Jinja2
- Streaming Engine: FFmpeg & FFprobe (Subprocess streaming H.264 / AAC FLV to RTMP)
- Scheduler: Multi-threaded Precision Background Timer
- OS & Tray Integration:
pystray,Pillow, Windows Win32 API (ctypes) dengan auto-fallback headless Linux - Frontend: HTML5, Vanilla CSS (Modern Dark Glassmorphism), Vanilla JavaScript ES6+, FontAwesome 6
Pastikan sistem Anda telah terpasang:
- Python 3.10+ (Centang "Add Python to PATH" saat instalasi di Windows).
- FFmpeg terpasang dan dapat diakses dari terminal/CMD (
ffmpeg -version).
git clone https://github.com/maxnmrantau/StreamYT-Pro.git
cd StreamYT-Propip install -r requirements.txtTersedia 2 opsi peluncuran:
Double-click file Jalankan_Tanpa_CMD.vbs (atau run_hidden.vbs):
- Server berjalan 100% di latar belakang tanpa jendela CMD hitam di layar.
- Ikon aplikasi aktif di System Tray (Pojok Kanan Bawah Windows).
- Browser web akan otomatis terbuka ke
http://localhost:8000.
Double-click file run.bat (atau jalankan python app.py di terminal).
sudo apt update
sudo apt install python3 python3-pip python3-venv ffmpeg -ychmod +x run.sh
./run.shBuat file service di /etc/systemd/system/streamyt.service:
[Unit]
Description=StreamYT Pro Server
After=network.target
[Service]
User=root
WorkingDirectory=/var/www/StreamYT-Pro
ExecStart=/usr/bin/python3 app.py
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.targetKemudian aktifkan service:
sudo systemctl daemon-reload
sudo systemctl enable streamyt
sudo systemctl start streamytDashboard dapat diakses melalui browser di http://IP_VPS_ANDA:8000.
- Buka Dashboard: Akses
http://localhost:8000(atau IP VPS Anda) di browser. - Tambah Jadwal Sesi:
- Klik tombol
+ Tambah Jadwal Sesi. - Masukkan Nama Sesi.
- Klik
Pilih File Videountuk memilih berkas video dari komputer/server Anda. - Masukkan YouTube Stream Key khusus untuk jadwal video tersebut dari YouTube Studio.
- Atur Jam Mulai (format 24 jam, misal
08:00) dan Hari Aktif (Senin–Minggu). - Pilih Mode Durasi & Looping (Mode A, B, atau C).
- Klik Simpan Sesi.
- Klik tombol
- Selesai! Server akan otomatis menghitung mundur dan memulai streaming ke YouTube Live tepat pada jam yang ditentukan.
| Mode | Nama Mode | Cara Kerja | Contoh Penggunaan |
|---|---|---|---|
| Mode A | Sesuai Panjang Video | Video diputar 1 kali dari awal hingga selesai apa adanya tanpa durasi/looping. | Video webinar / rekaman pengajian 1 jam 45 menit. |
| Mode B | Loop Video Sampai Durasi | Video berulang (loop) terus menerus secara otomatis hingga batas durasi tercapai. | Video musik relaksasi 10 menit di-looping selama 3 jam (03:00:00). |
| Mode C | Batas Durasi (Tanpa Loop) | Video dipotong tepat pada durasi yang ditentukan tanpa pengulangan. | Video rekaman 4 jam yang hanya ingin disiarkan selama 2 jam pertama. |
StreamYT Pro dapat mengirimkan laporan siaran langsung ke HP/akun Telegram Anda.
- Buka Telegram dan cari
@BotFather> kirim pesan/newbot> ikuti petunjuk untuk mendapatkan Bot Token. - Buka bot yang baru dibuat di Telegram dan klik tombol
/start. - Cari
@userinfobotdi Telegram untuk melihat Chat ID akun Anda (berupa angka, contoh:370344988). - Pada dashboard StreamYT Pro, klik Pengaturan > pilih tab Notifikasi Telegram:
- Aktifkan toggle switch "Aktifkan Notifikasi Telegram".
- Masukkan Bot Token dan Chat ID.
- Klik tombol "Kirim Pesan Uji Coba (Test)" untuk memastikan bot terhubung.
- Klik Simpan Pengaturan.
Klik kanan pada ikon tray StreamYT Pro:
- 🌐
Buka Dashboard Web: Membuka browser ke dashboard. - 👁️
Tampilkan / Sembunyikan CMD: Memunculkan atau menyembunyikan jendela terminal kapan saja. - ❌
Keluar & Tutup Server: Menghentikan siaran aktif dan mematikan server dengan aman.
Cukup double-click file Buat_Shortcut_Pinnable.vbs:
- File shortcut
StreamYT Proberikon resmi akan otomatis dibuat di Desktop. - Anda dapat langsung klik kanan > Pin to taskbar atau Pin to Start!
StreamYT-Pro/
├── app.py # FastAPI server & route handlers
├── run.sh # Launcher script untuk Linux / VPS
├── Jalankan_Tanpa_CMD.vbs # Silent launcher Windows (tanpa jendela CMD)
├── run_hidden.vbs # Silent launcher backup
├── run.bat # Windows batch launcher
├── Buat_Shortcut_Pinnable.vbs # Generator shortcut resmi Taskbar / Start Menu
├── requirements.txt # Dependensi Python
├── icon.png # Ikon aplikasi asli
├── app_icon.ico # Ikon Windows multi-resolusi (16px - 256px)
├── core/
│ ├── __init__.py
│ ├── config.py # Penyimpanan config & video metadata inspector
│ ├── stream_engine.py # FFmpeg process engine & live telemetry
│ ├── scheduler.py # Precision local time scheduler loop
│ └── tray_manager.py # System Tray & window visibility manager (Cross-Platform)
├── data/
│ ├── config.example.json # Template konfigurasi contoh
│ └── sessions.example.json # Template jadwal sesi contoh
├── static/
│ ├── css/dashboard.css # Dark glassmorphism styling
│ └── js/dashboard.js # Interaktivitas UI, polling & CRUD
├── templates/
│ └── index.html # Dashboard Web Template
├── LICENSE # Lisensi MIT
└── README.md # Dokumentasi resmi
- 100% Lokal: Seluruh data jadwal sesi, file video, dan token Telegram disimpan secara lokal di hard drive Anda (
data/config.jsondandata/sessions.json). - Kredensial Tidak Diunggah: Berkas sensitif dimasukkan ke
.gitignoresehingga aman dari kebocoran ke publik saat melakukan git commit.
Proyek ini dilisensikan di bawah lisensi MIT License — bebas digunakan, dimodifikasi, dan didistribusikan untuk keperluan pribadi maupun komersial.