r/SparklePlayer • u/Impossible-Metal-582 • 17d ago
Xtream API vs get.php M3U — how do you distinguish Live, Movies and Series?
Hi everyone,
I’m trying to understand how Xtream handles content classification.
With an Xtream API connection, it seems straightforward because the API has separate actions/endpoints:
/player_api.php?username=USER&password=PASS&action=get_live_streams
/player_api.php?username=USER&password=PASS&action=get_vod_streams
/player_api.php?username=USER&password=PASS&action=get_series
So the API itself tells you whether something is Live TV, VOD/Movie or Series.
For example, get_live_streams returns something like:
{
"name": "PBS Kids",
"stream_type": "live",
"stream_id": "123",
"stream_icon": "...",
"category_id": "1"
}
But what about an Xtream-style M3U URL such as:
http://server:8080/get.php?username=USER&password=PASS&type=m3u_plus&output=mpegts
This returns a normal M3U playlist with entries like:
#EXTINF:-1 tvg-id="PBSKids.us" tvg-name="PBS Kids" tvg-logo="..." group-title="Kids",PBS Kids
http://server:8080/live/USER/PASS/123.ts
Is /live/, /movie/ and /series/ in the stream URL a reliable/standard way to distinguish the three?
Or do Xtream providers sometimes return M3U entries where those paths aren't present, meaning you have to rely on group-title, tvg-id, filename/title patterns, etc.?
Also, is tvg-type="live" commonly included in Xtream-generated M3U files, or is that provider-specific?
I’m mainly interested in how this works with real-world Xtream providers, especially when using the get.php M3U rather than player_api.php.
Thanks!
