OliveTin for Channels: An Interface for Misc Channels DVR Scripts & Tricks

You definitely need to set your environment variables -- I doubt the container would even start without them, and OliveTin certainly won't run properly.

The other weird thing I've seen today is an issue with Docker Desktop, where the WSL Integration tick-box suddenly wasn't checked -- so confirm that too:

@bnhf your post earlier about creating a channel collection for logos got me thinking...

Any chance you would want to tackle actually creating the collection from a set of criteria? The channels interface isn't great for this purpose, especially for large collections, and doesn't give you hints when channels disappear (either for a down source or removal from TVE, for example).

My use case: I keep a "useful channel list" that serves as my main collection. It's basically an alphabetized (which BTW could be it's own smaller addition to olivetin too) multi-source collection that serves as the main gateway to content. It is basically a list of networks with some OTA suplicates sprinkled in, to allow for switching sources when needed, quickly.

I don't even know is this is possible, but throwing out there...

I could be wrong, but I thought OliveTin had the ability to display Comskip INI settings and the ability to change them?

I have docker and portainer running according to Docker Desktop. I can access docker via the Windows command terminal but it is clearly not running bash yet. I think I read somewhere with the right connections(?) I could use the windows cmd terminal to access docker using bash. Suggestions welcome.

OK, so I need to set some environment variables and use docker-compose to pull in the Olive Tin yaml. I don't where to start this part. Which should I do first? What directory do I put the yaml in before running docker-compose? What is the scope of the envt variables, I assume it is at the container or image level, not sure.

If you can suggest some simple tutorials based on these questions I'll stop bothering you for a while, but all of the tutorials seem aimed towards multi-user deployment mindsets and I of course am only concerned about single-user stand-alone scenarios.

You're right -- I wrote it, but never pushed it to the :latest release. It's was a number of months ago, and I can't remember exactly why I held it back. It might be I just got distracted but some other shiny object. :slight_smile:

You up for doing a little testing if I push it to a :test release?

Yes can you also add the option to change/delete a setting ?

Managing and tweaking select comskip.ini settings - Playground / Hacks - Channels Community (getchannels.com)

That post shows what the script is capable of at this point. Thanks for linking that thread, as it reminds me that this post:

is the reason I held off publishing, as I wanted to see if the mentioned change to where overrides were placed happened. That -- and it was a couple of days before Christmas. :christmas_tree:

I'd be happy to push it as is, and you can see what you think. Otherwise, it'll be a bit before I can circle back to it to make any fundamental changes.

you can post as is as those are the settings most often changed.

These are the settings I use ...

"comskip.ini.always_keep_first_seconds": "60",
"comskip.ini.always_keep_last_seconds": "300",
"comskip.ini.min_commercialbreak": "45",

Make sure you the Windows Subsystem for Linux installed as well, with a distro (Ubuntu is the default, but I use Debian). Also, in the Docker Desktop interface verify that WSL Integration tick-box is checked in its settings.

As far as deploying containers, I'd strongly recommend using Portainer-Stacks, which has an editor where you can paste in docker-composes and environment variables. Once you've added those two pieces, you simply click the "Update the stack" button to deploy. No need to mess with the command line:

OK, it's pushed as bnhf/olivetin:test -- give it a test drive.

1 Like

Will do ... I do not see it ...


Please post the Portainer log for the second OliveTin container you have running. From boot-up to the first lines showing level="info" msg="UserFromContext" usergroup="" username=""

I might have screwed up when I created the test environment .. Tried to take a shortcut and duplicate the original

