TV Channels Open Database

by salimrahmanii

I'm thinking about building an https://thetvdb.com/ / http://www.omdbapi.com/ like project hoping it will unify iptv channels and epg metadata. hit me up if you want to contribute.

cgomesu

an api for epg data? a db of free and open iptv channels? what are you planning on doing exactly? have you done something similar before? what platform are you going to use?

look, I think there are many interesting things that can be done to improve the current state of iptv but if you want people to help you (and assuming it's only for the fun of it and maybe portfolio), you gonna need to show how committed you are first. make a git repo for your project, start coding, get a demo/poc running maybe in a few weeks, and then come back to show us your project.

salimrahmanii

Hi guys,

thanks for your reply.

there's a reason why i posted this on reddit before starting a git repo. I wanted to explain well the project, get your feedback, and then start implemeting it. and have, hopefully, people contributing to it.

The main idea is to have a referential tv channels list with the "most accurate" information.

Currently, when you get an .m3u file from an iptv provider, you realize that the "tvg-id" is written differently from one provider to another. This makes it hard to match it easily with epg providers.

The current way of doing it is to manually edit the m3u to match with the channel id in the xmltv file. This is time consuming, and makes it hard for people to change an epg providers.

What if we provide a universal Id of tv channels so that all iptv providers name their streams with the correct tvg-id and epg providers aswell.

For instance, if we take MTV Channel in this open database project, would have the following:

tvg-id: mtv.us

tvg-name: MTV

country: USA

official logos.

I'll make sure that each contributors provide the source from where he/she got the information. Like official website, etc...

We'll pay attention to every detail.

I got the inspiration from the rytec way of doing it but we can define a naming convention that works for all tv channels that exist in the world.

Please note, that the project will not provide any iptv streams.

m7e2

What if we provide a universal Id of tv channels so that all iptv providers name their streams with the correct tvg-id and epg providers as well.

Some will cooperate, but many will not: There are many free IPTV streams which you can find EPG data for somewhere else online, but the stream provider fails to provide channel metadata in the M3U file. (One example is news channels which are found on cable or satellite but are also available as free IPTV streams online.) So instead of asking providers to cooperate, you need to become a provider (not a provider of streams, but a provider of stream links & channel metadata):

You basically need to build a web server that runs a channel database service, and this is where you would apply the "universal ID". Each channel record in the database would contain a list of stream URL's and EPG sources for that channel, including the format of each EPG source (HTML or XML), which corresponds to one or more import filter tasks that are web-site specific. Since XML is the standard format for EPG data, any EPG data source which is not XML must be converted to XML through a separate filter task for each site where EPG data can be found. Where multiple EPG sources are available for the same channel, you would want to devise a fail-over mechanism in case one source breaks.

There is a lot of free EPG data online, but none of it is combined with stream links. Some web sites publish EPG data in HTML or XML for just one channel. Others have many channels on a single web page or XML file. You will need to import all of this to your server and distinguish the difference in each applicable record of the channel database (so you can build a master EPG once per day instead of fetching & filtering HTML pages repeatedly on demand for every subscriber request.) Experience writing EPG grabbers for TV Headend would be helpful in this context. We already have grabbers for various EPG sources but some are written in Python and some are in Perl. Others are platform specific, like batch files or apps for Windows. 🤮 No one has built a dedicated app or web service to manage all of these grabbers, and there is no single project site where all of them can be found. The missing piece of the puzzle is the lack of a standardized application framework and central repository for EPG grabbers. Where grabbers are concerned it is best to stick with one development environment - and if you are going to do that, Python is the logical choice.

When your clients query the server for a list of favorite channels, they will receive M3U/XML data. Subscribers will import this data to a client app or a local service in their home such as TV Headend (which mirrors any duplicate IPTV streams to local LAN clients to conserve bandwidth on the WAN link.) To minimize the load on your EPG server, you therefore need to support user accounts with favorite channel lists, since your clients will not be downloading all of the EPG data which your server has collected from various web sites. There are many web sites that will do this for stream links or EPG data, but none will do it for both . If you do not want to implement this as a public service, the EPG builder engine could run on a home server. (I know you can run TV Headend in a Docker container so maybe this could do likewise. That would make it easier to migrate the service to different hosting platforms. You can even run Docker on a Raspberry Pi or home NAS devices, and a home version of the service is definitely feasible if you do not need EPG data for thousands of channels.)

If you understand how TV Headend works -- you need an EPG collector which combines EPG data from various web sites the same way that TV Headend integrates video streams from multiple network topologies (ATSC/DVB/IPTV). If you can translate the available EPG data for all of your favorite IPTV channels into XML/M3U format, TV Headend can integrate this with terrestrial & satellite broadcast sources for one seamless experience -- there would no longer be any need to switch apps or devices if you want an EPG which supports multiple transport mechanisms. It surprises me that this has not already been done, since it is not an extremely difficult technical problem for an experienced database programmer or full stack web developer to solve -- it's more of a project management problem. If you can create some kind of standardized application framework for EPG grabbers and separate the problem into specific identifiable tasks, there are plenty of people who would contribute to various aspects of the project.

There are many free IPTV channels that wish to increase their audience size, and they would be more likely to contribute code or provide their EPG data in XML format for your server to fetch. Another thing to consider is the old saying "if you build it, they will come." In other words, if you are the first to build a directory of free IPTV channels with EPG data, many viewers & IPTV stream providers will start using it, and then more developers will support it. There are some related projects where you may find people who are interested in working on this: https://ccloudtv.org and www.radio-browser.info . Radio Browser has a Github project site for its apps & server, but even though there is no program guide and it only supports radio streams at the present time, there are already some ~50 apps & libraries which support this service! You can expect a similar response if you accomplish the same for free IPTV streams as Radio Browser has done for free audio streams.

traviscd79

Tell me more is it an IPTV service?