Embed bitTV
Drop the full bitTV experience — browse, watch, and switch channels — into your own site with a single iframe. Navigation stays inside the frame.
Quick start
Embed a specific channel, or /embed for the full browsable app:
<div style="position:relative;width:100%;padding-top:56.25%">
<iframe src="https://livetv.cdnbd.top/embed/watch/CNN.us"
style="position:absolute;inset:0;width:100%;height:100%;border:0"
allow="autoplay; fullscreen; encrypted-media" allowfullscreen></iframe>
</div>Tip: open any channel on the site and click Embed to generate this snippet with your options.
Allowlist
For security, only approved origins may frame bitTV. Your site's origin must be added to the bitTV EMBED_ALLOWED_ORIGINS allowlist — contact us to be added. Non-allowlisted sites are blocked by the browser.
URL parameters
paramdefaulteffect
autoplay1Start playing automatically (0 to disable).muted1Start muted (required for autoplay in most browsers).controls1Show native video controls (0 to hide).nav1Show the slim bitTV top bar (0 for a bare frame).start—On /embed, deep-link straight to a channel id.https://livetv.cdnbd.top/embed/watch/BBCNews.uk?nav=0&controls=0&muted=1
JavaScript SDK
Control the frame and receive events with the lightweight SDK at https://livetv.cdnbd.top/embed.js.
<iframe id="tv" src="https://livetv.cdnbd.top/embed/watch/CNN.us"
allow="autoplay; fullscreen; encrypted-media" allowfullscreen></iframe>
<script src="https://livetv.cdnbd.top/embed.js"></script>
<script>
var tv = BitTV(document.getElementById('tv'));
tv.on('ready', function () { console.log('ready'); });
tv.on('routechange', function (p) { console.log('watching', p.channelId); });
tv.on('playing', function () {});
// controls:
// tv.navigate('BBCNews.uk'); tv.go('/browse?category=sports');
// tv.play(); tv.pause(); tv.mute(); tv.unmute();
</script>postMessage protocol
The SDK is a thin wrapper over postMessage. If you prefer raw messages:
Events — iframe → your page
window.addEventListener('message', function (e) {
if (!e.data || e.data.source !== 'bittv') return;
// e.data.type: 'ready' | 'routechange' | 'playing' | 'paused' | 'waiting' | 'error'
// e.data.payload: { path, channelId } for 'routechange'
});Commands — your page → iframe
iframe.contentWindow.postMessage(
{ source: 'bittv-host', type: 'navigate', channelId: 'BBCNews.uk' }, '*');
// type: 'navigate' (channelId | path) | 'play' | 'pause' | 'mute' | 'unmute'