GBVision
GBVision
Back to main hub
Audio Commentary · Integration Manual
Technical Documentation

Audio Commentary Deployment

This guide covers everything you need to deploy our live audio commentary on your platform: the streaming format, the production feed, recommended players for web, iOS and Android, automatic pairing, and answers to the most common integration questions. The setup is deliberately simple: read the feed, pick a match, pass the streamhls URL to your player.

01 Streaming overview

Our live audio commentary is delivered as standard HLS streams using the secure, universal cross-platform format. Any HLS-compatible player works out of the box. For web we recommend a player based on hls.js, which is free and embeds into any HTML page.

Format HLS Codec AAC Bitrate 64, 96, 128 kbps Channels Mono Platforms Web · iOS · Android

Integration is straightforward: read the production feed, select the match you want, and hand the stream URL to your player. No proprietary protocol, no player lock-in.

02 Production feed

Your production feed lives at a permanent endpoint. Only the contents update, the URL never changes, so you can hard-code it on your side.

https://sportsradio.cz/testfeed.php

Feed fields

FieldDescription
matchIdUnique match identifier. Stable ID, never changes for a given event.
leagueIdLeague / competition identifier (EnetpulseID).
homeIdHome team identifier (EnetpulseID).
awayIdAway team identifier (EnetpulseID).
leagueNameLeague / competition name.
homeNameHome team name.
awayNameAway team name.
matchDateMatch date and time, format Y-m-d H:i:s, UTC.
streamhlsHLS stream URL.
langCommentary language code.
countryCountry / region code. We use 'int' for international competitions.

The feed structure can be fully customised to your requirements. Need extra fields, a customer ID, or language-specific feeds? Just let us know.

Note: the production feed URL is permanent, but the stream links currently in it are for testing only. They are replaced with live production links when you go live.

03 Recommended players & SDKs

Web

An hls.js-based player with setup instructions:

Android

We recommend ExoPlayer, though any HLS-supported player works. We also ship our own ExoPlayer-based SDK.

iOS

Use Apple's native player (HLS supported), or our own iOS SDK.

04 Web implementation (hls.js)

A minimal, production-ready snippet. Load hls.js, point it at the streamhls URL from the feed, and attach it to an audio element. Below is a live test stream you can play right now.

Live testReady · press play
<!-- 1. Load hls.js (CDN) --> <script src="https://cdn.jsdelivr.net/npm/hls.js@1/dist/hls.min.js"></script> <!-- 2. An audio element --> <audio id="player" controls></audio> <script> const url = "https://xx/playlist.m3u8"; // streamhls from the feed const audio = document.getElementById("player"); if (Hls.isSupported()) { const hls = new Hls({ lowLatencyMode: true }); hls.loadSource(url); hls.attachMedia(audio); } else if (audio.canPlayType("application/vnd.apple.mpegurl")) { audio.src = url; // native HLS (Safari / iOS) } </script>

That is the whole web integration. The same approach scales to a styled custom player, you only swap the URL per match from the feed.

05 Automatic pairing & feeds

Match-specific links are delivered through your feed in JSON or XML, whichever you prefer. Example JSON structure:

[ { "ID": "xxxxx", "Home": "xxxx", "Away": "xxxx", "Time": "xx:xx:xx", "Date": "xxxx-xx-xx", "Lang": "xx", "streamhls": "https://xx/playlist.m3u8" } ]

To enable automatic pairing, send us an initial feed with League, Event, Time, Date and Match ID. We integrate your match IDs and club IDs and return a feed with direct live audio commentary URLs, which dramatically speeds up deployment.

Test stream: the links in the sample feed are not active. For testing, use the continuous live stream: livesportradio.com/global/livescore/playlist.m3u8

06 FAQ

Q1How often should we pull the audio commentary data?
Once per hour is more than enough in most cases. The feed is not a full-scale CDN, so please avoid polling more frequently than once per minute. Match links are usually available at least a week ahead, often up to a month. Since match times can shift, checking every 30 to 60 minutes is the recommended approach.
Q2How long before kick-off are the audio commentary URLs provided?
Match links are typically available up to one month before kick-off. For hand-picked matches the usual window is around 48 hours prior, or earlier by arrangement for semi-finals, finals and other key fixtures. We can adjust this to your needs.
Q3When does the audio commentary begin?
Live broadcast generally starts 5 minutes before kick-off and stays active until 5 minutes after the final whistle. Stream URLs remain active continuously; outside live commentary an automated loop plays, which can carry your branding audio. During halftime we play a loop (currently ambient stadium sound), also replaceable with custom audio if you send us the material. We are happy to help build a branded loop.
Q4When do we get production data with real audio commentary URLs?
The test URLs we provide are already fully functional, essentially production-level links. The only differences: they do not yet carry your branding, they are not connected to our stats system, and CDN fallback is not enabled. They are provisioned for roughly 1,000 concurrent users for testing, but reflect exactly what your final production URLs will look like.
Q5Will production data require authentication?
Yes. Production feeds are secured through IP whitelisting. Send us the list of IP addresses you want to authorise and we enable access for those IPs when we provide the final production URLs.