Basis
Compare Xtream Codes players

Choosing a fast Xtream Codes player

Every player claims to be fast. Almost none of them say what they mean by it, and with a large catalog the word usually turns out to mean three separate things.

Basis is a player, not a provider. It hosts and sells no channels, movies or series.

Basis is a player, not a provider. It hosts and sells no channels, movies or series. This page is about the software, and it assumes you already have an Xtream Codes login from a service you pay for.

What Xtream Codes actually is

Xtream Codes is the HTTP API that most IPTV panels expose. You give a player three things, a server address, a username and a password, and the panel answers with JSON: the category list, the streams in each category, and usually a guide. It is the reason a single login can fill an app with live channels, films and series without you pasting anything else.

The alternative is an M3U playlist, which is a flat text file of stream URLs. The two overlap more than people expect: a great many M3U URLs have the Xtream Codes username and password embedded in the query string. Basis detects that and connects as an Xtream Codes login instead, which is worth knowing because the API route gives you proper categories and series detail pages while a flat playlist does not.

One thing that trips people up: Basis takes an M3U URL, not an M3U file. There is no local file picker in the app today. If all you have is a downloaded .m3u on a USB stick, you will need a hosted URL from your provider first.

What people mean by a fast IPTV player

When someone says a player is slow with an Xtream Codes panel, they almost always mean one of these three, and the fixes are unrelated:

What feels slow What is actually happening What fixes it
The first load after signing in The panel is sending tens of thousands of rows and the player is decoding all of them before drawing anything Streaming the response to storage in chunks instead of building one giant list in memory
Scrolling once you are in Poster images and the row data are competing for a heap that is capped near 96 MB on a cheap box A hard cap on the image cache, and reading rows from disk rather than holding the catalog resident
Channel changes and stalls mid stream The provider dropped the connection, or the device's hardware decoder refused the format Reconnecting and remuxing automatically, and falling back to a software decoder rather than showing an error

Only the third of these has anything to do with your internet connection, which is why upgrading your broadband so often fails to fix a slow player.

How Basis handles a large panel

The catalog is streamed into a local database as it arrives rather than parsed into memory first, and the app reads rows back from disk instead of keeping the catalog resident. The numbers below come from tests committed in the app's repository, each recording the device it ran on:

180,000
Rows in a single section, taken in end to end without that section ever being held in memory at once.
34 MB
Peak heap while taking in a guide of 20,000 channels and 400,000 programmes. The same job peaked at 189 MB before the streaming parser.
15 MB
What a 93,000 row catalog occupies while you browse it, against a 48 MB budget.

M3U playlists get the same treatment from the other direction: rows are written in batches of 2,000 rather than assembled into one list, and on a device Android reports as low RAM the database drops to a journal mode that avoids holding a second copy of the write.

The second half of the problem: finding one thing in it

Streaming the catalog to disk fixes the half of this the device owns. It does nothing about the other half, which is that a panel arrives organised the way your provider chose to file it. Xtream Codes categories are whatever the panel operator typed into a field, so a large login can hand you a list long enough that several entries mean much the same thing, and a title that could reasonably sit in any of them.

Basis AI is the way past that. You type the sentence you would say out loud, and it works out what you meant, then finds the matches in the catalog already on your device. It searches the movies and series your panel gave you rather than the internet, so everything it returns is something the login you already pay for can actually play. It is search rather than recommendation: nothing is put in front of you that you did not ask for, and it does not build a picture of what you watch.

One consequence of the design worth stating plainly on a page about a panel: your catalog is never uploaded to be searched. The sentence goes to the model, the model returns a plan for what to look for, and the matching happens on the device against rows that never left it.

Basis AI is a Pro feature in the phone and tablet interface, with a daily allowance per account. The Android TV interface has the ordinary keyword search box. And it searches movies and series only: a live channel is a feed rather than a title, so finding one by name stays the plain search box's job, which is genuinely better at it.

Why there is no startup time on this page

You will find pages ranking for this query that quote a launch time to two decimal places. Basis has the harness to produce one, a macrobenchmark that runs ten cold starts and reports time to initial and full display, and an ahead of time compilation profile generated from it that ships inside the app. What it does not have is a published result, because a startup number is worthless unless you also publish the device, the catalog size, the provider and the network, and any figure quoted without those is decoration.

So this page quotes memory instead. Memory is the thing that actually decides whether a cheap box stays responsive, it is measured on named hardware, and each figure traces to a test you could run yourself.

Where Basis is not the right choice

  • You need to replay a programme that already aired out of your provider's archive. Basis reads those fields and plays nothing from them.
  • You need recording. It does not exist in the app.
  • You need parental controls.
  • You are on an Amazon streaming stick. Fire OS is not a tested target and the downloads page lists it as planned.
  • You want it from an app store. Basis is a direct download today.

Questions people ask

Does Basis support the Xtream Codes API?

Yes. The connect screen has two tabs, one for an Xtream Codes login taking server, username and password, and one for an M3U playlist URL.

My M3U URL has my username and password in it. Which should I use?

Paste it into the M3U field and Basis will notice the embedded credentials and connect over the Xtream Codes API instead. That is the better of the two routes, because the API returns real categories and series detail rather than a flat list.

Can I save more than one provider?

Yes, you can save several and switch between them without signing out. One is active at a time, and switching clears the previous provider's catalog so the two never mix.

Where does the guide come from?

From the panel when it sends one. When it does not, you can give Basis an external XMLTV guide URL at connect time and it will use that.

What is Basis AI search?

A way to search a large panel by describing what you want instead of picking your way down a category list somebody else named. Your sentence goes to the model, what comes back is a description of what to look for, and the looking happens on the device against the movies and series your panel gave you. It does not search the internet, it does not recommend, and your catalog is never uploaded. It is a Pro feature in the phone and tablet interface and it has a daily limit per account.

Does Basis work without an IPTV subscription?

No. It ships with no server addresses and no credentials and has nothing to show until you supply your own.

Is this available on iPhone or Mac?

Not as a public download today. Android, including Android TV, is the build that ships. The downloads page is the honest status of every platform.