Project

General

Profile

PlutoTV, XUMO interface (appliance)

Added by G Kazaroth 10 months ago

Cabernet for (Cable Network) version 0.9.3 (9/19/2021)
Currently works with PlutoTV and XUMO (Locast provider is no more :( )

https://github.com/cabernetwork/cabernet/releases
Working on getting a service that will take the PlutoTV or XUMO server stream, clean it and feed it into TVHeadend and other DVRs (Also tested on Emby, JellyFin and Plex). It works on the subscription and free versions. Also it runs on Linux and Windows as a service. Windows has a installer. Once installed, setup is easy with TVHeadend.
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 (299)

RE: Locast interface (appliance) - Added by G Kazaroth about 2 months ago

I use the kill command "kill pid" where the pid is from the "ps -ef | grep python3" command. If the user is not you, then you can do a force kill with "sudo kill -9 pid". This will kill the process even if it is not owned by you. Of course, if you are running from the command line, then using a control-c will kill the process.

RE: Locast interface (appliance) - Added by G Kazaroth about 2 months ago

0.8.8c
Added some minor fixes to EPG and database locking.
  • EPG is now more like zap2xml output.
  • Event type episodes were missing subtitles and dates. So, Olympics events had missing data in the xmltv.xml
  • Added actors and directors to xmltv.xml

Should work with just a source overlay

RE: Locast interface (appliance) - Added by G Kazaroth about 2 months ago

0.8.8d
Added the ability to restart Cabernet from the website. It is in the scheduler section, so you can have it restart periodically or manually perform a restart. By default, there are no restarts scheduled. The restart will cleanup any memory leaks that occur while not changing the PID. Note the current python schedule script does not support monthly tasking.

Note the top level file tvh_main.py has changed, in case you normally just overlay the lib and plugins folders. Source overlay will work.

My Locast Channels have Disappeared Again - Added by Sterling Rorden about 2 months ago

Locast channels are no longer listed in my Kodi TVHeadend client.
The Locast channels are listed in the TVHeadend web interface but I get an unknown error when I try to play them.
The login_invalid field is blank.
I made a recent change to my service.tvheadend42.service file to add the lines "Wants=time-sync.target"
and "After=time-sync.target" to resolve an issue after power loss.
I've enabled debugging in the file log handler. I didn't see any errors, it acts like everything is running fine.

One thing I did notice is that it thinks I'm in the Los Angeles DMA. I'm actually in the Sacramento DMA. I use AT&T Fixed Wireless Internet which is actually through cell towers. I guess Locast uses the internet IP address for location information and it seems this information is incorrect for me. I had brought this to Locast's attention and they resolved it at that time but it looks like the problem is back. I tried the Locast app and it defaults to Los Angeles channels (which will play). If I change my location to Sacramento it won't let me play the channels. I have not done a channel rescan in TVHeadend.

Edit: I logged out of my account in the Locast app and logged back in again. This resolved the incorrect DMA in both the Locast app and cabernet log file.

RE: Locast interface (appliance) - Added by G Kazaroth about 2 months ago

The info provided does look like Locast changed the DMA on you. When the DMA changes for a Locast instance, Cabernet will clear the previous DMA data and repopulate the database with the new channels. This will make the old channels that TVH knows, invalid. From this point, you could either rescan TVHeadend muxes and pick up the new DMA channels or go back to the original DMA. Considering you have this issue, I would recommend putting a zipcode in the Locast instance setting. It is visible under the 3-Advanced view. With the zipcode set, the DMA will not accidentally change based on what Locast decides at the moment and you can get a consistent DMA/channel listing.

FYI, version 0.8.8 adds a backup solution and 0.8.8d adds the ability to restart after a restore, so you can restore any channel information from a backup if you upgraded.

RE: Locast interface (appliance) - Added by Sterling Rorden about 2 months ago

Thanks. I put my zipcode in the zipcode override box and rebooted. The channel numbers in my TVHeadend clients are a little screwy now but the Locast channels listed do play. And not everything is showing up in the guide (both in my clients and the TVH web EPG) but the channels are still listed in the TVH configuration. I'll give it a little time to see if it figures it out. A rescan may be in my future.

RE: Locast interface (appliance) - Added by Sterling Rorden about 2 months ago

G Kazaroth wrote:

The info provided does look like Locast changed the DMA on you. When the DMA changes for a Locast instance, Cabernet will clear the previous DMA data and repopulate the database with the new channels. This will make the old channels that TVH knows, invalid. From this point, you could either rescan TVHeadend muxes and pick up the new DMA channels or go back to the original DMA. Considering you have this issue, I would recommend putting a zipcode in the Locast instance setting. It is visible under the 3-Advanced view. With the zipcode set, the DMA will not accidentally change based on what Locast decides at the moment and you can get a consistent DMA/channel listing.

FYI, version 0.8.8 adds a backup solution and 0.8.8d adds the ability to restart after a restore, so you can restore any channel information from a backup if you upgraded.

So, If I want to update to 0.8.8d, do I just download the zip file and extract it to where I currently have tvheadend-locast installed? Do I need to stop TVHeadend or anything? Do I need to backup any configuration files or anything?

Thanks

RE: Locast interface (appliance) - Added by G Kazaroth about 2 months ago

Only issue on upgrading is the epg.db It is auto-generated and has no unique data, so you can delete it and it will regen on a restart. Everything else is fine for an overlay. Make sure to include the tvh_main.py at the top level.

So basically, extract the zip file, delete the epg.db in the data/db folder and restart the service. Data Management has a number of new features if you have not seen it.

RE: Locast interface (appliance) - Added by Sterling Rorden about 2 months ago

G Kazaroth wrote:

Only issue on upgrading is the epg.db It is auto-generated and has no unique data, so you can delete it and it will regen on a restart. Everything else is fine for an overlay. Make sure to include the tvh_main.py at the top level.

So basically, extract the zip file, delete the epg.db in the data/db folder and restart the service. Data Management has a number of new features if you have not seen it.

Well, I got cabernet updated. But my channels are still wonky. The Locast channels appear in the TVH web interface and have guide data but my clients aren't pulling them over. I can't play channels from the TVH interface (I thought I used to be able to). I can get audio on the OTA channels but I just get "an unknown error occurred" with the Locast channels. The Locast channels I thought I had in the clients are actually OTA channels with the Locast channel descriptions.

I tired doing a channel and EPG reset in Cabernet but it didn't help anything.

Do you have any recommendations for TVH configuration settings? Should I enable "Automatically name from network" in the Channels tab?

RE: Locast interface (appliance) - Added by G Kazaroth about 2 months ago

TVHeadend does not like channel updates and to make matters worse, Locast changes the channel data frequently. Recently, they changed the UID (that should, like, never change...) on NBC (playing the Olympics). Basically, Cabernet updated and then TVHeadend would not talk to the correct UID. Once I made the mux updates, all was good again.

In your case, you have 2 choices, either go through the Muxes and manually fix the URLs, as well as, delete any channels that are not suppose to be there, or ... repopulate the Locast muxes, automatically. I recommend the second choice, since I do that every time I need to change the DMA for testing. To do that, you will need to filter to the Locast muxes and then delete all of them. This will also delete the Locast services. Next, you need to do a Force Scan on the Locast Network. This will repopulate the muxes and it will also test each channel and create the services. Then map the services; do some EPG updates, and fix the channel numbers on the channel page. To fix the muxes manually, you need to have the Cabernet logs turned to info or debug see which ones have issues. The log should be clear on how to proceed using the manual method.

"Automatically name from network" in the Channels tab
I have it set to yes as shown in the tvheadend configuration info at the top of the forum page.

RE: Locast interface (appliance) - Added by Sean Micklem about 2 months ago

I will just suggest that if things have gone totally wonky and you can't get it working any other way, you could create a new user on your system and try installing from scratch under that new user (make sure your existing instance is completely shut down first so there are no port conflicts). If you can get it working that way, it may indicate you have a corrupted file or database in your original installation, or that some setting got changed that shouldn't have been changed.

RE: Locast interface (appliance) - Added by Sterling Rorden about 2 months ago

G Kazaroth wrote:

TVHeadend does not like channel updates and to make matters worse, Locast changes the channel data frequently. Recently, they changed the UID (that should, like, never change...) on NBC (playing the Olympics). Basically, Cabernet updated and then TVHeadend would not talk to the correct UID. Once I made the mux updates, all was good again.

In your case, you have 2 choices, either go through the Muxes and manually fix the URLs, as well as, delete any channels that are not suppose to be there, or ... repopulate the Locast muxes, automatically. I recommend the second choice, since I do that every time I need to change the DMA for testing. To do that, you will need to filter to the Locast muxes and then delete all of them. This will also delete the Locast services. Next, you need to do a Force Scan on the Locast Network. This will repopulate the muxes and it will also test each channel and create the services. Then map the services; do some EPG updates, and fix the channel numbers on the channel page. To fix the muxes manually, you need to have the Cabernet logs turned to info or debug see which ones have issues. The log should be clear on how to proceed using the manual method.

"Automatically name from network" in the Channels tab
I have it set to yes as shown in the tvheadend configuration info at the top of the forum page.

I followed your advice and went the automatic route but I only did a Force Scan for the Locast Network. I still had to do some cleanup on the ATSC channels but I didn't want to force a scan on them.
The reason I was asking about the Automatically Name setting was it was sometimes populating with the wrong information and it was sometimes identifying ATSC channels as Locast channels (and sometimes the wrong Locast channels) which would subsequently cause the wrong EPG source to be used. And there were sometimes multiple EPG sources being populated in the EGP Source field. The strangest thing is some of the EPG sources were zap2epg sources proceeded with the Locast channel name for ATSC sources. But I've got everything working now. Some of the ATSC channels insist on using the Locast EPG data instead of the zap2epg data but it shouldn't matter since they are the correct channel.

I have some general questions on the appropriate General PVR & Live TV settings in the Kodi TVH client. I also use a Kodi addon that populates Pluto TV data in the EPG outside of TVH. I create channel Groups within the Kodi TVH client. The problem with this is is when TVH goes wonky the channels disappear from the Groups and have to be reentered. I've considered creating groups within TVH but have some concerns.

1) I have "Synchronize channel groups with backend(s)" disabled since there is a specific warning that groups will be deleted if they aren't found on the backend. The way I interpret this my group for Pluto TV would be deleted if I enable it since the group isn't on TVH. So I can't use groups within TVH, correct?

