Question:
Is there any downside to making ALL my Custom Channels MPEG-TS (excluding STRMLINK) ?
Take this as a grain of salt because I'm far from an expert, but my understanding is that HLS tends to be "better" or "cleaner" when dealing with live streaming, but perhaps not as "efficient" as MPEG-TS. Since the Channels Devs think there is a value to maintaining this difference, then I'd stick with it, as well, simply because there's got to be some kind of benefit. I'd also say, just because in one use case HLS streams worked with the MPEG-TS setting, that is no guarantee it will work in all situations. Given that, IMHO, I see no need to add risk.
Thanks.
No
This is not about you. This is about all who read this to prevent them from wasting time by following an outdated documentation.
I just installed the latest SLM via docker and get the folloowing error
ValueError: dict contains fields not in fieldnames: None stderr
04/10/2025 11:02 raise ValueError("dict contains fields not in fieldnames: " stderr
04/10/2025 11:02 File "/usr/local/lib/python3.12/csv.py", line 159, in _dict_to_list stderr
04/10/2025 11:02 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ stderr
04/10/2025 11:02 return self.writer.writerows(map(self._dict_to_list, rowdicts)) stderr
04/10/2025 11:02 File "/usr/local/lib/python3.12/csv.py", line 167, in writerows stderr
04/10/2025 11:02 writer.writerows(rows) stderr
04/10/2025 11:02 File "/app/slm.py", line 10116, in check_and_add_column stderr
04/10/2025 11:02 check_and_add_column(csv_file, 'streaming_service_active', 'On')
I think I see the issue and how to fix it, should have a fix soon.
EDIT: v2025.04.11.1411 has been released with the fix, and some other stuff......
Hi, I'm having trouble adding the m3u link for a HDHR. I can fully access the link myself, and confirmed the link and m3u file are accessible over the network within the docker container, but I get 0 stations. Same outcome using either the full IP or hdhomerun.local.
Just to make sure, have you run Update Station List yet? Because you'll have zero stations until you do. This is essentially the "Import into PLM" function.
Also @rpaulmerrell and everyone else I've lost track of...
Currently as of prerelease v2025.05.22.1726, there is a new feature called Child Station Mappings. As the name implies, you can modify anything about the base loaded stations using testing criteria. However, I have also expanded this functionality to include the ability to automatically assign parents (including making parents) and setting stream format overrides, both of which are especially helpful for rapidly changing m3u's. Full details are available here:
Again, this is only available in prerelease right now because I'd like to get some other people to kick the tires first before moving to a general release. As you can imagine, the the potential possibilities of how you'd want to set this up can be near infinite, and as such I have not been able to verify even a broad batch of scenarios. I'd greatly appreciate some feedback and experiences!
EDIT: This is now available as of v2025.05.26.1617. That said, I'm still in the monitoring game to see if there are any hangups. Otherwise, it's available to everyone now!
Hey I believe this would solve my one request.. my m3u occasionally adds new channels for events (like sporting events) and deletes the channel after the event. I noticed when they do this, I have to hop into PLM and assign the channel.
Would this automation solve this to automatically assign as a parent and push to non gracenote custom source?
**edit - I have it setup to test. I followed the WIKI and believe this is what i'm looking for.
Also just a thought - once these channels delete from my source, do I need to manually prune my channel list to delete them? I suppose no harm leaving?
Yep, no harm in leaving them, just would be dead parents without children. The processing time is almost nothing when it's building playlists, so I wouldn't worry too much. Or you could delete them later at some point. Don't forget that you can filter on a common criteria like "vs" or "@" and then just set the Preferred Playlist to Delete. When you save, it will delete all those parents en masse. Also remember that you have the ability to refresh m3u's in Channels at whatever interval/time you want:
Was going to say this exact example use case is in the Wiki, so you should be all good!
What is the recommended way to handle this situtation? One of my M3U sources provides an XML link, but the XML is missing guide data for a handful of channels. Most of them I setup with Gracenote IDs, but these handful I had to find an alternative XML source (with a URL).
couple thoughts I was going to experiment with:
- Do I just add a second playlist under "Manage Playlists" to add the secondary XML file and duplicate the M3U link from provider?
- I see an option under "internal playlists" but looks like it wouldn't automatically download the XML daily
- do I just go into Channels and manually edit the channel mapping using another XML source?
Maybe it's something simple I'm overlooking too!
Actually, just use a dummy empty m3u, or none at all. You can put some random text in that field and it will fail trying to load stations from it, but that's not an issue. Then, in the parent, add the Guide ID from the secondary XML source.

After that, they'll match up, just like they do for the Gracenote ones.
works perfect, thanks!
*edit - just a suggestion-- might be handy feature for this use case. what if in that "Alternate XML EPG Guide ID (tvg-id) Override" field, a popup would come up with a listing of the XML guide ids that exists in your manual XML data and you could select from that.
not a huge deal of course - just make manually associating channels slightly easier.
Well, the XML guide data doesn't really exist inside of PLM that it can be pulled up on the fly; they are always just called dynamically when needed. However, I can create a report that does this functionality:
This will be made available in the next release!
as always, solid work! thanks for the quick reply. trying to read large EPG XML files is a chore...
just another thought- not sure if it'd ever come up, but how would PLM handle it if there was a duplicate EPG guide id- like "1234" was in both EPG data sources?
While the chances are extremely, extremely low, it'd be bad, m'kay?
As of v2025.06.02.1803, you can now run a scan when updating stations that checks if the child station is HLS, MPEG-TS, or not working at all. This information is then used to later assign each to final playlists (or not at all) appropriately. As you can imagine, this means you no longer need to hunt down and check if a station's stream format is different than its base source playlist (although overrides still take priority); everything will just work in Channels without having to think about it at all! Complete details can be seen on the Wiki here:
Note that if you were already using Check Station Status, you might want to re-evaluate your buffer time with the automation schedule. This process takes somewhat longer than the original version (~30%). I've also opened up an issue to also add "Disabled" to the summary chart on the Final Playlists page, so that should be coming soon.
Special thanks to @eric for helping me understand what Channels is doing in the backend during its own detection process so I could figure out a way to make it happen in PLM.

