/StreamsToM3U8

Converts live streams into an M3U8 file and basic EPG. Easily forked and setup for anyone to use!

Primary LanguagePythonMIT LicenseMIT

StreamsToM3U8

This repo automatically converts live streams into a single .m3u8 playlist and keeps them updated. The stream URLs are stored in a text file, which a Python script parses and builds the .m3u8 file from when a GitHub action is triggered (triggered by a cron job). A direct link can then be used to get the playlist, which can then be used in an IPTV app or xTeVe.

With thanks to @victorlish for the original project.

Supported sites

Stream EPG
Y Y
Y Y
Y Y

Usage

  1. Open the streams.txt file.
  2. Add to the file with the following information for each stream:
Channel Name || Channel ID || Category
URL
  • Channel Name - the title of the channel and/or live stream. It will appear in the EPG using this name.
  • Channel ID - a short identifier for the channel. Usually ends in .XX, where XX is the platform - e.g. ExampleStream.yt for YouTube streams, or TestStream.dm for Dailymotion ones.
  • Category - the type of stream. This is used to group the channels in the playlist, so something like 'Music' or 'News' is a good idea.
  • URL - the URL of the stream. It should be the full URL (including "https://www."), and not a shortened version (youtu.be links are not supported)
  1. After saving changes, either wait for the cron job to run (this repo's job runs at 00:00, 03:00, 06:00, 09:00, 12:00, 15:00 and 18:00), or start the LinkGrabber workflow manually (repo > Actions tab > LinkGrabber > Run workflow).

You can also run the program locally by python grabber.py > ./streams.m3u8 or by chmod +x exec_grabber.sh && ./exec_grabber.sh.

  1. The .m3u8 file will be generated again.

Files

  • If you want to use this repo as your source, remember to replace the username in the below URLs:
Link
M3U8 file https://raw.githubusercontent.com/username/StreamsToM3U8/main/streams.m3u8
EPG https://raw.githubusercontent.com/username/StreamsToM3U8/main/epg.xml

Future additions

  • Add in channel icons
  • Rewrite youtubeLink.txt to be a JSON file
  • Support for EPG thumbnails from stream thumbnails
  • Support for TV guides/EPG matching

Contributions and support

Please report the following using Issues:

  • Bugs - such as something within the code breaking
  • Enhancements - such as support for more sites

Please do not:

  • Report broken streams - this isn't a definitive list and is a repository that's designed to be forked!
  • Attempt to make a PR with new streams - for the same reasoning as above

Support

You can find my contact details on my profile page. Please remember that I am a solo developer and will help where I can, but please do not make demands. Reporting an issue/contacting me does not guarantee a solution/response.