Build with DLive API
A practical reference for retrieving channel lists, reading the live schedule, resolving channel logos, and constructing player-page embeds. Designed for developers integrating the API into websites and applications.
YOUR_KEY with your own key. Do not publish a real key in a public Blogger page or client-side JavaScript.Quick start
The three things you need to integrate the API.
Request an API key from the provider and keep it private.
Call an endpoint and check the response's success field.
Use channel IDs to construct player URLs and display logo images.
https://dlive.sx/daddyapi.php?key=YOUR_KEY&endpoint=ENDPOINTAuthentication
Protected API access uses a key query parameter.
https://dlive.sx/daddyapi.php?key=YOUR_KEY&endpoint=ENDPOINTSupported endpoint values are channels, schedule, and info. Contact API support to request a key.
fetch('https://dlive.sx/daddyapi.php?key=YOUR_KEY&endpoint=channels')
.then(response => {
if (!response.ok) throw new Error('HTTP ' + response.status);
return response.json();
})
.then(result => {
if (!result.success) throw new Error(result.message || result.error || 'API error');
console.log('Channels:', result.data);
console.log('Total:', result.count);
})
.catch(error => console.error('Request failed:', error));The URL builder above only creates a URL in your browser; it does not send a request or save your key.
Get channels
Returns the channel list, including IDs and logo paths when available.
https://dlive.sx/daddyapi.php?key=YOUR_KEY&endpoint=channels[
{
"channel_name": "beIN SPORTS Australia 1",
"channel_id": "491",
"logo_url": "logos/bein_sports_australia_1.png"
},
{
"channel_name": "Boomerang",
"channel_id": "648",
"logo_url": "https://cdn.example.com/logos/boomerang.png"
},
{
"channel_name": "TVO CA",
"channel_id": "401",
"logo_url": "logos/tvo_ca.svg"
}
]| Field | Type | Description |
|---|---|---|
channel_name | String | Human-readable channel name. |
channel_id | String | Identifier used to construct a player URL. |
logo_url | String | Relative path or absolute image URL; may be absent. |
Channel logos
Handle relative and absolute logo URLs safely.
The API may return a server-hosted cached logo path, such as logos/espn.png, or an absolute URL such as https://example.com/logos/boomerang.png.
function resolveLogo(path) {
if (!path) return '';
if (/^https?:\/\//i.test(path)) return path;
return 'https://dlive.sx/' + path.replace(/^\/+/, '');
}
// Example:
const logo = resolveLogo('logos/espn.png');
// Render with an img element and explicit dimensions.- Use an
imgelement with fixed width/height or max dimensions. - Provide a fallback when the image is missing or the host blocks hotlinking.
- SVG, PNG, and JPG may be returned.
- Prefer cached, server-hosted logos when available to reduce third-party requests.
Get schedule
Returns a schedule grouped by readable day headings and categories.
https://dlive.sx/daddyapi.php?key=YOUR_KEY&endpoint=schedulefetch('https://dlive.sx/daddyapi.php?key=YOUR_KEY&endpoint=schedule')
.then(response => response.json())
.then(result => {
if (!result.success) throw new Error(result.message || 'API error');
console.log('Schedule days:', Object.keys(result.data));
console.log('Total days:', result.days_count);
})
.catch(console.error);API information
Inspect supported endpoints and authentication details.
https://dlive.sx/daddyapi.php?key=YOUR_KEY&endpoint=infoUse the info endpoint to check API metadata and the provider's reported endpoint/authentication information. The exact response fields depend on the API version.
Playable page URL patterns
The filename pattern stays the same across supported folders.
https://dlive.sx/stream/stream-.php
https://dlive.sx/cast/stream-.php
https://dlive.sx/watch/stream-.php
https://dlive.sx/plus/stream-.php
https://dlive.sx/casting/stream-.php
https://dlive.sx/player/stream-.php | Folder | Example for ID 302 |
|---|---|
stream | /stream/stream-302.php |
cast | /cast/stream-302.php |
watch | /watch/stream-302.php |
plus | /plus/stream-302.php |
casting | /casting/stream-302.php |
player | /player/stream-302.php |
Use the channel's channel_id as the ID. Treat it as a string; cast to an integer only if you specifically need numeric sorting.
Responsive iframe embed
A responsive 16:9 wrapper for a player page.
Swap the folder or channel ID as needed. Add only the iframe permissions the player actually requires. Cross-origin policy, cookies, and embedding restrictions are controlled by the player host and cannot be bypassed from Blogger.
Open sample stream page ↗
Opens in a new tab; availability and embedding are controlled by the provider.
Schedule JSON structure
Top-level day keys contain categories, each category contains event arrays.
{
"time": "07:37",
"event": "Example event title",
"channels": [
{"channel_name": "MultiFeed", "channel_id": "277", "logo_url": "logos/multifeed.png"},
{"channel_name": "BBFeed 1", "channel_id": "261", "logo_url": "logos/bbfeed_1.png"}
],
"channels2": []
}| Property | Meaning | Implementation note |
|---|---|---|
time | Scheduled time | Confirm the timezone before conversion. |
event | Event or programme title | Escape text before inserting into HTML. |
channels | Primary channel array | Check the array exists and is an array. |
channels2 | Possible alternate sources or metadata | May be absent or empty; validate before use. |
- Iterate over actual top-level keys rather than splitting category names by a guessed pattern.
- Category names can contain spaces and punctuation.
- Channel IDs are strings, not guaranteed to be numerically sorted.
Integration best practices
Keep pages fast, resilient, and maintainable.
- Cache schedule and channel responses where the API terms permit it; avoid requesting them repeatedly on every interaction.
- Lazy-load player iframes and create them only after a visitor selects a channel when multiple players are listed.
- Handle HTTP errors, malformed JSON, empty arrays, missing logos, and unavailable player pages.
- Use a fallback image and explicit dimensions to avoid layout shifts.
- Respect the API provider's terms, content rights, and any geographic or embedding restrictions.
Errors & troubleshooting
Common causes to check before changing your integration.
| Symptom | Check |
|---|---|
| 401 / 403 response | Verify the key, access permissions, and endpoint spelling with the provider. |
| Failed JSON parsing | Inspect HTTP status and response body; the server may return HTML for an error. |
| Logo not displayed | Resolve relative paths against the correct host and test external URL availability. |
| Iframe is blank | Open the player URL directly and check provider-side frame/CSP restrictions and browser console errors. |
| Schedule time appears wrong | Confirm whether the returned time is GMT or UK local time for that date. |
Security notes
A public Blogger theme is not a secure place to store credentials.
- Never commit real keys into a public repository or Blogger template.
- Rotate a key immediately if it is accidentally published.
- Use HTTPS and validate all API data before rendering it.
- Only embed channels and streams you are authorized to distribute.