1. What the app does with whatever it receives
The app fetches the content at the address and reads it line by line. Lines starting
with #EXTINF are channel descriptions, other lines starting with
# are comments, and every remaining non-empty line is a channel
address. That is what the M3U format says and what every player does.
The consequences for the three symptoms:
- A - 0 channels. The server returned empty content or comments only. Typically: the account expired and the panel returns an empty file, or the address is right but a filter in it (e.g. a category) matches nothing.
- B - channels "#1, #2". The server returned an HTML page (login, "account inactive", a prettified 404) or JSON data. Every line of such a page becomes a nameless "channel" - hence the numbers - whose address is a fragment of HTML. The app does not currently tell an HTML page from a playlist; a deliberate simplification this article states openly, because the symptom is misleading.
- C - HTTP code. The server refused: 401/403 means wrong credentials in the address or a block, 404 a wrong address, 429 a download limit exceeded, 5xx an outage on the provider's side.
2. Checking in a browser
- Copy the list address exactly as you entered it in the app.
- Paste it into a browser on a computer or phone.
- Correct result: the browser downloads a file (or shows text)
starting with
#EXTM3U, with#EXTINFlines and station names below. - Incorrect result: a page with a form, an account notice, a blank page, JSON in curly braces, or an error. That is exactly what the app received.
If the browser shows it correctly and the app does not - refresh the list manually (channel list menu → "Refresh list and EPG"). The app keeps a copy of the list for 12-48 hours and may have stored a response from a moment when the server was down.
3. Common address mistakes
- The panel address instead of the list address.
http://panel.example/is a login page; the list is at something likehttp://panel.example/get.php?username=…&password=…&type=m3u_plus&output=ts. The provider gives you the latter. - A shortened address (bit.ly and the like) - works as long as it leads to the file, but some shorteners insert an interstitial page. Check in a browser.
- Special characters in the password. A password containing
&,#or a space must be encoded in the address (%26,%23,%20). The panel usually gives an already-encoded address - copy it whole, do not retype it. - Credentials for the provider's app. Some providers give separate credentials for their own app (panel username/password) and a separate M3U address. IPappTV does not log in to panels - it needs the ready list address.
4. A list from a file
For a list added from a file, "0 channels" means the file is not an M3U playlist:
empty, in another format (e.g. saved as a Word document or as a JSON export), or given a
.m3u extension on a file that is something else inside. Open it in a text
editor and check the first lines.
5. When it does not help
Write to kontakt@ipapptv.com with what the
browser shows at the address - described, not the address itself. Do not send an address
containing a username and password. If the browser shows an #EXTM3U file and
the app still says "0 channels" after a refresh, include the first 5 lines of the file.
