Xtream Codes is the API most IPTV providers use. Instead of handing you a long playlist URL, they give you four values: a server address, a port, a username and a password. Sparkle TV takes those four values, pulls your live channels, VOD library and guide data in one go, and keeps them in sync afterwards.
When it works, it is the cleanest way to run the player. When it fails, the error is almost always in how the host and port were split up. This guide shows both halves.
The four fields
Sparkle TV needs the server URL, the port, the username and the password from your provider. Everything else, including the playlist and EPG endpoints, is generated by the app from those four values.
What Xtream Codes actually is
Xtream Codes is a provider-side panel that exposes an API. Your subscription lives there, along with the channel bouquets, the VOD catalogue and the EPG sources. The player authenticates with your username and password and asks the panel for a catalogue.
That has two consequences worth knowing before you start:
- The credentials are the subscription. Anyone with them can watch on their own device, so treat them like a password, not like a channel list.
- The provider controls the data. If the panel returns 500 channels and the guide is empty, the fix is on their side, not in Sparkle TV.
Read your provider’s message correctly
Providers send the same information in wildly different formats. Here is how to map the common ones.
| What the email says | Server URL | Port | Username | Password |
|---|---|---|---|---|
http://example.tv:8080 + user/pass | http://example.tv | 8080 | as given | as given |
example.tv:25461 | example.tv | 25461 | as given | as given |
Full M3U link with get.php?username=... | host part only | port in the link | the username= value | the password= value |
Panel URL like http://example.tv:2095/c/ | http://example.tv | 2095 | as given | as given |
Two rules prevent most failures:
- Do not paste the whole M3U link into the server field. If you see
get.php,player_api.phpor&password=in the address, you are pasting an endpoint, not a server. - Do not duplicate the port. If the URL already ends in
:8080, either leave the port field empty or enter8080once.example.tv:8080:8080will never connect.
Step-by-step setup
- Open Sparkle TV and go to the source settings.
- Choose Add source, then select Xtream Codes as the type.
- Enter a name you will recognise, for example the provider’s name. This is only a label.
- Paste the server URL. Include
http://if the provider gave it, orhttps://if they support TLS. - Enter the port as a number, without a colon.
- Type the username and password exactly. These are case sensitive and often contain symbols.
- Save. The app tests the connection before importing.
- Wait for categories and EPG to arrive, then open a channel to confirm playback.
If the app offers to import the guide automatically, accept it. Xtream sources usually carry their own EPG, so no separate XMLTV URL is needed. Providers with a broken or partial guide can still be paired with an external XMLTV file, which is covered in the M3U and EPG guide.
What a healthy first import looks like
- Categories appear within seconds, then fill in as the app reads each bouquet.
- The channel count matches roughly what your provider promised. A sudden drop to zero means the account is not returning data.
- The guide populates with programme names for the main channels. Some niche channels stay blank because the provider has no data for them.
- VOD and series sections appear if your subscription includes them.
On a slow box, a large import can take several minutes. Leave the app open on the channel list while it finishes; switching screens repeatedly interrupts the process.
Login errors and what they actually mean
| Error or symptom | Cause | What to do |
|---|---|---|
| 401 / invalid username or password | Wrong case, trailing space, or expired subscription | Re-copy the credentials, then check the account with the provider |
| Connection timeout | Wrong port, host offline, or ISP blocking the domain | Try the host in a browser, test another port if the provider lists one |
| SSL / certificate error | https:// used on a server without a valid certificate | Switch to http:// for that provider |
| Connects but zero channels | Account expired, or the panel returns an empty bouquet | Ask the provider to check the line status |
| Channels list but nothing plays | Stream server issue or device network block | Test the same channel in another player |
| Works on phone, fails on TV box | DNS or IPv6 difference between devices | Set a public DNS on the TV device, retry |
When two devices behave differently on the same credentials, the account is fine and the problem is local. That single test saves hours of back-and-forth with support.
Should you use http or https?
Use https when the provider supports it, because your username and password travel in the request. Many panels only offer plain http on a custom port. In that case, understand the trade-off: credentials are not encrypted on the wire, so avoid logging in over public Wi-Fi and never share screenshots that show the host and port together with your username.
If the provider runs on a non-standard port, some routers and ISPs block it. A mobile hotspot test tells you quickly whether the block is at home or upstream.
Keeping the source healthy
- Refresh the source after your provider adds channels. Sparkle TV caches the catalogue, and a refresh picks up new bouquets and VOD titles.
- Do not delete and re-add the source to force a refresh unless the app is genuinely broken. Re-adding loses your favourites and hidden categories.
- Check the expiry date on the provider panel. The most common “it stopped working overnight” case is a subscription that lapsed at midnight.
- Watch for provider migrations. Panels move domains more often than they admit. If the host suddenly stops resolving, ask for the new address before changing anything in the app.
Xtream Codes versus an M3U playlist
Both work in Sparkle TV, and the difference matters for how much maintenance you sign up for.
| Xtream Codes | M3U + XMLTV | |
|---|---|---|
| Setup fields | Host, port, user, password | Playlist URL, guide URL |
| Guide data | Usually included | Must be added separately |
| VOD and series | Included when the panel has them | Depends on the playlist |
| Catch-up | Available when the provider supports it | Available when the playlist carries it |
| Maintenance | Refresh after provider changes | Re-paste URLs when the provider rotates them |
For a normal subscription, Xtream is less work. M3U is the fallback when a provider does not expose the API, or when you are loading a static playlist from your own server.
A note on legality
Sparkle TV is a player with no content of its own. Your provider is responsible for the rights to the channels it streams. Use credentials from a service you are entitled to, and read the site’s disclaimer if you are unsure where the line sits.

Frequently asked questions
Do I need a separate EPG URL for Xtream Codes?
No. The Xtream API returns guide data with the channel list, and Sparkle TV imports it automatically. External XMLTV is only needed when the provider’s own guide is incomplete.
Why does the same login work in another app but not here?
Usually a formatting difference: the host includes a path, or the port is duplicated. Check the table above and enter the four values separately.
Can I add two Xtream sources at once?
Yes, with Sparkle TV Plus. The free tier runs one source at a time.
Is it safe to type my password into Sparkle TV?
The app stores the credentials locally on your device. The bigger risk is sending them over plain http or sharing screenshots, so prefer https and keep the details private.
Provider details in hand?
Follow the illustrated setup guide for the exact field order, or grab the app first if you have not installed it yet.