2) I have "Use channel order from backend(s)", "Allow backend channel numbers with more than one PVR add-on", and "Use channel numbers from backend" enabled. Are these the correct settings to create the least problems?

Now that I have everything working again, what are the best settings to avoid problems in the future and make recreation of the channels easiest when things do go awry? And what exactly does the backup function in Cabernet backup?

Thanks

RE: Locast interface (appliance) - Added by G Kazaroth about 2 months ago

0.8.8e
Made some updates to help with the channel issues.

@Sterling
First, I have the same issue with TVH that you do regarding the EPG getting mixed up with the services. It is sometimes just a PIA, I understand. I took a look at TVH code a while back and found that it believes the channel number is a floating point number. That means 5.1L and 5.1 will translate into the exact same channel number for TVH. That is what causes the confusion. While trying many different possible channel number adjustments, I found a few bugs, so they are fixed in 0.8.8e. These mainly included things like not sending the edited channel numbers to TVH. What did I try, you ask?

I tried updating 5.1 to 5.1.1 in the channel editor. When TVH received it, the channel number reverted to 5.1, as expected.
I tried adding a prefix of 100 without a suffix (this adds 100 to all channels). This made the channel number 105.1. That worked and TVH said the channel was 105.1. This would be the best case if you want the EPG and channel data to always correlate correctly AND you are using an antenna. BUT ... Locast channel numbers would appear at the end of the list unless you went through and manually changed the order numbers in the Channel tab. Note, you can also have the prefix of 100 AND the suffix with an "L"; that also works.

