Ok but why xsteamity can access to the groups and streams, and m3u4u can generate a playlist file?
Is the documentation contain all necessary informations, I don't know.
Ok but why xsteamity can access to the groups and streams, and m3u4u can generate a playlist file?
Is the documentation contain all necessary informations, I don't know.
why xsteamity can access to the groups and stream
The fact is that the API provides different ways of obtaining certain information... For example, you can get a list of groups, then get a list of channels (broadcasts) in a given group, etc. The method of obtaining an m3u playlist is one of the API functions and may or may not be supported by the provider (at their discretion). To implement such functionality as access to any API, you need to write a separate interface and logic for working with the API... It is much easier to ask the provider to simply enable support for generating a ready-made m3u playlist upon a standard request, which is provided for by this API.
The standard functionality of this API is described below
PARAMETERS :
username --> <user> | ex: Mike
password --> <pwd> | ex: 1234
base_url --> <url> | ex: http://xtreamcode.ex
GET WHOLE STREAMS M3U (get.php) :
Request : <url>/get.php?username=<user>&password=<pwd>&type=m3u_plus&output=ts
Exemple : http://xtreamcode.ex/get.php?username=Mike&password=1234&type=m3u_plus&output=ts
LIVES (player_api.php) :
Get All live streams list :
Request : <url>/player_api.php?username=<user>&password=<pwd>&action=get_live_streams
Exemple : http://xtreamcode.ex/player_api.php?username=Mike&password=1234&action=get_live_streams
Get live categories list :
Request : <url>/player_api.php?username=<user>&password=<pwd>&action=get_live_categories
Exemple : http://xtreamcode.ex/player_api.php?username=Mike&password=1234&action=get_live_categories
Get streams list of a specific live category :
Request : <url>/player_api.php?username=<user>&password=<pwd>&action=get_live_streams&category_id=<X>
Exemple : http://xtreamcode.ex/player_api.php?username=Mike&password=1234&action=get_live_streams&category_id=25
MOVIES (VOD) (player_api.php) :
Get All VOD streams list :
Request : <url>/player_api.php?username=<user>&password=<pwd>&action=get_vod_streams
Exemple : http://xtreamcode.ex/player_api.php?username=Mike&password=1234&action=get_vod_streams
Get VOD categories list :
Request : <url>/player_api.php?username=<user>&password=<pwd>&action=get_vod_categories
Exemple : http://xtreamcode.ex/player_api.php?username=Mike&password=1234&action=get_vod_categories
Get stream list of a specific VOD category :
Request : <url>/player_api.php?username=<user>&password=<pwd>&action=get_vod_streams&category_id=<X>
Exemple : http://xtreamcode.ex/player_api.php?username=Mike&password=1234&action=get_vod_streams&category_id=4526
Get VOD stream infos :
Request : <url>/player_api.php?username=<user>&password=c&action=get_vod_info&vod_id=<X>
Exemple : http://xtreamcode.ex/player_api.php?username=Mike&password=1234&action=get_vod_info&vod_id=999
SERIES (player_api.php) :
Get All serie streams list :
Request : <url>/player_api.php?username=<user>&password=<pwd>&action=get_series
Exemple : <http://xtreamcode.ex/player_api.php?username=Mike&password=1234&action=get_series
Get serie categories list :
Request : <url>/player_api.php?username=<user>&password=<pwd>&action=get_series_categories
Exemple : http://xtreamcode.ex/player_api.php?username=Mike&password=1234&action=get_series_categories
Get streams list of a specific series category :
Request : <url>/player_api.php?username=<user>&password=<pwd>&action=get_series&category_id=<X>
Exemple : http://xtreamcode.ex/player_api.php?username=Mike&password=1234&action=get_series&category_id=214>
Get a serie infos :
Request : <url>/player_api.php?username=<user>&password=<pwd>&action=get_series_info&series=<X>
Exemple : http://xtreamcode.ex/player_api.php?username=Mike&password=1234&action=get_series_info&series=865421
EPG (xmltv.php or player_api.php) :
Get full EPG list for ALL Streams :
Request : <url>/xmltv.php?username=<user>&password=<pwd>
Exemple : http://xtreamcode.ex/xmltv.php?username=Mike&password=1234
Get short EPG for a dedicated live streams :
Request : <url>/player_api.php?username=<user>&password=<pwd>&action=get_short_epg&stream_id=36475
can add &limit=<X> param (default=4)
Exemple : http://xtreamcode.ex/player_api.php?username=Mike&password=1234&action=get_short_epg&stream_id=55555
Get full EPG for a dedicated live stream :
Request : <url>/player_api.php?username=<user>&password=<pwd>&action=get_simple_date_table&stream_id=<X>
Exemple : http://xtreamcode.ex/player_api.php?username=Mike&password=1234&action=get_simple_date_table&stream_id=55555
Display More
xsteamity can access to the groups and streams
I'm not sure... I looked at the source code for this plugin... It generates the link for obtaining the m3u playlist in exactly the same way as described in the API. In any case, you can “stuff” DEBUG output into the code of this plugin and look at the HTTP requests it generates when calling the API (I didn't see this there at all)... There is simply the formation of a link to get the m3u playlist as described above in my post.
The fact is that the API provides different ways of obtaining certain information... For example, you can get a list of groups, then get a list of channels (broadcasts) in a given group, etc. The method of obtaining an m3u playlist is one of the API functions and may or may not be supported by the provider (at their discretion). To implement such functionality as access to any API, you need to write a separate interface and logic for working with the API... It is much easier to ask the provider to simply enable support for generating a ready-made m3u playlist upon a standard request, which is provided for by this API.
The standard functionality of this API is described below
Xtreamity works with every providers, whatever their configurations, I've always used xstreamity with all my providers because there is the informations about the subscription and I never had access problem.
m3u4u works with every providers too.
It is much easier to ask the provider to simply enable support for generating a ready-made m3u playlist upon a standard request, which is provided for by this API.
It's the problem, the provider has forbidden everything since few days except the api to access to the channels and don't want to re-enable a standard download.
xsteamity can access to the groups and streams
I'm not sure... I looked at the source code for this plugin... It generates the link for obtaining the m3u playlist in exactly the same way as described in the API. In any case, you can “stuff” DEBUG output into the code of this plugin and look at the HTTP requests it generates when calling the API (I didn't see this there at all)... There is simply the formation of a link to get the m3u playlist as described above in my post.
You can try my link on xstreamity and you will see that everything works.
Xtreamity works
What User-Agent did you specify in the settings for this playlist? Show me the settings “card” for this playlist
What User-Agent did you specify in the settings for this playlist? Show me the settings “card” for this playlist
Here are the global settings and playlist settings.
Here are the global settings and playlist settings.
This plugin does NOT use the standard link for obtaining an m3u playlist provided by XStreamAPI. It uses a “mechanism” for requesting a list of categories (LiveStreams, Vod, etc.) ... Then it requests links to broadcasts and a list of channels in each of the categories received... This can be implemented, but when will there be time for this nonsense for the sake of one provider who simply disabled the return of the finished m3u playlist in their API
When using links /player_api.php, the response comes in json format and you need to “rake” it and form Enigma2 bouquet files from the received data ... There is nothing complicated about it, but right now I don't have time for it.
Ok, I understand. But with m3u4u the delay to create the playslist is very short. This take maximum 30 seconds for 31 groups and 3320 channels.
But with m3u4u the delay to create the playslist is very short.
Does this utility run on an ARM processor with limited RAM on your receiver? Or do you run it on a multi-core x86 processor on a personal computer or remote server? Can you find the answer to your question yourself, or do you need more hints? When it comes to working with JSON API responses, this will work much faster than direct parsing of m3u, which is essentially a flat text file, unlike JSON. ![]()
jeepcook, This weekend—I can't promise anything, but by the end of next week I'll have a small link analyzer that will automatically detect links in XStream format if it's specified in the plugin settings, and the parser will process JSON responses from the XStream API using /player_api.php requests... In general, it will work quickly =) ... I'll try to make it faster than the “m3u4u” utility, which I'm not familiar with... Nothing is impossible.
But with m3u4u the delay to create the playslist is very short.
Does this utility run on an ARM processor with limited RAM on your receiver? Or do you run it on a multi-core x86 processor on a personal computer or remote server? Can you find the answer to your question yourself, or do you need more hints? When it comes to working with JSON API responses, this will work much faster than direct parsing of m3u, which is essentially a flat text file, unlike JSON.
True, I don't know how this tool run because it's an online server.
jeepcook, This weekend—I can't promise anything, but by the end of next week I'll have a small link analyzer that will automatically detect links in XStream format if it's specified in the plugin settings, and the parser will process JSON responses from the XStream API using /player_api.php requests... In general, it will work quickly =) ... I'll try to make it faster than the “m3u4u” utility, which I'm not familiar with... Nothing is impossible.
You're never one to give up, that's what makes e2m3u2b so complete. Respect ;-)
Thank you for your support.
a small link analyzer that will automatically detect links in XStream
![]()
Hello,
I have another question/issue.
Example, I have a channel named "PRIME| EUROSPORT 1" in a bouquet named "FR| PRIME", this channel is in the sort override in the good group, so "FR| PRIME"
Now a channel with the same name but with a different language or content is added to another groups ("IT| PRIME","NL| PRIME"), it will not be seen as new and doesn't appear in the diff override file because the process consider it already exists in the "FR| PRIME". It's not good because these channels are new.
I did some test and in fact whatever the group a channel is , it is consider as already existing, the check is only on the channel name and tvg id, not in the group name. A control key is missing here I think.
I hope I am clear.
Thanks
A control key is missing here I think.
I don't quite understand what you're doing there, but it seems that you've renamed the same channel several times and placed it in different groups. The control key (hash) for determining the uniqueness of a channel is a combination of the original channel name and the tvg-id value. A renamed channel is not a new channel. The checksum is calculated based on the original channel name, because it is present in the original playlist received from the provider.
I don't quite understand what you're doing there, but it seems that you've renamed the same channel several times and placed it in different groups. The control key (hash) for determining the uniqueness of a channel is a combination of the original channel name and the tvg-id value. A renamed channel is not a new channel. The checksum is calculated based on the original channel name, because it is present in the original playlist received from the provider.
No no, I've renamed nothing. I just have channels with the same name but in different groups. These channels are declinations depending of country, with different language and contents. But they have the same name in the m3u8.
These channels are newly added by the provider. So the logic should be to have these new channels in the diff override file.
The hash is not complete in these case, it should be "Channel name" + "tvg-id" + "group".
. Nothing is impossible.
Снимок экрана 2025-08-30 в 10.29.12.pngСнимок экрана 2025-08-30 в 10.36.13.png
In general, the “framework” and logic are ready and everything works perfectly... but right now it only works for “Live Streams”... Should we add ‘VOD’ and “TV Series” (essentially the same as VOD) to the playlist?
In general, the “framework” and logic are ready and everything works perfectly... but right now it only works for “Live Streams”... Should we add ‘VOD’ and “TV Series” (essentially the same as VOD) to the playlist?
Yes great !! You're a champion !! Only Live streams are necessary. For the others streams, it is necessary to use a third party app otherwise the standard list are unusable given the quantity of streams.
Only Live streams are necessary.
Снимок экрана 2025-08-30 в 16.34.15.png
All done.... already being tested
All done.... already being tested
You did it ! When you'll deliver the final version, I'll promote e2m3u2b near my reseller. I'm sure I'm not alone with this need since few days ;-)
Don’t have an account yet? Register yourself now and be a part of our community!