---
id: TASK-2
title: Integrate IPTV for live TV (Threadfin + iptv-org + Eleza TV)
status: In Progress
assignee: []
created_date: '2026-02-04 20:56'
updated_date: '2026-04-06 03:18'
labels: []
dependencies: []
priority: high
---

## Description

<!-- SECTION:DESCRIPTION:BEGIN -->
Integrate Eleza TV (https://elezatv.com) as an IPTV source for live sports in Jellyfin. Eleza offers 40,000+ channels with EPG, SD/HD/FHD/4K quality, and 54,000+ VOD titles. Pricing: $69/yr for 1 connection, $96/yr for 2 connections. Need to: subscribe to a plan, get M3U/Xtream Codes credentials, configure Jellyfin Live TV & DVR with the IPTV source, set up EPG guide data, and replace the current Sportsnet-dependent sports button on jefflix.lol.
<!-- SECTION:DESCRIPTION:END -->

## Acceptance Criteria
<!-- AC:BEGIN -->
- [ ] #1 Subscribe to Eleza TV plan (1 or 2 connections)
- [ ] #2 Obtain M3U playlist URL or Xtream Codes API credentials
- [ ] #3 Configure Jellyfin Live TV with Eleza TV IPTV source
- [ ] #4 Set up EPG/TV guide data in Jellyfin
- [ ] #5 Test live sports playback (e.g. NBA, NFL, Premier League)
- [ ] #6 Update jefflix.lol Live Sports button to use new channels
<!-- AC:END -->

## Implementation Notes

<!-- SECTION:NOTES:BEGIN -->
### 2026-03-22: IPTV Infrastructure Deployed
- **Threadfin** container running on Netcup (`/opt/media-server/`)
- Admin UI at `threadfin.jeffemmett.com` via Traefik
- `tv.jefflix.lol` redirect → Jellyfin Live TV section configured
- "Watch Live TV" + "Listen to Music" buttons added to jefflix.lol website
- Using **iptv-org/iptv** (90k+ stars) for community-curated free channel lists

**Still TODO:**
- Configure Threadfin with M3U playlists (English, sports, news channels)
- Add XMLTV EPG source for program guide
- Configure Jellyfin Live TV tuner (M3U → `http://threadfin:34400/auto/v1/m3u`)
- Add Cloudflare DNS CNAME for `tv.jefflix.lol`
- Enable Threadfin web auth
- Test playback end-to-end

### 2026-03-22: IPTV Fully Deployed
**All infrastructure live:**
- Threadfin running at `threadfin.jeffemmett.com` (3,468 streams from iptv-org)
- `tv.jefflix.lol` redirects to Jellyfin Live TV section
- Jellyfin has 3 M3U tuners: English (2,269ch), News, Sports
- 3,468 total Live TV channels available in Jellyfin
- "Watch Live TV" + "Listen to Music" buttons on jefflix.lol website
- Cloudflare DNS + tunnel configured for both subdomains

**Remaining manual tasks:**
- Set up Threadfin web auth (visit threadfin.jeffemmett.com → Settings)
- Map XEPG channels in Threadfin for curated filtered playlist
- EPG guide requires self-hosted iptv-org/epg generator (no pre-built guides available)
- Eleza TV subscription still optional for premium sports content

### 2026-04-06: EPG Guide Fixed - Full 24h Coverage

**Problems identified and fixed:**
1. **Mismatched FAST streams**: 11 channels had FAST/Pluto TV streams but EPG was for real cable channels. Replaced with real tvpass.org HLS feeds.
2. **EPG source overnight gap**: tvpassport.com only covered 10:00+ UTC. Switched 31 channels to tvguide.com/tvtv.us for full 24h coverage.
3. **Stale Jellyfin listing provider**: Old XMLTV provider had cached state causing 6h time shifts. Fixed by deleting and re-creating the provider.

**Changes on Netcup (media-server stack):**
- channels.m3u: Replaced 11 stream URLs with tvpass.org feeds, fixed display names
- channels.xml: Switched 14 US channels to tvguide.com, 17 to tvtv.us, kept tvpassport.com for intl news
- Jellyfin: Deleted old XMLTV listing provider, re-created fresh

**Result:** 40+ channels with correct EPG at any hour, up from 5-6. Fixed remaining 5 broken channels (A&E, E!, FX, Disney Channel, CBS News) by switching from stale tvguide.com site IDs to tvtv.us. All 56 EPG-configured channels now have full 24h guide data.
<!-- SECTION:NOTES:END -->
