Skip to content

Xtream Codes

Iain Smith edited this page Aug 28, 2026 · 1 revision

Xtream Codes

Instead of an M3U URL, URL can be a direct login to an Xtream Codes panel:

tvdinner 'xtream://username:password@host:port'

Use xtreams:// instead of xtream:// if the panel is served over https.

What you get

tvdinner logs in, fetches the live channel list (each panel category becomes a channel group, same as an M3U group-title), and points EPG loading straight at the panel's own XMLTV export (xmltv.php) — no --epg needed. From there, everything works exactly as it does for a plain M3U playlist: the program guide, favorites, per-channel EPG shifts, recording, and scheduling need zero Xtream-specific handling.

Live stream URLs default to a .ts container. If your panel needs .m3u8 instead, add it as a query parameter:

tvdinner 'xtream://myuser:mypass@panel.example.com:8080?output=m3u8'

VOD

Unlike a plain M3U playlist, an Xtream panel exposes movies through its own dedicated VOD API, so tvdinner always browses it that way — there's no --vod-group equivalent needed or supported here. See VOD Browsing & Resume.

Credentials

Like an M3U URL that happens to embed credentials in its query string, an xtream:// URL's username and password are stored as plain text wherever the source URL itself is stored — a saved bookmark's bookmarks.json, favorites.json (keyed by feed), and inside a tvdinner backup archive. They're never written to the log file, which always shows a redacted user:***@host form instead.

Everything else

Clone this wiki locally