DaddyLive, PlutoTV, XUMO, M3U/XMLTV, SamsungTV, Plex, TVGuide interfaces (appliance)
Added by G Kazaroth almost 3 years ago
Cabernet for (Cable Network) version 0.9.12 (4/13/2023)
TVGuide, DaddyLive, PlutoTV, XUMO, M3U/XMLTV, SamsungTV, Plex¶
Provides a configurable interface from providers to TVHeadend.
- Direct streaming plugins for DaddyLive, PlutoTV, XUMO
- EPG supplemented using TVGuide.com data
- M3U Plugin provides channels for: SamsungTVPlus, Plex, PBS, Stirr, and others
- From: https://i.mjh.nz/
- Import your own M3U file
https://github.com/cabernetwork/cabernet/releases
Purpose is to get a service that will take the DaddyLive, PlutoTV or XUMO server stream, clean it and feed it into TVHeadend and other DVRs (Also tested on Emby, JellyFin and Plex). Also it runs on Linux, Windows as a service and Docker. Windows has a installer. Once installed, setup is easy with TVHeadend. Also includes a TVGuide.com plugin to obtain TVGuide data.
1) Setup the automatic IPTV network (recommend new URL is http://[host]:6077/PlutoTV/channels.m3u)
Make sure to set the "Maximum # input streams". PlutoTV is set to a max of 4 and tvheadend uses 2 per tuner during initial screening. Doing a force scan will create the mux and service values. Also, turn View level to Advanced and set the Re-fetch period (mins) to a very large number. TVheadend has a tenancy to cause issues when channels change (Changed Services will not be mapped to channels). The Maximum Timeout is used to wait for a reply during a Forced scan. Recommend keep this low, like 15-20 seconds. Some of the channels may fail, but it is faster than having a high setting and waiting for all channels to scan. Just individually rescan those that failed by setting each mux back to PEND from IDLE.
2) Next you can setup the grabber. I use a URL grabber written in Unix bash and is an extremely small file. It can be found in the github repo at
https://github.com/cabernetwork/cabernet/tree/master/lib/tvheadend/service/Unix called tv_grab_url
Place the grabber file in the same location as the other TVHeadend tv_grab* files, change the permissions to executable and restart TVHeadend. This should allow TVHeadend to pickup the new grabber. While in the grabber list, make sure and disable any OTA grabbers. Stations no longer send this information and will only cause TVHeadend to use a tuner for scanning. Displaying the log window by clicking the three ^ in the bottom right is helpful at this time.
Have the grabber run and populate the EPG data into the EPG Grabber Channels tab. The log should show a quantity of channels were detected.
Pop over to the EPG Grabber tab and disable the OTA grabber cron. Also, update/replace the Internal grabber cron schedule using something like below. The example will pull the TV guide at 6:04am and 5:52pm. Add more if you need. It is recommended to use static cron times.
4 6 * * * 52 17 * * *
3) In the Channel view, select Map all channels.

This will tie the services, EPG and channels together, automatically. After this, re-grab the EPG data. This will populate the EPG tab with shows. For TVH version 4.3, the Number column will auto-populate. For TVH 4.2, you will need to manually add channel numbers.
4) Display the TVGUIDE. This appliance has special features which maps the tvheadend genre, giving colors on tvguides. It also has enhanced guide descriptions and optional additional channel notations if you use many streams. Below is the Kodi tvguide using the pvr.hts plugin.

