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

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:


Does W:\DVR contain those same folders I'm showing above?

And did you modify the mount point IN the container to match the values you used for CHANNELS_DVR=?

For example, let's say your Windows PC is named "Edwin-PC", so this would be the value for your primary DVR:
CHANNELS_DVR=edwin-pc:8089 (obviously you can use IPs if you prefer).

And this would be the volumes directive you'd use:
- ${DVR_SHARE}:/mnt/edwin-pc-8089

This is what I have ... and yes that is my DVR recording folder.

PORT CONFIGURATION	
0.0.0.0:1337  1337/tcp
CMD	
ENTRYPOINT	/start.sh
ENV	
CHANNELS_CLIENTS	
CHANNELS_DVR	192.168.50.68:8089
CHANNELS_DVR_ALTERNATES	192.168.50.68:8089
DVR_SHARE	W:/DVR
FOLDER	/web
GPG_KEY	7169605F62C751356D054A26A821E680E5FA6305
LANG	C.UTF-8
PATH	/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
PYTHON_GET_PIP_SHA256	dfe9fd5c28dc98b5ac17979a953ea550cec37ae1b47a5116007395bfacff2ab9
PYTHON_GET_PIP_URL	https://github.com/pypa/get-pip/raw/dbf0c85f76fb6e1ab42aa672ffca6f0a675d9ee4/public/get-pip.py
PYTHON_PIP_VERSION	24.0
PYTHON_VERSION	3.12.2
TAG	latest
TZ	Los_Angeles
UPDATE_SCRIPTS	true
UPDATE_YAMLS	true

Stop the stack, change this section of your docker-compose to look like this, and restart:

    volumes:
      - ${HOST_DIR}/olivetin:/config # Add the parent directory on your Docker you'd like to use
      - ${DVR_SHARE}:/mnt/192.168.50.68-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

Sorry it took so long.

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":1}

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

Current compskip.ini:
----------------------------------------

verbose=10
detect_method=123 ;; everything but scenechange
punish_no_logo=0
cc_correct_type_modifier=1
length_nonstrict_modifier=1.5 ;; required before below due to comskip.ini parsing bug
combined_length_nonstrict_modifier=1
min_show_segment_length=222
min_commercialbreak=45
use_existing_logo_file=0
logo_fraction=0.39
delete_logo_file=1
output_vdr=1
output_edl=1
output_ffmeta=1
output_ffsplit=1
always_keep_first_seconds=60
always_keep_last_seconds=300
min_commercialbreak=45
thread_count=1
----------------------------------------

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:
----------------------------------------

verbose=10
detect_method=123 ;; everything but scenechange
punish_no_logo=0
cc_correct_type_modifier=1
length_nonstrict_modifier=1.5 ;; required before below due to comskip.ini parsing bug
combined_length_nonstrict_modifier=1
min_show_segment_length=222
min_commercialbreak=45
use_existing_logo_file=0
logo_fraction=0.39
delete_logo_file=1
output_vdr=1
output_edl=1
output_ffmeta=1
output_ffsplit=1
always_keep_first_seconds=60
always_keep_last_seconds=300
min_commercialbreak=45
thread_count=1
----------------------------------------

That's what we want to see! Thanks for hanging in there...

My Problem is that I am like a dog with a bone .. once I start it have to finish it thanks.

version: '3.9'
services:
  olivetin:
    image: bnhf/olivetin:${TAG} # Add the tag like latest or test to the environment variables below
    container_name: olivetin
    ports:
      - 1337:1337
    environment:
      - CHANNELS_DVR=${CHANNELS_DVR} # Add your Channels DVR server in the form hostname:port or ip:port
      - CHANNELS_CLIENTS=${CHANNELS_CLIENTS} # Space separated list of Channels DVR clients you'd like notifications sent to in the form hostname or IP
      - UPDATE_YAMLS=${UPDATE_YAMLS} # Set this to true to update config.yaml
      - UPDATE_SCRIPTS=${UPDATE_SCRIPTS} # Set this to true to update all included scripts
      - TZ=${TZ} # Add your local timezone in standard linux format. E.G. US/Eastern, US/Central, US/Mountain, US/Pacific, etc
    volumes:
      - ${HOST_DIR}/olivetin:/config # Add the parent directory on your Docker you'd like to use
      - ${DVR_SHARE}:/mnt/192.168.50.68-8089
    restart: unless-stopped

  static-file-server:
    image: halverneus/static-file-server:latest
    container_name: static-file-server
    ports:
      - 8080:8080
    environment:
      - FOLDER=${FOLDER}
    volumes:
      - ${HOST_DIR}/olivetin/data:${FOLDER}
    restart: unless-stopped

#volumes: # use this section if you've setup a docker volume named channels-dvr, with CIFS or NFS, to bind to /mnt/dvr inside the container. Set ${HOST_DIR} to channels-dvr (HOST_DIR=channels_dvr) in that example
  #channels-dvr:
    #external: true

Sigh, I thought linux would be included with the Docker install. I got ubunto up and running, I can access it through cmd or powershell if I type wsl.exe --install, but if I simply type wse.exe I get a bunch of "Failed to Translate" errors, probably because I still haven't set up my environment.

From the old days I know how to set up things in my $HOME/<user_id> folder .bashrc files, etc. but Docker posts warn not to do this. a) if I know what I am doing can I just go ahead b) if I don't do it by editing those files, am I supposed to use docker settings to do it?

I Plan to look for some you tube videos, subject install/setup "WSL for Windows". If that is going to get me through this part, no need to respond with any details.

2 Likes

Can you give me a few examples of the criteria to be matched?

Also, are you talking about creating an M3U from this, or are you hoping this would become a new "Channel Collection"?

If it's the former, as long as the data exists to match it shouldn't be a problem. If it's the latter, I don't know of any public or private API support for something like that.

1 Like

Yes, it's an i7 laptop running WIn 10. I have linux/bash experience, just having a little trouble setting up WSL, environment params, and finding things. I'll be looking to put some command aliases in my .profile, set up command history, vim, etc.

I pulled the latest to look at the new comskip function. When I pull down the DVR menu it seems to not be picking up the CHANNELS_DVR environment variable.

Oops! Those are my servers -- I'll fix that now...

@cyoungers Can you pull :latest again and confirm that it's fixed for me?