2024-02-26 09:05:17 Existing /config/adbtuner.env found, and will be preserved
2024-02-26 09:05:17 Existing /config/adbtuner.yaml found, and will be preserved
2024-02-26 09:05:17 Existing /config/ah4c.env found, and will be preserved
2024-02-26 09:05:17 Existing /config/ah4c.yaml found, and will be preserved
2024-02-26 09:05:17 Existing /config/cc4c.env found, and will be preserved
2024-02-26 09:05:17 Existing /config/cc4c.yaml found, and will be preserved
2024-02-26 09:05:17 Existing /config/config.yaml found, and will be preserved
2024-02-26 09:05:17 Existing /config/eplustv.env found, and will be preserved
2024-02-26 09:05:17 Existing /config/eplustv.yaml found, and will be preserved
2024-02-26 09:05:17 Existing /config/frndlytv-for-channels.env found, and will be preserved
2024-02-26 09:05:17 Existing /config/frndlytv-for-channels.yaml found, and will be preserved
2024-02-26 09:05:17 Existing /config/organizr.env found, and will be preserved
2024-02-26 09:05:17 Existing /config/organizr.yaml found, and will be preserved
2024-02-26 09:05:17 Existing /config/plex-for-channels.env found, and will be preserved
2024-02-26 09:05:17 Existing /config/plex-for-channels.yaml found, and will be preserved
2024-02-26 09:05:17 Existing /config/pluto-for-channels.env found, and will be preserved
2024-02-26 09:05:17 Existing /config/pluto-for-channels.yaml found, and will be preserved
2024-02-26 09:05:17 Existing /config/pluto.env found, and will be preserved
2024-02-26 09:05:17 Existing /config/pluto.yaml found, and will be preserved
2024-02-26 09:05:17 Existing /config/samsung-tvplus-for-channels.env found, and will be preserved
2024-02-26 09:05:17 Existing /config/samsung-tvplus-for-channels.yaml found, and will be preserved
2024-02-26 09:05:17 Existing /config/stirr-for-channels.env found, and will be preserved
2024-02-26 09:05:17 Existing /config/stirr-for-channels.yaml found, and will be preserved
2024-02-26 09:05:17 Existing /config/tailscale.env found, and will be preserved
2024-02-26 09:05:17 Existing /config/tailscale.yaml found, and will be preserved
2024-02-26 09:05:17 Existing /config/tubi-for-channels.env found, and will be preserved
2024-02-26 09:05:17 Existing /config/tubi-for-channels.yaml found, and will be preserved
2024-02-26 09:05:17 Existing /config/vlc-bridge-fubo.env found, and will be preserved
2024-02-26 09:05:17 Existing /config/vlc-bridge-fubo.yaml found, and will be preserved
2024-02-26 09:05:17 Existing /config/vlc-bridge-pbs.env found, and will be preserved
2024-02-26 09:05:17 Existing /config/vlc-bridge-pbs.yaml found, and will be preserved
2024-02-26 09:05:17 Existing /config/vlc-bridge-uk.env found, and will be preserved
2024-02-26 09:05:17 Existing /config/vlc-bridge-uk.yaml found, and will be preserved
2024-02-26 09:05:17 Existing /config/watchtower.env found, and will be preserved
2024-02-26 09:05:17 Existing /config/watchtower.yaml found, and will be preserved
2024-02-26 09:05:17 No existing /config/ccextractor.sh found or UPDATE_SCRIPTS set to true
2024-02-26 09:05:17 No existing /config/cdvr_movie_library_to_csv.py found or UPDATE_SCRIPTS set to true
2024-02-26 09:05:17 No existing /config/cdvr_movie_library_to_csv.sh found or UPDATE_SCRIPTS set to true
2024-02-26 09:05:17 No existing /config/channels_dvr_monitor_channels.py found or UPDATE_SCRIPTS set to true
2024-02-26 09:05:17 No existing /config/channels_dvr_monitor_channels.sh found or UPDATE_SCRIPTS set to true
2024-02-26 09:05:17 No existing /config/channels_to_csv.py found or UPDATE_SCRIPTS set to true
2024-02-26 09:05:17 No existing /config/channels_to_csv.sh found or UPDATE_SCRIPTS set to true
2024-02-26 09:05:17 No existing /config/channels_to_csv_awk.sh found or UPDATE_SCRIPTS set to true
2024-02-26 09:05:17 No existing /config/comskipignore.sh found or UPDATE_SCRIPTS set to true
2024-02-26 09:05:17 No existing /config/comskipini.sh found or UPDATE_SCRIPTS set to true
2024-02-26 09:05:17 No existing /config/deletelogs.sh found or UPDATE_SCRIPTS set to true
2024-02-26 09:05:17 No existing /config/dockercompose.sh found or UPDATE_SCRIPTS set to true
2024-02-26 09:05:17 No existing /config/edlstrip.sh found or UPDATE_SCRIPTS set to true
2024-02-26 09:05:17 No existing /config/fix_thumbnails.rb found or UPDATE_SCRIPTS set to true
2024-02-26 09:05:17 No existing /config/fix_thumbnails.sh found or UPDATE_SCRIPTS set to true
2024-02-26 09:05:17 No existing /config/foreground.sh found or UPDATE_SCRIPTS set to true
2024-02-26 09:05:17 No existing /config/generatem3u.sh found or UPDATE_SCRIPTS set to true
2024-02-26 09:05:17 No existing /config/ical_2_xmltv.py found or UPDATE_SCRIPTS set to true
2024-02-26 09:05:17 No existing /config/ical_2_xmltv.sh found or UPDATE_SCRIPTS set to true
2024-02-26 09:05:17 No existing /config/listcomskipignore.sh found or UPDATE_SCRIPTS set to true
2024-02-26 09:05:17 No existing /config/llc2metadata.sh found or UPDATE_SCRIPTS set to true
2024-02-26 09:05:17 No existing /config/logfilter.sh found or UPDATE_SCRIPTS set to true
2024-02-26 09:05:17 No existing /config/manualrecordings.sh found or UPDATE_SCRIPTS set to true
2024-02-26 09:05:17 No existing /config/markforrerecord.sh found or UPDATE_SCRIPTS set to true
2024-02-26 09:05:17 No existing /config/marknocommercials.sh found or UPDATE_SCRIPTS set to true
2024-02-26 09:05:17 No existing /config/notifications.sh found or UPDATE_SCRIPTS set to true
2024-02-26 09:05:17 No existing /config/pingcdvr.sh found or UPDATE_SCRIPTS set to true
2024-02-26 09:05:17 No existing /config/playonedl.sh found or UPDATE_SCRIPTS set to true
2024-02-26 09:05:17 No existing /config/plexiptv.sh found or UPDATE_SCRIPTS set to true
2024-02-26 09:05:17 No existing /config/plextoken.sh found or UPDATE_SCRIPTS set to true
2024-02-26 09:05:17 No existing /config/removecomskipignore.sh found or UPDATE_SCRIPTS set to true
2024-02-26 09:05:17 No existing /config/restartshutdown.sh found or UPDATE_SCRIPTS set to true
2024-02-26 09:05:17 No existing /config/scanlocalcontent.sh found or UPDATE_SCRIPTS set to true
2024-02-26 09:05:17 No existing /config/setcomskipignore.sh found or UPDATE_SCRIPTS set to true
2024-02-26 09:05:17 No existing /config/stationid.sh found or UPDATE_SCRIPTS set to true
2024-02-26 09:05:17 ----------------------------------------
2024-02-26 09:05:17 Checking for .running files that don't match with currently defined DVRs...
2024-02-26 09:05:17 ls: cannot access '*.running': No such file or directory
2024-02-26 09:05:17 level="info" msg="OliveTin initializing" commit="86e5dfe" date="2023-03-24T23:32:48Z" version="2023.03.25"
2024-02-26 09:05:17 level="debug" msg="Value of -configdir flag" value="."
2024-02-26 09:05:17 level="info" msg="Setting log level to info"
2024-02-26 09:05:17 level="info" msg="Init complete"
2024-02-26 09:05:17 level="info" msg="OliveTin started" configDir="/config"
2024-02-26 09:05:17 level="info" msg="Starting REST API" address="localhost:1339"
2024-02-26 09:05:17 level="info" msg="Starting single HTTP frontend" address="0.0.0.0:1337"
2024-02-26 09:05:17 level="info" msg="Starting WebUI server" address="localhost:1340"
2024-02-26 09:05:17 level="info" msg="Found the webui directory" dir="/var/www/olivetin/"
2024-02-26 09:05:17 level="info" msg="Installation ID" content="74223a0b-464f-4d84-8c15-03a15920fe3f" from="/config/installation-id.txt"

