API Documentation — Extended
Public and Protected APIs for Schedule, Channels, and playable pages. This page shows how to build iframe embeds, how to parse schedule JSON, and the known folder patterns.
Format: JSON / HTML
Timezone: UK GMT in schedule responses
Protected API (Key)
Secure API endpoints requiring API key. Contact support to get your API key
Protected API Base
https://dlhd.dad/daddyapi.php?key=YOUR_KEY&endpoint=ENDPOINT
Replace YOUR_KEY with your assigned API key and ENDPOINT with:
channels, schedule, or infoGet Channels (Protected)
https://dlhd.dad/daddyapi.php?key=YOUR_KEY&endpoint=channels
Returns channels list, replace YOUR_KEY with your assigned API key
Get Schedule (Protected)
https://dlhd.dad/daddyapi.php?key=YOUR_KEY&endpoint=schedule
returns schedule, replace YOUR_KEY with your assigned API key
API Information
https://dlhd.dad/daddyapi.php?key=YOUR_KEY&endpoint=info
Returns API information, available endpoints, and authentication details.
Playable pages (multiple folders)
https://dlhd.dad/stream/stream-<id>.php
Other valid folders with the same filename (stream-<id>.php):
/cast/stream-<id>.php, /watch/stream-<id>.php, /plus/stream-<id>.php, /casting/stream-<id>.php, /player/stream-<id>.php.How to construct a playable URL & embed (iframe)
Use the channel channel_id and one of the supported folders. The player pages are full HTML pages that contain the video player.
// server-side helper (example)
function getStreamUrl($channel_id, $type = 'stream'){
$allowed = ['stream','cast','watch','plus','casting','player'];
$type = in_array($type, $allowed) ? $type : 'stream';
// Note: filename is always stream-.php inside each folder
return "https://dlhd.dad/{$type}/stream-{$channel_id}.php";
}
// iframe example (HTML)
// Responsive wrapper is provided below — copy and paste into your site where you want the player to appear.
<div class="preview-wrap">
<iframe src="https://dlhd.dad/stream/stream-302.php" allowfullscreen loading="lazy"></iframe>
</div>
You can swap the folder name (stream, cast, watch, plus, casting, player) while keeping the filename
stream-<id>.php (for example /cast/stream-302.php).Live preview (sample stream page)
Protected API Authentication & Usage
The protected API uses key.
// Example: Get channels with authentication
fetch('https://dlhd.dad/daddyapi.php?key=YOUR_KEY&endpoint=channels')
.then(response => response.json())
.then(data => {
if (data.success) {
console.log('Channels:', data.data);
console.log('Total channels:', data.count);
} else {
console.error('API Error:', data.error, data.message);
}
})
.catch(error => console.error('Request failed:', error));
// Example: Get schedule with authentication
fetch('https://dlhd.dad/daddyapi.php?key=YOUR_KEY&endpoint=schedule')
.then(response => response.json())
.then(data => {
if (data.success) {
console.log('Schedule days:', Object.keys(data.data));
console.log('Total days:', data.days_count);
} else {
console.error('API Error:', data.error, data.message);
}
})
.catch(error => console.error('Request failed:', error));
Authentication Requirements:
• Valid API key in the
• Contact support to get your key
• Valid API key in the
key parameter• Contact support to get your key
Schedule JSON structure (details)
The schedule JSON uses human readable day headers as top-level keys. Each header maps to an object of categories (e.g. "TV Shows", "Football"). Each category is an array of event objects.
// Example event object
{
"time": "07:37",
"event": "Big Brother 27 USA 2025 Live Cam Feeds",
"channels": [
{"channel_name": "MultiFeed", "channel_id": "277"},
{"channel_name": "BBFeed 1", "channel_id": "261"}
],
"channels2": []
}
Notes:
- Use the
channelsarray for primary playable channels.channels2may contain alternate sources or metadata — check for its presence before assuming it's empty. - Channel IDs are strings in the JSON (e.g. "302"). Treat them as identifiers — do not assume numeric sorting order unless you cast to int.
- Category keys may contain punctuation and spaces. When parsing server-side, iterate through keys rather than attempting to split them on a specific format.
Extra notes, folders & recommendations
- Folders & naming: the system supports multiple public player folders. When in doubt, try each folder using the same filename
stream-<id>.php(for example:/stream/stream-302.php,/cast/stream-302.php,/watch/stream-302.php, etc.). - If you plan to embed many players per page, open stream pages in a lightbox or only create an iframe when the user clicks to avoid many simultaneous connections.
- If a player page includes a cross-origin resource or requires cookies, ensure you add proper
allowattributes on the iframe and CORS headers on the player page.
Contact / Support
If something is missing or the player pages behave differently across folders, contact:
[email protected]
Emergency support: 24/7