IPTVShub

Set up an M3U playlist and test one channel at a time

Import the playlist through the playlist screen, then try two authorized entries you can name. The list can load even when one video address fails. Test the guide separately after playback works.

Read the complete guide
StarShare app publisher card
StarShare app publisher card · Reviewed provider artwork

Identify which kind of list you have

The extension alone is a weak clue. An M3U catalogue can list hundreds of channels, each with an entry and an address. An HLS master playlist typically describes renditions of one piece of video, such as the 720p and 1080p variants of a single programme. Open the catalogue with a player that reads lists. Open a publisher’s authorized HLS test address as a single network stream.

If the publisher supplies separate server, username and password fields, look for that setup mode. A login error after entering those fields in a playlist screen tells you little about whether the account itself works.

Test the route on a device you can observe

On a computer, use a supported player with an open-network or playlist function. On the TV, use the player’s documented import route. Keep the address private. A copied playlist can contain the same credentials as the login form, just written into a long path or a query.

Write down what happens in order. An address rejected before any channels appear calls for checking the format, account state or endpoint. A list that opens quickly and contains one failing channel points toward that stream or the player’s handling of its format. Compare a second working channel in the same app before changing the network.

Result from the two-channel testWhat it narrows down
Both entries playThe list and these playback addresses worked on this device.
One entry playsInvestigate the selected channel, rendition or rights for the other item.
Neither entry plays after importCheck the account and test a known supported input through the same player.
The list never opensVerify the input mode and the endpoint through the provider’s documented route.

Add guide data after the picture is stable

An XMLTV file supplies programme descriptions and times. A channel needs to point to the correct guide identifier. Changing player output, buffering or Wi-Fi won’t repair a wrong guide mapping. Choose a channel with a schedule you can check independently. Compare the station edition and the start time before you import the whole guide.

A favourites list with two confirmed stations is a useful reference after an app upgrade. Record the exact label you saw, whether the picture appeared, and one programme time. That small note makes it possible to distinguish a player reset from a problem with one stream later.

The M3U playlist setup handbook

Give the player the smallest list you can recognize. Confirm that the two rows appear, select one authorized item, and come back to the same list after closing the app. Those steps test different parts of the setup. A player can read the labels and still be unable to open their media. It can play both items and still have no programme listings. Knowing which step worked is the quickest way to decide whether to check the file, the media source or the separate guide.

Identify the input the player expects

Start at the input screen on the device you intend to use. Read the full label on the field. A playlist file picker normally wants an existing file the device can read. A remote playlist field wants the address of a list. A player with an Open Network Stream option can use a direct media address for a single test. A provider may instead require its own app, an account pairing step or a supported sign-in form. If your service supplies only one of those methods, check that the chosen app supports it before trying to turn the handover into another format. The service’s setup instructions are the right source for its account inputs. Player and viewing account guide · Check a three-field account setup

What you received A suitable first place to try it What that step proves
A local authorized channel list A documented local M3U import The app can read the file and build its channel rows.
An authorized address for a channel list The app’s remote playlist setting The app can retrieve and interpret the list using that source.
A direct media or HLS address for one item A compatible player’s direct playback field The app can attempt to play that item.
An XMLTV file or guide source The separate EPG setting where supported The app can attempt to load programme data.
Provider account details or a pairing instruction The provider’s supported setup screen The account or device can be enrolled using that method.

Use the model, app name and app version from the device itself. A box connected to a television may supply the home screen you are looking at, and a provider may publish different instructions for the native television app and the box. A format that opens on a computer is a helpful control. It leaves the television’s own import route and supported playback formats to be checked. Kodi’s IPTV Simple add-on documents local and remote M3U setup. VideoLAN documents a direct network stream command for its desktop player. Read the guide for the specific version you installed. Kodi IPTV Simple Client · VideoLAN desktop playback guide

Tell a channel list from an HLS manifest by its contents