Did you copy just some of the files to a new data directory?

The fact that your config.yaml didn't get updated, is the reason you're not seeing the new Action button. If it's a different data directory than your other OliveTin container, you should be able to set UPDATE_YAMLS and UPDATE_SCRIPTS to true and everything will get overwritten.

If you're trying to use the same data directory for both active containers you're asking for trouble.

Yeah I see my mistake now will just recreate the test environment. Will report back

It works thanks ... I will keep the test environment for future testing.

Current CDVR Comskip status:
{"available":true,"customized":false,"enabled":false,"ini":{"always_keep_first_seconds":"60","always_keep_last_seconds":"300"},"queued":0}

Settings as used in the most recent Comskip run. Assumes no override file in use:

Current compskip.ini:


If you need to use an override file it should be placed in this directory on your CDVR server:
/home/nyplayer/channels-dvr/data

Save this text as compskip.ini in the location referenced above:

Cool. I'll push it as a new :latest this afternoon.

New bnhf/olivetin:latest (aka bnhf/olivetin:2024.02.26) with a new Action that will allow for overriding of the CDVR controlled Comskip values, and creation of an override comskip.ini file if required.

More details here:

The output you posted is not complete. It should look like this:

Probably something to do with your directory bindings or volume mountings. It's this directive here that's likely wrong:

      - ${DVR_SHARE}:/mnt/media-server6-8089 # This can either be a Docker volume or a host directory that's connected via Samba or NFS to your Channels DVR network share

With this sample env var:

DVR_SHARE=/mnt/dvr

Is your docker host the same machine as your Channels DVR server? If it is, you can typically do a directory binding as in my example. Otherwise, you need to do a volume mount if they're not on the same machine, and you're connecting with SMB or NFS.

EDIT: So, in my case looking at my Docker host, I can navigate to the folder referenced as DVR_SHARE and it shows these CDVR folders:

And that needs to map to /mnt/<yourcdvrhost>-<port> (note the dash instead of a colon)

I do not think I have that ENV will add it.

I am using windows desktop and the Container and Channels DVR are on the same machine.

this is what I get .. but it works

true
Current CDVR Comskip status:
{"available":true,"customized":false,"enabled":true,"ini":{"always_keep_first_seconds":"60","always_keep_last_seconds":"300","min_commercialbreak":"45"},"queued":0}

Settings as used in the most recent Comskip run. Assumes no override file in use:

Current compskip.ini:


If you need to use an override file it should be placed in this directory on your CDVR server:
C:\ProgramData\ChannelsDVR\data

Save this text as compskip.ini in the location referenced above: