Dockerized M3U/EPG File Checker Project Help

I have been working on a M3U/EPG checker that is Channels DVR specific. I could use some help testing and to determine which features need tweaking and which ones need to be added to improve it before I release it. I'll post in here again when I have it ready for testing. Thanks. Here is a rough overview that is based on my understanding of the Channels DVR documentation:

This script is a Dockerized M3U/EPG File Checker designed to help users validate and troubleshoot their M3U playlists and XMLTV EPG (Electronic Program Guide) files, especially for use with Channels DVR.

What it does:

  • File Uploads & URL Fetching: Users can either upload their M3U and EPG files directly or provide public URLs for the script to fetch the content.
  • M3U Playlist Analysis: It parses your M3U file to identify issues like:
    • Malformed channel entries (e.g., missing stream URLs).
    • Missing or duplicate tvg-id, tvg-name, or group-title attributes.
    • Potentially non-optimal stream URL formats (not HLS or MPEG-TS, which Channels DVR prefers).
    • Excessive channel count that might impact Channels DVR performance.
  • EPG XMLTV Analysis: It checks your EPG file for errors such as:
    • Invalid XML structure.
    • Missing channel id or duplicate IDs.
    • Missing display-name for channels.
    • Incorrect time formats or overlapping program times.
    • Missing crucial program details like title, description, series-id, and episode-num, which are vital for Channels DVR's DVR features.
  • M3U/EPG Compatibility & Channels DVR Advice: This is a key feature. It cross-references your M3U and EPG data to ensure:
    • tvg-id in M3U accurately matches id in EPG, which is critical for Channels DVR to link streams to guide data.
    • It highlights EPG data that has no corresponding M3U channel, and vice-versa.
    • It provides general advice and best practices tailored to Channels DVR's requirements and common setup pitfalls, including a note that an external EPG file isn't strictly necessary if your M3U utilizes Gracenote IDs.
  • User-Friendly Interface: All results are displayed in a clear, categorized format, distinguishing between errors, warnings, and suggestions. Detailed analyses of individual files are collapsible to keep the most important compatibility advice at the forefront.

In short, it acts as a pre-flight checker for your Channels DVR setup, helping you identify and fix common M3U and EPG issues before they cause problems in your DVR.

This would be neat

1 Like

Sounds great, happy to give it a whirl.

I just have a few more tweaks on the repair m3u function and a couple of css related issues to address. Hopefully early next week it will be ready for testing. Thanks.

I have to walk away from this for a few days. It is frustrating me beyond belief. Many functions are working correctly, only a few issues are being a booger to track down. If anyone wants to play around with it, have at it.

This is something I could probably look into putting into PLM directly, if you don't mind. Several of the functions already exists, like automatically determining the stream format (HLS vs. MPEG-TS), fixing and overriding any malform issues in the m3u and XML guide (including being able to match misaligned guide data), handling making sure playlists do not pass the Channels maximum, and a lot more behind the scenes fun (like rule-based fixes and assignments)!

I'm not sure it would offer anything you don't already have. If you want to include it, you are more than welcome to. It was more of a learning experience for me to test some things out.

Oh, it would, there's some unique and really interesting ideas in there! I'll look into working on this at some point in the future:

Don't know if this is outside the scope of the project, but it would be nice to have it check the playlist streams to see if any are DRM encumbered and so not CDVR compatible.

You'd need to be able to download or access the manifest file from a given URL to reliably determine if it was DRM protected. I'll look into it tomorrow if work is slow and try to come up with a way to do a check and either add it to this project or make another one.

1 Like

Besides, a manifest file can hold a bunch of fun info about a stream. It would be a cool thing to list all the info available about it in an easy to read format.

1 Like

Thanks for considering. Those two things would make it a tool I would use :smile:

1 Like

I looked at making a docker container for taking a M3U playlist and scanning it for the info, but it would be a very large image for such a simple task and it would take a long time to scan and return the info for even a small M3U. I made an interactive Shell script that can scan a single m3u8 link and return the information and it does it fast. Do you mostly use Linux for things like this or do you need a PowerShell script of Windows?

Thank You.
I'll try out the bash script.

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.