An extended M3U channel list commonly begins with #EXTM3U. It can contain an entry line with a channel label, followed by the location for that channel. The next entry describes another selectable item. HLS playlists can start with the same header. In HLS, a master playlist can point to alternative versions of one presentation. A media playlist can point to the segments a player needs to show that presentation. The filename and the header can look familiar while the lines that follow have a different job. HTTP Live Streaming specification

Line or pattern A reasonable interpretation Where you would test it
#EXTINF:-1 with a channel label and optional TV metadata A channel-list entry in a common extended M3U convention The app’s channel-list import screen
#EXT-X-STREAM-INF followed by a playlist location An HLS variant description in a master playlist Direct playback of the authorized HLS presentation in a compatible player
#EXT-X-TARGETDURATION and several duration-and-segment pairs An HLS media playlist Direct playback or the service’s own player
<tv> and programme entries XMLTV listings A separate guide field where the player supports XMLTV
A sign-in or error page saved with a playlist extension A returned page from another part of the service The source and account retrieval step, using the provider’s current instructions

In an HLS media playlist, #EXTINF describes the duration of the following media segment. In many channel lists, a line with the same marker introduces a visible entry and its next line points to that channel’s media. A channel entry can point to an HLS master playlist, so both formats can appear in one working setup. Read just enough to see which level you have. If a file includes HLS markers and segment paths, adding channel groups to it will not turn it into a channel list. Use the player’s documented input for the presentation you intend to open. HLS master and media playlists explained

When you receive a file with the extension .m3u8, ask what the supplier calls it. If the answer is “our channel list,” verify that it has separately named channel rows. If the answer is “one HLS stream,” test it through the compatible media input. The same extension can occur at either level. Similarly, seeing #EXTM3U on the first line confirms a familiar header while leaving the content type to be identified from the entries. Keep both observations in your note rather than renaming the file and testing the new name without a reason.

Walk through a fictional two-channel fixture

Save a new plain-text file called household-check.m3u in a local test folder. Open an ordinary text editor and copy the example below. The domains end in .invalid, which is reserved for examples that should fail to resolve. The addresses do not provide channels or video. The expected result is only a recognizable list of two rows on apps that allow importing before attempting playback. Some apps check addresses during import and will reject the fixture. That response is itself useful information about the app’s workflow. Leave your ordinary setup untouched. Reserved example names

#EXTM3U
#EXTINF:-1 tvg-id="orchard-news-east.fixture" tvg-name="Orchard News East" group-title="Local",Orchard News East
https://media.example.invalid/orchard-east/index.m3u8
#EXTINF:-1 tvg-id="orchard-news-west.fixture" tvg-name="Orchard News West" group-title="Regional",Orchard News West
https://media.example.invalid/orchard-west/index.m3u8

Read it from the top. #EXTM3U identifies the list as extended M3U. Each #EXTINF line gives an entry its label after the comma. In this common live-list example the duration field uses -1. There is no duration you should use to time the news. The next line is the media location for that row. The first row’s name is Orchard News East and its group is Local. The second belongs to Regional. Keep every media line with the row immediately above it. An address accidentally placed below another row can leave one channel pointing at the wrong content even when all the labels still look right.

Part of the fixture What it is used for What to preserve in a working file
#EXTM3U List header The expected first line and any supplier-provided header settings.
#EXTINF:-1 Marker and duration field for this example The format used by the supplier for that row.
tvg-id A guide matching key in players that support it The identifier for the exact feed.
tvg-name A guide-facing name in some implementations The documented name if the app or supplier uses it for matching.
group-title The category in players that use this field The group name or supported convention you mean to keep.
Text after the comma The visible label in the fixture A label someone can recognize on the target device.
Following line The row’s media location The complete authorized address or documented path.

