Webmasters Contact Us API Discord Telegram

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 info

Get 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 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 channels array for primary playable channels. channels2 may 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 allow attributes 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