What Is a Live Stream Hub?
A live stream hub aggregates multiple HLS streams — from different sources or covering different events — into a single directory. Users browse available streams, select one, and watch directly in the browser. For sports, each stream corresponds to a live match; for news, each stream is a channel.
System Architecture
The hub has four components:
- Stream Registry — a SQL Server table storing stream metadata: event name, start time, quality levels, source URL, and status (live/upcoming/ended).
- Admin Panel — an ASP.NET WebForms or MVC interface for adding/updating streams. You can extend APG vNext's admin panel for this.
- Public Directory — an ASP.NET page listing available streams, server-rendered for SEO with status badges (LIVE / UPCOMING / ENDED).
- Player Page — per-stream landing page with HLS.js player, event metadata, and community discussion (APG vNext thread embedded below).
Step 1 — Database Schema
CREATE TABLE Streams (
StreamID INT IDENTITY PRIMARY KEY,
EventName NVARCHAR(200) NOT NULL,
StartTime DATETIME NOT NULL,
StreamUrl NVARCHAR(500),
Quality NVARCHAR(50) DEFAULT 'HD',
Status TINYINT DEFAULT 0, -- 0=upcoming, 1=live, 2=ended
Language NVARCHAR(10) DEFAULT 'en',
Slug NVARCHAR(200) NOT NULL UNIQUE
);
Step 2 — Server-Side Stream Directory
Render the stream list in server-side ASP.NET so Googlebot indexes all streams. Use a Repeater or Razor loop:
var streams = db.Streams
.Where(s => s.StartTime >= DateTime.Today)
.OrderBy(s => s.StartTime)
.ToList();
Each stream card links to /watch/{slug} — a clean, indexable URL that doubles as an SEO landing page.
Step 3 — HLS Player Page
The player page at /watch/{slug} combines:
- Server-rendered event metadata (title, time, teams) for SEO
- HLS.js player initialised after page load (prevents blocking)
- Quality selector if the stream offers multiple bitrates (360p / 720p / 1080p)
- APG vNext forum thread embedded below for live discussion
Step 4 — SEO Landing Pages
For maximum organic traffic, treat each stream page as a standalone SEO target. Include:
- Unique
<title>and meta description per event - Schema.org
VideoObjectmarkup withcontentUrlandthumbnailUrl - BreadcrumbList schema linking back to the directory
- Event-specific keywords in the H1 and first paragraph
Handling Geography
Some streams are geo-restricted. Add a Region field to your schema and use hreflang tags on the directory page to serve Arabic-language stream pages to MENA visitors — the audience most likely searching for live sports streams. See the bilingual portal guide for implementation details.
Reference Implementation
The Yalla Shoot streaming app is a production example of this architecture, serving Arabic-speaking fans during World Cup 2026 with real-time match data and community features built on ASP.NET.
See it in practice
We applied these techniques to build the Yalla Shoot streaming app guide — a real-world ASP.NET web application serving live sports content.
View Yalla Shoot Technical Guide →