Kodi’s IPTV Simple project documents these fields for that add-on, including tvg-logo for a logo reference and tvg-chno for an assigned channel number. Other players can ignore or interpret optional fields differently. Start with one group per row in a portable test. Confirm the intended field behavior before relying on multi-group membership, channel numbering or logo precedence. When you use a logo field in your own authorized list, use an image you are permitted to reuse and keep its job in perspective. It helps people scan the list. The channel identity should still be verified by its feed key and content. Kodi IPTV Simple supported M3U fields

Use the fixture as a harmless import comparison

If the player supports a disposable list profile, use it and count the rows. Look for two names and two groups. If both names appear in one group or the groups are hidden, write that down instead of changing several tags together. Check the same file in a second supported app if you want to learn whether grouping behavior comes from the first app. Close the test and return to the original profile. If the current app has only one slot and no straightforward rollback, read the fixture in a text editor or use a separate device. The example’s usefulness is in isolating the list structure, so avoid replacing a working household configuration just to see the placeholder names.

In a second fixture copy, you can test how one app responds to a missing media line. Remove only the final placeholder location, keep the untouched two-row file available and import the changed version in the disposable profile. Record whether the app skips West, rejects the file or keeps a row it cannot play. Restore the complete fixture immediately afterward and verify the earlier result returns. There is no need to try more malformed files on the household’s actual player. This single comparison shows how much you can infer when the app displays only one item from a future test list.

If the same fixture shows two rows in one profile and only one in another, check for a group filter before editing the file. Kodi IPTV Simple, for example, documents settings that can load only selected television groups. Record both the profile and the group selection. Select the app’s all-groups view for the comparison when it offers one. A row hidden by a filter still exists in the file and may reappear when the filter changes. Preserve that distinction if you report a missing station after a routine provider update. Kodi group options

Inspect an authorized local file before importing it

Keep the supplied original private and make a separate copy for inspection. Open the copy in a plain-text editor using the editor’s own File menu. A double-click can launch the assigned media player and begin reading the listed locations. When your goal is to inspect text, use the text editor explicitly. Turn on line numbers and look at the first few lines. Confirm the file contains text, the expected header and at least one complete entry. Do the same around the exact row you intend to test. You can recognize most setup problems from this small slice without editing thousands of lines.

Look for a wrapped media location, a row with missing quotation marks or an entry followed immediately by the next #EXTINF line. An editor’s visual word wrap can display a long address across the screen while the file still holds one line. A line number or the editor’s status bar helps you tell the difference. Search for the exact visible label and check the row above and below. If the file arrived through a service portal, confirm you saved the list itself. A file containing a page title, a login prompt or an error message should be retrieved again using the service’s documented method. A filename change leaves those contents in place.

Many editors can save UTF-8 plain text. Use the player or supplier’s instructions if it requires a particular encoding. Test accents in an ordinary label when the household depends on them. A file saved by a word processor can contain rich-text formatting instead of the plain text you saw. If the extension or editor behavior is uncertain, save a separate test copy and check its opening lines. The HLS specification explicitly requires UTF-8 for HLS playlist files. For the IPTV channel list you actually plan to import, verify the installed player’s behavior with the provider’s supplied file. HLS playlist file requirements

When the authorized source uses a relative path, preserve its relationship to the list and check how the intended player resolves it. Moving only the list into another folder can make a previously reachable media item or logo disappear. Keep the source and its needed files together for the trial if that is the documented layout. If the media points to an authorized remote address, use the supplied address exactly for the test. Unfamiliar punctuation can be part of a valid URL. Changing it to make the line look cleaner can change the resource the player requests.

Treat the whole list as private unless you know it was intended for public distribution. A remote playlist can have an account identifier or a token in its location, and a local copy can contain those details on many rows. Diagnostic output can repeat the full media address. For public help, build a short fictional excerpt like the fixture here. Preserve the tag names and general structure. Replace every source, logo and guide address, plus any personal label or value. That gives readers enough to discuss the parser while keeping the working file in the account holder’s control. How to write a playback report

Choose a local copy or the provider’s remote list