As for TVH using the Locast or zap2it data, it is based on who's on first. BUT ... once TVH decides which one to use, the TVH database will not alter the program data ingested. (unless you delete the TVH databases). As you have indicated it is not much of an issue.

I also found a minor problem that is fixed in 0.8.8e. The Locast Provider setting "EPG Days from Start to Refresh" needs to be at least 2. This is caused by Locast using UTC as a basis for providing a days worth of data.

Now to your questions...
1) Since I do not use anything with the EPG except TVH, I really do not know. I always thought you would use PseudoTV in Kodi if you wanted to use Pluto (I think it supports it?) and it has its own EPG. But this is way out of my league.
2) I have "use channel order from backend" and "use channel numbers from backend" enabled. I do not have the Allow backend channel numbers with more than one PVR add-on showing in the settings, so have no clue on that item.

Easiest settings? I hope to have the default be that, but everyone is different. Like you have an antenna and Locast. The system is setup to provide the flexibility to give each user what he or she needs, but I try to have the defaults be the best for most people. For you, you might think about
  • Setting the "EPG Channel Suffix" to 100 or some number to add to the based channel number. This would make the service/EPG sync a little less problematic. On the other side, it does tend to reset the Number column in the Channel Tab, so if you want to have the channel 105.1 BUT also have it sit next to 5.1 in the Kodi listing, then you may need to update that column when you request a service mapping.
  • Setting the "Adjusts Episode number" to 1000. This allows TVH to record the same episode from BOTH the antenna and Locast. TVH normally will only record one of the two channels hoping that no error occurs.

