YetuStream PRO — Next-Gen Live Sports Streaming Platform
YetuStream PRO is an enterprise-grade, turnkey decoupled live sports broadcasting solution for WordPress. It combines a high-performance video distribution plane (powered by MediaMTX and Nginx in Docker) with a feature-rich WordPress control plane, low-latency HLS player, real-time match clock, interactive scoreboards, celebratory goal animations, and WooCommerce Pay-Per-View ticketing.
Sub-3-second glass-to-glass latency with smart buffer cushions, eliminating lag and buffering stutter.
Sell digital access passes for individual matches or seasons with cryptographic playback security tokens.
Dedicated web console for stadium operators to manage match clock, goals, yellow/red cards, and substitutions.
Built-in presets for Football, Basketball (4 quarters), Futsal, Handball, and Volleyball.
Architectural Blueprint (Decoupled Design)
Unlike monolithic streaming plugins that attempt to encode or serve video fragments through PHP (which crashes web hosting servers), YetuStream enforces a strict separation of concerns:
| Component | Layer | Tech Stack | Responsibility |
|---|---|---|---|
| Control Plane | WordPress (HostGator / Shared / VPS) | PHP 7.4 - 8.3, REST API, CPT | Matches management, Pay-Per-View permissions, OBS Stream Keys, REST score polling, and HTML5 Player shell. |
| Media Plane | Video VPS (Dedicated or Cloud) | MediaMTX, Nginx Reverse Proxy, Docker | Ingests RTMP from OBS/vMix (port 1935), remuxes to Low-Latency HLS/WebRTC, and delivers video segments to viewers. |
| Player Plane | Client Browser (Desktop & Mobile) | HLS.js, ES6+, Responsive CSS | Decodes live video, renders floating glassmorphism scoreboard, synchronizes clock, and animates celebratory goal toasts. |
💻 System Requirements
Because of our decoupled architecture, the requirements are split into your WordPress site and your Video Streaming VPS:
1. WordPress Website (Control Plane)
- WordPress Version: 5.8 or higher (fully tested up to 6.7+).
- PHP Version: 7.4, 8.0, 8.1, 8.2, or 8.3.
- Extensions:
cURL,OpenSSL,JSON. - WooCommerce (Optional): Required only if using Pay-Per-View ticket sales.
- SSL: Active HTTPS certificate (required for camera/microphone and modern player autoplay policies).
2. Video VPS (Media Plane)
- Operating System: Ubuntu 20.04, 22.04, 24.04 LTS or Debian 11 / 12 (64-bit).
- Hardware Recommendation: 1 CPU Core, 2 GB RAM, 20 GB SSD (handles 500+ concurrent viewers via Nginx keepalive).
- Network Ports to Open:
80/tcp&443/tcp— HTTP/HTTPS Nginx streaming distribution.1935/tcp— RTMP Ingestion for OBS Studio and hardware encoders.8189/udp— WebRTC ICE signaling (optional for sub-second streams).
- DNS: A dedicated subdomain pointing to the VPS IP (e.g.,
live.yourdomain.comandstream.yourdomain.com).
⚡ 3-Step Quick Start
Run our 1-command installer script on your clean Ubuntu VPS. It configures Docker, Nginx, and SSL in under 60 seconds.
Upload yetustream.zip to WordPress. The Setup Wizard will automatically guide you through connection, branding, and testing.
Copy your RTMP Server and Stream Key into OBS Studio, hit "Start Streaming", and watch your match stream live with real-time scores.
🚀 1-Command VPS Installer (Zero Friction)
We built an automated shell script that completely provisions your video streaming server. Connect to your Ubuntu VPS via SSH as root and run:
curl -fsSL https://yetustream.bolayetu.com/install.sh | bash
- Your streaming subdomain (e.g.
live.yourdomain.com) - Your WordPress Webhook URL (e.g.
https://yourdomain.com/wp-json/yetustream/v1/auth) - Your admin email address (for Let's Encrypt SSL automated renewals)
Non-Interactive Command Line Mode
If you prefer deploying via Ansible, Terraform, or cloud-init, pass arguments directly:
bash install.sh --domain live.yourdomain.com --wp-auth https://yourdomain.com/wp-json/yetustream/v1/auth --email admin@yourdomain.com
☁️ Cloudflare & DNS Configuration (Critical Step)
If your domain uses Cloudflare, proper DNS settings are essential to prevent CORS errors and infinite loading loops.
Both stream.yourdomain.com (RTMP port 1935) and live.yourdomain.com (HLS port 443) should be set to DNS Only (Gray Cloud ☁️) in your Cloudflare dashboard!
Why Gray Cloud ☁️ (DNS Only)?
- RTMP Ingest: Cloudflare Orange Cloud standard proxy does not support TCP port 1935. OBS Studio will fail to connect with "Connection Failed / Could not connect to server" if Orange Cloud is active.
- HLS Session Stability: MediaMTX tracks video client sessions. When Cloudflare proxies requests, rotating edge nodes cause session drops (HTTP 401: session not found), leading to black screens in web players. Setting to Gray Cloud eliminates all proxy hops and delivers instant playback.
| Subdomain | Type | Value (Points to) | Cloudflare Proxy Status | Purpose |
|---|---|---|---|---|
stream |
A |
YOUR_VPS_IP |
☁️ DNS Only (Gray) | OBS Studio / vMix RTMP Ingest (Port 1935) |
live |
A |
YOUR_VPS_IP |
☁️ DNS Only (Gray) | HLS / LL-HLS Player Output (Port 443 HTTPS) |
🐳 Manual Docker Configuration (Advanced Users)
If you prefer managing your server manually without using install.sh, copy the provided VPS-Media-Engine/ files to /opt/yetustream-media:
services:
mediamtx:
image: bluenviron/mediamtx:latest
container_name: yetustream-media-engine
restart: always
network_mode: host
environment:
- MTX_AUTHHTTPADDRESS=https://yourdomain.com/wp-json/yetustream/v1/auth
volumes:
- ./mediamtx.yml:/mediamtx.yml:ro
- ./recordings:/recordings
🔌 WordPress Plugin Installation & License Setup
- Log in to your WordPress Dashboard as an Administrator.
- Navigate to Plugins > Add New Plugin.
- Click Upload Plugin at the top, select
yetustream.zip, and click Install Now. - Click Activate Plugin.
- You will be automatically redirected to the YetuStream Setup Wizard!
Activating Your CodeCanyon Purchase Code
To enable unlimited concurrent match streams, WooCommerce Pay-Per-View, and automatic updates:
- Go to YetuStream > Server Settings.
- Find the Licenciamento CodeCanyon box.
- Paste your Envato Purchase Code and click Ativar Licença.
- The status badge will turn green:
PRO ATIVO.
🧙♂️ Setup Wizard Walkthrough
The Setup Wizard configures your platform in 3 easy steps:
Enter your HLS URL (https://live.yourdomain.com/hls) and RTMP URL. Click the Test VPS Connection button to verify network latency in milliseconds.
Choose your default sport (Football, Basketball, Futsal, Handball, or Volleyball) and select your brand accent color to style the scoreboard and player controls.
Check the box to automatically generate a sample match ("Luanda vs Benguela"). The wizard provides pre-filled OBS Studio credentials ready to copy.
🧪 VPS Health Diagnostics (1-Click Test)
Both the Setup Wizard and the YetuStream > Server Settings page feature a live connectivity diagnostic tool:
"Conectado com sucesso ao Media Plane! Resposta HTTP 200 em 42 ms."
📹 OBS Studio & vMix Configuration Guide
To ensure smooth playback without stuttering or video freezes, configure OBS Studio with these optimized broadcasting settings:
1. Stream Settings (OBS Studio > Settings > Stream)
- Service: Custom...
- Server:
rtmp://stream.yourdomain.com:1935 - Stream Key:
jogo_XXX_XXXXXX?key=YOUR_STREAM_KEY(Found in the Event Edit screen).
2. Output Settings (OBS Studio > Settings > Output > Output Mode: Advanced)
| Setting | Recommended Value | Explanation |
|---|---|---|
| Rate Control | CBR (Constant Bitrate) |
Crucial for low-latency HLS. Avoid VBR. |
| Bitrate | 2500 - 4500 Kbps (720p/1080p) |
Matches stadium uplink speed. |
| Keyframe Interval | 2 seconds |
MANDATORY: MediaMTX segments video in 2-second chunks. |
| CPU Usage Preset | veryfast |
Balance of quality and encoder speed. |
| Tune | zerolatency |
Reduces frame encoding delay. |
🎛️ Live Match Operator Console & Mobile Ergonomics
YetuStream includes a high-performance, mobile-first courtside operator console designed for referees, stadium officials, commentators, and field operators. It can be accessed within the WordPress admin or directly on any mobile device/tablet via a secure zero-login link.
1. Key Operator Capabilities
- Zero-Login Field Access via Signed Token: Generate a public operator link (
/wp-admin/admin-ajax.php?action=yetustream_operator_view&token=...) allowing remote officials to operate the match without requiring WordPress administrative credentials. - One-Click Security Token Regeneration: If a token link is shared or compromised, click "Regenerar Chave" to instantly invalidate old sessions and issue a fresh 64-character cryptographic token.
- Multi-Sport Adaptability: Dynamically morphs buttons and rules according to the selected sport:
- Futebol: +1/-1 goals, stoppage time adder (+1', +2', +3', +5'), halves & extra time.
- Basquetebol: +1, +2, +3 point scoring, team fouls (faltas coletivas), quarter counter, timeouts.
- Futsal: Accumulated fouls counter (5-foul limit trigger), stop-clock controls.
- Andebol: Rapid goal counter, 2-minute exclusion timers (exclusões).
- Voleibol: Set points tracking, set winner finalization, past set history chips.
- Bottom-Sheet Event Modals: Incident registration modals (goals, cards, substitutions, fouls) slide up smoothly as bottom sheets, automatically adapting to mobile virtual keyboards without scrolling jitter.
- Web Audio API Synthesizer Feedback: Crisp synthesized sound chimes (Goal fanfare, Whistle, Error beep, Success blip) provide immediate tactile/auditory confirmation without loading heavy external audio files.
- Quick Undo (4.5s Buffer): Instant floating undo snackbar to immediately reverse accidental score changes or mislogged incidents.
- Connection Status & Heartbeat Monitor: Real-time latency and connection indicator (Online 🟢 / Reconnecting 🟡) ensuring data synchronization with the server.
2. Accessing the Console
From any Match Edit screen in WordPress (Jogos > Todos os Jogos), locate the "Painel do Operador" metabox:
- Click "Abrir Painel do Operador" for the admin-authenticated view.
- Click "Copiar Link Móvel (Sem Login)" to send the link to a courtside assistant via WhatsApp or QR Code.
⏱️ Scoreboard Customizer, Mobile UX & Pre-Live Spot (v1.5.0)
YetuStream PRO features the most customizable HTML5 sports player on WordPress, with broadcast-grade styling, seamless pre-show automation, and rock-solid mobile compatibility:
1. Scoreboard Customizer Engine (5 Themes, 5 Positions, 3 Scales)
Customize the scoreboard overlay per match or set global site-wide defaults in YetuStream > Server Settings:
Sleek dark translucent backdrop with 8px blur, pill-shaped borders, and vibrant accents.
Solid, high-contrast rectangular television banner mimicking official international sports broadcasts.
Ultra-lightweight transparent score overlay with text drop-shadows for maximum unobstructed view.
Electronic stadium arena board style with digital monospace typography and fluorescent glow.
Full-width horizontal banner spanning across the entire top edge of the video.
2. Granular Visibility Controls & Viewer On/Off Toggle
- Granular Toggles: Show or hide club crests, team names, match period badge, live clock, viewers counter, and live indicator dot individually.
- Viewer On/Off Switch: Floating
📊button allows viewers to hide or show the scoreboard overlay on screen at any time (preference saved inlocalStorage).
3. Pre-Live Video Spot (WordPress Media Library)
scheduled status, the browser loops the promo spot in mute with a "🔊 Ativar Som do Spot" button.
Seamless Auto-Switch: When the stadium operator starts the OBS stream and the match status transitions to
live, the player instantly comutes from the local promo spot to the low-latency HLS stream without requiring viewers to reload the page!
4. Mobile-First UX & Theatre Mode (Anti-Stripping iOS Safari)
On iPhones and iPads, native <video> fullscreen strips HTML overlays (scoreboards, toasts, crests). YetuStream introduces Modo Cinema / Web-Fullscreen (⛶): expands the player to fill the device screen seamlessly while keeping 100% of the live scoreboard, clock, and sponsor graphics visible.
5. Station Watermark Bug & Monetizable Sponsor Ad Banners
- Broadcast Watermark: Overlay your TV station / club logo in the top-right corner with custom opacity and outbound link.
- Sponsor Ad Banner: Display high-impact sponsor ad banners (728x90 or responsive) with click-through links, closable by viewers or set to auto-dismiss after 15, 30, or 60 seconds.
6. Keyboard Shortcuts & Live Edge DVR Sync
- Space / K: Play / Pause
- M: Mute / Unmute Audio
- S / C: Show / Hide Scoreboard Overlay
- T: Toggle Theatre Mode / Web Fullscreen
- P: Picture-in-Picture Mini-Player
- Live Edge DVR Button (
🔴 IR PARA DIRETO): Automatically appears when a viewer is paused or lagging behind, allowing 1-click resync to sub-second live latency.
🌐 Shortcodes, Fixtures Grid & Dynamic Timeline Guide
Embed the live player, fixtures grid, match timelines, or standalone scoreboards anywhere in your theme, Elementor, or Gutenberg blocks:
1. Live Matches Grid Shortcode
[yetustream_matches status="all" columns="3" limit="12" show_tabs="true"]
Renders a stunning responsive match card grid with filter tabs: "Todos os Jogos", "🔴 Em Direto" (pulsing live badge), "📅 Próximos" (kickoff countdown), and "🏁 Resultados".
status:all(default),live,scheduled,ended.columns:1,2,3, or4columns.limit: Number of games to display (default:12).sport: Filter by sport (football,basketball,futsal,handball,volleyball).
2. Single Player Shortcode
[yetustream_player id="123"]
Embeds the low-latency HLS video player with scoreboard overlay for match ID 123 (or the current post if used inside single template). Features 5 TV themes, Pre-Live video spot, cinema mode, and sponsor overlays.
3. Match Events Dynamic Timeline Shortcode (Auto-Updating)
[yetustream_timeline id="123" auto_refresh="true" refresh_interval="5"]
Displays an interactive vertical sports timeline with chronological match events (goals, points, cards, substitutions, sets).
auto_refresh="true", os espetadores na página recebem novos lances e atualizações registadas pelo operador instantaneamente (polling automático assíncrono a cada 3 a 5 segundos) sem precisarem de recarregar a página! Novos eventos entram com animação suave de destaque luminoso.
id: ID da partida (ou automático na página de jogo).auto_refresh:true(padrão) oufalsepara desativar polling.refresh_interval: Intervalo de consulta em segundos (padrão:5).limit: Número máximo de eventos (padrão:50).theme:dark(padrão desportivo) oulight.
4. Standalone Scoreboard Shortcode
[yetustream_scoreboard id="123"]
A lightweight live score card without video, perfect for sidebar widgets, live blogs, and match center summaries.
🎟️ WooCommerce Pay-Per-View (PPV) & Season Pass Setup
Monetize high-demand sports matches with single tickets or all-access tournament season passes:
- Create a standard WooCommerce Virtual Product (e.g. "Single Ticket — $5.00" or "Season Pass Taça de Angola — $29.00").
- In the Match Edit screen, find the Controlo de Acesso & Pay-Per-View metabox.
- Set Tipo de Acesso to
Pay-Per-View (Bilhética WooCommerce). - Select the individual ticket product, and optionally assign a Passe de Temporada / Torneio.
- Click Update.