Glossary
Status: Reference Last Updated: 2025-11-02 Related Docs: System Overview, Quick Start Code Location: N/A (Terminology reference)
Key terms and concepts used throughout the EPGOAT project.
Core Concepts
EPG (Electronic Program Guide)
A digital guide that displays television program schedules. Shows what's on, when it starts, and includes metadata like descriptions, categories, and artwork.
XMLTV
An XML-based file format for EPG data. The de facto standard for IPTV program guides. EPGOAT generates XMLTV files that IPTV players consume.
Example:
<programme channel="ufc-ppv-1" start="20251005010000 +0000" stop="20251005050000 +0000">
<title>UFC 309 — Main Card</title>
<sub-title>Edwards vs. Muhammad 2</sub-title>
<desc>Live PPV coverage. Main card begins 9:00 PM ET.</desc>
<category>Sports</category>
<category>MMA</category>
</programme>
IPTV (Internet Protocol Television)
Television content delivered over internet protocols rather than traditional broadcast/cable. Users access channels via M3U playlists or Xtream codes.
M3U Playlist
A text file format that lists media URLs. IPTV providers distribute M3U files containing channel stream URLs and metadata.
Example:
#EXTINF:-1 tvg-id="ufc-ppv-1" tvg-name="UFC PPV 1",UFC 309 Main Card 22:00 ET
http://provider.com/stream/12345
Xtream Codes
An API protocol for IPTV services. Provides structured access to channels, VOD, and EPG data. More feature-rich than plain M3U.
EPGOAT-Specific Terms
ECID (Entity Channel ID)
A stable, canonical identifier for a channel entity across providers and platforms.
Purpose: - Same channel may have different names per provider - ECID allows one schedule to power multiple provider feeds - Enables mapping FAST channels and provider variants
Example:
- ECID: ecid:sports:ufc-ppv-main-1
- Trex calls it: "UFC PPV 01"
- Strong8k calls it: "UFC Events Main Card"
- Both map to same ECID → same schedule
PCM (ProviderChannelMapping)
A mapping table that links provider-specific channel variants to their canonical ECID.
Structure:
provider,channel_variant_name,url_fingerprint,ecid,confidence,notes
trex,"UFC PPV 01",hash_abc123,ecid:sports:ufc-ppv-main-1,0.95,Primary UFC PPV feed
Source Tier (T0-T3)
A precedence system for conflicting data sources. Higher tier = more trusted.
Tiers: - T0: API Linker (SportsDB, SportsData.io) - highest trust - T1: Network/FAST EPG data - official but may lag - T2: Provider EPG data - less reliable - T3: Heuristic parsing from channel titles - lowest trust, fallback only
Example: If T0 API says event starts at 9pm but T3 heuristic parsed 8pm from title, use 9pm.
Linker
The parsing and enrichment engine that: 1. Detects event channels from titles 2. Parses structured data (league, time, teams) 3. Cross-references with external APIs 4. Assigns confidence scores 5. Maps to ECID
Named "Linker" because it links channel titles to structured event data.
Confidence Score
A numeric measure (0.0-1.0) of how certain we are about parsed event data.
Thresholds: - ≥0.72: High confidence → auto-publish - 0.55-0.71: Medium confidence → publish placeholder + flag for review - <0.55: Low confidence → don't publish, needs manual review
Factors: - Has time token: +0.4 - Has league keyword: +0.3 - Has matchup (vs, @): +0.3 - Has stage keyword: +0.2 - Validated by API: +0.3
Event Channel
A channel whose name indicates a specific event rather than 24/7 programming.
Examples: - "UFC 309 Main Card 22:00 ET" ✅ Event channel - "ESPN News" ❌ Regular channel - "NFL Game Pass 13:00" ✅ Event channel - "CNN" ❌ Regular channel
Detection: Pattern matching for time tokens, matchups, league keywords, stage identifiers.
Pop-up Channel
Synonym for event channel. Named because they "pop up" for specific events then go dark or change to a different event.
Product Terms
Provider Packs
Pre-built EPG feeds for specific IPTV providers.
Example: "Trex Pack" = XMLTV URL that covers all Trex event channels
Features: - Single URL per provider - Covers PPV, ESPN+, league passes, etc. - Tiered pricing: Basic, Plus, Pro
BYO Builder (Bring Your Own)
Custom EPG generation service where users upload their own M3U playlist.
Features: - Upload your M3U/Xtream credentials - System generates personalized XMLTV - Private per-user feed URL - Timezone and duration customization
Clone M3U
An optional M3U playlist that mirrors the user's original but adds stable tvg-ids for perfect EPG mapping.
Purpose: Some M3U files have messy or missing tvg-ids. Clone M3U fixes this.
Example:
- Original: #EXTINF:-1,UFC PPV Channel
- Clone: #EXTINF:-1 tvg-id="ecid:sports:ufc-ppv-main-1",UFC PPV Channel
Core EPG
The base tier offering basic listings.
Includes: - Titles, times, descriptions - Channel logos - Basic categories - Standard XMLTV format
Excludes: - Artwork cards - Countdowns - Event badges - Rich metadata
Premium EPG
The enhanced tier with visual storytelling features.
Adds: - Artwork cards (posters, backdrops) - PPV/event countdowns - Event badges (LIVE, REPLAY, 4K, etc.) - Rich metadata panels (cast, synopsis, ratings)
Technical Terms
Heuristic Parsing
Using pattern matching and rules-of-thumb to extract structured data from unstructured text.
Example: Regex to detect "UFC 309" → league=UFC, event_number=309
Limitations: Brittle, requires maintenance, lower confidence than API data.
Duration Heuristics
Default event durations based on league and stage when exact end time is unknown.
Examples: - UFC PPV Main Card: 4-5 hours - UFC Prelims: 2-3 hours - NBA game: 2.5 hours - NFL game: 3-3.5 hours
Drift
When parsed event time differs from API-validated time by a significant margin.
Threshold: ≥90 minutes = drift
Action: Publish placeholder, retry enrichment, flag for review.
Placeholder Programme
A temporary EPG entry shown when event details are uncertain.
Example: - Title: "Airing Next: UFC 309 (Time TBA)" - Description: "Event scheduled but exact time pending confirmation"
Purpose: Better than no EPG entry; indicates we're tracking the event.
Signed URL
A URL with an HMAC token that prevents unauthorized sharing.
Format: https://epg.epgoat.tv/u/abc123.xml?sig=hmac_token
Purpose: Anti-abuse, device limiting, access control.
Business Terms
Grandfathered Pricing
Policy where existing subscribers keep their original price even if prices increase.
Details: - Active subscribers locked in forever - 30-day grace to re-subscribe at old rate after lapse - Documented in ToS
Lifetime License
A one-time purchase that grants access for the lifetime of the EPGOAT service.
Scope: - Covers core features at time of purchase - Doesn't include future premium add-ons (unless stated) - Clear sunset procedure if service discontinues
Fair Use
Reasonable limits on usage to prevent abuse and sharing.
Limits: - Device slots (e.g., 3-5 devices per account) - Daily IP caps - Client fetch rate limits
Enforcement: Automated detection → throttle, CAPTCHA, or flag account.
Recurring Discount
Platform-level discount for renewing subscriptions.
Rate: 10% off renewals
Implementation: Stripe coupon applied automatically.
Player & Platform Terms
TiviMate
Popular Android IPTV player with excellent EPG support.
IBO Player
Cross-platform IPTV player (Android, iOS, web).
Smarters
IPTV Smarters Pro - widely used IPTV player app.
Kodi
Open-source media center with IPTV plugin support (PVR IPTV Simple Client).
OTT Navigator
Feature-rich IPTV player with advanced EPG features.
IPTVEditor
Web tool for editing M3U playlists and managing EPG mappings.
Data & File Formats
tvg-id
Channel identifier used in M3U files to match EPG data.
Example: tvg-id="ecid:sports:ufc-ppv-main-1"
tvg-name
Human-readable channel name in M3U files.
Channel ID
Unique identifier for a channel in XMLTV format.
Must match tvg-id in M3U for EPG to map correctly.
Related Documentation
- System Architecture - How these concepts fit together
- Product Features - Feature definitions