A local file makes a good trial when you want to change labels, compare versions or repeat the same two rows tomorrow. The copy stays the same until you replace it. That also means it may become stale if the provider changes the lineup or issues new addresses. Ask whether the provider supports saving and using the list locally. Record when your copy was supplied and what you changed. If you put it on a network share, use a share you control and verify the playback device can reach it. A path that works when a laptop is awake may be unavailable when the television tries to reload the list later in the evening.

A provider-managed remote list can receive changes without your having to edit a local file. The player may fetch it on launch, on a schedule or when you request a refresh. Some apps retain a cached copy. In Kodi IPTV Simple, the release documentation describes remote caching and refresh options, and a separate feature for reloading when a local file changes. Find the setting for your installed version and note which behavior you expect before blaming a missing item on the provider. If the provider says the lineup changed at noon but you still see the previous labels, compare one station added or renamed in that update. Check it after the normal refresh path completes. Kodi playlist and refresh options

Test persistence under the conditions you actually use. With a local list, restart the app while the file sits in its planned folder. With a remote list, let the next normal refresh run and compare one item whose provider label you know. Record the provider’s published update date if available. If you can inspect an authorized local copy of the new list, verify that the changed row is actually present there. When the file is current and the display still looks old, record the name shown in the active player profile. A remembered favourite or cached profile may be displaying a different source from the one you just inspected.

Be careful when combining work. A household can use an authorized remote source for regular viewing and a small local test to check a label change. When the player supports separate profiles, name them by purpose and leave the remote profile’s settings alone. In a single-profile player, write down the prior source and guide before the test. A dated description like “remote source, Orchard East from Local group, guide source supplied by provider” is enough for the handover if the account holder can recover the private address separately. The main question is whether you can return to the earlier setup after the local comparison ends.

Pick names and groups that survive a small TV screen

Choose the part of a label that matters and put it near the beginning. A long provider label can be cut off by the guide or a favourite shelf. If you need both Orchard News editions, “Orchard East” and “Orchard West” make the difference visible early. For a household that uses both a regional feed and a higher-resolution version of the same edition, keep the region in the name and add the format only if it helps someone choose. Keep the supplier’s original label in a private mapping note. If the service changes the feed later, you can find which item your shorter label came from.

An exact duplicate line and a shared brand label are separate cases. Two rows that look identical may be different cities, languages or delivery editions. Read the IDs and check a distinctive live item in each. Two rows may also share a guide key intentionally if they carry the same schedule. A one-hour delayed edition can require a distinct guide even when its image and much of its programming match. Decide which case you have from the actual feed identity, programme evidence and the supplier’s documentation. Start by hiding an unwanted duplicate in the app if supported. That keeps the provider’s source available and lets you reverse the change. Channel and feed directory · Distinguish matching guide names

What the household sees What to check before editing A small reversible change
Two labels read Orchard News Feed ID and a distinctive local bulletin Rename or favourite the intended edition where supported.
One station appears in several groups Whether those are separate rows or one row with multiple memberships Keep a household favourites group while leaving source groups intact.
A renamed row plays the right station but loses its guide Whether the player matches on name, ID or manual mapping Restore the old label, then test an explicit guide assignment if available.
A logo changes after refresh Which image source the player prioritizes Compare the ID and content before changing the logo field.

Change only the part you mean to test. A local copy can keep the media address and tvg-id exactly as supplied while you adjust the visible label and one group. If the app uses the name as a fallback when there is no matching ID, the guide can respond to that rename. After importing the edited copy, play the familiar row, open its guide and verify a neighbouring row. Check a group that was meant to stay intact as well. If the provider refreshes its list automatically, prefer a player-side favourite or supported local customization when you want that choice to persist across updates.

Trial the import on the player that will keep it

Start by recording the active setup. Note the current source name, whether it is a file or address, what guide goes with it and which regular channel proves it works. Keep any access values in the existing private place. If the app offers a second profile or playlist and the plan allows that use, add the test there. On a single-slot app, find the exact steps that restore the old source before saving a change. If you cannot test without losing a usable setup, use a second approved app or device first. End any working playback session before the alternate test where the provider counts concurrent streams. Concurrent stream allowance test

