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

Hmm...no, Project One-Click still isn't working for me. Here's the error list again from trying the Samsung script:

exit status 1

+ dvr=192.168.1.123:8089
++ basename /config/samsung-tvplus-for-channels.sh
+ extension=samsung-tvplus-for-channels.sh
+ extension=samsung-tvplus-for-channels
+ cp /config/samsung-tvplus-for-channels.env /tmp
+ envFile=/tmp/samsung-tvplus-for-channels.env
+ [[ -n 192.168.1.123:9000 ]]
+ extensionURL=192.168.1.123:9000:8182
+ [[ # == \# ]]
+ cdvrStartingChannel=
+ [[ -n '' ]]
+ cdvrIgnoreM3UNumbers=
+ curl -s -o /dev/null http://192.168.1.123:9000:8182
+ envVars=("TAG=$2" "HOST_PORT=$3" "CDVR_STARTING_CHANNEL=$4")
+ printf '%s\n' TAG=latest HOST_PORT=8182 CDVR_STARTING_CHANNEL=#
+ sed -i /=#/d /tmp/samsung-tvplus-for-channels.env
+ /config/portainerstack.sh samsung-tvplus-for-channels
+ stackName=samsung-tvplus-for-channels
+ portainerHost=192.168.1.123:9000
+ curl -s -o /dev/null http://192.168.1.123:9000:9000
+ portainerURL='https://192.168.1.123:9000:9443/api/stacks?type=2&method=string&endpointId=2'
+ portainerToken=ptr_lLJQANBCQ08cJop6jaxCgiPcLuC7bsduEEKiv2v3Rnk=
+ cp /config/samsung-tvplus-for-channels.yaml /tmp
+ stackFile=/tmp/samsung-tvplus-for-channels.yaml
+ envFile=/tmp/samsung-tvplus-for-channels.env
++ grep DVR_SHARE= /tmp/samsung-tvplus-for-channels.env
++ grep -v /
++ awk -F= '{print $2}'
+ dockerVolume=
++ grep VOL_EXTERNAL= /tmp/samsung-tvplus-for-channels.env
++ grep -v '#'
++ awk -F= '{print $2}'
+ volumeExternal=
++ grep VOL_NAME= /tmp/samsung-tvplus-for-channels.env
++ grep -v '#'
++ awk -F= '{print $2}'
+ volumeName=
+ [[ -n '' ]]
++ awk '{printf "%s\\n", $0}' /tmp/samsung-tvplus-for-channels.yaml
++ sed 's/"/\\"/g'
+ stackContent='version: '\''3.9'\''\nservices:\n  # GitHub home for this project: https://github.com/matthuisman/samsung-tvplus-for-channels\n  # Docker Hub home for this project: https://hub.docker.com/r/matthuisman/samsung-tvplus-for-channels\n  samsung-tvplus-for-channels:\n    image: matthuisman/samsung-tvplus-for-channels:${TAG}\n    container_name: samsung-tvplus-for-channels\n    ports:\n      - ${HOST_PORT}:80 # Use the same port number the container is using, or optionally change it if the port is already in use on your host\n    restart: unless-stopped\n\n  # Default Environment variables can be found below under stderr -- copy and paste into Portainer-Stacks Environment variables section in Advanced mode\n'
+ stackEnvVars='['
+ IFS==
+ read -r key value
+ stackEnvVars='[{"name": "TAG", "value": "latest"},'
+ IFS==
+ read -r key value
+ stackEnvVars='[{"name": "TAG", "value": "latest"},{"name": "HOST_PORT", "value": "8182"},'
+ IFS==
+ read -r key value
+ stackEnvVars='[{"name": "TAG", "value": "latest"},{"name": "HOST_PORT", "value": "8182"}]'
++ cat
+ stackJSON='{
  "Name": "samsung-tvplus-for-channels",
  "SwarmID": "",
  "StackFileContent": "version: '\''3.9'\''\nservices:\n  # GitHub home for this project: https://github.com/matthuisman/samsung-tvplus-for-channels\n  # Docker Hub home for this project: https://hub.docker.com/r/matthuisman/samsung-tvplus-for-channels\n  samsung-tvplus-for-channels:\n    image: matthuisman/samsung-tvplus-for-channels:${TAG}\n    container_name: samsung-tvplus-for-channels\n    ports:\n      - ${HOST_PORT}:80 # Use the same port number the container is using, or optionally change it if the port is already in use on your host\n    restart: unless-stopped\n\n  # Default Environment variables can be found below under stderr -- copy and paste into Portainer-Stacks Environment variables section in Advanced mode\n",
  "Env": [{"name": "TAG", "value": "latest"},{"name": "HOST_PORT", "value": "8182"}]
}'
+ echo 'JSON response from https://192.168.1.123:9000:9443/api/stacks?type=2&method=string&endpointId=2:'
++ curl -k -X POST -H 'Content-Type: application/json' -H 'X-API-Key: ptr_lLJQANBCQ08cJop6jaxCgiPcLuC7bsduEEKiv2v3Rnk=' -d '{
  "Name": "samsung-tvplus-for-channels",
  "SwarmID": "",
  "StackFileContent": "version: '\''3.9'\''\nservices:\n  # GitHub home for this project: https://github.com/matthuisman/samsung-tvplus-for-channels\n  # Docker Hub home for this project: https://hub.docker.com/r/matthuisman/samsung-tvplus-for-channels\n  samsung-tvplus-for-channels:\n    image: matthuisman/samsung-tvplus-for-channels:${TAG}\n    container_name: samsung-tvplus-for-channels\n    ports:\n      - ${HOST_PORT}:80 # Use the same port number the container is using, or optionally change it if the port is already in use on your host\n    restart: unless-stopped\n\n  # Default Environment variables can be found below under stderr -- copy and paste into Portainer-Stacks Environment variables section in Advanced mode\n",
  "Env": [{"name": "TAG", "value": "latest"},{"name": "HOST_PORT", "value": "8182"}]
}' 'https://192.168.1.123:9000:9443/api/stacks?type=2&method=string&endpointId=2'
curl: (3) URL using bad/illegal format or missing URL
+ portainerResponse=
+ [[ -z '' ]]
+ exit 1
+ [[ 1 == 1 ]]
+ exit 1

