Skip to content

XCtv DAZN DRM Panel

XCtv

Operations toolkit for DAZN DRM ingestion, scheduling, and stream orchestration.

Widevine DRM acquisition for DAZN with automatic xaccel-codec integration, dynamic API endpoint discovery, and EPG-based scheduling.


Features

  • Dynamic endpoint discovery from DAZN ServiceDictionary (auto-cached)
  • Automated scheduling — nightly EPG scan, cron generation, stream lifecycle
  • Multi-day EPG generation — EPG XML covers the full schedule window (1–14 days)
  • Customizable EPG templates — named template sets with 80+ variables across 13 categories
  • TheSportsDB enrichment — live venue, scores, broadcast, badge, and jersey data via premium API
  • Game Thumbs integration — dynamic matchup thumbnails for programme artwork
  • JSON REST API — token-authenticated headless access to all panel operations
  • User API keys — generate/revoke personal API keys from the Profile page
  • Two-factor authentication — optional TOTP 2FA with 7-day trusted-device remember
  • Widevine DRM key acquisition via pywidevine CDM
  • CloudFront WAF bypass via curl_cffi Chrome TLS fingerprint impersonation
  • Multi-resolution output (FHD, HD, SD) per competition
  • Competition groups — merge multiple DAZN competitions into shared channels
  • Sport/Competition discovery — scan DAZN EPG to find new IDs
  • Apprise notifications for daily schedule (Telegram, Discord, Slack, etc.)

Quick Start

# Clone the repository
git clone git@git.retrorewind.ca:iptv/xctv-dazn-drm-panel.git /var/www/dazn.xctv.stream

# Import the database schema
mysql -u root -p < dazn-xctv.sql

# Configure database credentials
export XCtv_dbHost=127.0.0.1
export XCtv_dbUser=dazn
export XCtv_dbPass=YOUR_PASSWORD
export XCtv_dbName=dazn

# Set up nginx and cron
sudo cp etc/dazn.xctv.stream.conf /etc/nginx/sites-available/
sudo nginx -t && sudo systemctl reload nginx

See the Installation Guide for full setup instructions.

Project Structure

Directory Purpose
dazn.xctv.stream/ PHP source code — web panel and CLI scripts
docs/ Project documentation (this site)
etc/ Server configuration files (nginx, crontab)
kodi/ Reference copy of plugin.video.dazn v1.4.27
bootstrap-4.6.2/ Customized Bootstrap 4.6.2 source for UI

Architecture Overview

┌──────────────────────────────────────────────────────────┐
│                   DAZN Cloud APIs                        │
└──────────┬───────────────────────────┬───────────────────┘
           │ HTTPS                     │ Widevine License
           ▼                           ▼
┌─────────────────────┐   ┌────────────────────────────────┐
│   PHP Panel (nginx) │   │   Python DRM (pywidevine)      │
│   dazn.xctv.stream  │◄──│   playback_request.py          │
│                     │   │   request_keys.py               │
│  MariaDB (dazn)     │   └────────────────────────────────┘
└──────────┬──────────┘
           │ xaccel-codec API
┌─────────────────────┐
│  xaccel-codec       │
│  DASH → HLS/TS      │
│  DRM decrypt        │
└─────────────────────┘

See the full Architecture document for data flow diagrams and database schema.