On Kodi, the IPTV Simple add-on documentation distinguishes a local M3U location from a remote location and lists cache and refresh behavior for supported versions. Match those settings to the source you received. A remote list may refresh on a schedule or remain cached depending on the app and configuration. A local file may need to be accessible on the device, even if it was edited somewhere else. If you used a temporary location, reopen the player after copying the test file where it will live. Import success on the computer leaves the box’s own ability to read that location to be verified. Kodi playlist options · Kodi setup walkthrough

Use the fixture first if it answers a question about the parser. Then use two authorized rows from the actual service or a supported sample. Choose one regular channel from the intended market and a second item from a different group where possible. Leave their addresses and playback metadata intact. The first test is whether the expected labels appear. Next, open each item and confirm picture, sound and the edition you recognize. Finally, close the app, reopen the same profile and repeat one item. This confirms that you can find the imported list again after the initial session. If any step fails, keep the earlier success in your notes so you know how far the app got.

Test stage What to record What to do next
List retrieval Source type, expected file and any import message Check path, source instructions and file contents before editing entries.
Rows displayed Count, both labels and groups Inspect the two entry pairs if the list stops early or a label is missing.
One authorized item plays Exact feed, time, picture and sound Compare the second item without changing the player configuration.
Both items play Group selection and the intended station edition Reopen the app and check the list is still available.
Source persists Profile, first familiar channel and expected group Attach the intended programme guide if the service supplies one.

If you have an authorized direct address for one row, use a compatible direct player as a control only when the provider supports that access path. VLC’s desktop Open Network Stream feature can attempt to play a media address. A success gives you one comparison on that device and software. A failure on desktop may be expected if the service requires its own player, account enrollment or playback protection. In those cases use the provider’s supported test. You can also use Apple’s documented HLS sample files to check a compatible player’s handling of that sample. Keep that separate from testing access to your viewing plan. VideoLAN network playback · Apple HLS examples · VLC test guide

Attach programme data as a separate step

Get live playback working first. Once you recognize the station in the player, add the XMLTV guide through the supported guide field or select the provider’s built-in schedule if it offers one. A channel list can carry a guide hint in its header in some implementations. Kodi’s documentation gives an example of x-tvg-url and describes when the add-on uses it. The player may also have a separate guide source with its own precedence. Use one intended guide during the first comparison, and record where the setting came from. Kodi IPTV Simple guide settings

Find the channel key used by the player and a programme linked to that key in the guide. The fixture’s Orchard News East row uses orchard-news-east.fixture. A real XMLTV source might contain a channel with a similar label and a different key. Choose the key for the exact feed and verify it using one distinctive listing. If both rows import and play while only one lacks guide data, inspect that row’s mapping and the time coverage of the supplied guide. If every row is blank, check whether the guide was loaded and whether it contains entries for the day you are viewing. Changing media addresses to repair a guide mapping can lose an otherwise working picture. XMLTV specification · Match playlist and XMLTV IDs · Diagnose an empty guide

When the two fictional Orchard rows have recognizable schedules, compare one unique programme on each. A live edition and its schedule may share a national title, so choose a local segment or the slot that immediately follows it. A correct time and a wrong local title suggest the assigned edition still needs checking. A correct title with a consistent time shift invites a time-zone comparison instead. Keep the label change, guide assignment and clock adjustment as individual actions. That makes it clear which step changed the evidence. Programme guide handbook

Read the smallest useful failure

When the app reports an empty list, look first at the source retrieval and how it read the file. If some channels appear, inspect the first absent or unexpected row and its neighbours. Check whether an entry line was copied without its next address, whether the app grouped the row elsewhere or whether the missing item is hidden by the active filter. A test with only that row and a working neighbour is easier to trace than a full-list replacement. If the app requires a refresh to apply source changes, do one supported refresh and reopen the same group before editing the row again.