For Kodi, go to the settings for PVR and turn on the General setting "Use channel numbers from backend".
Replies (915)
RE: PlutoTV, USTVGO, XUMO, M3U/XMLTV, SamsungTV, Plex interfaces (appliance)
-
Added by john tocher over 1 year ago
Tekno M maybe less time explaining how I don't understand and more time explaining what you are doing. I see in your config.ini that you are taking the output from nextpvr as an input to cabernet. I don't get what you are trying to do and I mentioned it already. I get how frustrating troubleshooting is but being snarky with people trying to help is not very productive. Good luck.
RE: PlutoTV, USTVGO, XUMO, M3U/XMLTV, SamsungTV, Plex interfaces (appliance)
-
Added by Tekno M over 1 year ago
John Toucher,
YOU STILL DO NOT UNDERSTAND THAT IS NOT A NEXT PVR INPUT?
It only uses the NextPVR web server is all the file does not originate from NextPVR . Read my previous post the Paragraph that starts with "Port 8866", then stop denying my problem and APOLOGIZE.
NextPVR V5 is INCAPABLE of producing an M3u file as I read in their forums
YOU NEED TO SPEND MORE TIME READING BEFORE REPLYING AND STOP MAKING ASSUMPTIONS
RE: PlutoTV, USTVGO, XUMO, M3U/XMLTV, SamsungTV, Plex interfaces (appliance)
-
Added by john tocher over 1 year ago
No, I don't understand. And you have been failing to shed any light on it. I have asked you about it several times now. From YOUR config.ini as posted by you:
[m3u_default]
label = M3U Instance
channel-m3u_file = http://127.0.0.1:8866/playlists/my.m3u
channel-m3u_file_type = m3u
channel-start_ch_num = 50
epg-xmltv_file = http://127.0.0.1:8866/my.xml
epg-xmltv_file_type = xml
player-stream_type = m3u8redirect
Why are you using 127.0.0.1? What are you trying to do? I know, instead of answering my question, let's play another round of how I don't understand.
RE: PlutoTV, USTVGO, XUMO, M3U/XMLTV, SamsungTV, Plex interfaces (appliance)
-
Added by Tekno M over 1 year ago
There is a web server running already (yes from next PVR) at that port:IP . I only use that existing web server to deliver my custom XML (from a completely unrelated app, not cabernet not next PVR) file to cabernet. It only takes advantage of the Next PVR web server already running on that port. I do not feel obligated to explain to you YET AGAIN what I have already adequately explained (like 3 times now), other than say this is NOT an m3u generated by NextPVR . It only uses the Web server of nextPVR . If you can not understand that then clearly the rest of this is above above your pay grade.
Or is it that you do not understand that 127.0.0.1 is an IP for localhost?
Just take my word for it then it is not an m3u , nor xml generated by nextPVR
You are not offering help you keep asking the same thing and making me explain again and again to compensate for your misunderstanding of what it is all about.
You still have not even tried the ONE THING I asked if you could do.
RE: PlutoTV, USTVGO, XUMO, M3U/XMLTV, SamsungTV, Plex interfaces (appliance)
-
Added by john tocher over 1 year ago
Seems like you are using cabernet (trying to use) in a way that (as far as I can tell) nobody else here is doing. Apparently you have written a script that allows you to get friendly tv. Then you are feeding it to cabernet using the web server that is part of nextpvr.
I am not sure if you are using tvheadend or not. Myself, I setup another instance of tvheadend to help me test various things without impacting my working setup. No matter what I tried I could not get it to scan. I don't know but I do understand frustration with tvheadend. It's not for most people and I think because there is a tendency to just be done with it after getting things working there is not as much documentation as there could be.
Anyway, that's my guess about what you are doing. Accurate or not it seems clear that you are trying to use cabernet in a way that nobody else seems to be doing. You tried it on a raspberry pi and mac os and you got similar results. Why conclude that's a bug when you could also conclude that it's a mistake on your part?
I would suggest walking it back and getting it working the way it was meant to be used. Once you get it working then experiment with your friendly tv script. I could be wrong but it seems like you are frustrated and wanting to blame cabernet. Hey, it's free. And imo one of the cooler applications I have run across recently. If it were straight forward to add friendly tv then I am sure it would already be included. But AFAIK it is a subscription only service. It seems to me that you are putting the cart before the horse. You have not demonstrated that you have gotten cabernet working well but then you complain about the lack of documentation and support while trying to go off-road.
Being unfriendly and complaining is not going to help you get it figured out. Maybe nothing will.
RE: PlutoTV, USTVGO, XUMO, M3U/XMLTV, SamsungTV, Plex interfaces (appliance)
-
Added by G Kazaroth over 1 year ago
I will try to look through the responses and see that Tekno has posted so see if anything is of value. This review was associated with the channel list only and not for any EPG items.
1) There is no deformed tab. The first tab is intentional and was added to handle the case when over 10,000 channels are added to M3U. This change causes the page to load quickly in order to users to be able to click on the tab they want.
2) log file 19.8KB. log is at the INFO level. No issues found loading channel data.
3) two log files of 738KB. Both files are identical and at the INFO level. It does have the exception that the database is corrupted when requesting a m3u file by the client, but no indication as to why the database did not have the stream_url key in the channels.db file. There could be an issue with importing your m3u files, but no details on this were found.
No additional log files were provided. I recommend trying the following
- During this, do not restart the app unless you have a corrupted database file indicated. then you will need to start from the top once Cabernet has finished initialization
- Go to Data Mgmt, On Reset Channel Data, set the Reset Edits to Yes and Plugin to M3U. Click Reset.
- Next go to the XML/JSON Links and request the channels.m3u file. Check the log to see if the stream_url exception disappears. If it does not, go back to Data Mgmt and reset other channel data plugins. If you reset all of the plugin channels and still get the error, you have a corrupted database that must be DELETED. Once you get the exception removed by resetting the channel data, go to the next step understanding which plugin was the cause
- Now that you have the plugin identified that caused the issue, turn on DEBUG level and go to the Scheduled Tasks list. Open the Channels list and select the plugin with the issue. The log should now have the information needed to identify the issue
- Once the channel data is updated, again request the channels.m3u file and see that the exception reoccurs
- The next thing you will need to do is to fix the cause of the problem based on the log information
Note: You can also use a database tool like DB Browser and try to find the record with the missing stream_url key in the json BLOB. This will tell you the plugin and the channel causing the issue.
RE: PlutoTV, USTVGO, XUMO, M3U/XMLTV, SamsungTV, Plex interfaces (appliance)
-
Added by Tekno M over 1 year ago
G Kazaroth
The "Debug" level log was posted 6 days ago here https://tvheadend.org/boards/5/topics/43052?r=47435#message-47435
I will follow your instructions here to post a new one.
As for the Tab issue then it is still that no tab ever appears, if in fact it should and seems it should.
John Tocher,
I have explained and explained but I am using it as it was designed to be used it is just that one source comes from Localhost:8866 which seems to be something you do not understand. I refuse to explain it again.
RE: PlutoTV, USTVGO, XUMO, M3U/XMLTV, SamsungTV, Plex interfaces (appliance)
-
Added by Tekno M over 1 year ago
G Kazaroth,
I have 2 systems I have been messing with this on both with the same data corruption issue.
System #1 (Raspberry Pi 3 running Raspbian stretch Python 3.8) has only USTVGo
System #2 (Mac Mini OSX 10.15 Catalina Python 3.9.12 Had an M3u file which I no longer subscribe to because nothing worked to be able to use it as I want to use it, but I will replace that with a different M3u file for testing.
System #1 as it has no m3u file I modified your instructions as follows;
After setting log level to debug, I deleted the old log and data then rebooted. This was to prevent confusion, as I have messed with this lots to no avail. It also helps to keep the logs relevant.
Then I waited and I could see in the logs that it was rebuilding the database. I knew it was done rebuilding database when I see the 501 error (see attachment)
Go to Data Mgmt, On Reset Channel Data, set the Reset Edits to Yes and Plugin to M3U
to
Go to Data Mgmt, On Reset Channel Data, set the Reset Edits to Yes and Plugin to USTVGo
You did not say to reboot nor restart Caberbet , so I did not.
downloading the channels.m3u file the contents of the file are only
"#EXTM3U" but no more error (see attachment)
Then I open the log and see
2022-06-30 14:12:21,718-ERROR:web_admin UNEXPECTED EXCEPTION on GET='stream_url' Traceback (most recent call last): File "/root/cabernet/lib/clients/web_admin.py", line 104, in do_GET elif getrequest.call_url(self, self.content_path): File "/root/cabernet/lib/common/decorators.py", line 228, in call_url self.url2func[_name](_webserver, *args, **kwargs) File "/root/cabernet/lib/clients/channels/channels.py", line 42, in channels_m3u _webserver.do_mime_response(200, 'audio/x-mpegurl', get_channels_m3u( File "/root/cabernet/lib/clients/channels/channels.py", line 100, in get_channels_m3u uri = sid_data['json']['stream_url'] KeyError: 'stream_url'
(full log attached)
Correct me if I am wrong but there is no other channel data to delete as USTVGo is the only active source on this system.
Note that this is one of two systems with this problem and each has its own unique stream sources. Hopefully I can do the same on the other (OSX) system soon.
Capture1.JPG (17.3 KB) Capture1.JPG | After Zapping ALL data and waiting for database do rebuild I see... | ||
cabernet.log (20.3 KB) cabernet.log | Log File | ||
channels.m3u (8 Bytes) channels.m3u | After Zapping Channel Data for USTVGo from web interface (data is never rebuilt) |
RE: PlutoTV, USTVGO, XUMO, M3U/XMLTV, SamsungTV, Plex interfaces (appliance)
-
Added by G Kazaroth over 1 year ago
it still looks like you have a corrupted database which you continue to not clean up. We need to confirm you are cleaning up the database. "You can do something wrong 50 times, but it only takes one time to do it correctly. Consistently wrong does not make it right..."
First, go to Settings > Internal > Paths and identify the "Database Path". Is this where you remove the db files when you clean up the databases?
Second, go to Data Mgmt and pull down the Delete Instance list. Report all instances listed in this list. As you have indicated, there should be only one instance. If you go through and delete all instances, it should no longer produce the stream_url error since no database rows should exist.
According to the log provided, the database files did not recreate themselves, so they must have still been present. The errors around time 2022-06-30 14:09:18 are from a channel table that was incorrectly built with a missing column.
RE: PlutoTV, USTVGO, XUMO, M3U/XMLTV, SamsungTV, Plex interfaces (appliance)
-
Added by Tekno M over 1 year ago
`THAT IS PRECISELY WHAT I DID, but I realize only with USTVGo database (only one currently installed)!
I have also at other times gone and deleted the entire data folder and generated a new ini file.
This time I have selected to delete ALL channel databases (at about 1July2022 14:26 in the log).
Then I waited and nothing seemed to happen the playlist did not seem to rebuild just a blank playlist file with only
#EXTM3U
so then I rebooted and the playlist began to rebuild I could see in the log
If as you say the database is in fact Not being deleted then it is a shortcoming of the Web GUI functionality, or your instructions.
As I said I have even deleted all data in the data folder previously then re-created the ini, only to return to the same issue. This same issue on OSX and Raspbian. If there is a corrupted database it is not in the data/db folder.
BTW the reason a previous log was duplicated in one of my posts is that when you edit a post here it does not show the current attachments and I assumed I made an error and had not attached it, so I attached it. Later I realized it was there twice and I did not see a method to remove an attachment.
cabernet.log (232 KB) cabernet.log | Log file |
RE: PlutoTV, USTVGO, XUMO, M3U/XMLTV, SamsungTV, Plex interfaces (appliance)
-
Added by rudesingh rudesingh about 1 year ago
I just came across this project and am confused by a couple of things. First, I see that people are using this in Ubuntu and even on a Raspberry Pi, but in searching through this thread and the project page I cannot for the life of me find any clear instructions for installation. For example, when you install Tvheadend on Ubuntu you can go to https://tvheadend.org/projects/tvheadend/wiki/AptRepositories and it more or less walks you through the process of installing Tvheadend. Is there anything similar for this software? Because right now I'm totally clueless as to how you install and configure it. I see in the top post how you configure Tvheadend once you have it installed , but I am not clear on how you get it installed in the first place.
RE: PlutoTV, USTVGO, XUMO, M3U/XMLTV, SamsungTV, Plex interfaces (appliance)
-
Added by G Kazaroth about 1 year ago
We have yet to find a person who wants to build/maintain the documentation or website, but you should be able to find the info needed at my old github wiki:
https://github.com/rocky4546/tvheadend-locast/wiki
RE: PlutoTV, USTVGO, XUMO, M3U/XMLTV, SamsungTV, Plex interfaces (appliance)
-
Added by Tekno M about 1 year ago
rudesingh,
Personally I am not sure why everyone these days seems so bent on docker. Independent of OS or hardware on any modern OS can run this from a python3 command line. Of course you need Python3 installed to do that. I mean why use docker when Python is already cross platform, and probably requires less overhead.
I think the whole docker container presents its own set of challenges and does not free you from still having issues.
My recommendation is run it from the python3 command line just like is on the instruction on the Github page https://github.com/cabernetwork/cabernet
I too wish there were some docs and would love to help with that however I have an issue now that has popped up on 2 different Operating systems with 2 different versions of Python that seem insurmountable. I can not see helping with docs when I personally have insurmountable issues with running it.
RE: PlutoTV, USTVGO, XUMO, M3U/XMLTV, SamsungTV, Plex interfaces (appliance)
-
Added by john tocher about 1 year ago
I run it in Docker. Why would you not? Once I set it up it was trivial to add other instances for experimentation.
RE: PlutoTV, USTVGO, XUMO, M3U/XMLTV, SamsungTV, Plex interfaces (appliance)
-
Added by Tekno M about 1 year ago
John toucher,
I see it the other way Why would you run it on docker?
It is additional overhead first off. Second Docker has its own learning curve.
But then again I guess you are the same one that could not understand that just because I was getting an m3u list from the same IP:port as NextPVR (by way of its integrated web server) did not mean the file originated from nextPVR
So yea maybe you need docker, but I have little use for it.
RE: PlutoTV, USTVGO, XUMO, M3U/XMLTV, SamsungTV, Plex interfaces (appliance)
-
Added by john tocher about 1 year ago
You can search Youtube for reasons to use docker. Off topic here. As far as I can tell you have not managed to get cabernet working. Seems to me you couldn't get it working with tvheadend and so you try nextpvr. Why would look for support for that on a tvheadend forum?
RE: PlutoTV, USTVGO, XUMO, M3U/XMLTV, SamsungTV, Plex interfaces (appliance)
-
Added by Tekno M about 1 year ago
TVHeadend has had a long time issue with scanning channels just search the forums for proof of this. That makes it incompatible with sources that I have. Sure there are some it will work with but many it will not work with . The work-around in TVH forums does not always work.
Yes I have 2 installs of Cabernet that "silently fail" and when I use that term I will bet that a lot of people , possibly you are having such a failure without knowing (as you refuse to check the m3u url)
Presently Cabernet is running , after I re-installed it and immediately copied the m3u file (which I do not need right now) , as the links seem fixed as long as I do not edit the channels. Then if I need to change something that may affect it at least I can put the static file on a web server , but as long as the error is "501 server error" Next PVR seems to not require a new download of the m3u file. Suffice to say I worked - around the Cabernet database failure that only causes the channels.m3u to produce an error.
yes 2 platforms, with 2 different versions of python with the same error id say that's a pretty sure fire sigg of a problem, but many people have not looked to see if they can actually access their channels.m3u after it has been up and running for a while. Then again there could be a reason why it behaves differently on docker too; python version, etc.
Since you have denied me to check your m3u file you are clearly no help, because if you were some help at all you would have done so by now and posted the result. Instead you waste my time with your feeble attempts to insult me.
BTW most of us do not need to watch a 20 minute video to hear someones opinion of the benefits of docker. PUT IT IN TEXT! I am not a millennial that needs to see a video because I am incapable of comprehending what I read. I do not need bad music and to waste 20 minutes to see what I could read in 2 minutes in text.
RE: PlutoTV, USTVGO, XUMO, M3U/XMLTV, SamsungTV, Plex interfaces (appliance)
-
Added by john tocher about 1 year ago
You don't have time to find out about docker? I don't have time to explain it to you. Your Cabernet setup is working? Good.
RE: PlutoTV, USTVGO, XUMO, M3U/XMLTV, SamsungTV, Plex interfaces (appliance)
-
Added by Tekno M about 1 year ago
I do not need nor want docker explained. I have no use for it and have used it in the past.
If you bothered to read, I have a work-around, but there you go not understanding AGAIN.
I refuse to keep micro explaining to you.
RE: PlutoTV, USTVGO, XUMO, M3U/XMLTV, SamsungTV, Plex interfaces (appliance)
-
Added by john tocher about 1 year ago
lol.
RE: PlutoTV, USTVGO, XUMO, M3U/XMLTV, SamsungTV, Plex interfaces (appliance)
-
Added by Sean Micklem about 1 year ago
Just wondering, PlutoTv's Twitter account has been announcing new channels, and they show up on their website, but they don't seem to get added in Cabernet. Does someone have to manually add the new channels, or do they just get picked up automatically at some point? I did try refreshing the channels list but it made no difference. Seems like I haven't seen any new PlutoTV channels updates in over a month in Cabernet.
RE: PlutoTV, USTVGO, XUMO, M3U/XMLTV, SamsungTV, Plex interfaces (appliance)
-
Added by G Kazaroth about 1 year ago
USTVGO is the only plugin that has a static config list of channels. The other plugins are pulled and updated every time the channel list is updated. You should see them in the edit channel list. To get them into TVH is a different issue. If you can find a channel that you believe should be in the list, let us know and I will verify.
Notes: I did a reset in Data Mgmt with Reset Edits being No and then requested the schedule event to update plutotv channels. It did the updates and all channels appeared. Looking into whether the normal scheduled event is running...
After reviewing multiple days of schedule events, it looks like the PlutoTV channel updates are running on time and as expected (daily). No issues were found.
RE: PlutoTV, USTVGO, XUMO, M3U/XMLTV, SamsungTV, Plex interfaces (appliance)
-
Added by Sean Micklem about 1 year ago
G Kazaroth wrote:
After reviewing multiple days of schedule events, it looks like the PlutoTV channel updates are running on time and as expected (daily). No issues were found.
Well of course a day after I asked about it, the new channels showed up. Not sure why it took that long but oh well, at least I know it's working. Thanks.
RE: PlutoTV, USTVGO, XUMO, M3U/XMLTV, SamsungTV, Plex interfaces (appliance)
-
Added by john tocher about 1 year ago
I had some experiences with the problem Tekno M described. I went to test channel lineup with VLC and sometimes it works but mostly not. Tried with wget:
wget http://10.42.0.1:37000/channels.m3u
--2022-07-19 12:59:50-- http://10.42.0.1:37000/channels.m3u
Connecting to 10.42.0.1:37000... connected.
HTTP request sent, awaiting response... 501 Not Implemented
2022-07-19 12:59:50 ERROR 501: Not Implemented.
Interesting problem. I am not sure why it just seems to work when tvheadend is used. I do have trouble with scanning but increasing the timeout clears it up.
Not a big deal for me. As long as it works with tvheadend.
Tried Cabernet with Nextpvr. Seemed to work okay. Doesn't seem to be quite as robust as tvheadend.
Been trying to get Pluto TV, Samsung TV Plus, etc. working in Cabernet. They work but none of them quite as well as Matt Huisman's Kodi plugins. They play okay but when a commercial break comes it gets wonky (on most streams).
Lately I have settled on using Matt Huisman's Kodi plugins for some streams and Cabernet for Xumo VOD. Kodi using the simple and tvheadend pvr clients.
Not the most satisfying solution because it doesn't allow for integrating with jellyfin and plex via antennas proxy. That's okay though.
RE: PlutoTV, USTVGO, XUMO, M3U/XMLTV, SamsungTV, Plex interfaces (appliance)
-
Added by Tim J about 1 year ago
Been trying to get Pluto TV, Samsung TV Plus, etc. working in Cabernet. They work but none of them quite as well as Matt Huisman's Kodi plugins. They play okay but when a commercial break comes it gets wonky (on most streams).
The reason for this is that they are switching the stream for the commercial, injecting a new video/stream of the commercial in the stream.
Note that for streaming live TV from the Internet there are still issues that need to worked out to support every stream. Specifically full complete support of RFC-7933 and RFC-8216. Full support of these RFC is missing from ffmpeg.
Dolby AC-4 and MPEG-H 3D Audio support is missing from ffmpeg in order to be able to record and play back ATSC 3.0 over the air 4K broadcasts as well.
Add #EXT-X-DISCONTINUITY support to ffmpeg for IPTV streams such as Stirr and Pluto is the problem. It's part of the RFCs that ffmpeg isn't supporting properly.
https://github.com/jellyfin/jellyfin-ffmpeg/issues/57
In order to fix things you might want to look at this Python code which is a proxy to deal with more RFC stuff that ffmpeg doesn't currently support properly.
Python m3u8 Parser for HTTP Live Streaming (HLS) Transmissions
https://github.com/globocom/m3u8
https://github.com/globocom/m3u8#supported-tags