What does the backup function backup? Everything that is data, no code; the databases and the config.ini file. I have run the backup and restore quite often and it works very smoothly. The Restore in the Data Managment page will list all the file that were restored.

Still working on new website for cabernet. I am using Hugo to generate it, but there is a learning curve, so it's taking time.

RE: Locast interface (appliance) - Added by Sterling Rorden about 2 months ago

First, Thanks for all your help!
I've updated to 0.8.8e.
I'll try adding a prefix of 100 and keeping the suffix as L, and adjusting the episode number by 1000. I don't mind all the Locast numbers at the bottom. I only use Locast channels as a backup when I'm having OTA reception problems and have them grouped separately anyway.

I tried PseudoTV but I had problems (don't remember what they were now). I use IPTV Merge to integrate the PlutoTV guide data into the Kodi EPG and it seems to work OK.

Thanks again.

RE: Locast interface (appliance) - Added by Sterling Rorden about 2 months ago

I added 100 as a prefix and L as a suffix in Providers > Locast Default under EPG, saved changes, and rebooted my box.
100 was added to most (but not all) the Locast channel numbers in the TVH channels name field. However, the actual Locast channel numbers didn't change. And some of the ATSC channel names got preceded with the Locast channel numbers. And the Automatically name from network boxes got unchecked on most channels.
Did I do something wrong?

RE: Locast interface (appliance) - Added by G Kazaroth about 2 months ago

0.8.8f
Just heard about a new error with Locast authentication. It's on fHDHR, locast2plex, Emby and locast2tuner sites. It happened 4 days ago, but cabernet has not been impacted due to how it is authenticating with Locast. In a nutshell, Locast is trying to implement captcha on the API for authentication. This seems strange to have a human requirement on a API, but there you have it. You will see the following in the log:
2021-08-08 13:45:42,037-ERROR:decorators HTTPError in function get_token(): HTTP Error 403: Forbidden

It looks like the captcha is not fully implemented and developers are using some hard-coded strings to get passed the issue. This means the changes may fail in the future, but for now, the changes work.

The cabernet implementation is to maintain the "login-token" in the config.ini file so we rarely have to re-login.

RE: Locast interface (appliance) - Added by G Kazaroth about 2 months ago

@Sterling
I suspect it is TVH that has not updated with the new info.
Run a check in cabernet with the JSON link "lineup.json" and check the channel numbers to see if the number has changed.
You can also save the channels.m3u file (which is what TVH uses) and see that the tvg-num, tvg-chno and the name at the end has the channel number updated. If not, please provide not info on what you see. xmltv.xml will also be updated with the new channel numbers in the top part of the file.

If everything looks fine here, then you just need to force scan TVH to pick up the new channels (and all the stuff that goes with the force scan).

One other note... you can now do a restart from the scheduler tab instead of rebooting. TVH is a different issue; although, it should have not needed a restart.

As for check boxes, I find TVH unchecking and checking things all the time. Really have stopped trying to keep up with that.

RE: Locast interface (appliance) - Added by Sterling Rorden about 2 months ago

G Kazaroth wrote:

@Sterling
I suspect it is TVH that has not updated with the new info.
Run a check in cabernet with the JSON link "lineup.json" and check the channel numbers to see if the number has changed.
You can also save the channels.m3u file (which is what TVH uses) and see that the tvg-num, tvg-chno and the name at the end has the channel number updated. If not, please provide not info on what you see. xmltv.xml will also be updated with the new channel numbers in the top part of the file.

If everything looks fine here, then you just need to force scan TVH to pick up the new channels (and all the stuff that goes with the force scan).

One other note... you can now do a restart from the scheduler tab instead of rebooting. TVH is a different issue; although, it should have not needed a restart.

As for check boxes, I find TVH unchecking and checking things all the time. Really have stopped trying to keep up with that.

This was a little bit of a brain fart on my part. I forgot that I had to manually populate the Number field with the Locast channel numbers. I went ahead and did a force scan on the Locast network and did a clean start. Everything seems to be working so far.

Since the Locast channel numbers need to be manually entered, is it necessary to have the 100 prefix in the field in Providers > Locast Default under EPG?

Also, if you could figure out a way to make the Locast channel numbers automatically populate the Number field in TVH it would be a nice addition.

Thanks again

RE: Locast interface (appliance) - Added by G Kazaroth about 2 months ago

I am running tvheadend 4.3-1975~g23754f9a6.
Cleared the TVH database and did a full restart.
  • Added Network with url
  • Did Full Scan
  • Ran tv_grab_url with channel number = Disabled (twice)
  • Picked a channel from the Services tab and did a map service
  • Checked the Channel tab and the Number column was filled in with the correct channel number without the L.
  • Changed the Number to 111 and hit save.
  • Deleted the channel row that was updated
  • Ran a map services on the channel again and it again was the original channel number and not 111

Results: The number column does update, but I believe you need the newer version of tvheadend and not 4.2xxxx
If you do not delete the channel row, the number stays even if you try to remap it again. If you delete it, the number will revert back to the channel number.

RE: Locast interface (appliance) - Added by Sterling Rorden about 2 months ago

Yea, I'm running TVH 4.2.
I see all the issues have been closed for TVH 4.4. I'm hoping it will be released and ported to CoreELEC in the near future.

Thanks

RE: Locast interface (appliance) - Added by G Kazaroth about 1 month ago

I do not know much about CoreElec, but TVH does have the 4.3 available if you want to try it
http://build.mycvh.de/Tvh-LE10.0/4.3-1938-22.02.2021/
The reason I went with 4.3 was a fix I worked with a dev to implement. It prioritizes recordings when you have limited tuners. The way I have it working is
Recording that occur from 7-8pm are LOW priority
Recording that occur from 8-9pm are NORMAL priority
Recording that occur from 9-10pm are HIGH priority
Then I put a 3 minute post record on each recording. What happens is
- If a channel does not have a tuner limit, then the recording continues an additional 3 minutes and captures those last minutes things.
- If tuners are limited, then the channel will terminate the current recording on the top of the hour and the next show will start (if they are different channels)

In 4.2, what happened when a tuner limit occurred is the channel would record the extra 3 minutes, but because the next show could not start on time, it never recorded.

I really have not had any issues for years on Ubuntu.

RE: Locast interface (appliance) - Added by K Shea about 1 month ago

You seem to know a lot about this stuff, someone was asking me today about these projects and since I don't know too much about them I wanted your opinion, if you don't mind giving it:

https://github.com/evoactivity/PlutoIPTV
https://github.com/mclenburg/plutoTV-tvheadend

Both of these are supposed to give you access to Pluto TV channels, and 8 hours of guide data (which sure isn't much, I realize) but each appears to have drawbacks. The first has to be run using "npx pluto-iptv" but npx isn't installed by default in Ubuntu. I believe you have to install a program called npm first and since I had no idea what that was I did "apt-get install --dry-run npm" just to see what it might install, well it turns out it wants to install 250 packages total:

The following additional packages will be installed:
  gyp libc-ares2 libjs-inherits libjs-is-typedarray libnode-dev libnode64 libuv1 libuv1-dev node-abbrev node-ajv node-ansi node-ansi-align node-ansi-regex node-ansi-styles node-ansistyles node-aproba node-archy node-are-we-there-yet
  node-asn1 node-assert-plus node-asynckit node-aws-sign2 node-aws4 node-balanced-match node-bcrypt-pbkdf node-bluebird node-boxen node-brace-expansion node-builtin-modules node-builtins node-cacache node-call-limit node-camelcase
  node-caseless node-chalk node-chownr node-cli-boxes node-cliui node-clone node-co node-color-convert node-color-name node-combined-stream node-concat-map node-concat-stream node-config-chain node-console-control-strings
  node-copy-concurrently node-core-util-is node-cross-spawn node-cyclist node-dashdash node-decamelize node-decompress-response node-deep-extend node-defaults node-delayed-stream node-delegates node-detect-indent node-detect-newline
  node-duplexer3 node-duplexify node-ecc-jsbn node-editor node-encoding node-end-of-stream node-errno node-escape-string-regexp node-execa node-extend node-extsprintf node-find-up node-flush-write-stream node-forever-agent
  node-form-data node-from2 node-fs-vacuum node-fs-write-stream-atomic node-fs.realpath node-gauge node-get-caller-file node-get-stream node-getpass node-glob node-got node-graceful-fs node-gyp node-har-schema node-har-validator
  node-has-flag node-has-symbol-support-x node-has-to-string-tag-x node-has-unicode node-hosted-git-info node-http-signature node-iconv-lite node-iferr node-import-lazy node-imurmurhash node-inflight node-inherits node-ini
  node-invert-kv node-is-builtin-module node-is-npm node-is-object node-is-plain-obj node-is-retry-allowed node-is-stream node-is-typedarray node-isarray node-isexe node-isstream node-isurl node-jsbn node-json-parse-better-errors
  node-json-schema node-json-stable-stringify node-json-stringify-safe node-jsonify node-jsonparse node-jsonstream node-jsprim node-latest-version node-lazy-property node-lcid node-libnpx node-locate-path node-lockfile
  node-lowercase-keys node-lru-cache node-mem node-mime-types node-mimic-fn node-mimic-response node-minimatch node-minimist node-mississippi node-mkdirp node-move-concurrently node-mute-stream node-node-uuid node-nopt
  node-normalize-package-data node-npm-package-arg node-npm-run-path node-npmlog node-oauth-sign node-object-assign node-once node-opener node-os-locale node-osenv node-p-cancelable node-p-finally node-p-limit node-p-locate
  node-p-timeout node-package-json node-parallel-transform node-path-exists node-path-is-absolute node-path-is-inside node-performance-now node-prepend-http node-process-nextick-args node-promise-inflight node-promzard
  node-proto-list node-prr node-pump node-pumpify node-punycode node-qs node-qw node-rc node-read node-read-package-json node-readable-stream node-registry-auth-token node-registry-url node-request node-require-directory
  node-require-main-filename node-resolve-from node-retry node-rimraf node-run-queue node-safe-buffer node-semver node-semver-diff node-set-blocking node-sha node-shebang-command node-shebang-regex node-signal-exit node-slash
  node-slide node-sorted-object node-spdx-correct node-spdx-expression-parse node-spdx-license-ids node-sshpk node-ssri node-stream-each node-stream-iterate node-stream-shift node-string-decoder node-string-width node-strip-ansi
  node-strip-eof node-strip-json-comments node-supports-color node-tar node-term-size node-text-table node-through node-through2 node-timed-out node-tough-cookie node-tunnel-agent node-tweetnacl node-typedarray node-uid-number
  node-unique-filename node-unpipe node-url-parse-lax node-url-to-options node-util-deprecate node-uuid node-validate-npm-package-license node-validate-npm-package-name node-verror node-wcwidth.js node-which node-which-module
  node-wide-align node-widest-line node-wrap-ansi node-wrappy node-write-file-atomic node-xdg-basedir node-xtend node-y18n node-yallist node-yargs node-yargs-parser nodejs nodejs-doc
The following NEW packages will be installed:
  gyp libc-ares2 libjs-inherits libjs-is-typedarray libnode-dev libnode64 libuv1 libuv1-dev node-abbrev node-ajv node-ansi node-ansi-align node-ansi-regex node-ansi-styles node-ansistyles node-aproba node-archy node-are-we-there-yet
  node-asn1 node-assert-plus node-asynckit node-aws-sign2 node-aws4 node-balanced-match node-bcrypt-pbkdf node-bluebird node-boxen node-brace-expansion node-builtin-modules node-builtins node-cacache node-call-limit node-camelcase
  node-caseless node-chalk node-chownr node-cli-boxes node-cliui node-clone node-co node-color-convert node-color-name node-combined-stream node-concat-map node-concat-stream node-config-chain node-console-control-strings
  node-copy-concurrently node-core-util-is node-cross-spawn node-cyclist node-dashdash node-decamelize node-decompress-response node-deep-extend node-defaults node-delayed-stream node-delegates node-detect-indent node-detect-newline
  node-duplexer3 node-duplexify node-ecc-jsbn node-editor node-encoding node-end-of-stream node-errno node-escape-string-regexp node-execa node-extend node-extsprintf node-find-up node-flush-write-stream node-forever-agent
  node-form-data node-from2 node-fs-vacuum node-fs-write-stream-atomic node-fs.realpath node-gauge node-get-caller-file node-get-stream node-getpass node-glob node-got node-graceful-fs node-gyp node-har-schema node-har-validator
  node-has-flag node-has-symbol-support-x node-has-to-string-tag-x node-has-unicode node-hosted-git-info node-http-signature node-iconv-lite node-iferr node-import-lazy node-imurmurhash node-inflight node-inherits node-ini
  node-invert-kv node-is-builtin-module node-is-npm node-is-object node-is-plain-obj node-is-retry-allowed node-is-stream node-is-typedarray node-isarray node-isexe node-isstream node-isurl node-jsbn node-json-parse-better-errors
  node-json-schema node-json-stable-stringify node-json-stringify-safe node-jsonify node-jsonparse node-jsonstream node-jsprim node-latest-version node-lazy-property node-lcid node-libnpx node-locate-path node-lockfile
  node-lowercase-keys node-lru-cache node-mem node-mime-types node-mimic-fn node-mimic-response node-minimatch node-minimist node-mississippi node-mkdirp node-move-concurrently node-mute-stream node-node-uuid node-nopt
  node-normalize-package-data node-npm-package-arg node-npm-run-path node-npmlog node-oauth-sign node-object-assign node-once node-opener node-os-locale node-osenv node-p-cancelable node-p-finally node-p-limit node-p-locate
  node-p-timeout node-package-json node-parallel-transform node-path-exists node-path-is-absolute node-path-is-inside node-performance-now node-prepend-http node-process-nextick-args node-promise-inflight node-promzard
  node-proto-list node-prr node-pump node-pumpify node-punycode node-qs node-qw node-rc node-read node-read-package-json node-readable-stream node-registry-auth-token node-registry-url node-request node-require-directory
  node-require-main-filename node-resolve-from node-retry node-rimraf node-run-queue node-safe-buffer node-semver node-semver-diff node-set-blocking node-sha node-shebang-command node-shebang-regex node-signal-exit node-slash
  node-slide node-sorted-object node-spdx-correct node-spdx-expression-parse node-spdx-license-ids node-sshpk node-ssri node-stream-each node-stream-iterate node-stream-shift node-string-decoder node-string-width node-strip-ansi
  node-strip-eof node-strip-json-comments node-supports-color node-tar node-term-size node-text-table node-through node-through2 node-timed-out node-tough-cookie node-tunnel-agent node-tweetnacl node-typedarray node-uid-number
  node-unique-filename node-unpipe node-url-parse-lax node-url-to-options node-util-deprecate node-uuid node-validate-npm-package-license node-validate-npm-package-name node-verror node-wcwidth.js node-which node-which-module
  node-wide-align node-widest-line node-wrap-ansi node-wrappy node-write-file-atomic node-xdg-basedir node-xtend node-y18n node-yallist node-yargs node-yargs-parser nodejs nodejs-doc npm
0 upgraded, 250 newly installed, 0 to remove and 0 not upgraded.

Unbelievable! The other package wants you to install a few perl modules, but my problem with Perl is that once you install Perl modules, if you decide you don't need them there is no easy way (that I know of) to get rid of them. But also, in the description of that one it says "So far, there are still short interruptions when advertising starts or ends." So I guess I was wondering if you might have an opinion on these (seems like something you might have tried at some point) and in particular, if you know of a better approach. It would be interesting to have the Pluto TV channels available in Tvheadend, just don't know if it is worth the effort especially considering that you can't get more than 8 hours of guide data. And I really don't want to add 250 new programs to my system!

Thanks in advance for any thoughts you might have! (And yes, I am gently hinting that if you are so inclined, you might consider adding Pluto TV support to cabernet!)

RE: Locast interface (appliance) - Added by G Kazaroth about 1 month ago

WOW, that many packages is the opposite of what Cabernet vision, which minimizes external python modules. Been working hard at upgrades. Here is current status of work:
- An initial website with the main page is working, but not checked into github. It uses the hugo docsy template. You can find an example here https://www.docsy.dev/
- Also, working on automatic updates. The Cabernet service home page will display a notice of the current version and whether there is an update available. It will go through and do an upgrade, if requested. Plan is to use the NextCloud method for plugin and main app upgrade patterns. About half way through getting this working for Cabernet main app. I will probably keep the plugins wrapped inside the main app until I can get the plugin manager completed.

I am familiar with nodejs and npm. It is good with testing http interfaces and javascript. The number of packages does seem impressive and I probably would not use nodejs for a 24/7 service, but that is just me. I also use perl with the zap2xml.pl file, but that does not use additional perl modules. My plan is to add the zap2it and tv.tv plugins to Cabernet and remove the zap2xml.pl usage at some point for an integrated solution.

As for PlutoTV... Cabernet plugin architecture is somewhat based on fHDHR. He has a PlutoTV plugin and it should be compatible with Cabernet after some changes.
The plugin is located at https://github.com/fHDHR/fHDHR_plugin_origin_plutotv
I have tried using fHDHR and it to will require a number of external python modules downloaded to run, so be prepared if you try it. Also, it does work with tvheadend.

I believe tvheadend-locast has received its last version. The next version will be pushed into the github cabernetwork organization.

RE: Locast interface (appliance) - Added by K Shea about 1 month ago

Thanks, I appreciate the insights. Also it's good to hear you are making progress. This has to be a massive undertaking for you!

I looked at fHDHR once but couldn't quite figure it out. So I think I'll wait for your version of the plugin, since I would have no idea what changes need to be made to make it compatible. Thanks!

RE: Locast interface (appliance) - Added by G Kazaroth 29 days ago

Other apps are again having forbidden login issues. Looks like locast is further implementing the captcha interface. If you already have the login token cached, you should be fine for a while. I will monitor the issue with the other apps and see what they find.

(176-200/299)