If the rows are visible and one fails to play, try another authorized item in the same list. Record whether the failure happened before picture, after playback began or when a feature such as replay was selected. If all entries fail, verify that the provider supports this app, the account can still open its own supported service and the player recognizes the incoming media. Android’s Media3 HLS documentation, for example, distinguishes HLS support from support for the contained audio and video formats. Browser and television behavior can differ. If one device works, save that as a control and keep the app versions with both results. Android HLS formats · Browser format comparison · When an account works on one device

Result Evidence worth keeping Next comparison
Remote list is empty and the local fixture shows two rows App version, source type and exact import message Confirm the provider’s current list route and whether the returned file contains channel rows.
Both rows display, only East plays East success, West error, app version and test time Check West through the provider’s supported player and confirm its feed identity.
Both rows play, their guide is blank One working programme and the saved EPG source type Inspect guide retrieval, date coverage and a known channel key.
Both play until the app restarts Profile, source type and whether the list remains selected Confirm saved configuration, cache behavior and whether the device can still reach the source.
Renamed entry goes to a different programme The old and new labels, guide ID and preserved order of entries Restore the known-good copy and compare the two row-and-address pairs privately.

Keep one comparison for the next lineup change

Suppose the household usually watches Orchard News East. One evening it still appears in a favourite, but the new provider list labels it “Orchard North and East.” The older list used the group Local. The current app shows the item under News. Confirm the region and a distinctive programme in the new row first. Then test whether the favourite follows the provider’s change or still points to an earlier saved entry. Both can be visible in the same app. Write down the path to each so the support team can distinguish a stale favourite from the current provider group. If both play the same verified feed, keep the easier route and record the full new label in the setup note.

For a managed household or small organization, assign one person to maintain the working configuration and ask them to record a small baseline. Useful fields are the app version, provider source type, two control labels, the groups where they are found and the last date the controls worked. If the provider publishes a notice that one of the controls moved, choose a second control that did not move. Check both after importing or refreshing. The record should help the next person decide whether the fault follows one item, one source or one app. A list of every channel name adds less value than a few well-chosen examples.

When a change affects a shared television, test it on the screen before asking others to use it. Let a regular viewer find one programme from the home screen and reopen it after returning from another app. Check whether the group and the existing favourites still make sense. If a new playlist causes the guide to use another source, restore the working guide and move that comparison to its own session. This is a practical checkpoint for a new format, a provider lineup update or a replacement device. Write the date of the switch and the known-good path in a private note someone else can read. Household setup handbook

Roll back without losing the result of the trial

Return to the saved source in the same place where you selected the test. When the app has separate profiles, open the prior one and verify that its correct guide or favourites are still active. On a single-slot player, restore the old path or provider connection using your private record. Restore an associated guide setting separately if the trial changed it. Reopen one familiar channel and its next scheduled programme. Keep a short record of the trial file or configuration, the change tested and the outcome. The public version of the record can say “local list with two groups displayed correctly” while the source addresses stay private.

Do this before removing any temporary copy. A test result can disappear when you forget which edition, group or file version was used. Save a version name and a date in the private record. If one improvement worked, such as showing region names earlier in the labels, apply just that change to a fresh copy of the known-good setup. Repeat the same three checks. A playable station, its expected guide and an untouched neighbouring entry give a compact baseline for the next update. Then verify the same result after a normal app restart or supported refresh. Transfer a working guide between players

If you need support, lead with the exact stage and a control. For example, “The local fixture displayed both labels. The authorized remote list imports two channels. On the television app, East plays and West shows an error immediately. West plays in the provider’s supported phone app when the television session is closed.” Add versions, the public feed names, the time of the comparison and whether the intended guide loads. Keep the file, source and account values off the public forum. Use a fictional excerpt for a parsing question and ask the provider what it needs through its private route. Setup forum · Playback troubleshooting