Here's the output from running "Generate Filtered Channels DVR Log" instructions...

2024/07/10 02:19:09.595794 [SYS] Starting Channels DVR v2024.07.09.1812 (linux-x86_64 pid:7) in /channels-dvr/data
2024/07/10 02:47:48.491272 [SYS] Starting Channels DVR v2024.07.09.1812 (linux-x86_64 pid:7) in /channels-dvr/data
2024/07/09 22:49:11.933127 [SYS] Starting Channels DVR v2024.07.09.1812 (linux-x86_64 pid:7) in /channels-dvr/data
2024/07/12 11:24:05.214024 [SYS] Starting Channels DVR v2024.07.12.0633 (linux-x86_64 pid:7) in /channels-dvr/data

and the errors:

+ dvr=192.168.1.123:8089
+ numberLines=100000
++ sed 's/[][\.*^$(){}?+|/]/\\&/g'
++ echo '[SYS]' Starting Channels
+ filterResult='\[SYS\] Starting Channels'
+ scriptRun
+ case "$filterResult" in
+ grep '\[SYS\] Starting Channels'
+ curl 'http://192.168.1.123:8089/log?n=100000'
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed

  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
100 11.5M    0 11.5M    0     0  33.4M      0 --:--:-- --:--:-- --:--:-- 33.4M
+ runResult=0
+ [[ 0 == \1 ]]
+ [[ 0 == \0 ]]
+ exit 0```

Your PORTAINER_HOST value should be just the IP without the PORT

What value are you using currently for LOGS_SHARE?

AHA!! YES! Thank you, I misunderstood earlier. Fixed that and now Project One-Click is working!! Thanks!

This is what I have... again, this is in Ugreen's weird Docker installation...

Looking at it again, your LOGS_SHARE value should be fine -- so you're good to go!

Ah! OK thank you!!

Actually... the Stirr One-Click doesn't work and freezes in OliveTin after creating the container in Portainer. It doesn't add itself to CDVR. The other One-Clicks seem to work fine. Just that one for some reason gave me grief. Tried it a couple times too. Stirr just stops at "Waiting For Result".

I thought Stirr is no longer available.

Oh... I've been using an m3u from another source and the channels have still be streaming for me, so I assumed it was still around. The One-Click still pulls and creates the container in Docker, it just doesn't add it to CDVR. I was just preferring to run it on my own server.

I saw that, but I'm using a source for it from https://i.mjh.nz/Stirr/all.m3u8 and it's got 66 channels... :man_shrugging:

Does it have guide data ?

Mostly... using this: https://i.mjh.nz/Stirr/all.xml

Looking at the Portainer-Log for the created container is a good place to check in situations like this. When I try to add Stirr from Project One-Click, here's what the Portainer-Log is showing me:

2024/07/12 20:20:45 STIRR_STATION_ID env var not set, attempting to auto detect local station
panic: runtime error: index out of range [0] with length 0
goroutine 1 [running]:
main.(*StirrClient).GetStation(0xc000051ea0?)
	/app/main.go:90 +0x9f
main.NewStirrClient()
	/app/main.go:45 +0xd5
main.main()
	/app/main.go:270 +0x2b
2024/07/12 20:21:11 STIRR_STATION_ID env var not set, attempting to auto detect local station
panic: runtime error: index out of range [0] with length 0
goroutine 1 [running]:
main.(*StirrClient).GetStation(0xc000051ea0?)
	/app/main.go:90 +0x9f
main.NewStirrClient()
	/app/main.go:45 +0xd5
main.main()
	/app/main.go:270 +0x2b

Even adding the STIRR_STATION_ID manually results in:

2024/07/12 20:31:44 Beginning cache fill
2024/07/12 20:31:44 Error when filling cache unexpected response 400 Bad Request from https://ott-gateway-stirr.sinclairstoryline.com/api/rest/v3/channels/stirr?station= 

Probably a change in the API at the very least...

AH...does that mean I'm out of luck? I mean, I can certainly stick with what I've been using. These are certainly not mission-critical channels haha.

For now anyway. This is something that the stirr-for-channels project maintainer, or somebody willing to fork it, would need to address. The container appears non-functional using the current API.

@robbiet480 What's your current thinking on the stirr-for-channels project?

1 Like

Stirr was sold and is dead.

1 Like

I wonder what on earth I'm getting then from those URL's hahahaha... oh well! Thanks!