AndroidHDMI for Channels (ah4c): A virtual channel tuner using HDMI Encoder(s) + streaming stick(s)

@chasut
Funny you should mention it. This past week I was going through all the settings on the Spectrum App while upgrading/setting up another one on a different box and saw the 12 hour thing. I thought I had set them all for the longest time possible when I first set each one up but...

I don't know if the longest time possible was changed at some point during an App upgrade in the last year+ and I didn't realize it but my primary ATV 4k Tuner was set at 4hrs while the other one was set to 12 hours. :man_shrugging:

I did a test play and left it run for over 8 hours so I think that issue is probably solved. :+1:

I am still going to finish working on my IR control project.
My parts arrived from alixpress and digikey this week (that is why I was setting up another ATV I have, to use as a test bed)
I am attempting to build an ip to ir controller that uses an ESP32 and I believe it would be able to control up to 8 ir emitters that can send separate unique signals to different hardware.
Global Cache makes the IP2IR Ethernet to IR box but it costs at least $65 used on ebay and is usually running closer to $80 and up. It can only control 3 IR outputs.
If I don't use it for something now, I will at least have it in my back pocket just in case...I have now seen a couple xumo streaming boxes on ebay for $20 without a remote...I would never pay $60 for these basterized locked down android boxes...but at $20 I would consider them for Spectrum tuners if I need more tuners...I also worry that Spectrum will suddenly decide to disable deeplinks on ATV or just screw it up with an update.

I looked through the dtvstreamdeeplinks.m3u and the resourceId was correct for the stations that I pay for.
They are listed as
http://{{ .IPADDRESS }}/play/tuner/CNNHD~d3603aea-f5d8-e789-786c-43c5e8799428
Is this correct? The post you pointed to has a different format
I still have no joy.

That's the correct format -- though the ID portion is not correct for me, as I'm a satellite customer.

So what do you mean by no joy? Where is it failing? Posting some ah4c Portainer logs would probably be helpful. Restart the container, and try to tune to one channel, then grab the logs -- all the way back to container start so we can figure out what's going on.

And, just to be sure there's not something basic amiss, go ahead and post the env vars from your ah4c Portainer-Stack. Also a few details about your setup might be helpful, like what OS are you running CDVR on, and is Docker/Portainer on the same host?

Be sure to post your logs in a code block (3 backticks before and after the text) to keep things readable and compact.

EDIT: BTW, the difference in format with the Callsign and the ResourceID, is just to allow us to pass both values from the M3U to the scripts (separated by a tilde). Those two values are then used in the expected deeplink format when sent via adb.

@user3162

For example, here's a complete container start and single channel tune I did, so you can see what it's supposed to look like:

127.0.0.1	localhost

::1	localhost ip6-localhost ip6-loopback

fe00::0	ip6-localnet

ff00::0	ip6-mcastprefix

ff02::1	ip6-allnodes

ff02::2	ip6-allrouters

172.20.0.2	ah4c

192.168.110.50 firestick-rack1

192.168.110.192 firestick-rack2

192.168.110.41 firestick-rack3

192.168.110.162 firestick-rack4

192.168.110.116 firestick-travel2

192.168.110.130 encoder_48007

192.168.110.49 encoder_23393

* daemon not running; starting now at tcp:5037

* daemon started successfully

List of devices attached

connected to firestick-rack1:5555

connected to firestick-rack2:5555

connected to firestick-rack3:5555

connected to firestick-rack4:5555

failed to connect to 'firestick-travel2:5555': Host is unreachable

Existing ./scripts/firetv/directv/prebmitune.sh found, and will be preserved

Existing ./scripts/firetv/dtvdeeplinks/prebmitune.sh found, and will be preserved

Existing ./scripts/firetv/directv/bmitune.sh found, and will be preserved

Existing ./scripts/firetv/dtvdeeplinks/bmitune.sh found, and will be preserved

Existing ./scripts/firetv/directv/stopbmitune.sh found, and will be preserved

Existing ./scripts/firetv/dtvdeeplinks/stopbmitune.sh found, and will be preserved

Existing directv.m3u found, and will be preserved

Existing dtvdeeplinks.m3u found, and will be preserved

Existing dtvosprey.m3u found, and will be preserved

Existing dtvstream.m3u found, and will be preserved

Existing dtvstreamdeeplinks.m3u found, and will be preserved

Existing foo-fighters.m3u found, and will be preserved

Existing fubo.m3u found, and will be preserved

Existing hulu.m3u found, and will be preserved

Existing livetv.m3u found, and will be preserved

Existing nbc.m3u found, and will be preserved

Existing npo.m3u found, and will be preserved

Existing pbs-seatac.m3u found, and will be preserved

Existing pbs-worcester.m3u found, and will be preserved

Existing silicondust.m3u found, and will be preserved

Existing sling.m3u found, and will be preserved

Existing spectrum.m3u found, and will be preserved

Existing xfinity.m3u found, and will be preserved

Existing youtubetv_shield.m3u found, and will be preserved

Existing youtubetv.m3u found, and will be preserved

[START] ah4c is starting

[ENV] Not loading env

[ENV] IPADDRESS                  htpc6:7654

[ENV] ALERT_SMTP_SERVER          smtp.gmail.com:587

[ENV] ALERT_AUTH_SERVER          smtp.gmail.com

[ENV] ALERT_EMAIL_FROM           [Redacted]

[ENV] ALERT_EMAIL_PASS           [Redacted]

[ENV] ALERT_EMAIL_TO             [Redacted]

[ENV] ALERT_WEBHOOK_URL          

[ENV] ALLOW_DEBUG_VIDEO_PREVIEW  

[ENV] Creating tuner             1

[ENV] ENCODER1_URL               http://encoder_48007/0.ts

[ENV] TUNER1_IP                  firestick-rack1:5555

[ENV] CMD1                       

[ENV] TEECMD1                    

[ENV] PRE SCRIPT                 ./scripts/firetv/dtvdeeplinks/prebmitune.sh

[ENV] START SCRIPT               ./scripts/firetv/dtvdeeplinks/bmitune.sh

[ENV] STOP SCRIPT                ./scripts/firetv/dtvdeeplinks/stopbmitune.sh

[ENV] REBOOT SCRIPT              ./scripts/firetv/dtvdeeplinks/reboot.sh

[ENV] Creating tuner             2

[ENV] ENCODER2_URL               http://encoder_48007/4.ts

[ENV] TUNER2_IP                  firestick-rack2:5555

[ENV] CMD2                       

[ENV] TEECMD2                    

[ENV] PRE SCRIPT                 ./scripts/firetv/dtvdeeplinks/prebmitune.sh

[ENV] START SCRIPT               ./scripts/firetv/dtvdeeplinks/bmitune.sh

[ENV] STOP SCRIPT                ./scripts/firetv/dtvdeeplinks/stopbmitune.sh

[ENV] REBOOT SCRIPT              ./scripts/firetv/dtvdeeplinks/reboot.sh

[ENV] Creating tuner             3

[ENV] ENCODER3_URL               http://encoder_48007/8.ts

[ENV] TUNER3_IP                  firestick-rack3:5555

[ENV] CMD3                       

[ENV] TEECMD3                    

[ENV] PRE SCRIPT                 ./scripts/firetv/dtvdeeplinks/prebmitune.sh

[ENV] START SCRIPT               ./scripts/firetv/dtvdeeplinks/bmitune.sh

[ENV] STOP SCRIPT                ./scripts/firetv/dtvdeeplinks/stopbmitune.sh

[ENV] REBOOT SCRIPT              ./scripts/firetv/dtvdeeplinks/reboot.sh

[ENV] Creating tuner             4

[ENV] ENCODER4_URL               http://encoder_48007/12.ts

[ENV] TUNER4_IP                  firestick-rack4:5555

[ENV] CMD4                       

[ENV] TEECMD4                    

[ENV] PRE SCRIPT                 ./scripts/firetv/dtvdeeplinks/prebmitune.sh

[ENV] START SCRIPT               ./scripts/firetv/dtvdeeplinks/bmitune.sh

[ENV] STOP SCRIPT                ./scripts/firetv/dtvdeeplinks/stopbmitune.sh

[ENV] REBOOT SCRIPT              ./scripts/firetv/dtvdeeplinks/reboot.sh

[ENV] Creating tuner             5

[ENV] ENCODER5_URL               http://encoder_23393/0.ts

[ENV] TUNER5_IP                  firestick-travel2:5555

[ENV] CMD5                       

[ENV] TEECMD5                    

[ENV] PRE SCRIPT                 ./scripts/firetv/dtvdeeplinks/prebmitune.sh

[ENV] START SCRIPT               ./scripts/firetv/dtvdeeplinks/bmitune.sh

[ENV] STOP SCRIPT                ./scripts/firetv/dtvdeeplinks/stopbmitune.sh

[ENV] REBOOT SCRIPT              ./scripts/firetv/dtvdeeplinks/reboot.sh

[GIN-debug] [WARNING] Running in "debug" mode. Switch to "release" mode in production.

 - using env:	export GIN_MODE=release

 - using code:	gin.SetMode(gin.ReleaseMode)

[GIN-debug] GET    /favicon.ico              --> github.com/gin-gonic/gin.(*RouterGroup).StaticFile.func1 (2 handlers)

[GIN-debug] HEAD   /favicon.ico              --> github.com/gin-gonic/gin.(*RouterGroup).StaticFile.func1 (2 handlers)

[GIN-debug] Loaded HTML Templates (11): 

	- editm3u.html


	- logs.html


	- m3us.html

	- status_and_logs.html

	- config.html


	- edit.html

	- index.html

	- routes.html

	- status.html

	- stream.html

	- 

[GIN-debug] GET    /static/*filepath         --> github.com/gin-gonic/gin.(*RouterGroup).createStaticHandler.func1 (2 handlers)

[GIN-debug] HEAD   /static/*filepath         --> github.com/gin-gonic/gin.(*RouterGroup).createStaticHandler.func1 (2 handlers)

[GIN-debug] GET    /                         --> main.run.func1 (2 handlers)

[GIN-debug] GET    /routes                   --> main.run.func2 (2 handlers)

[GIN-debug] GET    /play/tuner:tuner/:channel --> main.run.func3 (2 handlers)

[GIN-debug] GET    /m3u/:channel             --> main.run.func4 (2 handlers)

[GIN-debug] GET    /env                      --> main.run.func5 (2 handlers)

[GIN-debug] GET    /logs/text                --> main.run.func6 (2 handlers)

[GIN-debug] GET    /logs                     --> main.run.func7 (2 handlers)

[GIN-debug] GET    /status/andlogs           --> main.run.func8 (2 handlers)

[GIN-debug] GET    /logs/json                --> main.run.func9 (2 handlers)

[GIN-debug] GET    /video                    --> main.run.func10 (2 handlers)

[GIN-debug] GET    /status                   --> main.statusPageHandler (2 handlers)

[GIN-debug] GET    /api/status               --> main.apiStatusHandler (2 handlers)

[GIN-debug] GET    /stream                   --> main.run.func11 (2 handlers)

[GIN-debug] GET    /test/webhook             --> main.run.func12 (2 handlers)

[GIN-debug] GET    /test/email               --> main.run.func13 (2 handlers)

[GIN-debug] GET    /status/channelsactivity  --> main.run.func14 (2 handlers)

[GIN-debug] GET    /edit                     --> main.run.func15 (2 handlers)

[GIN-debug] POST   /save                     --> main.run.func16 (2 handlers)

[GIN-debug] POST   /m3usave/:file            --> main.run.func17 (2 handlers)

[GIN-debug] GET    /m3us                     --> main.run.func18 (2 handlers)

[GIN-debug] GET    /editm3u/:file            --> main.run.func19 (2 handlers)

[GIN-debug] GET    /config                   --> main.run.func20 (2 handlers)

[GIN-debug] POST   /configsave               --> main.run.func21 (2 handlers)

[START] ah4c is ready

[GIN-debug] Listening and serving HTTP on :7654

> [email protected] start

> node ./index.js

Listening on:

	http://ah4c:8000 http://localhost:8000

	http://127.0.0.1:8000 http://172.20.0.2:8000

	http://[::1]:8000

[firestick-rack4:5555] start server: "24184"

[GIN-debug] Request: 100.98.232.107 GET /static/logos/exit.png, latency: 345.141µs, status: 200

[GIN-debug] Request: 100.98.232.107 GET /static/logos/reboot.png, latency: 452.634µs, status: 200

Attempting network tune for device http://encoder_48007/0.ts firestick-rack1:5555 HBOwHD~6da0d147-0635-4fe0-a003-19c6dc089af5 

[EXECUTE] Running [./scripts/firetv/dtvdeeplinks/prebmitune.sh firestick-rack1:5555 HBOwHD~6da0d147-0635-4fe0-a003-19c6dc089af5]

[EXECUTE] Stdout: 'already connected to firestick-rack1:5555

Starting: Intent { cmp=com.att.tv/com.clientapp.MainActivity }

Starting com.att.tv on firestick-rack1:5555

prebmitune.sh is exiting for firestick-rack1:5555 with exit code 0

'

[EXECUTE] Stderr: '+ streamerIP=firestick-rack1:5555

+ streamerNoPort=firestick-rack1

+ adbTarget='adb -s firestick-rack1:5555'

+ mkdir -p firestick-rack1

+ trap finish EXIT

+ main


+ adbConnect

+ adb connect firestick-rack1:5555

+ local -i adbMaxRetries=2

+ local -i adbCounter=0

+ true

+ adb -s firestick-rack1:5555 shell input keyevent KEYCODE_WAKEUP

+ local adbEventSuccess=0

+ [[ 0 -eq 0 ]]

+ break



e

+ packageLaunch=com.clientapp.MainActivity

+ packageName=com.att.tv

++ adb -s firestick-rack1:5555 shell pidof com.att.tv

+ packagePID=

+ '[' '!' -z ']'

+ adb -s firestick-rack1:5555 shell am start -n com.att.tv/com.clientapp.MainActivity

+ echo 'Starting com.att.tv on firestick-rack1:5555'

+ finish

+ echo 'prebmitune.sh is exiting for firestick-rack1:5555 with exit code 0'

'

[EXECUTE] Finished running ./scripts/firetv/dtvdeeplinks/prebmitune.sh in 1.41769269s

[EXECUTE] Running [./scripts/firetv/dtvdeeplinks/bmitune.sh HBOwHD~6da0d147-0635-4fe0-a003-19c6dc089af5 firestick-rack1:5555]

[IO] io.Copy: write tcp 172.20.0.2:7654->100.111.146.77:58369: write: broken pipe

[IOINFO] Successfully copied 57742340 bytes

[IOINFO] Transfer speed: 4.243280688625403 Mbits/second

Performing Close() for firestick-rack1:5555

[EXECUTE] Running [./scripts/firetv/dtvdeeplinks/stopbmitune.sh firestick-rack1:5555 HBOwHD~6da0d147-0635-4fe0-a003-19c6dc089af5]

[EXECUTE] Stdout: 'Current PID for this script is 134

Not a special channel (exit nor reboot)

Active audio stream not yet detected -- loudness is -70.0 LUF. Continuing...

Active audio stream not yet detected -- loudness is -70.0 LUF. Continuing...

Active audio stream not yet detected -- loudness is -70.0 LUF. Continuing...

Active audio stream detected with -17.2 LUF.

Starting: Intent { act=android.intent.action.VIEW (has data) cmp=com.att.tv/com.clientapp.MainActivity }

bmitune.sh is exiting for firestick-rack1:5555 with exit code 0

'

[EXECUTE] Stderr: '++ echo HBOwHD~6da0d147-0635-4fe0-a003-19c6dc089af5

++ awk -F~ '{print $2}'

+ channelID=6da0d147-0635-4fe0-a003-19c6dc089af5

++ echo HBOwHD~6da0d147-0635-4fe0-a003-19c6dc089af5

++ awk -F~ '{print $1}'

+ channelName=HBOwHD

+ specialID=HBOwHD

+ streamerIP=firestick-rack1:5555

+ streamerNoPort=firestick-rack1

+ adbTarget='adb -s firestick-rack1:5555'

+ packageName=com.att.tv

+ packageAction=com.clientapp.MainActivity

+ [[ false == '' ]]

+ speedMode=false

+ trap finish EXIT

+ main

+ updateReferenceFiles

+ mkdir -p firestick-rack1

+ [[ -f firestick-rack1/stream_stopped ]]

+ echo 0

+ [[ -f firestick-rack1/last_channel ]]

+ echo 0

+ echo 134

+ echo 'Current PID for this script is 134'

+ matchEncoderURL

+ case "$streamerIP" in

+ encoderURL=http://encoder_48007/0.ts

+ specialChannels

+ '[' HBOwHD = exit ']'

+ '[' HBOwHD = reboot ']'

+ [[ -f firestick-rack1/adbCommunicationFail ]]

+ echo 'Not a special channel (exit nor reboot)'

+ launchDelay

+ local lastChannel

+ local lastAwake

+ local timeNow

+ local timeElapsed

+ local maxTime=14400

+ lastChannel=0

+ lastAwake=0

++ date +%s

+ timeNow=1742180256

+ timeElapsed=1742180256

+ '[' -f firestick-rack1/adbAppRunning ']'

+ activeAudioCheck 42 true 0 1

++ date +%s

+ local startTime=1742180256

+ local maxDuration=42

+ local minimumLoudness=-50

+ local sleepBeforeAudioCheck=0

+ local sleepAfterAudioCheck=1

+ local preTuneAudioCheck=true

+ true



0

++ ffmpeg -t 1 -i http://encoder_48007/0.ts -filter:a ebur128 -map 0:a -f null -hide_banner -

++ awk '/I:        /{print $2}'

+ checkLoudness=-70.0

++ date +%s

+ ((  1742180261 - 1742180256 > 42  ))

++ echo '-70.0 > -50'

++ bc -l

+ ((  0  ))

+ echo 'Active audio stream not yet detected -- loudness is -70.0 LUF. Continuing...'



1

+ true



0

++ ffmpeg -t 1 -i http://encoder_48007/0.ts -filter:a ebur128 -map 0:a -f null -hide_banner -

++ awk '/I:        /{print $2}'

+ checkLoudness=-70.0

++ date +%s

+ ((  1742180268 - 1742180256 > 42  ))

++ echo '-70.0 > -50'

++ bc -l

+ ((  0  ))

+ echo 'Active audio stream not yet detected -- loudness is -70.0 LUF. Continuing...'



1

+ true



0

++ ffmpeg -t 1 -i http://encoder_48007/0.ts -filter:a ebur128 -map 0:a -f null -hide_banner -

++ awk '/I:        /{print $2}'

+ checkLoudness=-70.0

++ date +%s

+ ((  1742180274 - 1742180256 > 42  ))

++ echo '-70.0 > -50'

++ bc -l

+ ((  0  ))

+ echo 'Active audio stream not yet detected -- loudness is -70.0 LUF. Continuing...'



1

+ true



0

++ ffmpeg -t 1 -i http://encoder_48007/0.ts -filter:a ebur128 -map 0:a -f null -hide_banner -

++ awk '/I:        /{print $2}'

+ checkLoudness=-17.2

++ date +%s

+ ((  1742180280 - 1742180256 > 42  ))

++ echo '-17.2 > -50'

++ bc -l

+ ((  1  ))

+ echo 'Active audio stream detected with -17.2 LUF.'

+ break

+ echo HBOwHD

+ tuneChannel

+ adb -s firestick-rack1:5555 shell am start -n com.att.tv/com.clientapp.MainActivity dtvnow://deeplink.directvnow.com/play/channel/HBOwHD/6da0d147-0635-4fe0-a003-19c6dc089af5

Warning: Activity not started, intent has been delivered to currently running top-most instance.

+ echo -e '#!/bin/bash\n\nwhile true; do sleep 4h; adb -s firestick-rack1:5555 shell am start -n com.att.tv/com.clientapp.MainActivity dtvnow://deeplink.directvnow.com/play/channel/HBOwHD/6da0d147-0635-4fe0-a003-19c6dc089af5; done'

+ chmod +x ./firestick-rack1/keep_watching.sh

+ finish

+ echo 'bmitune.sh is exiting for firestick-rack1:5555 with exit code 0'

+ [[ -n 4h ]]

+ nohup ./firestick-rack1/keep_watching.sh

Terminated

'

[EXECUTE] Finished running ./scripts/firetv/dtvdeeplinks/bmitune.sh in 1m48.869562694s

[EXECUTE] Stdout: 'Streaming stopped for firestick-rack1:5555

Sleep initiated for firestick-rack1:5555

firestick-rack1/stream_stopped written with epoch stop time

'

[EXECUTE] Stderr: '+ streamerIP=firestick-rack1:5555

+ streamerNoPort=firestick-rack1

+ adbTarget='adb -s firestick-rack1:5555'

+ packageName=com.att.tv

+ [[ false == '' ]]

+ speedMode=false

+ main

+ bmituneDone

+ bmitunePID=134

++ pgrep -f firestick-rack1/keep_watching.sh

+ keepWatchingPID=217

++ ps -o ppid= -p 217

+ keepWatchingPPID='    216'

++ pgrep -P 217

+ keepWatchingCPID=218

+ ps -p 134

+ [[ -n 4h ]]

+ pkill -P 216

+ kill 218

+ rm ./firestick-rack1/keep_watching.sh



p

+ [[ false == \t\r\u\e ]]

+ stop='am force-stop com.att.tv'

+ adb -s firestick-rack1:5555 shell am force-stop com.att.tv



2

+ echo 'Streaming stopped for firestick-rack1:5555'

+ adbSleep

+ sleep='input keyevent KEYCODE_SLEEP'

+ adb -s firestick-rack1:5555 shell input keyevent KEYCODE_SLEEP

+ echo 'Sleep initiated for firestick-rack1:5555'

+ date +%s

+ echo 'firestick-rack1/stream_stopped written with epoch stop time'

'

[EXECUTE] Finished running ./scripts/firetv/dtvdeeplinks/stopbmitune.sh in 3.016701781s

[GIN-debug] Request: 100.111.146.77 GET /play/tuner/HBOwHD~6da0d147-0635-4fe0-a003-19c6dc089af5, latency: 1m53.355905624s, status: 200

I have Docker Desktop and Portainer in Win11
When I clicked on CNN the DTV app opened, but stayed on that home page. The keyboard appeared after awhile, but no text was entered. Then the app closed.
My env

TAG=latest
DOMAIN=localdomain
ADBS_PORT=5037
HOST_PORT=7654
WSCR_PORT=7655
IPADDRESS=192.168.4.35:7654
NUMBER_TUNERS=1
TUNER1_IP=192.168.4.225:5555
ENCODER1_URL=http://192.168.4.89:81/ts/1_0
TUNER2_IP=
ENCODER2_URL=
TUNER3_IP=
ENCODER3_URL=
TUNER4_IP=
ENCODER4_URL=
TUNER5_IP=
ENCODER5_URL=
STREAMER_APP=scripts/firetv/dtvstream
CHANNELSIP=192.168.4.213
ALERT_SMTP_SERVER= 
ALERT_AUTH_SERVER= 
ALERT_EMAIL_FROM= 
ALERT_EMAIL_PASS= 
ALERT_EMAIL_TO= 
UPDATE_SCRIPTS=true
UPDATE_M3US=ftrue
TZ=US/Eastern
SPEED_MODE=false
KEEP_WATCHING=4h
HOST_DIR=/data

I can't seem to post the portainer log
This is the AH4C log


Last updated: 3/17/2025, 7:37:59 AM
2025/03/17 07:01:42 [START] ah4c is starting
2025/03/17 07:01:42 [ENV] Not loading env
2025/03/17 07:01:42 [ENV] IPADDRESS 192.168.4.35:7654
2025/03/17 07:01:42 [ENV] ALERT_SMTP_SERVER
2025/03/17 07:01:42 [ENV] ALERT_AUTH_SERVER
2025/03/17 07:01:42 [ENV] ALERT_EMAIL_FROM
2025/03/17 07:01:42 [ENV] ALERT_EMAIL_PASS
2025/03/17 07:01:42 [ENV] ALERT_EMAIL_TO
2025/03/17 07:01:42 [ENV] ALERT_WEBHOOK_URL
2025/03/17 07:01:42 [ENV] ALLOW_DEBUG_VIDEO_PREVIEW
2025/03/17 07:01:42 [ENV] Creating tuner 1
2025/03/17 07:01:42 [ENV] ENCODER1_URL http://192.168.4.89:81/ts/1_0
2025/03/17 07:01:42 [ENV] TUNER1_IP 192.168.4.225:5555
2025/03/17 07:01:42 [ENV] CMD1
2025/03/17 07:01:42 [ENV] TEECMD1
2025/03/17 07:01:42 [ENV] PRE SCRIPT ./scripts/firetv/dtvstream/prebmitune.sh
2025/03/17 07:01:42 [ENV] START SCRIPT ./scripts/firetv/dtvstream/bmitune.sh
2025/03/17 07:01:42 [ENV] STOP SCRIPT ./scripts/firetv/dtvstream/stopbmitune.sh
2025/03/17 07:01:42 [ENV] REBOOT SCRIPT ./scripts/firetv/dtvstream/reboot.sh
2025/03/17 07:01:42 [START] ah4c is ready
2025/03/17 07:02:32 [GIN-debug] Request: 172.18.0.1 GET /m3u/dtvstreamdeeplinks.m3u, latency: 12.317959ms, status: 200
2025/03/17 07:03:12 Attempting network tune for device http://192.168.4.89:81/ts/1_0 192.168.4.225:5555 CNNHD~d3603aea-f5d8-e789-786c-43c5e8799428
2025/03/17 07:03:12 [EXECUTE] Running [./scripts/firetv/dtvstream/prebmitune.sh 192.168.4.225:5555 CNNHD~d3603aea-f5d8-e789-786c-43c5e8799428]
2025/03/17 07:03:15 [EXECUTE] Stdout: 'already connected to 192.168.4.225:5555
Starting: Intent { cmp=com.att.tv/com.clientapp.MainActivity }
Starting com.att.tv on 192.168.4.225:5555
prebmitune.sh is exiting for 192.168.4.225:5555 with exit code 0
'
2025/03/17 07:03:15 [EXECUTE] Stderr: '+ streamerIP=192.168.4.225:5555
+ streamerNoPort=192.168.4.225
+ adbTarget='adb -s 192.168.4.225:5555'
+ mkdir -p 192.168.4.225
+ trap finish EXIT
+ main
+ adbConnect
+ adb connect 192.168.4.225:5555
+ local -i adbMaxRetries=3
+ local -i adbCounter=0
+ true
+ adb -s 192.168.4.225:5555 shell input keyevent KEYCODE_WAKEUP
+ local adbEventSuccess=0
+ [[ 0 -eq 0 ]]
+ break
+ adbWake
+ packageLaunch=com.clientapp.MainActivity
+ packageName=com.att.tv
++ adb -s 192.168.4.225:5555 shell pidof com.att.tv
+ packagePID=
+ '[' '!' -z ']'
+ adb -s 192.168.4.225:5555 shell input keyevent KEYCODE_WAKEUP
+ adb -s 192.168.4.225:5555 shell am start -n com.att.tv/com.clientapp.MainActivity
+ echo 'Starting com.att.tv on 192.168.4.225:5555'
+ finish
+ echo 'prebmitune.sh is exiting for 192.168.4.225:5555 with exit code 0'
'
2025/03/17 07:03:15 [EXECUTE] Finished running ./scripts/firetv/dtvstream/prebmitune.sh in 2.407720448s
2025/03/17 07:03:15 [EXECUTE] Running [./scripts/firetv/dtvstream/bmitune.sh CNNHD~d3603aea-f5d8-e789-786c-43c5e8799428 192.168.4.225:5555]
2025/03/17 07:03:15 [IOINFO] Successfully copied 25192 bytes
2025/03/17 07:03:15 [IOINFO] Transfer speed: 523.8579207985132 Mbits/second
2025/03/17 07:03:15 Performing Close() for 192.168.4.225:5555
2025/03/17 07:03:15 [EXECUTE] Running [./scripts/firetv/dtvstream/stopbmitune.sh 192.168.4.225:5555 CNNHD~d3603aea-f5d8-e789-786c-43c5e8799428]
2025/03/17 07:04:07 [EXECUTE] Stdout: 'Current PID for this script is 83
Not a special channel (exit nor reboot)
Current app in focus is com.amazon.tv.launcher
Active audio stream not yet detected -- loudness is -70.0 LUF. Continuing...
Active audio stream not yet detected -- loudness is -70.0 LUF. Continuing...
Active audio stream detected with -36.7 LUF.
Active audio stream detected with -27.4 LUF.
bmitune.sh is exiting for 192.168.4.225:5555 with exit code 0
'
2025/03/17 07:04:07 [EXECUTE] Stderr: '+ channelID='"CNNHD~d3603aea-f5d8-e789-786c-43c5e8799428"'
+ specialID=CNNHD~d3603aea-f5d8-e789-786c-43c5e8799428
+ streamerIP=192.168.4.225:5555
+ streamerNoPort=192.168.4.225
+ adbTarget='adb -s 192.168.4.225:5555'
+ packageName=com.att.tv
+ m3uName=dtvstream.m3u
+ trap finish EXIT
+ main
+ updateReferenceFiles
+ mkdir -p 192.168.4.225
+ [[ -f 192.168.4.225/stream_stopped ]]
+ echo 0
+ [[ -f 192.168.4.225/last_channel ]]
+ echo 0
+ echo 83
+ echo 'Current PID for this script is 83'
+ matchEncoderURL
+ case "$streamerIP" in
+ encoderURL=http://192.168.4.89:81/ts/1_0
+ specialChannels
+ '[' CNNHD~d3603aea-f5d8-e789-786c-43c5e8799428 = exit ']'
+ '[' CNNHD~d3603aea-f5d8-e789-786c-43c5e8799428 = reboot ']'
+ [[ -f 192.168.4.225/adbCommunicationFail ]]
+ echo 'Not a special channel (exit nor reboot)'
++ grep -E mCurrentFocus
++ adb -s 192.168.4.225:5555 shell dumpsys window windows
++ cut -d / -f1
++ sed 's/.* //g'
+ appFocus=com.amazon.tv.launcher
+ echo 'Current app in focus is com.amazon.tv.launcher'
+ activeAudioCheck 42 true 0 1
++ date +%s
+ local startTime=1742209395
+ local maxDuration=42
+ local minimumLoudness=-50
+ local sleepBeforeAudioCheck=0
+ local sleepAfterAudioCheck=1
+ local preTuneAudioCheck=true
+ true
+ sleep 0
++ awk '/I: /{print $2}'
++ ffmpeg -t 1 -i http://192.168.4.89:81/ts/1_0 -filter:a ebur128 -map 0:a -f null -hide_banner -
+ checkLoudness=-70.0
++ date +%s
+ (( 1742209402 - 1742209395 > 42 ))
++ bc -l
++ echo '-70.0 > -50'
+ (( 0 ))
+ echo 'Active audio stream not yet detected -- loudness is -70.0 LUF. Continuing...'
+ sleep 1
+ true
+ sleep 0
++ ffmpeg -t 1 -i http://192.168.4.89:81/ts/1_0 -filter:a ebur128 -map 0:a -f null -hide_banner -
++ awk '/I: /{print $2}'
+ checkLoudness=-70.0
++ date +%s
+ (( 1742209409 - 1742209395 > 42 ))
++ bc -l
++ echo '-70.0 > -50'
+ (( 0 ))
+ echo 'Active audio stream not yet detected -- loudness is -70.0 LUF. Continuing...'
+ sleep 1
+ true
+ sleep 0
++ ffmpeg -t ++ 1 awk '/I: /{print $2}'
-i http://192.168.4.89:81/ts/1_0 -filter:a ebur128 -map 0:a -f null -hide_banner -
+ checkLoudness=-36.7
++ date +%s
+ (( 1742209417 - 1742209395 > 42 ))
++ bc -l
++ echo '-36.7 > -50'
+ (( 1 ))
+ echo 'Active audio stream detected with -36.7 LUF.'
+ break
+ tuneChannel
++ awk -F, '/channel-id="CNNHD~d3603aea-f5d8-e789-786c-43c5e8799428"/ {print $2}' m3u/dtvstream.m3u
+ channelName=
++ sed 's/^/"/;s/$/"/'
++ echo
+ channelName='""'
+ numberOfBackspaces=25
++ (( i=0 ))
++ (( i<25 ))
++ echo -n ' KEYCODE_MEDIA_REWIND'
++ (( i++ ))
++ (( i<25 ))
++ echo -n ' KEYCODE_MEDIA_REWIND'
++ (( i++ ))
++ (( i<25 ))
++ echo -n ' KEYCODE_MEDIA_REWIND'
++ (( i++ ))
++ (( i<25 ))
++ echo -n ' KEYCODE_MEDIA_REWIND'
++ (( i++ ))
++ (( i<25 ))
++ echo -n ' KEYCODE_MEDIA_REWIND'
++ (( i++ ))
++ (( i<25 ))
++ echo -n ' KEYCODE_MEDIA_REWIND'
++ (( i++ ))
++ (( i<25 ))
++ echo -n ' KEYCODE_MEDIA_REWIND'
++ (( i++ ))
++ (( i<25 ))
++ echo -n ' KEYCODE_MEDIA_REWIND'
++ (( i++ ))
++ (( i<25 ))
++ echo -n ' KEYCODE_MEDIA_REWIND'
++ (( i++ ))
++ (( i<25 ))
++ echo -n ' KEYCODE_MEDIA_REWIND'
++ (( i++ ))
++ (( i<25 ))
++ echo -n ' KEYCODE_MEDIA_REWIND'
++ (( i++ ))
++ (( i<25 ))
++ echo -n ' KEYCODE_MEDIA_REWIND'
++ (( i++ ))
++ (( i<25 ))
++ echo -n ' KEYCODE_MEDIA_REWIND'
++ (( i++ ))
++ (( i<25 ))
++ echo -n ' KEYCODE_MEDIA_REWIND'
++ (( i++ ))
++ (( i<25 ))
++ echo -n ' KEYCODE_MEDIA_REWIND'
++ (( i++ ))
++ (( i<25 ))
++ echo -n ' KEYCODE_MEDIA_REWIND'
++ (( i++ ))
++ (( i<25 ))
++ echo -n ' KEYCODE_MEDIA_REWIND'
++ (( i++ ))
++ (( i<25 ))
++ echo -n ' KEYCODE_MEDIA_REWIND'
++ (( i++ ))
++ (( i<25 ))
++ echo -n ' KEYCODE_MEDIA_REWIND'
++ (( i++ ))
++ (( i<25 ))
++ echo -n ' KEYCODE_MEDIA_REWIND'
++ (( i++ ))
++ (( i<25 ))
++ echo -n ' KEYCODE_MEDIA_REWIND'
++ (( i++ ))
++ (( i<25 ))
++ echo -n ' KEYCODE_MEDIA_REWIND'
++ (( i++ ))
++ (( i<25 ))
++ echo -n ' KEYCODE_MEDIA_REWIND'
++ (( i++ ))
++ (( i<25 ))
++ echo -n ' KEYCODE_MEDIA_REWIND'
++ (( i++ ))
++ (( i<25 ))
++ echo -n ' KEYCODE_MEDIA_REWIND'
++ (( i++ ))
++ (( i<25 ))
+ clearSearchBackspaces=' KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND'
+ directvMenu='input keyevent KEYCODE_MENU; sleep 6'
+ directvSearch='input keyevent KEYCODE_DPAD_LEFT; input keyevent KEYCODE_DPAD_UP; input keyevent KEYCODE_DPAD_CENTER; sleep 1; input keyevent KEYCODE_DPAD_CENTER; sleep 1'
+ directvClearSearch='input keyevent KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND'
+ directvTune='input keyevent KEYCODE_MEDIA_PLAY_PAUSE; sleep 1; input keyevent KEYCODE_DPAD_DOWN; input keyevent KEYCODE_DPAD_DOWN; input keyevent KEYCODE_DPAD_DOWN; input keyevent KEYCODE_DPAD_CENTER'
+ adb -s 192.168.4.225:5555 shell input keyevent 'KEYCODE_MENU;' sleep 6
+ adb -s 192.168.4.225:5555 shell input keyevent 'KEYCODE_DPAD_LEFT;' input keyevent 'KEYCODE_DPAD_UP;' input keyevent 'KEYCODE_DPAD_CENTER;' sleep '1;' input keyevent 'KEYCODE_DPAD_CENTER;' sleep 1
+ adb -s 192.168.4.225:5555 shell input keyevent KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND
+ adb -s 192.168.4.225:5555 shell input text '""'
+ adb -s 192.168.4.225:5555 shell input keyevent 'KEYCODE_MEDIA_PLAY_PAUSE;' sleep '1;' input keyevent 'KEYCODE_DPAD_DOWN;' input keyevent 'KEYCODE_DPAD_DOWN;' input keyevent 'KEYCODE_DPAD_DOWN;' input keyevent KEYCODE_DPAD_CENTER
+ activeAudioCheck 24 false 5 1
++ date +%s
+ local startTime=1742209435
+ local maxDuration=24
+ local minimumLoudness=-50
+ local sleepBeforeAudioCheck=5
+ local sleepAfterAudioCheck=1
+ local preTuneAudioCheck=false
+ true
+ sleep 5
++ ffmpeg -t 1 -i http://192.168.4.89:81/ts/1_0 ++ awk '/I: /{print $2}'
-filter:a ebur128 -map 0:a -f null -hide_banner -
+ checkLoudness=-27.4
++ date +%s
+ (( 1742209447 - 1742209435 > 24 ))
++ bc -l
++ echo '-27.4 > -50'
+ (( 1 ))
+ echo 'Active audio stream detected with -27.4 LUF.'
+ break
+ finish
+ echo 'bmitune.sh is exiting for 192.168.4.225:5555 with exit code 0'
'
2025/03/17 07:04:07 [EXECUTE] Finished running ./scripts/firetv/dtvstream/bmitune.sh in 51.841899212s
2025/03/17 07:04:10 [EXECUTE] Stdout: 'Waiting for bmitune.sh to complete...
Waiting for bmitune.sh to complete...
Waiting for bmitune.sh to complete...
Waiting for bmitune.sh to complete...
Waiting for bmitune.sh to complete...
Waiting for bmitune.sh to complete...
Waiting for bmitune.sh to complete...
Waiting for bmitune.sh to complete...
Waiting for bmitune.sh to complete...
Waiting for bmitune.sh to complete...
Waiting for bmitune.sh to complete...
Waiting for bmitune.sh to complete...
Waiting for bmitune.sh to complete...
Waiting for bmitune.sh to complete...
Waiting for bmitune.sh to complete...
Waiting for bmitune.sh to complete...
Waiting for bmitune.sh to complete...
Waiting for bmitune.sh to complete...
Waiting for bmitune.sh to complete...
Waiting for bmitune.sh to complete...
Waiting for bmitune.sh to complete...
Waiting for bmitune.sh to complete...
Waiting for bmitune.sh to complete...
Waiting for bmitune.sh to complete...
Waiting for bmitune.sh to complete...
Waiting for bmitune.sh to complete...
Streaming stopped for 192.168.4.225:5555
Sleep initiated for 192.168.4.225:5555
192.168.4.225/stream_stopped written with epoch stop time
'
2025/03/17 07:04:10 [EXECUTE] Stderr: '+ streamerIP=192.168.4.225:5555
+ streamerNoPort=192.168.4.225
+ adbTarget='adb -s 192.168.4.225:5555'
+ packageName=com.att.tv
+ main
+ bmituneDone
+ bmitunePID=83
+ ps -p 83
+ echo 'Waiting for bmitune.sh to complete...'
+ sleep 2
+ ps -p 83
+ echo 'Waiting for bmitune.sh to complete...'
+ sleep 2
+ ps -p 83
+ echo 'Waiting for bmitune.sh to complete...'
+ sleep 2
+ ps -p 83
+ echo 'Waiting for bmitune.sh to complete...'
+ sleep 2
+ ps -p 83
+ echo 'Waiting for bmitune.sh to complete...'
+ sleep 2
+ ps -p 83
+ echo 'Waiting for bmitune.sh to complete...'
+ sleep 2
+ ps -p 83
+ echo 'Waiting for bmitune.sh to complete...'
+ sleep 2
+ ps -p 83
+ echo 'Waiting for bmitune.sh to complete...'
+ sleep 2
+ ps -p 83
+ echo 'Waiting for bmitune.sh to complete...'
+ sleep 2
+ ps -p 83
+ echo 'Waiting for bmitune.sh to complete...'
+ sleep 2
+ ps -p 83
+ echo 'Waiting for bmitune.sh to complete...'
+ sleep 2
+ ps -p 83
+ echo 'Waiting for bmitune.sh to complete...'
+ sleep 2
+ ps -p 83
+ echo 'Waiting for bmitune.sh to complete...'
+ sleep 2
+ ps -p 83
+ echo 'Waiting for bmitune.sh to complete...'
+ sleep 2
+ ps -p 83
+ echo 'Waiting for bmitune.sh to complete...'
+ sleep 2
+ ps -p 83
+ echo 'Waiting for bmitune.sh to complete...'
+ sleep 2
+ ps -p 83
+ echo 'Waiting for bmitune.sh to complete...'
+ sleep 2
+ ps -p 83
+ echo 'Waiting for bmitune.sh to complete...'
+ sleep 2
+ ps -p 83
+ echo 'Waiting for bmitune.sh to complete...'
+ sleep 2
+ ps -p 83
+ echo 'Waiting for bmitune.sh to complete...'
+ sleep 2
+ ps -p 83
+ echo 'Waiting for bmitune.sh to complete...'
+ sleep 2
+ ps -p 83
+ echo 'Waiting for bmitune.sh to complete...'
+ sleep 2
+ ps -p 83
+ echo 'Waiting for bmitune.sh to complete...'
+ sleep 2
+ ps -p 83
+ echo 'Waiting for bmitune.sh to complete...'
+ sleep 2
+ ps -p 83
+ echo 'Waiting for bmitune.sh to complete...'
+ sleep 2
+ ps -p 83
+ echo 'Waiting for bmitune.sh to complete...'
+ sleep 2
+ ps -p 83
+ adbStop
+ stop='am force-stop com.att.tv'
+ adb -s 192.168.4.225:5555 shell am force-stop com.att.tv
+ sleep 2
+ echo 'Streaming stopped for 192.168.4.225:5555'
+ adbSleep
+ sleep='input keyevent KEYCODE_SLEEP'
+ adb -s 192.168.4.225:5555 shell input keyevent KEYCODE_SLEEP
+ echo 'Sleep initiated for 192.168.4.225:5555'
+ date +%s
+ echo '192.168.4.225/stream_stopped written with epoch stop time'
'
2025/03/17 07:04:10 [EXECUTE] Finished running ./scripts/firetv/dtvstream/stopbmitune.sh in 54.982418757s
2025/03/17 07:04:10 [GIN-debug] Request: 172.18.0.1 GET /play/tuner/CNNHD~d3603aea-f5d8-e789-786c-43c5e8799428, latency: 57.412974551s, status: 200
2025/03/17 07:23:29 [START] ah4c is starting
2025/03/17 07:23:29 [ENV] Not loading env
2025/03/17 07:23:29 [ENV] IPADDRESS 192.168.4.35:7654
2025/03/17 07:23:29 [ENV] ALERT_SMTP_SERVER
2025/03/17 07:23:29 [ENV] ALERT_AUTH_SERVER
2025/03/17 07:23:29 [ENV] ALERT_EMAIL_FROM
2025/03/17 07:23:29 [ENV] ALERT_EMAIL_PASS
2025/03/17 07:23:29 [ENV] ALERT_EMAIL_TO
2025/03/17 07:23:29 [ENV] ALERT_WEBHOOK_URL
2025/03/17 07:23:29 [ENV] ALLOW_DEBUG_VIDEO_PREVIEW
2025/03/17 07:23:29 [ENV] Creating tuner 1
2025/03/17 07:23:29 [ENV] ENCODER1_URL http://192.168.4.89:81/ts/1_0
2025/03/17 07:23:29 [ENV] TUNER1_IP 192.168.4.225:5555
2025/03/17 07:23:29 [ENV] CMD1
2025/03/17 07:23:29 [ENV] TEECMD1
2025/03/17 07:23:29 [ENV] PRE SCRIPT ./scripts/firetv/dtvstream/prebmitune.sh
2025/03/17 07:23:29 [ENV] START SCRIPT ./scripts/firetv/dtvstream/bmitune.sh
2025/03/17 07:23:29 [ENV] STOP SCRIPT ./scripts/firetv/dtvstream/stopbmitune.sh
2025/03/17 07:23:29 [ENV] REBOOT SCRIPT ./scripts/firetv/dtvstream/reboot.sh
2025/03/17 07:23:29 [START] ah4c is ready
2025/03/17 07:24:05 Attempting network tune for device http://192.168.4.89:81/ts/1_0 192.168.4.225:5555 CNNHD~d3603aea-f5d8-e789-786c-43c5e8799428
2025/03/17 07:24:05 [EXECUTE] Running [./scripts/firetv/dtvstream/prebmitune.sh 192.168.4.225:5555 CNNHD~d3603aea-f5d8-e789-786c-43c5e8799428]
2025/03/17 07:24:07 [EXECUTE] Stdout: 'already connected to 192.168.4.225:5555
Starting: Intent { cmp=com.att.tv/com.clientapp.MainActivity }
Starting com.att.tv on 192.168.4.225:5555
prebmitune.sh is exiting for 192.168.4.225:5555 with exit code 0
'
2025/03/17 07:24:07 [EXECUTE] Stderr: '+ streamerIP=192.168.4.225:5555
+ streamerNoPort=192.168.4.225
+ adbTarget='adb -s 192.168.4.225:5555'
+ mkdir -p 192.168.4.225
+ trap finish EXIT
+ main
+ adbConnect
+ adb connect 192.168.4.225:5555
+ local -i adbMaxRetries=3
+ local -i adbCounter=0
+ true
+ adb -s 192.168.4.225:5555 shell input keyevent KEYCODE_WAKEUP
+ local adbEventSuccess=0
+ [[ 0 -eq 0 ]]
+ break
+ adbWake
+ packageLaunch=com.clientapp.MainActivity
+ packageName=com.att.tv
++ adb -s 192.168.4.225:5555 shell pidof com.att.tv
+ packagePID=
+ '[' '!' -z ']'
+ adb -s 192.168.4.225:5555 shell input keyevent KEYCODE_WAKEUP
+ adb -s 192.168.4.225:5555 shell am start -n com.att.tv/com.clientapp.MainActivity
+ echo 'Starting com.att.tv on 192.168.4.225:5555'
+ finish
+ echo 'prebmitune.sh is exiting for 192.168.4.225:5555 with exit code 0'
'
2025/03/17 07:24:07 [EXECUTE] Finished running ./scripts/firetv/dtvstream/prebmitune.sh in 1.982134334s
2025/03/17 07:24:07 [EXECUTE] Running [./scripts/firetv/dtvstream/bmitune.sh CNNHD~d3603aea-f5d8-e789-786c-43c5e8799428 192.168.4.225:5555]
2025/03/17 07:24:08 [IOINFO] Successfully copied 23312 bytes
2025/03/17 07:24:08 [IOINFO] Transfer speed: 1.215498096058997 Mbits/second
2025/03/17 07:24:08 Performing Close() for 192.168.4.225:5555
2025/03/17 07:24:08 [EXECUTE] Running [./scripts/firetv/dtvstream/stopbmitune.sh 192.168.4.225:5555 CNNHD~d3603aea-f5d8-e789-786c-43c5e8799428]
2025/03/17 07:25:00 [EXECUTE] Stdout: 'Current PID for this script is 82
Not a special channel (exit nor reboot)
Current app in focus is com.amazon.tv.launcher
Active audio stream not yet detected -- loudness is -70.0 LUF. Continuing...
Active audio stream not yet detected -- loudness is -70.0 LUF. Continuing...
Active audio stream detected with -19.2 LUF.
Active audio stream detected with -25.2 LUF.
bmitune.sh is exiting for 192.168.4.225:5555 with exit code 0
'
2025/03/17 07:25:00 [EXECUTE] Stderr: '+ channelID='"CNNHD~d3603aea-f5d8-e789-786c-43c5e8799428"'
+ specialID=CNNHD~d3603aea-f5d8-e789-786c-43c5e8799428
+ streamerIP=192.168.4.225:5555
+ streamerNoPort=192.168.4.225
+ adbTarget='adb -s 192.168.4.225:5555'
+ packageName=com.att.tv
+ m3uName=dtvstream.m3u
+ trap finish EXIT
+ main
+ updateReferenceFiles
+ mkdir -p 192.168.4.225
+ [[ -f 192.168.4.225/stream_stopped ]]
+ [[ -f 192.168.4.225/last_channel ]]
+ echo 82
+ echo 'Current PID for this script is 82'
+ matchEncoderURL
+ case "$streamerIP" in
+ encoderURL=http://192.168.4.89:81/ts/1_0
+ specialChannels
+ '[' CNNHD~d3603aea-f5d8-e789-786c-43c5e8799428 = exit ']'
+ '[' CNNHD~d3603aea-f5d8-e789-786c-43c5e8799428 = reboot ']'
+ [[ -f 192.168.4.225/adbCommunicationFail ]]
+ echo 'Not a special channel (exit nor reboot)'
++ cut -d / ++ grep -E mCurrentFocus
-f1
++ adb -s 192.168.4.225:5555 shell dumpsys window windows
++ sed 's/.* //g'
+ appFocus=com.amazon.tv.launcher
+ echo 'Current app in focus is com.amazon.tv.launcher'
+ activeAudioCheck 42 true 0 1
++ date +%s
+ local startTime=1742210648
+ local maxDuration=42
+ local minimumLoudness=-50
+ local sleepBeforeAudioCheck=0
+ local sleepAfterAudioCheck=1
+ local preTuneAudioCheck=true
+ true
+ sleep 0
++ awk '/I: /{print $2}'
++ ffmpeg -t 1 -i http://192.168.4.89:81/ts/1_0 -filter:a ebur128 -map 0:a -f null -hide_banner -
+ checkLoudness=-70.0
++ date +%s
+ (( 1742210655 - 1742210648 > 42 ))
++ echo '-70.0 > -50'
++ bc -l
+ (( 0 ))
+ echo 'Active audio stream not yet detected -- loudness is -70.0 LUF. Continuing...'
+ sleep 1
+ true
+ sleep 0
++ ffmpeg -t 1 ++ -i awk '/I: /{print $2}'
http://192.168.4.89:81/ts/1_0 -filter:a ebur128 -map 0:a -f null -hide_banner -
+ checkLoudness=-70.0
++ date +%s
+ (( 1742210663 - 1742210648 > 42 ))
++ bc -l
++ echo '-70.0 > -50'
+ (( 0 ))
+ echo 'Active audio stream not yet detected -- loudness is -70.0 LUF. Continuing...'
+ sleep 1
+ true
+ sleep 0
++ ffmpeg -t 1 -i ++ http://192.168.4.89:81/ts/1_0 awk '/I: /{print $2}'
-filter:a ebur128 -map 0:a -f null -hide_banner -
+ checkLoudness=-19.2
++ date +%s
+ (( 1742210670 - 1742210648 > 42 ))
++ bc -l
++ echo '-19.2 > -50'
+ (( 1 ))
+ echo 'Active audio stream detected with -19.2 LUF.'
+ break
+ tuneChannel
++ awk -F, '/channel-id="CNNHD~d3603aea-f5d8-e789-786c-43c5e8799428"/ {print $2}' m3u/dtvstream.m3u
+ channelName=
++ sed 's/^/"/;s/$/"/'
++ echo
+ channelName='""'
+ numberOfBackspaces=25
++ (( i=0 ))
++ (( i<25 ))
++ echo -n ' KEYCODE_MEDIA_REWIND'
++ (( i++ ))
++ (( i<25 ))
++ echo -n ' KEYCODE_MEDIA_REWIND'
++ (( i++ ))
++ (( i<25 ))
++ echo -n ' KEYCODE_MEDIA_REWIND'
++ (( i++ ))
++ (( i<25 ))
++ echo -n ' KEYCODE_MEDIA_REWIND'
++ (( i++ ))
++ (( i<25 ))
++ echo -n ' KEYCODE_MEDIA_REWIND'
++ (( i++ ))
++ (( i<25 ))
++ echo -n ' KEYCODE_MEDIA_REWIND'
++ (( i++ ))
++ (( i<25 ))
++ echo -n ' KEYCODE_MEDIA_REWIND'
++ (( i++ ))
++ (( i<25 ))
++ echo -n ' KEYCODE_MEDIA_REWIND'
++ (( i++ ))
++ (( i<25 ))
++ echo -n ' KEYCODE_MEDIA_REWIND'
++ (( i++ ))
++ (( i<25 ))
++ echo -n ' KEYCODE_MEDIA_REWIND'
++ (( i++ ))
++ (( i<25 ))
++ echo -n ' KEYCODE_MEDIA_REWIND'
++ (( i++ ))
++ (( i<25 ))
++ echo -n ' KEYCODE_MEDIA_REWIND'
++ (( i++ ))
++ (( i<25 ))
++ echo -n ' KEYCODE_MEDIA_REWIND'
++ (( i++ ))
++ (( i<25 ))
++ echo -n ' KEYCODE_MEDIA_REWIND'
++ (( i++ ))
++ (( i<25 ))
++ echo -n ' KEYCODE_MEDIA_REWIND'
++ (( i++ ))
++ (( i<25 ))
++ echo -n ' KEYCODE_MEDIA_REWIND'
++ (( i++ ))
++ (( i<25 ))
++ echo -n ' KEYCODE_MEDIA_REWIND'
++ (( i++ ))
++ (( i<25 ))
++ echo -n ' KEYCODE_MEDIA_REWIND'
++ (( i++ ))
++ (( i<25 ))
++ echo -n ' KEYCODE_MEDIA_REWIND'
++ (( i++ ))
++ (( i<25 ))
++ echo -n ' KEYCODE_MEDIA_REWIND'
++ (( i++ ))
++ (( i<25 ))
++ echo -n ' KEYCODE_MEDIA_REWIND'
++ (( i++ ))
++ (( i<25 ))
++ echo -n ' KEYCODE_MEDIA_REWIND'
++ (( i++ ))
++ (( i<25 ))
++ echo -n ' KEYCODE_MEDIA_REWIND'
++ (( i++ ))
++ (( i<25 ))
++ echo -n ' KEYCODE_MEDIA_REWIND'
++ (( i++ ))
++ (( i<25 ))
++ echo -n ' KEYCODE_MEDIA_REWIND'
++ (( i++ ))
++ (( i<25 ))
+ clearSearchBackspaces=' KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND'
+ directvMenu='input keyevent KEYCODE_MENU; sleep 6'
+ directvSearch='input keyevent KEYCODE_DPAD_LEFT; input keyevent KEYCODE_DPAD_UP; input keyevent KEYCODE_DPAD_CENTER; sleep 1; input keyevent KEYCODE_DPAD_CENTER; sleep 1'
+ directvClearSearch='input keyevent KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND'
+ directvTune='input keyevent KEYCODE_MEDIA_PLAY_PAUSE; sleep 1; input keyevent KEYCODE_DPAD_DOWN; input keyevent KEYCODE_DPAD_DOWN; input keyevent KEYCODE_DPAD_DOWN; input keyevent KEYCODE_DPAD_CENTER'
+ adb -s 192.168.4.225:5555 shell input keyevent 'KEYCODE_MENU;' sleep 6
+ adb -s 192.168.4.225:5555 shell input keyevent 'KEYCODE_DPAD_LEFT;' input keyevent 'KEYCODE_DPAD_UP;' input keyevent 'KEYCODE_DPAD_CENTER;' sleep '1;' input keyevent 'KEYCODE_DPAD_CENTER;' sleep 1
+ adb -s 192.168.4.225:5555 shell input keyevent KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND KEYCODE_MEDIA_REWIND
+ adb -s 192.168.4.225:5555 shell input text '""'
+ adb -s 192.168.4.225:5555 shell input keyevent 'KEYCODE_MEDIA_PLAY_PAUSE;' sleep '1;' input keyevent 'KEYCODE_DPAD_DOWN;' input keyevent 'KEYCODE_DPAD_DOWN;' input keyevent 'KEYCODE_DPAD_DOWN;' input keyevent KEYCODE_DPAD_CENTER
+ activeAudioCheck 24 false 5 1
++ date +%s
+ local startTime=1742210689
+ local maxDuration=24
+ local minimumLoudness=-50
+ local sleepBeforeAudioCheck=5
+ local sleepAfterAudioCheck=1
+ local preTuneAudioCheck=false
+ true
+ sleep 5
++ ffmpeg -t 1 -i http://192.168.4.89:81/ts/1_0 ++ awk '/I: /{print $2}'-filter:a
ebur128 -map 0:a -f null -hide_banner -
+ checkLoudness=-25.2
++ date +%s
+ (( 1742210700 - 1742210689 > 24 ))
++ bc -l
++ echo '-25.2 > -50'
+ (( 1 ))
+ echo 'Active audio stream detected with -25.2 LUF.'
+ break
+ finish
+ echo 'bmitune.sh is exiting for 192.168.4.225:5555 with exit code 0'
'
2025/03/17 07:25:00 [EXECUTE] Finished running ./scripts/firetv/dtvstream/bmitune.sh in 53.025984273s
2025/03/17 07:25:05 [EXECUTE] Stdout: 'Waiting for bmitune.sh to complete...
Waiting for bmitune.sh to complete...
Waiting for bmitune.sh to complete...
Waiting for bmitune.sh to complete...
Waiting for bmitune.sh to complete...
Waiting for bmitune.sh to complete...
Waiting for bmitune.sh to complete...
Waiting for bmitune.sh to complete...
Waiting for bmitune.sh to complete...
Waiting for bmitune.sh to complete...
Waiting for bmitune.sh to complete...
Waiting for bmitune.sh to complete...
Waiting for bmitune.sh to complete...
Waiting for bmitune.sh to complete...
Waiting for bmitune.sh to complete...
Waiting for bmitune.sh to complete...
Waiting for bmitune.sh to complete...
Waiting for bmitune.sh to complete...
Waiting for bmitune.sh to complete...
Waiting for bmitune.sh to complete...
Waiting for bmitune.sh to complete...
Waiting for bmitune.sh to complete...
Waiting for bmitune.sh to complete...
Waiting for bmitune.sh to complete...
Waiting for bmitune.sh to complete...
Waiting for bmitune.sh to complete...
Waiting for bmitune.sh to complete...
Streaming stopped for 192.168.4.225:5555
Sleep initiated for 192.168.4.225:5555
192.168.4.225/stream_stopped written with epoch stop time
'
2025/03/17 07:25:05 [EXECUTE] Stderr: '+ streamerIP=192.168.4.225:5555
+ streamerNoPort=192.168.4.225
+ adbTarget='adb -s 192.168.4.225:5555'
+ packageName=com.att.tv
+ main
+ bmituneDone
+ bmitunePID=82
+ ps -p 82
+ echo 'Waiting for bmitune.sh to complete...'
+ sleep 2
+ ps -p 82
+ echo 'Waiting for bmitune.sh to complete...'
+ sleep 2
+ ps -p 82
+ echo 'Waiting for bmitune.sh to complete...'
+ sleep 2
+ ps -p 82
+ echo 'Waiting for bmitune.sh to complete...'
+ sleep 2
+ ps -p 82
+ echo 'Waiting for bmitune.sh to complete...'
+ sleep 2
+ ps -p 82
+ echo 'Waiting for bmitune.sh to complete...'
+ sleep 2
+ ps -p 82
+ echo 'Waiting for bmitune.sh to complete...'
+ sleep 2
+ ps -p 82
+ echo 'Waiting for bmitune.sh to complete...'
+ sleep 2
+ ps -p 82
+ echo 'Waiting for bmitune.sh to complete...'
+ sleep 2
+ ps -p 82
+ echo 'Waiting for bmitune.sh to complete...'
+ sleep 2
+ ps -p 82
+ echo 'Waiting for bmitune.sh to complete...'
+ sleep 2
+ ps -p 82
+ echo 'Waiting for bmitune.sh to complete...'
+ sleep 2
+ ps -p 82
+ echo 'Waiting for bmitune.sh to complete...'
+ sleep 2
+ ps -p 82
+ echo 'Waiting for bmitune.sh to complete...'
+ sleep 2
+ ps -p 82
+ echo 'Waiting for bmitune.sh to complete...'
+ sleep 2
+ ps -p 82
+ echo 'Waiting for bmitune.sh to complete...'
+ sleep 2
+ ps -p 82
+ echo 'Waiting for bmitune.sh to complete...'
+ sleep 2
+ ps -p 82
+ echo 'Waiting for bmitune.sh to complete...'
+ sleep 2
+ ps -p 82
+ echo 'Waiting for bmitune.sh to complete...'
+ sleep 2
+ ps -p 82
+ echo 'Waiting for bmitune.sh to complete...'
+ sleep 2
+ ps -p 82
+ echo 'Waiting for bmitune.sh to complete...'
+ sleep 2
+ ps -p 82
+ echo 'Waiting for bmitune.sh to complete...'
+ sleep 2
+ ps -p 82
+ echo 'Waiting for bmitune.sh to complete...'
+ sleep 2
+ ps -p 82
+ echo 'Waiting for bmitune.sh to complete...'
+ sleep 2
+ ps -p 82
+ echo 'Waiting for bmitune.sh to complete...'
+ sleep 2
+ ps -p 82
+ echo 'Waiting for bmitune.sh to complete...'
+ sleep 2
+ ps -p 82
+ echo 'Waiting for bmitune.sh to complete...'
+ sleep 2
+ ps -p 82
+ adbStop
+ stop='am force-stop com.att.tv'
+ adb -s 192.168.4.225:5555 shell am force-stop com.att.tv
+ sleep 2
+ echo 'Streaming stopped for 192.168.4.225:5555'
+ adbSleep
+ sleep='input keyevent KEYCODE_SLEEP'
+ adb -s 192.168.4.225:5555 shell input keyevent KEYCODE_SLEEP
+ echo 'Sleep initiated for 192.168.4.225:5555'
+ date +%s
+ echo '192.168.4.225/stream_stopped written with epoch stop time'
'
2025/03/17 07:25:05 [EXECUTE] Finished running ./scripts/firetv/dtvstream/stopbmitune.sh in 57.119948552s
2025/03/17 07:25:05 [GIN-debug] Request: 172.18.0.1 GET /play/tuner/CNNHD~d3603aea-f5d8-e789-786c-43c5e8799428, latency: 59.264167527s, status: 200
2025/03/17 07:37:51 [GIN-debug] Request: 172.18.0.1 GET /logs, latency: 177.545794ms, status: 200

As I said, I haven't been maintaining the version you're using here -- which tunes via remote control emulation.

I'm looking for these same logs from you, using the deeplink approach. Deeplinks are the best way to go, now that we have them, and I'd be happy to help get you going.

One strange thing I noticed, is that you've specified the scripts that use remote control emulation, as shown by this env var.

But...

You're using a deeplink here.

You need to change the env var, so that you're using the correct deeplink scripts, with the correct M3U for deeplinks.

Thanks for your help so far, I still do not have this working. My encoder page stays blank when I try to tune a channel. I did set
STREAMER_APP=scripts/firetv/dtvstreamdeeplinks
Hope that is right?
Here is this AH4C log

43c5e8799428, latency: 6.967625198s, status: 200
2025/03/17 12:12:39 [GIN-debug] Request: 172.18.0.1 GET /favicon.ico, latency: 25.329792ms, status: 200
2025/03/17 12:12:40 [GIN-debug] Request: 172.18.0.1 GET /logs, latency: 1.323941ms, status: 200
2025/03/17 12:13:59 [START] ah4c is starting
2025/03/17 12:13:59 [ENV] Not loading env
2025/03/17 12:13:59 [ENV] IPADDRESS 192.168.4.35:7654
2025/03/17 12:13:59 [ENV] ALERT_SMTP_SERVER
2025/03/17 12:13:59 [ENV] ALERT_AUTH_SERVER
2025/03/17 12:13:59 [ENV] ALERT_EMAIL_FROM
2025/03/17 12:13:59 [ENV] ALERT_EMAIL_PASS
2025/03/17 12:13:59 [ENV] ALERT_EMAIL_TO
2025/03/17 12:13:59 [ENV] ALERT_WEBHOOK_URL
2025/03/17 12:13:59 [ENV] ALLOW_DEBUG_VIDEO_PREVIEW
2025/03/17 12:13:59 [ENV] Creating tuner 1
2025/03/17 12:13:59 [ENV] ENCODER1_URL http://192.168.4.89:81/ts/1_0
2025/03/17 12:13:59 [ENV] TUNER1_IP 192.168.4.225:5555
2025/03/17 12:13:59 [ENV] CMD1
2025/03/17 12:13:59 [ENV] TEECMD1
2025/03/17 12:13:59 [ENV] PRE SCRIPT ./scripts/firetv/dtvstreamdeeplinks/prebmitune.sh
2025/03/17 12:13:59 [ENV] START SCRIPT ./scripts/firetv/dtvstreamdeeplinks/bmitune.sh
2025/03/17 12:13:59 [ENV] STOP SCRIPT ./scripts/firetv/dtvstreamdeeplinks/stopbmitune.sh
2025/03/17 12:13:59 [ENV] REBOOT SCRIPT ./scripts/firetv/dtvstreamdeeplinks/reboot.sh
2025/03/17 12:13:59 [START] ah4c is ready
2025/03/17 12:14:25 Attempting network tune for device http://192.168.4.89:81/ts/1_0 192.168.4.225:5555 CNNHD~d3603aea-f5d8-e789-786c-43c5e8799428
2025/03/17 12:14:25 [EXECUTE] Running [./scripts/firetv/dtvstreamdeeplinks/prebmitune.sh 192.168.4.225:5555 CNNHD~d3603aea-f5d8-e789-786c-43c5e8799428]
2025/03/17 12:14:26 [EXECUTE] Stdout: 'already connected to 192.168.4.225:5555
Starting: Intent { cmp=com.att.tv/com.clientapp.MainActivity }
Confirming com.att.tv on 192.168.4.225:5555
prebmitune.sh is exiting for 192.168.4.225:5555 with exit code 0
'
2025/03/17 12:14:26 [EXECUTE] Stderr: '+ streamerIP=192.168.4.225:5555
+ streamerNoPort=192.168.4.225
+ adbTarget='adb -s 192.168.4.225:5555'
+ mkdir -p 192.168.4.225
+ trap finish EXIT
+ main
+ adbConnect
+ adb connect 192.168.4.225:5555
+ local -i adbMaxRetries=2
+ local -i adbCounter=0
+ true
+ adb -s 192.168.4.225:5555 shell input keyevent KEYCODE_WAKEUP
+ local adbEventSuccess=0
+ [[ 0 -eq 0 ]]
+ break
+ adbWake
+ packageLaunch=com.clientapp.MainActivity
+ packageName=com.att.tv
++ adb -s 192.168.4.225:5555 shell pidof com.att.tv
+ packagePID=26383
+ '[' '!' -z 26383 ']'
+ adb -s 192.168.4.225:5555 shell am start -n com.att.tv/com.clientapp.MainActivity
Warning: Activity not started, its current task has been brought to the front
+ echo 'Confirming com.att.tv on 192.168.4.225:5555'
+ touch 192.168.4.225/adbAppRunning
+ finish
+ echo 'prebmitune.sh is exiting for 192.168.4.225:5555 with exit code 0'
'
2025/03/17 12:14:26 [EXECUTE] Finished running ./scripts/firetv/dtvstreamdeeplinks/prebmitune.sh in 982.721678ms
2025/03/17 12:14:26 [EXECUTE] Running [./scripts/firetv/dtvstreamdeeplinks/bmitune.sh CNNHD~d3603aea-f5d8-e789-786c-43c5e8799428 192.168.4.225:5555]
2025/03/17 12:14:26 [EXECUTE] Stdout: 'Current PID for this script is 81
Not a special channel (exit nor reboot)
Starting: Intent { act=android.intent.action.VIEW (has data) cmp=com.att.tv/com.clientapp.MainActivity }
bmitune.sh is exiting for 192.168.4.225:5555 with exit code 0
'
2025/03/17 12:14:26 [EXECUTE] Stderr: '++ awk -F~ '{print $2}'
++ echo CNNHD~d3603aea-f5d8-e789-786c-43c5e8799428
+ channelID=d3603aea-f5d8-e789-786c-43c5e8799428
++ awk -F~ '{print $1}'
++ echo CNNHD~d3603aea-f5d8-e789-786c-43c5e8799428
+ channelName=CNNHD
+ specialID=CNNHD
+ streamerIP=192.168.4.225:5555
+ streamerNoPort=192.168.4.225
+ adbTarget='adb -s 192.168.4.225:5555'
+ packageName=com.att.tv
+ packageAction=com.clientapp.MainActivity
+ [[ '' == '' ]]
+ speedMode=true
+ trap finish EXIT
+ main
+ updateReferenceFiles
+ mkdir -p 192.168.4.225
+ [[ -f 192.168.4.225/stream_stopped ]]
+ [[ -f 192.168.4.225/last_channel ]]
+ echo 81
+ echo 'Current PID for this script is 81'
+ matchEncoderURL
+ case "$streamerIP" in
+ encoderURL=http://192.168.4.89:81/ts/1_0
+ specialChannels
+ '[' CNNHD = exit ']'
+ '[' CNNHD = reboot ']'
+ [[ -f 192.168.4.225/adbCommunicationFail ]]
+ echo 'Not a special channel (exit nor reboot)'
+ launchDelay
+ local lastChannel
+ local lastAwake
+ local timeNow
+ local timeElapsed
+ local maxTime=14400
+ lastChannel=CNNHD
+ lastAwake=1742227162
++ date +%s
+ timeNow=1742228066
+ timeElapsed=904
+ '[' -f 192.168.4.225/adbAppRunning ']'
+ (( 904 < 14400 ))
+ rm 192.168.4.225/adbAppRunning
+ echo CNNHD
+ tuneChannel
+ adb -s 192.168.4.225:5555 shell am start -n com.att.tv/com.clientapp.MainActivity dtvnow://deeplink.directvnow.com/play/channel/CNNHD/d3603aea-f5d8-e789-786c-43c5e8799428
Warning: Activity not started, intent has been delivered to currently running top-most instance.
+ finish
+ echo 'bmitune.sh is exiting for 192.168.4.225:5555 with exit code 0'
'
2025/03/17 12:14:26 [EXECUTE] Finished running ./scripts/firetv/dtvstreamdeeplinks/bmitune.sh in 283.925661ms
2025/03/17 12:14:27 [IOINFO] Successfully copied 25192 bytes
2025/03/17 12:14:27 [IOINFO] Transfer speed: 0.15934719252936438 Mbits/second
2025/03/17 12:14:27 Performing Close() for 192.168.4.225:5555
2025/03/17 12:14:27 [EXECUTE] Running [./scripts/firetv/dtvstreamdeeplinks/stopbmitune.sh 192.168.4.225:5555 CNNHD~d3603aea-f5d8-e789-786c-43c5e8799428]
2025/03/17 12:14:32 [EXECUTE] Stdout: 'Streaming stopped for 192.168.4.225:5555
Sleep initiated for 192.168.4.225:5555
192.168.4.225/stream_stopped written with epoch stop time
'
2025/03/17 12:14:32 [EXECUTE] Stderr: '+ streamerIP=192.168.4.225:5555
+ streamerNoPort=192.168.4.225
+ adbTarget='adb -s 192.168.4.225:5555'
+ packageName=com.att.tv
+ main
+ bmituneDone
+ bmitunePID=81
+ ps -p 81
+ adbStop
+ stop='input keyevent KEYCODE_BACK; input keyevent KEYCODE_HOME'
+ adb -s 192.168.4.225:5555 shell input keyevent 'KEYCODE_BACK;' input keyevent KEYCODE_HOME
+ sleep 2
+ echo 'Streaming stopped for 192.168.4.225:5555'
+ adbSleep
+ sleep='input keyevent KEYCODE_SLEEP'
+ adb -s 192.168.4.225:5555 shell input keyevent KEYCODE_SLEEP
+ echo 'Sleep initiated for 192.168.4.225:5555'
+ date +%s
+ echo '192.168.4.225/stream_stopped written with epoch stop time'
'
2025/03/17 12:14:32 [EXECUTE] Finished running ./scripts/firetv/dtvstreamdeeplinks/stopbmitune.sh in 4.74062557s
2025/03/17 12:14:32 [GIN-debug] Request: 172.18.0.1 GET /play/tuner/CNNHD~d3603aea-f5d8-e789-786c-43c5e8799428, latency: 6.996857397s, status: 200

So you never see anything when looking at your encoder's WebUI? If you're not seeing the DirecTV app launching, then the problem is much more fundamental than tuning. Maybe your encoder URL is wrong?

What type of encoder is this? I don't recognize the URL structure...

Also, I would like to see the Portainer-Log for the ah4c container. Go into Portainer-Containers and click the "Quick Actions" button for the log. Then change the number of lines to 100000 and wait a tick. Turn off Auto-refresh logs, and then copy a single tuning event.

Ideally, if you could restart the container, and then do a single tune -- followed by the above to capture everything back to container start...

There are characters in that log that prevent posting, I deleted them.

[EXECUTE] Finished running ./scripts/firetv/dtvstreamdeeplinks/stopbmitune.sh in 5.526940072s
[GIN-debug] Request: 172.18.0.1 GET /play/tuner/CNNHD~d3603aea-f5d8-e789-786c-43c5e8799428, latency: 40.233618847s, status: 200
Attempting network tune for device http://192.168.4.89:81/ts/1_0 192.168.4.220:5555 CNNHD~d3603aea-f5d8-e789-786c-43c5e8799428 
[EXECUTE] Running [./scripts/firetv/dtvstreamdeeplinks/prebmitune.sh 192.168.4.220:5555 CNNHD~d3603aea-f5d8-e789-786c-43c5e8799428]
[EXECUTE] Stdout: 'already connected to 192.168.4.220:5555
Starting: Intent { cmp=com.att.tv/com.clientapp.MainActivity }
Confirming com.att.tv on 192.168.4.220:5555
prebmitune.sh is exiting for 192.168.4.220:5555 with exit code 0
'
[EXECUTE] Stderr: '+ streamerIP=192.168.4.220:5555
+ streamerNoPort=192.168.4.220
+ adbTarget='adb -s 192.168.4.220:5555'
+ mkdir -p 192.168.4.220
+ trap finish EXIT
+ main

+ adbConnect
+ adb connect 192.168.4.220:5555
+ local -i adbMaxRetries=2
+ local -i adbCounter=0
+ true
+ adb -s 192.168.4.220:5555 shell input keyevent KEYCODE_WAKEUP
+ local adbEventSuccess=0
+ [[ 0 -eq 0 ]]
+ break

e
+ packageLaunch=com.clientapp.MainActivity
+ packageName=com.att.tv
++ adb -s 192.168.4.220:5555 shell pidof com.att.tv
+ packagePID=7901
+ '[' '!' -z 7901 ']'
+ adb -s 192.168.4.220:5555 shell am start -n com.att.tv/com.clientapp.MainActivity
Warning: Activity not started, its current task has been brought to the front
+ echo 'Confirming com.att.tv on 192.168.4.220:5555'
+ touch 192.168.4.220/adbAppRunning
+ finish
+ echo 'prebmitune.sh is exiting for 192.168.4.220:5555 with exit code 0'
'
[EXECUTE] Finished running ./scripts/firetv/dtvstreamdeeplinks/prebmitune.sh in 1.304014181s
[EXECUTE] Running [./scripts/firetv/dtvstreamdeeplinks/bmitune.sh CNNHD~d3603aea-f5d8-e789-786c-43c5e8799428 192.168.4.220:5555]
[EXECUTE] Stdout: 'Current PID for this script is 153
Not a special channel (exit nor reboot)
Starting: Intent { act=android.intent.action.VIEW (has data) cmp=com.att.tv/com.clientapp.MainActivity }
bmitune.sh is exiting for 192.168.4.220:5555 with exit code 0
'
[EXECUTE] Stderr: '++ awk -F~ '{print $2}'
++ echo CNNHD~d3603aea-f5d8-e789-786c-43c5e8799428
+ channelID=d3603aea-f5d8-e789-786c-43c5e8799428
++ awk -F~ '{print $1}'
++ echo CNNHD~d3603aea-f5d8-e789-786c-43c5e8799428
+ channelName=CNNHD
+ specialID=CNNHD
+ streamerIP=192.168.4.220:5555
+ streamerNoPort=192.168.4.220
+ adbTarget='adb -s 192.168.4.220:5555'
+ packageName=com.att.tv
+ packageAction=com.clientapp.MainActivity
+ [[ '' == '' ]]
+ speedMode=true
+ trap finish EXIT
+ main
+ updateReferenceFiles
+ mkdir -p 192.168.4.220
+ [[ -f 192.168.4.220/stream_stopped ]]
+ [[ -f 192.168.4.220/last_channel ]]
+ echo 153
+ echo 'Current PID for this script is 153'
+ matchEncoderURL
+ case "$streamerIP" in
+ encoderURL=http://192.168.4.89:81/ts/1_0
+ specialChannels
+ '[' CNNHD = exit ']'
+ '[' CNNHD = reboot ']'
+ [[ -f 192.168.4.220/adbCommunicationFail ]]
+ echo 'Not a special channel (exit nor reboot)'
+ launchDelay
+ local lastChannel
+ local lastAwake
+ local timeNow
+ local timeElapsed
+ local maxTime=14400
+ lastChannel=CNNHD
+ lastAwake=1742231087
++ date +%s
+ timeNow=1742231170
+ timeElapsed=83
+ '[' -f 192.168.4.220/adbAppRunning ']'
+ ((  83 < 14400  ))
+ rm 192.168.4.220/adbAppRunning

+ echo CNNHD
+ tuneChannel
+ adb -s 192.168.4.220:5555 shell am start -n com.att.tv/com.clientapp.MainActivity dtvnow://deeplink.directvnow.com/play/channel/CNNHD/d3603aea-f5d8-e789-786c-43c5e8799428
Warning: Activity not started, intent has been delivered to currently running top-most instance.
+ finish
+ echo 'bmitune.sh is exiting for 192.168.4.220:5555 with exit code 0'
'
[EXECUTE] Finished running ./scripts/firetv/dtvstreamdeeplinks/bmitune.sh in 367.049366ms
[IOINFO] Successfully copied 27072 bytes
[IOINFO] Transfer speed: 0.1891792637200288 Mbits/second
Performing Close() for 192.168.4.220:5555
[EXECUTE] Running [./scripts/firetv/dtvstreamdeeplinks/stopbmitune.sh 192.168.4.220:5555 CNNHD~d3603aea-f5d8-e789-786c-43c5e8799428]
[EXECUTE] Stdout: 'Streaming stopped for 192.168.4.220:5555
Sleep initiated for 192.168.4.220:5555
192.168.4.220/stream_stopped written with epoch stop time
'
[EXECUTE] Stderr: '+ streamerIP=192.168.4.220:5555
+ streamerNoPort=192.168.4.220
+ adbTarget='adb -s 192.168.4.220:5555'
+ packageName=com.att.tv
+ main
+ bmituneDone
+ bmitunePID=153
+ ps -p 153

p
+ stop='input keyevent KEYCODE_BACK;         input keyevent KEYCODE_HOME'
+ adb -s 192.168.4.220:5555 shell input keyevent 'KEYCODE_BACK;' input keyevent KEYCODE_HOME

2
+ echo 'Streaming stopped for 192.168.4.220:5555'
+ adbSleep
+ sleep='input keyevent KEYCODE_SLEEP'
+ adb -s 192.168.4.220:5555 shell input keyevent KEYCODE_SLEEP
+ echo 'Sleep initiated for 192.168.4.220:5555'
+ date +%s
+ echo '192.168.4.220/stream_stopped written with epoch stop time'
'
[EXECUTE] Finished running ./scripts/firetv/dtvstreamdeeplinks/stopbmitune.sh in 4.709110685s
[GIN-debug] Request: 172.18.0.1 GET /play/tuner/CNNHD~d3603aea-f5d8-e789-786c-43c5e8799428, latency: 7.179433708s, status: 200
[GIN-debug] Loaded HTML Templates (11): 

	- edit.html
	- editm3u.html
	- index.html

	- m3us.html
	- status.html
	- 
	- config.html

	- logs.html
	- routes.html
	- status_and_logs.html
	- stream.html
[GIN-debug] Request: 172.18.0.1 GET /, latency: 44.794927ms, status: 200
[GIN-debug] Request: 172.18.0.1 GET /static/logos/androidhdmi-for-channels.jpeg, latency: 108.778551ms, status: 200
[GIN-debug] Request: 172.18.0.1 GET /favicon.ico, latency: 501.919µs, status: 200
[GIN-debug] Request: 172.18.0.1 GET /logs, latency: 69.538233ms, status: 200
[GIN-debug] Request: 172.18.0.1 GET /status/andlogs, latency: 519.623µs, status: 200
[GIN-debug] Request: 172.18.0.1 GET /status, latency: 1.901583ms, status: 200
[GIN-debug] Request: 172.18.0.1 GET /logs?notime, latency: 984.644µs, status: 200
Attempting network tune for device http://192.168.4.89:81/ts/1_0 192.168.4.220:5555 CNNHD~d3603aea-f5d8-e789-786c-43c5e8799428 
[EXECUTE] Running [./scripts/firetv/dtvstreamdeeplinks/prebmitune.sh 192.168.4.220:5555 CNNHD~d3603aea-f5d8-e789-786c-43c5e8799428]
[EXECUTE] Stdout: 'already connected to 192.168.4.220:5555
Starting: Intent { cmp=com.att.tv/com.clientapp.MainActivity }
Confirming com.att.tv on 192.168.4.220:5555
prebmitune.sh is exiting for 192.168.4.220:5555 with exit code 0
'
[EXECUTE] Stderr: '+ streamerIP=192.168.4.220:5555
+ streamerNoPort=192.168.4.220
+ adbTarget='adb -s 192.168.4.220:5555'
+ mkdir -p 192.168.4.220
+ trap finish EXIT
+ main

+ adbConnect
+ adb connect 192.168.4.220:5555
+ local -i adbMaxRetries=2
+ local -i adbCounter=0
+ true
+ adb -s 192.168.4.220:5555 shell input keyevent KEYCODE_WAKEUP
+ local adbEventSuccess=0
+ [[ 0 -eq 0 ]]
+ break

e
+ packageLaunch=com.clientapp.MainActivity
+ packageName=com.att.tv
++ adb -s 192.168.4.220:5555 shell pidof com.att.tv
+ packagePID=7901
+ '[' '!' -z 7901 ']'
+ adb -s 192.168.4.220:5555 shell am start -n com.att.tv/com.clientapp.MainActivity
Warning: Activity not started, its current task has been brought to the front
+ echo 'Confirming com.att.tv on 192.168.4.220:5555'
+ touch 192.168.4.220/adbAppRunning
+ finish
+ echo 'prebmitune.sh is exiting for 192.168.4.220:5555 with exit code 0'
'
[EXECUTE] Finished running ./scripts/firetv/dtvstreamdeeplinks/prebmitune.sh in 1.143980514s
[EXECUTE] Running [./scripts/firetv/dtvstreamdeeplinks/bmitune.sh CNNHD~d3603aea-f5d8-e789-786c-43c5e8799428 192.168.4.220:5555]
[EXECUTE] Stdout: 'Current PID for this script is 191
Not a special channel (exit nor reboot)
Starting: Intent { act=android.intent.action.VIEW (has data) cmp=com.att.tv/com.clientapp.MainActivity }
bmitune.sh is exiting for 192.168.4.220:5555 with exit code 0
'
[EXECUTE] Stderr: '++ awk -F~ '{print $2}'
++ echo CNNHD~d3603aea-f5d8-e789-786c-43c5e8799428
+ channelID=d3603aea-f5d8-e789-786c-43c5e8799428
++ awk -F~ '{print $1}'
++ echo CNNHD~d3603aea-f5d8-e789-786c-43c5e8799428
+ channelName=CNNHD
+ specialID=CNNHD
+ streamerIP=192.168.4.220:5555
+ streamerNoPort=192.168.4.220
+ adbTarget='adb -s 192.168.4.220:5555'
+ packageName=com.att.tv
+ packageAction=com.clientapp.MainActivity
+ [[ '' == '' ]]
+ speedMode=true
+ trap finish EXIT
+ main
+ updateReferenceFiles
+ mkdir -p 192.168.4.220
+ [[ -f 192.168.4.220/stream_stopped ]]
+ [[ -f 192.168.4.220/last_channel ]]
+ echo 191
+ echo 'Current PID for this script is 191'
+ matchEncoderURL
+ case "$streamerIP" in
+ encoderURL=http://192.168.4.89:81/ts/1_0
+ specialChannels
+ '[' CNNHD = exit ']'
+ '[' CNNHD = reboot ']'
+ [[ -f 192.168.4.220/adbCommunicationFail ]]
+ echo 'Not a special channel (exit nor reboot)'
+ launchDelay
+ local lastChannel
+ local lastAwake
+ local timeNow
+ local timeElapsed
+ local maxTime=14400
+ lastChannel=CNNHD
+ lastAwake=1742231176
++ date +%s
+ timeNow=1742231291
+ timeElapsed=115
+ '[' -f 192.168.4.220/adbAppRunning ']'
+ ((  115 < 14400  ))
+ rm 192.168.4.220/adbAppRunning

+ echo CNNHD
+ tuneChannel
+ adb -s 192.168.4.220:5555 shell am start -n com.att.tv/com.clientapp.MainActivity dtvnow://deeplink.directvnow.com/play/channel/CNNHD/d3603aea-f5d8-e789-786c-43c5e8799428
Warning: Activity not started, intent has been delivered to currently running top-most instance.
+ finish
+ echo 'bmitune.sh is exiting for 192.168.4.220:5555 with exit code 0'
'
[EXECUTE] Finished running ./scripts/firetv/dtvstreamdeeplinks/bmitune.sh in 130.928119ms
[IOINFO] Successfully copied 23312 bytes
[IOINFO] Transfer speed: 0.1872143784513504 Mbits/second
Performing Close() for 192.168.4.220:5555
[EXECUTE] Running [./scripts/firetv/dtvstreamdeeplinks/stopbmitune.sh 192.168.4.220:5555 CNNHD~d3603aea-f5d8-e789-786c-43c5e8799428]
[EXECUTE] Stdout: 'Streaming stopped for 192.168.4.220:5555
Sleep initiated for 192.168.4.220:5555
192.168.4.220/stream_stopped written with epoch stop time
'
[EXECUTE] Stderr: '+ streamerIP=192.168.4.220:5555
+ streamerNoPort=192.168.4.220
+ adbTarget='adb -s 192.168.4.220:5555'
+ packageName=com.att.tv
+ main
+ bmituneDone
+ bmitunePID=191
+ ps -p 191

p
+ stop='input keyevent KEYCODE_BACK;         input keyevent KEYCODE_HOME'
+ adb -s 192.168.4.220:5555 shell input keyevent 'KEYCODE_BACK;' input keyevent KEYCODE_HOME

2
+ echo 'Streaming stopped for 192.168.4.220:5555'
+ adbSleep
+ sleep='input keyevent KEYCODE_SLEEP'
+ adb -s 192.168.4.220:5555 shell input keyevent KEYCODE_SLEEP
+ echo 'Sleep initiated for 192.168.4.220:5555'
+ date +%s
+ echo '192.168.4.220/stream_stopped written with epoch stop time'
'
[EXECUTE] Finished running ./scripts/firetv/dtvstreamdeeplinks/stopbmitune.sh in 4.967697537s
[GIN-debug] Request: 172.18.0.1 GET /play/tuner/CNNHD~d3603aea-f5d8-e789-786c-43c5e8799428, latency: 7.117058522s, status: 200
Attempting network tune for device http://192.168.4.89:81/ts/1_0 192.168.4.220:5555 GET~23f0fc84-d285-c4a1-a4c9-dfb383ed77db 
[EXECUTE] Running [./scripts/firetv/dtvstreamdeeplinks/prebmitune.sh 192.168.4.220:5555 GET~23f0fc84-d285-c4a1-a4c9-dfb383ed77db]
[EXECUTE] Stdout: 'already connected to 192.168.4.220:5555
Starting: Intent { cmp=com.att.tv/com.clientapp.MainActivity }
Confirming com.att.tv on 192.168.4.220:5555
prebmitune.sh is exiting for 192.168.4.220:5555 with exit code 0
'
[EXECUTE] Stderr: '+ streamerIP=192.168.4.220:5555
+ streamerNoPort=192.168.4.220
+ adbTarget='adb -s 192.168.4.220:5555'
+ mkdir -p 192.168.4.220
+ trap finish EXIT
+ main

+ adbConnect
+ adb connect 192.168.4.220:5555
+ local -i adbMaxRetries=2
+ local -i adbCounter=0
+ true
+ adb -s 192.168.4.220:5555 shell input keyevent KEYCODE_WAKEUP
+ local adbEventSuccess=0
+ [[ 0 -eq 0 ]]
+ break

e
+ packageLaunch=com.clientapp.MainActivity
+ packageName=com.att.tv
++ adb -s 192.168.4.220:5555 shell pidof com.att.tv
+ packagePID=7901
+ '[' '!' -z 7901 ']'
+ adb -s 192.168.4.220:5555 shell am start -n com.att.tv/com.clientapp.MainActivity
Warning: Activity not started, its current task has been brought to the front
+ echo 'Confirming com.att.tv on 192.168.4.220:5555'
+ touch 192.168.4.220/adbAppRunning
+ finish
+ echo 'prebmitune.sh is exiting for 192.168.4.220:5555 with exit code 0'
'
[EXECUTE] Finished running ./scripts/firetv/dtvstreamdeeplinks/prebmitune.sh in 977.015986ms
[EXECUTE] Running [./scripts/firetv/dtvstreamdeeplinks/bmitune.sh GET~23f0fc84-d285-c4a1-a4c9-dfb383ed77db 192.168.4.220:5555]
[EXECUTE] Stdout: 'Current PID for this script is 230
Not a special channel (exit nor reboot)
Starting: Intent { act=android.intent.action.VIEW (has data) cmp=com.att.tv/com.clientapp.MainActivity }
bmitune.sh is exiting for 192.168.4.220:5555 with exit code 0
'
[EXECUTE] Stderr: '++ awk -F~ '{print $2}'
++ echo GET~23f0fc84-d285-c4a1-a4c9-dfb383ed77db
+ channelID=23f0fc84-d285-c4a1-a4c9-dfb383ed77db
++ awk -F~ '{print $1}'
++ echo GET~23f0fc84-d285-c4a1-a4c9-dfb383ed77db
+ channelName=GET
+ specialID=GET
+ streamerIP=192.168.4.220:5555
+ streamerNoPort=192.168.4.220
+ adbTarget='adb -s 192.168.4.220:5555'
+ packageName=com.att.tv
+ packageAction=com.clientapp.MainActivity
+ [[ '' == '' ]]
+ speedMode=true
+ trap finish EXIT
+ main
+ updateReferenceFiles
+ mkdir -p 192.168.4.220
+ [[ -f 192.168.4.220/stream_stopped ]]
+ [[ -f 192.168.4.220/last_channel ]]
+ echo 230
+ echo 'Current PID for this script is 230'
+ matchEncoderURL
+ case "$streamerIP" in
+ encoderURL=http://192.168.4.89:81/ts/1_0
+ specialChannels
+ '[' GET = exit ']'
+ '[' GET = reboot ']'
+ [[ -f 192.168.4.220/adbCommunicationFail ]]
+ echo 'Not a special channel (exit nor reboot)'
+ launchDelay
+ local lastChannel
+ local lastAwake
+ local timeNow
+ local timeElapsed
+ local maxTime=14400
+ lastChannel=CNNHD
+ lastAwake=1742231297
++ date +%s
+ timeNow=1742231316
+ timeElapsed=19
+ '[' -f 192.168.4.220/adbAppRunning ']'
+ ((  19 < 14400  ))
+ rm 192.168.4.220/adbAppRunning
+ echo GET
+ tuneChannel
+ adb -s 192.168.4.220:5555 shell am start -n com.att.tv/com.clientapp.MainActivity dtvnow://deeplink.directvnow.com/play/channel/GET/23f0fc84-d285-c4a1-a4c9-dfb383ed77db
Warning: Activity not started, intent has been delivered to currently running top-most instance.
+ finish
+ echo 'bmitune.sh is exiting for 192.168.4.220:5555 with exit code 0'
'
[EXECUTE] Finished running ./scripts/firetv/dtvstreamdeeplinks/bmitune.sh in 114.098179ms
[IOINFO] Successfully copied 22560 bytes
[IOINFO] Transfer speed: 0.16395096804298584 Mbits/second
Performing Close() for 192.168.4.220:5555
[EXECUTE] Running [./scripts/firetv/dtvstreamdeeplinks/stopbmitune.sh 192.168.4.220:5555 GET~23f0fc84-d285-c4a1-a4c9-dfb383ed77db]
[EXECUTE] Stdout: 'Streaming stopped for 192.168.4.220:5555
Sleep initiated for 192.168.4.220:5555
192.168.4.220/stream_stopped written with epoch stop time
'
[EXECUTE] Stderr: '+ streamerIP=192.168.4.220:5555
+ streamerNoPort=192.168.4.220
+ adbTarget='adb -s 192.168.4.220:5555'
+ packageName=com.att.tv
+ main
+ bmituneDone
+ bmitunePID=230
+ ps -p 230

p
+ stop='input keyevent KEYCODE_BACK;         input keyevent KEYCODE_HOME'
+ adb -s 192.168.4.220:5555 shell input keyevent 'KEYCODE_BACK;' input keyevent KEYCODE_HOME

2
+ echo 'Streaming stopped for 192.168.4.220:5555'
+ adbSleep
+ sleep='input keyevent KEYCODE_SLEEP'
+ adb -s 192.168.4.220:5555 shell input keyevent KEYCODE_SLEEP
+ echo 'Sleep initiated for 192.168.4.220:5555'
+ date +%s
+ echo '192.168.4.220/stream_stopped written with epoch stop time'
'
[EXECUTE] Finished running ./scripts/firetv/dtvstreamdeeplinks/stopbmitune.sh in 4.950536413s
[GIN-debug] Request: 172.18.0.1 GET /play/tuner/GET~23f0fc84-d285-c4a1-a4c9-dfb383ed77db, latency: 7.036770829s, status: 200
Attempting network tune for device http://192.168.4.89:81/ts/1_0 192.168.4.220:5555 foodHD~7822f08f-c09d-d890-2b46-948766f9f571 
[EXECUTE] Running [./scripts/firetv/dtvstreamdeeplinks/prebmitune.sh 192.168.4.220:5555 foodHD~7822f08f-c09d-d890-2b46-948766f9f571]
[EXECUTE] Stdout: 'already connected to 192.168.4.220:5555
Starting: Intent { cmp=com.att.tv/com.clientapp.MainActivity }
Confirming com.att.tv on 192.168.4.220:5555
prebmitune.sh is exiting for 192.168.4.220:5555 with exit code 0
'
[EXECUTE] Stderr: '+ streamerIP=192.168.4.220:5555
+ streamerNoPort=192.168.4.220
+ adbTarget='adb -s 192.168.4.220:5555'
+ mkdir -p 192.168.4.220
+ trap finish EXIT
+ main

+ adbConnect
+ adb connect 192.168.4.220:5555
+ local -i adbMaxRetries=2
+ local -i adbCounter=0
+ true
+ adb -s 192.168.4.220:5555 shell input keyevent KEYCODE_WAKEUP
+ local adbEventSuccess=0
+ [[ 0 -eq 0 ]]
+ break

e
+ packageLaunch=com.clientapp.MainActivity
+ packageName=com.att.tv
++ adb -s 192.168.4.220:5555 shell pidof com.att.tv
+ packagePID=7901
+ '[' '!' -z 7901 ']'
+ adb -s 192.168.4.220:5555 shell am start -n com.att.tv/com.clientapp.MainActivity
Warning: Activity not started, its current task has been brought to the front
+ echo 'Confirming com.att.tv on 192.168.4.220:5555'
+ touch 192.168.4.220/adbAppRunning
+ finish
+ echo 'prebmitune.sh is exiting for 192.168.4.220:5555 with exit code 0'
'
[EXECUTE] Finished running ./scripts/firetv/dtvstreamdeeplinks/prebmitune.sh in 1.02599347s
[EXECUTE] Running [./scripts/firetv/dtvstreamdeeplinks/bmitune.sh foodHD~7822f08f-c09d-d890-2b46-948766f9f571 192.168.4.220:5555]
[EXECUTE] Stdout: 'Current PID for this script is 267
Not a special channel (exit nor reboot)
Starting: Intent { act=android.intent.action.VIEW (has data) cmp=com.att.tv/com.clientapp.MainActivity }
bmitune.sh is exiting for 192.168.4.220:5555 with exit code 0
'
[EXECUTE] Stderr: '++ awk -F~ '{print $2}'
++ echo foodHD~7822f08f-c09d-d890-2b46-948766f9f571
+ channelID=7822f08f-c09d-d890-2b46-948766f9f571
++ awk -F~ '{print $1}'
++ echo foodHD~7822f08f-c09d-d890-2b46-948766f9f571
+ channelName=foodHD
+ specialID=foodHD
+ streamerIP=192.168.4.220:5555
+ streamerNoPort=192.168.4.220
+ adbTarget='adb -s 192.168.4.220:5555'
+ packageName=com.att.tv
+ packageAction=com.clientapp.MainActivity
+ [[ '' == '' ]]
+ speedMode=true
+ trap finish EXIT
+ main
+ updateReferenceFiles
+ mkdir -p 192.168.4.220
+ [[ -f 192.168.4.220/stream_stopped ]]
+ [[ -f 192.168.4.220/last_channel ]]
+ echo 267
+ echo 'Current PID for this script is 267'
+ matchEncoderURL
+ case "$streamerIP" in
+ encoderURL=http://192.168.4.89:81/ts/1_0
+ specialChannels
+ '[' foodHD = exit ']'
+ '[' foodHD = reboot ']'
+ [[ -f 192.168.4.220/adbCommunicationFail ]]
+ echo 'Not a special channel (exit nor reboot)'
+ launchDelay
+ local lastChannel
+ local lastAwake
+ local timeNow
+ local timeElapsed
+ local maxTime=14400
+ lastChannel=GET
+ lastAwake=1742231322
++ date +%s
+ timeNow=1742231334
+ timeElapsed=12
+ '[' -f 192.168.4.220/adbAppRunning ']'
+ ((  12 < 14400  ))
+ rm 192.168.4.220/adbAppRunning
+ echo foodHD
+ tuneChannel
+ adb -s 192.168.4.220:5555 shell am start -n com.att.tv/com.clientapp.MainActivity dtvnow://deeplink.directvnow.com/play/channel/foodHD/7822f08f-c09d-d890-2b46-948766f9f571
Warning: Activity not started, intent has been delivered to currently running top-most instance.
+ finish
+ echo 'bmitune.sh is exiting for 192.168.4.220:5555 with exit code 0'
'
[EXECUTE] Finished running ./scripts/firetv/dtvstreamdeeplinks/bmitune.sh in 261.545525ms
[IOINFO] Successfully copied 24440 bytes
[IOINFO] Transfer speed: 0.1593590544922141 Mbits/second
Performing Close() for 192.168.4.220:5555
[EXECUTE] Running [./scripts/firetv/dtvstreamdeeplinks/stopbmitune.sh 192.168.4.220:5555 foodHD~7822f08f-c09d-d890-2b46-948766f9f571]
[EXECUTE] Stdout: 'Streaming stopped for 192.168.4.220:5555
Sleep initiated for 192.168.4.220:5555
192.168.4.220/stream_stopped written with epoch stop time
'
[EXECUTE] Stderr: '+ streamerIP=192.168.4.220:5555
+ streamerNoPort=192.168.4.220
+ adbTarget='adb -s 192.168.4.220:5555'
+ packageName=com.att.tv
+ main
+ bmituneDone
+ bmitunePID=267
+ ps -p 267

p
+ stop='input keyevent KEYCODE_BACK;         input keyevent KEYCODE_HOME'
+ adb -s 192.168.4.220:5555 shell input keyevent 'KEYCODE_BACK;' input keyevent KEYCODE_HOME

2
+ echo 'Streaming stopped for 192.168.4.220:5555'
+ adbSleep
+ sleep='input keyevent KEYCODE_SLEEP'
+ adb -s 192.168.4.220:5555 shell input keyevent KEYCODE_SLEEP
+ echo 'Sleep initiated for 192.168.4.220:5555'
+ date +%s
+ echo '192.168.4.220/stream_stopped written with epoch stop time'
'
[EXECUTE] Finished running ./scripts/firetv/dtvstreamdeeplinks/stopbmitune.sh in 5.127452577s
[GIN-debug] Request: 172.18.0.1 GET /play/tuner/foodHD~7822f08f-c09d-d890-2b46-948766f9f571, latency: 7.389183775s, status: 200
Attempting network tune for device http://192.168.4.89:81/ts/1_0 192.168.4.220:5555 SyfyHD~148e9301-574b-e202-9f1d-5eaac40731ac 
[EXECUTE] Running [./scripts/firetv/dtvstreamdeeplinks/prebmitune.sh 192.168.4.220:5555 SyfyHD~148e9301-574b-e202-9f1d-5eaac40731ac]
[EXECUTE] Stdout: 'already connected to 192.168.4.220:5555
Starting: Intent { cmp=com.att.tv/com.clientapp.MainActivity }
Confirming com.att.tv on 192.168.4.220:5555
prebmitune.sh is exiting for 192.168.4.220:5555 with exit code 0
'
[EXECUTE] Stderr: '+ streamerIP=192.168.4.220:5555
+ streamerNoPort=192.168.4.220
+ adbTarget='adb -s 192.168.4.220:5555'
+ mkdir -p 192.168.4.220
+ trap finish EXIT
+ main

+ adbConnect
+ adb connect 192.168.4.220:5555
+ local -i adbMaxRetries=2
+ local -i adbCounter=0
+ true
+ adb -s 192.168.4.220:5555 shell input keyevent KEYCODE_WAKEUP
+ local adbEventSuccess=0
+ [[ 0 -eq 0 ]]
+ break

e
+ packageLaunch=com.clientapp.MainActivity
+ packageName=com.att.tv
++ adb -s 192.168.4.220:5555 shell pidof com.att.tv
+ packagePID=7901
+ '[' '!' -z 7901 ']'
+ adb -s 192.168.4.220:5555 shell am start -n com.att.tv/com.clientapp.MainActivity
Warning: Activity not started, its current task has been brought to the front
+ echo 'Confirming com.att.tv on 192.168.4.220:5555'
+ touch 192.168.4.220/adbAppRunning
+ finish
+ echo 'prebmitune.sh is exiting for 192.168.4.220:5555 with exit code 0'
'
[EXECUTE] Finished running ./scripts/firetv/dtvstreamdeeplinks/prebmitune.sh in 1.071399245s
[EXECUTE] Running [./scripts/firetv/dtvstreamdeeplinks/bmitune.sh SyfyHD~148e9301-574b-e202-9f1d-5eaac40731ac 192.168.4.220:5555]
[EXECUTE] Stdout: 'Current PID for this script is 308
Not a special channel (exit nor reboot)
Starting: Intent { act=android.intent.action.VIEW (has data) cmp=com.att.tv/com.clientapp.MainActivity }
bmitune.sh is exiting for 192.168.4.220:5555 with exit code 0
'
[EXECUTE] Stderr: '++ awk -F~ '{print $2}'
++ echo SyfyHD~148e9301-574b-e202-9f1d-5eaac40731ac
+ channelID=148e9301-574b-e202-9f1d-5eaac40731ac
++ echo SyfyHD~148e9301-574b-e202-9f1d-5eaac40731ac++ 
awk -F~ '{print $1}'
+ channelName=SyfyHD
+ specialID=SyfyHD
+ streamerIP=192.168.4.220:5555
+ streamerNoPort=192.168.4.220
+ adbTarget='adb -s 192.168.4.220:5555'
+ packageName=com.att.tv
+ packageAction=com.clientapp.MainActivity
+ [[ '' == '' ]]
+ speedMode=true
+ trap finish EXIT
+ main
+ updateReferenceFiles
+ mkdir -p 192.168.4.220
+ [[ -f 192.168.4.220/stream_stopped ]]
+ [[ -f 192.168.4.220/last_channel ]]
+ echo 308
+ echo 'Current PID for this script is 308'
+ matchEncoderURL
+ case "$streamerIP" in
+ encoderURL=http://192.168.4.89:81/ts/1_0
+ specialChannels
+ '[' SyfyHD = exit ']'
+ '[' SyfyHD = reboot ']'
+ [[ -f 192.168.4.220/adbCommunicationFail ]]
+ echo 'Not a special channel (exit nor reboot)'
+ launchDelay
+ local lastChannel
+ local lastAwake
+ local timeNow
+ local timeElapsed
+ local maxTime=14400
+ lastChannel=foodHD
+ lastAwake=1742231340
++ date +%s
+ timeNow=1742231370
+ timeElapsed=30
+ '[' -f 192.168.4.220/adbAppRunning ']'
+ ((  30 < 14400  ))
+ rm 192.168.4.220/adbAppRunning
+ echo SyfyHD
+ tuneChannel
+ adb -s 192.168.4.220:5555 shell am start -n com.att.tv/com.clientapp.MainActivity dtvnow://deeplink.directvnow.com/play/channel/SyfyHD/148e9301-574b-e202-9f1d-5eaac40731ac
Warning: Activity not started, intent has been delivered to currently running top-most instance.
+ finish
+ echo 'bmitune.sh is exiting for 192.168.4.220:5555 with exit code 0'
'
[EXECUTE] Finished running ./scripts/firetv/dtvstreamdeeplinks/bmitune.sh in 238.588837ms
[IOINFO] Successfully copied 22560 bytes
[IOINFO] Transfer speed: 0.18518738803251972 Mbits/second
Performing Close() for 192.168.4.220:5555
[EXECUTE] Running [./scripts/firetv/dtvstreamdeeplinks/stopbmitune.sh 192.168.4.220:5555 SyfyHD~148e9301-574b-e202-9f1d-5eaac40731ac]
[EXECUTE] Stdout: 'Streaming stopped for 192.168.4.220:5555
Sleep initiated for 192.168.4.220:5555
192.168.4.220/stream_stopped written with epoch stop time
'
[EXECUTE] Stderr: '+ streamerIP=192.168.4.220:5555
+ streamerNoPort=192.168.4.220
+ adbTarget='adb -s 192.168.4.220:5555'
+ packageName=com.att.tv
+ main
+ bmituneDone
+ bmitunePID=308
+ ps -p 308

p
+ stop='input keyevent KEYCODE_BACK;         input keyevent KEYCODE_HOME'
+ adb -s 192.168.4.220:5555 shell input keyevent 'KEYCODE_BACK;' input keyevent KEYCODE_HOME

2
+ echo 'Streaming stopped for 192.168.4.220:5555'
+ adbSleep
+ sleep='input keyevent KEYCODE_SLEEP'
+ adb -s 192.168.4.220:5555 shell input keyevent KEYCODE_SLEEP
+ echo 'Sleep initiated for 192.168.4.220:5555'
+ date +%s
+ echo '192.168.4.220/stream_stopped written with epoch stop time'
'
[EXECUTE] Finished running ./scripts/firetv/dtvstreamdeeplinks/stopbmitune.sh in 5.084773498s
[GIN-debug] Request: 172.18.0.1 GET /play/tuner/SyfyHD~148e9301-574b-e202-9f1d-5eaac40731ac, latency: 7.139412366s, status: 200
Attempting network tune for device http://192.168.4.89:81/ts/1_0 192.168.4.220:5555 OXGNHD~a7ee26db-54eb-601b-b8df-1a67ad0cff4d 
[EXECUTE] Running [./scripts/firetv/dtvstreamdeeplinks/prebmitune.sh 192.168.4.220:5555 OXGNHD~a7ee26db-54eb-601b-b8df-1a67ad0cff4d]
[EXECUTE] Stdout: 'already connected to 192.168.4.220:5555
Starting: Intent { cmp=com.att.tv/com.clientapp.MainActivity }
Confirming com.att.tv on 192.168.4.220:5555
prebmitune.sh is exiting for 192.168.4.220:5555 with exit code 0
'
[EXECUTE] Stderr: '+ streamerIP=192.168.4.220:5555
+ streamerNoPort=192.168.4.220
+ adbTarget='adb -s 192.168.4.220:5555'
+ mkdir -p 192.168.4.220
+ trap finish EXIT
+ main

+ adbConnect
+ adb connect 192.168.4.220:5555
+ local -i adbMaxRetries=2
+ local -i adbCounter=0
+ true
+ adb -s 192.168.4.220:5555 shell input keyevent KEYCODE_WAKEUP
+ local adbEventSuccess=0
+ [[ 0 -eq 0 ]]
+ break

e
+ packageLaunch=com.clientapp.MainActivity
+ packageName=com.att.tv
++ adb -s 192.168.4.220:5555 shell pidof com.att.tv
+ packagePID=7901
+ '[' '!' -z 7901 ']'
+ adb -s 192.168.4.220:5555 shell am start -n com.att.tv/com.clientapp.MainActivity
Warning: Activity not started, its current task has been brought to the front
+ echo 'Confirming com.att.tv on 192.168.4.220:5555'
+ touch 192.168.4.220/adbAppRunning
+ finish
+ echo 'prebmitune.sh is exiting for 192.168.4.220:5555 with exit code 0'
'
[EXECUTE] Finished running ./scripts/firetv/dtvstreamdeeplinks/prebmitune.sh in 1.117804334s
[EXECUTE] Running [./scripts/firetv/dtvstreamdeeplinks/bmitune.sh OXGNHD~a7ee26db-54eb-601b-b8df-1a67ad0cff4d 192.168.4.220:5555]
[EXECUTE] Stdout: 'Current PID for this script is 346
Not a special channel (exit nor reboot)
Starting: Intent { act=android.intent.action.VIEW (has data) cmp=com.att.tv/com.clientapp.MainActivity }
bmitune.sh is exiting for 192.168.4.220:5555 with exit code 0
'
[EXECUTE] Stderr: '++ awk -F~ '{print $2}'
++ echo OXGNHD~a7ee26db-54eb-601b-b8df-1a67ad0cff4d
+ channelID=a7ee26db-54eb-601b-b8df-1a67ad0cff4d
++ ++ echo OXGNHD~a7ee26db-54eb-601b-b8df-1a67ad0cff4d
awk -F~ '{print $1}'
+ channelName=OXGNHD
+ specialID=OXGNHD
+ streamerIP=192.168.4.220:5555
+ streamerNoPort=192.168.4.220
+ adbTarget='adb -s 192.168.4.220:5555'
+ packageName=com.att.tv
+ packageAction=com.clientapp.MainActivity
+ [[ '' == '' ]]
+ speedMode=true
+ trap finish EXIT
+ main
+ updateReferenceFiles
+ mkdir -p 192.168.4.220
+ [[ -f 192.168.4.220/stream_stopped ]]
+ [[ -f 192.168.4.220/last_channel ]]
+ echo 346
+ echo 'Current PID for this script is 346'
+ matchEncoderURL
+ case "$streamerIP" in
+ encoderURL=http://192.168.4.89:81/ts/1_0
+ specialChannels
+ '[' OXGNHD = exit ']'
+ '[' OXGNHD = reboot ']'
+ [[ -f 192.168.4.220/adbCommunicationFail ]]
+ echo 'Not a special channel (exit nor reboot)'
+ launchDelay
+ local lastChannel
+ local lastAwake
+ local timeNow
+ local timeElapsed
+ local maxTime=14400
+ lastChannel=SyfyHD
+ lastAwake=1742231376
++ date +%s
+ timeNow=1742231390
+ timeElapsed=14
+ '[' -f 192.168.4.220/adbAppRunning ']'
+ ((  14 < 14400  ))
+ rm 192.168.4.220/adbAppRunning
+ echo OXGNHD
+ tuneChannel
+ adb -s 192.168.4.220:5555 shell am start -n com.att.tv/com.clientapp.MainActivity dtvnow://deeplink.directvnow.com/play/channel/OXGNHD/a7ee26db-54eb-601b-b8df-1a67ad0cff4d
Warning: Activity not started, intent has been delivered to currently running top-most instance.
+ finish
+ echo 'bmitune.sh is exiting for 192.168.4.220:5555 with exit code 0'
'
[EXECUTE] Finished running ./scripts/firetv/dtvstreamdeeplinks/bmitune.sh in 160.608166ms
[IOINFO] Successfully copied 24064 bytes
[IOINFO] Transfer speed: 0.17763214051768225 Mbits/second
Performing Close() for 192.168.4.220:5555
[EXECUTE] Running [./scripts/firetv/dtvstreamdeeplinks/stopbmitune.sh 192.168.4.220:5555 OXGNHD~a7ee26db-54eb-601b-b8df-1a67ad0cff4d]
[EXECUTE] Stdout: 'Streaming stopped for 192.168.4.220:5555
Sleep initiated for 192.168.4.220:5555
192.168.4.220/stream_stopped written with epoch stop time
'
[EXECUTE] Stderr: '+ streamerIP=192.168.4.220:5555
+ streamerNoPort=192.168.4.220
+ adbTarget='adb -s 192.168.4.220:5555'
+ packageName=com.att.tv
+ main
+ bmituneDone
+ bmitunePID=346
+ ps -p 346

p
+ stop='input keyevent KEYCODE_BACK;         input keyevent KEYCODE_HOME'
+ adb -s 192.168.4.220:5555 shell input keyevent 'KEYCODE_BACK;' input keyevent KEYCODE_HOME

2
+ echo 'Streaming stopped for 192.168.4.220:5555'
+ adbSleep
+ sleep='input keyevent KEYCODE_SLEEP'
+ adb -s 192.168.4.220:5555 shell input keyevent KEYCODE_SLEEP
+ echo 'Sleep initiated for 192.168.4.220:5555'
+ date +%s
+ echo '192.168.4.220/stream_stopped written with epoch stop time'
'
[EXECUTE] Finished running ./scripts/firetv/dtvstreamdeeplinks/stopbmitune.sh in 4.665585128s
[GIN-debug] Request: 172.18.0.1 GET /play/tuner/OXGNHD~a7ee26db-54eb-601b-b8df-1a67ad0cff4d, latency: 6.875720598s, status: 200
127.0.0.1	localhost
::1	localhost ip6-localhost ip6-loopback
fe00::	ip6-localnet
ff00::	ip6-mcastprefix
ff02::1	ip6-allnodes
ff02::2	ip6-allrouters
172.18.0.2	ah4c
* daemon not running; starting now at tcp:5037
* daemon started successfully
List of devices attached
connected to 192.168.4.220:5555
No existing ./scripts/firetv/directv/prebmitune.sh found or UPDATE_SCRIPTS set to true
No existing ./scripts/firetv/dtvstreamdeeplinks/prebmitune.sh found or UPDATE_SCRIPTS set to true
No existing ./scripts/firetv/directv/bmitune.sh found or UPDATE_SCRIPTS set to true
No existing ./scripts/firetv/dtvstreamdeeplinks/bmitune.sh found or UPDATE_SCRIPTS set to true
No existing ./scripts/firetv/directv/stopbmitune.sh found or UPDATE_SCRIPTS set to true
No existing ./scripts/firetv/dtvstreamdeeplinks/stopbmitune.sh found or UPDATE_SCRIPTS set to true
Existing directv.m3u found, and will be preserved
Existing dtvdeeplinks.m3u found, and will be preserved
Existing dtvosprey.m3u found, and will be preserved
Existing dtvstream.m3u found, and will be preserved
Existing dtvstreamdeeplinks.m3u found, and will be preserved
Existing foo-fighters.m3u found, and will be preserved
Existing fubo.m3u found, and will be preserved
Existing hulu.m3u found, and will be preserved
Existing livetv.m3u found, and will be preserved
Existing nbc.m3u found, and will be preserved
Existing npo.m3u found, and will be preserved
Existing pbs-seatac.m3u found, and will be preserved
Existing pbs-worcester.m3u found, and will be preserved
Existing silicondust.m3u found, and will be preserved
Existing sling.m3u found, and will be preserved
Existing spectrum.m3u found, and will be preserved
Existing xfinity.m3u found, and will be preserved
Existing youtubetv_shield.m3u found, and will be preserved
Existing youtubetv.m3u found, and will be preserved
[START] ah4c is starting
[ENV] Not loading env
[ENV] IPADDRESS                  192.168.4.35:7654
[ENV] ALERT_SMTP_SERVER          
[ENV] ALERT_AUTH_SERVER          
[ENV] ALERT_EMAIL_FROM           
[ENV] ALERT_EMAIL_PASS           
[ENV] ALERT_EMAIL_TO             
[ENV] ALERT_WEBHOOK_URL          
[ENV] ALLOW_DEBUG_VIDEO_PREVIEW  
[ENV] Creating tuner             1
[ENV] ENCODER1_URL               http://192.168.4.89:81/ts/1_0
[ENV] TUNER1_IP                  192.168.4.220:5555
[ENV] CMD1                       
[ENV] TEECMD1                    
[ENV] PRE SCRIPT                 ./scripts/firetv/dtvstreamdeeplinks/prebmitune.sh
[ENV] START SCRIPT               ./scripts/firetv/dtvstreamdeeplinks/bmitune.sh
[ENV] STOP SCRIPT                ./scripts/firetv/dtvstreamdeeplinks/stopbmitune.sh
[ENV] REBOOT SCRIPT              ./scripts/firetv/dtvstreamdeeplinks/reboot.sh
[GIN-debug] [WARNING] Running in "debug" mode. Switch to "release" mode in production.
 - using env:	export GIN_MODE=release
 - using code:	gin.SetMode(gin.ReleaseMode)
[GIN-debug] GET    /favicon.ico              --> github.com/gin-gonic/gin.(*RouterGroup).StaticFile.func1 (2 handlers)
[GIN-debug] HEAD   /favicon.ico              --> github.com/gin-gonic/gin.(*RouterGroup).StaticFile.func1 (2 handlers)
[GIN-debug] Loaded HTML Templates (11): 
	- status.html
	- status_and_logs.html
	- 

	- edit.html
	- editm3u.html
	- index.html

	- m3us.html
	- routes.html
	- stream.html
	- config.html

	- logs.html
[GIN-debug] GET    /static/*filepath         --> github.com/gin-gonic/gin.(*RouterGroup).createStaticHandler.func1 (2 handlers)
[GIN-debug] HEAD   /static/*filepath         --> github.com/gin-gonic/gin.(*RouterGroup).createStaticHandler.func1 (2 handlers)
[GIN-debug] GET    /                         --> main.run.func1 (2 handlers)
[GIN-debug] GET    /routes                   --> main.run.func2 (2 handlers)
[GIN-debug] GET    /play/tuner:tuner/:channel --> main.run.func3 (2 handlers)
[GIN-debug] GET    /m3u/:channel             --> main.run.func4 (2 handlers)
[GIN-debug] GET    /env                      --> main.run.func5 (2 handlers)
[GIN-debug] GET    /logs/text                --> main.run.func6 (2 handlers)
[GIN-debug] GET    /logs                     --> main.run.func7 (2 handlers)
[GIN-debug] GET    /status/andlogs           --> main.run.func8 (2 handlers)
[GIN-debug] GET    /logs/json                --> main.run.func9 (2 handlers)
[GIN-debug] GET    /video                    --> main.run.func10 (2 handlers)
[GIN-debug] GET    /status                   --> main.statusPageHandler (2 handlers)
[GIN-debug] GET    /api/status               --> main.apiStatusHandler (2 handlers)
[GIN-debug] GET    /stream                   --> main.run.func11 (2 handlers)
[GIN-debug] GET    /test/webhook             --> main.run.func12 (2 handlers)
[GIN-debug] GET    /test/email               --> main.run.func13 (2 handlers)
[GIN-debug] GET    /status/channelsactivity  --> main.run.func14 (2 handlers)
[GIN-debug] GET    /edit                     --> main.run.func15 (2 handlers)
[GIN-debug] POST   /save                     --> main.run.func16 (2 handlers)
[GIN-debug] POST   /m3usave/:file            --> main.run.func17 (2 handlers)
[GIN-debug] GET    /m3us                     --> main.run.func18 (2 handlers)
[GIN-debug] GET    /editm3u/:file            --> main.run.func19 (2 handlers)
[GIN-debug] GET    /config                   --> main.run.func20 (2 handlers)
[GIN-debug] POST   /configsave               --> main.run.func21 (2 handlers)
[START] ah4c is ready
[GIN-debug] Listening and serving HTTP on :7654
> [email protected] start
> node ./index.js
Listening on:
	http://ah4c:8000 http://localhost:8000
	http://127.0.0.1:8000 http://172.18.0.2:8000
	http://[::1]:8000
Attempting network tune for device http://192.168.4.89:81/ts/1_0 192.168.4.220:5555 CNNHD~d3603aea-f5d8-e789-786c-43c5e8799428 
[EXECUTE] Running [./scripts/firetv/dtvstreamdeeplinks/prebmitune.sh 192.168.4.220:5555 CNNHD~d3603aea-f5d8-e789-786c-43c5e8799428]
[EXECUTE] Stdout: 'already connected to 192.168.4.220:5555
Starting: Intent { cmp=com.att.tv/com.clientapp.MainActivity }
Confirming com.att.tv on 192.168.4.220:5555
prebmitune.sh is exiting for 192.168.4.220:5555 with exit code 0

[EXECUTE] Stderr: '+ streamerIP=192.168.4.220:5555
+ streamerNoPort=192.168.4.220
+ adbTarget='adb -s 192.168.4.220:5555'
+ mkdir -p 192.168.4.220
+ trap finish EXIT
+ main

+ adbConnect
+ adb connect 192.168.4.220:5555
+ local -i adbMaxRetries=2
+ local -i adbCounter=0
+ true
+ adb -s 192.168.4.220:5555 shell input keyevent KEYCODE_WAKEUP
+ local adbEventSuccess=0
+ [[ 0 -eq 0 ]]
+ break

e
+ packageLaunch=com.clientapp.MainActivity
+ packageName=com.att.tv
++ adb -s 192.168.4.220:5555 shell pidof com.att.tv
+ packagePID=7901
+ '[' '!' -z 7901 ']'
+ adb -s 192.168.4.220:5555 shell am start -n com.att.tv/com.clientapp.MainActivity
Warning: Activity not started, its current task has been brought to the front
+ echo 'Confirming com.att.tv on 192.168.4.220:5555'
+ touch 192.168.4.220/adbAppRunning
+ finish
+ echo 'prebmitune.sh is exiting for 192.168.4.220:5555 with exit code 0'

[EXECUTE] Finished running ./scripts/firetv/dtvstreamdeeplinks/prebmitune.sh in 1.018557794s
[EXECUTE] Running [./scripts/firetv/dtvstreamdeeplinks/bmitune.sh CNNHD~d3603aea-f5d8-e789-786c-43c5e8799428 192.168.4.220:5555]
[EXECUTE] Stdout: 'Current PID for this script is 89
Not a special channel (exit nor reboot)
Starting: Intent { act=android.intent.action.VIEW (has data) cmp=com.att.tv/com.clientapp.MainActivity }
bmitune.sh is exiting for 192.168.4.220:5555 with exit code 0

[EXECUTE] Stderr: '++ echo ++ CNNHD~d3603aea-f5d8-e789-786c-43c5e8799428
awk -F~ '{print $2}'
+ channelID=d3603aea-f5d8-e789-786c-43c5e8799428
++ awk -F~ '{print $1}'
++ echo CNNHD~d3603aea-f5d8-e789-786c-43c5e8799428
+ channelName=CNNHD
+ specialID=CNNHD
+ streamerIP=192.168.4.220:5555
+ streamerNoPort=192.168.4.220
+ adbTarget='adb -s 192.168.4.220:5555'
+ packageName=com.att.tv
+ packageAction=com.clientapp.MainActivity
+ [[ '' == '' ]]
+ speedMode=true
+ trap finish EXIT
+ main
+ updateReferenceFiles
+ mkdir -p 192.168.4.220
+ [[ -f 192.168.4.220/stream_stopped ]]
+ [[ -f 192.168.4.220/last_channel ]]

9
+ echo 'Current PID for this script is 89'
+ matchEncoderURL
+ case "$streamerIP" in
+ encoderURL=http://192.168.4.89:81/ts/1_0
+ specialChannels
+ '[' CNNHD = exit ']'
+ '[' CNNHD = reboot ']'
+ [[ -f 192.168.4.220/adbCommunicationFail ]]
+ echo 'Not a special channel (exit nor reboot)'
+ launchDelay
+ local lastChannel
+ local lastAwake
+ local timeNow
+ local timeElapsed
+ local maxTime=14400
+ lastChannel=OXGNHD
+ lastAwake=1742231396
++ date +%s
+ timeNow=1742231595
+ timeElapsed=199
+ '[' -f 192.168.4.220/adbAppRunning ']'
+ ((  199 < 14400  ))
+ rm 192.168.4.220/adbAppRunning

+ echo CNNHD
+ tuneChannel
+ adb -s 192.168.4.220:5555 shell am start -n com.att.tv/com.clientapp.MainActivity dtvnow://deeplink.directvnow.com/play/channel/CNNHD/d3603aea-f5d8-e789-786c-43c5e8799428
Warning: Activity not started, intent has been delivered to currently running top-most instance.
+ finish
+ echo 'bmitune.sh is exiting for 192.168.4.220:5555 with exit code 0'
'
[EXECUTE] Finished running ./scripts/firetv/dtvstreamdeeplinks/bmitune.sh in 192.719487ms
[IOINFO] Successfully copied 24816 bytes
[IOINFO] Transfer speed: 0.1630691102130814 Mbits/second
Performing Close() for 192.168.4.220:5555
[EXECUTE] Running [./scripts/firetv/dtvstreamdeeplinks/stopbmitune.sh 192.168.4.220:5555 CNNHD~d3603aea-f5d8-e789-786c-43c5e8799428]
[EXECUTE] Stdout: 'Streaming stopped for 192.168.4.220:5555
Sleep initiated for 192.168.4.220:5555
192.168.4.220/stream_stopped written with epoch stop time
'
[EXECUTE] Stderr: '+ streamerIP=192.168.4.220:5555
+ streamerNoPort=192.168.4.220
+ adbTarget='adb -s 192.168.4.220:5555'
+ packageName=com.att.tv
+ main
+ bmituneDone
+ bmitunePID=89
+ ps -p 89

p
+ stop='input keyevent KEYCODE_BACK;         input keyevent KEYCODE_HOME'
+ adb -s 192.168.4.220:5555 shell input keyevent 'KEYCODE_BACK;' input keyevent KEYCODE_HOME

2
+ echo 'Streaming stopped for 192.168.4.220:5555'
+ adbSleep
+ sleep='input keyevent KEYCODE_SLEEP'
+ adb -s 192.168.4.220:5555 shell input keyevent KEYCODE_SLEEP
+ echo 'Sleep initiated for 192.168.4.220:5555'
+ date +%s
+ echo '192.168.4.220/stream_stopped written with epoch stop time'
'
[EXECUTE] Finished running ./scripts/firetv/dtvstreamdeeplinks/stopbmitune.sh in 4.931756741s
[GIN-debug] Request: 172.18.0.1 GET /play/tuner/CNNHD~d3603aea-f5d8-e789-786c-43c5e8799428, latency: 7.176593956s, status: 200

It is an EXVIST it shows the stream in the device page. The encoder page did show what was happening before I switched to deep links

Are you updating your CDVR Custom Channel Source to reflect the change in M3U with the different methods? Including reloading the M3U? What are you seeing in the CDVR log itself related to this tuning activity?

After leaving this for a bit, I came back and I did see the stream start. Almost as soon as the channel opened, AH4C shut it down.
Channels log

2025/03/17 14:07:23.789621 [TNR] Opened connection to M3U-AH4C for ch11477 CNNHD
2025/03/17 14:07:23.789621 [HLS] Starting live stream for channel 11477 from 192.168.4.35
2025/03/17 14:07:23.817811 [HLS] ffmpeg: ch11477-dANY-ip192.168.4.35-remux:  [mpegts @ 000001b29e34fac0] Packet corrupt (stream = 0, dts = 369148500), dropping it.
2025/03/17 14:07:23.817811 [HLS] ffmpeg: ch11477-dANY-ip192.168.4.35-remux:  [hevc @ 000001b29e35eb00] Invalid NAL unit 4, skipping.
2025/03/17 14:07:23.817811 [HLS] ffmpeg: ch11477-dANY-ip192.168.4.35-remux:      Last message repeated 2 times
2025/03/17 14:07:23.817811 [HLS] ffmpeg: ch11477-dANY-ip192.168.4.35-remux:  [extract_extradata @ 000001b29e36c000] Invalid NAL unit 4, skipping.
2025/03/17 14:07:23.817811 [HLS] ffmpeg: ch11477-dANY-ip192.168.4.35-remux:      Last message repeated 2 times
2025/03/17 14:07:23.817811 [HLS] ffmpeg: ch11477-dANY-ip192.168.4.35-remux:  [hevc @ 000001b29e35eb00] Invalid NAL unit 4, skipping.
2025/03/17 14:07:23.819372 [HLS] ffmpeg: ch11477-dANY-ip192.168.4.35-remux:      Last message repeated 2 times
2025/03/17 14:07:23.819372 [HLS] ffmpeg: ch11477-dANY-ip192.168.4.35-remux:  [hevc @ 000001b29e35eb00] Could not find ref with POC 0
2025/03/17 14:07:23.822489 [HLS] ffmpeg: ch11477-dANY-ip192.168.4.35-remux:  [hevc @ 000001b29e35eb00] Invalid NAL unit 4, skipping.
2025/03/17 14:07:23.822489 [HLS] ffmpeg: ch11477-dANY-ip192.168.4.35-remux:      Last message repeated 27 times
2025/03/17 14:07:23.822489 [HLS] ffmpeg: ch11477-dANY-ip192.168.4.35-remux:  [mpegts @ 000001b29e34fac0] Packet corrupt (stream = 0, dts = 369238500), dropping it.
2025/03/17 14:07:23.822489 [HLS] ffmpeg: ch11477-dANY-ip192.168.4.35-remux:  [hevc @ 000001b29e35eb00] Invalid NAL unit 4, skipping.
2025/03/17 14:07:23.822489 [HLS] ffmpeg: ch11477-dANY-ip192.168.4.35-remux:      Last message repeated 29 times
2025/03/17 14:07:23.822489 [HLS] ffmpeg: ch11477-dANY-ip192.168.4.35-remux:  [mpegts @ 000001b29e34fac0] Packet corrupt (stream = 0, dts = 369328500), dropping it.
2025/03/17 14:07:23.822489 [HLS] ffmpeg: ch11477-dANY-ip192.168.4.35-remux:  [hevc @ 000001b29e35eb00] Invalid NAL unit 4, skipping.
2025/03/17 14:07:23.823007 [HLS] ffmpeg: ch11477-dANY-ip192.168.4.35-remux:      Last message repeated 29 times
2025/03/17 14:07:23.823007 [HLS] ffmpeg: ch11477-dANY-ip192.168.4.35-remux:  [mpegts @ 000001b29e34fac0] Packet corrupt (stream = 0, dts = 369418500), dropping it.
2025/03/17 14:07:23.823007 [HLS] ffmpeg: ch11477-dANY-ip192.168.4.35-remux:  [hevc @ 000001b29e35eb00] Invalid NAL unit 4, skipping.
2025/03/17 14:07:24.037624 [HLS] Probed live stream in 247.4983ms: hevc 1920x1080 progressive 146310bps
2025/03/17 14:07:30.397797 [TNR] Closed connection to M3U-AH4C for ch11477 CNNHD
2025/03/17 14:07:30.397797 [HLS] ffmpeg: ch11477-dANY-ip192.168.4.35-remux:      Last message repeated 29 times
2025/03/17 14:07:30.397797 [HLS] ffmpeg: ch11477-dANY-ip192.168.4.35-remux:  [mpegts @ 000001b29e34fac0] Packet corrupt (stream = 0, dts = 369508500), dropping it.
2025/03/17 14:07:30.398303 [HLS] ffmpeg: ch11477-dANY-ip192.168.4.35-remux:  [hevc @ 000001b29e35eb00] Invalid NAL unit 4, skipping.
2025/03/17 14:07:30.398303 [HLS] ffmpeg: ch11477-dANY-ip192.168.4.35-remux:      Last message repeated 8 times
2025/03/17 14:07:30.398303 [HLS] ffmpeg: ch11477-dANY-ip192.168.4.35-remux:  [mpegts @ 000001b29e34fac0] Could not find codec parameters for stream 1 (Unknown: none ([255][0][0][0] / 0x00FF)): unknown codec
2025/03/17 14:07:30.398303 [HLS] ffmpeg: ch11477-dANY-ip192.168.4.35-remux:  Consider increasing the value for the 'analyzeduration' (0) and 'probesize' (8000000) options
2025/03/17 14:07:30.399953 [HLS] ffmpeg: ch11477-dANY-ip192.168.4.35-remux:  [hls @ 000001b29e36b5c0] Stream HEVC is not hvc1, you should use tag:v hvc1 to set it.
2025/03/17 14:07:30.428500 [HLS] Stopping transcoder session ch11477-dANY-ip192.168.4.35 (out=0s finished=true first_seq=0 last_seq=-1)
2025/03/17 14:07:30.428500 [SNR] Buffer statistics for ch11477 CNNHD: buf=0% drop=0%
2025/03/17 14:07:31.453859 [TNR] Opened connection to M3U-AH4C for ch11477 CNNHD
2025/03/17 14:07:31.453859 [HLS] Starting live stream for channel 11477 from 192.168.4.35
2025/03/17 14:07:38.491346 [TNR] Closed connection to M3U-AH4C for ch11477 CNNHD
2025/03/17 14:07:38.491346 [HLS] ffmpeg: ch11477-dANY-ip192.168.4.35-remux:  Output file #0 does not contain any stream
2025/03/17 14:07:38.495722 [HLS] Stopping transcoder session ch11477-dANY-ip192.168.4.35 (out=0s finished=true first_seq=0 last_seq=-1)
2025/03/17 14:07:38.496228 [ERR] Probe cancelled for live stream after 7.0418021s and 0 bytes
2025/03/17 14:07:40.198932 [TNR] Opened connection to M3U-AH4C for ch11477 CNNHD
2025/03/17 14:07:40.198932 [HLS] Starting live stream for channel 11477 from 192.168.4.35
2025/03/17 14:07:46.095436 [TNR] Closed connection to M3U-AH4C for ch11477 CNNHD
2025/03/17 14:07:46.095436 [HLS] ffmpeg: ch11477-dANY-ip192.168.4.35-remux:  Output file #0 does not contain any stream
2025/03/17 14:07:46.099591 [HLS] Stopping transcoder session ch11477-dANY-ip192.168.4.35 (out=0s finished=true first_seq=0 last_seq=-1)
2025/03/17 14:07:46.099591 [ERR] Probe cancelled for live stream after 5.9001002s and 0 bytes
2025/03/17 14:07:47.412094 [TNR] Opened connection to M3U-AH4C for ch11477 CNNHD
2025/03/17 14:07:47.412094 [HLS] Starting live stream for channel 11477 from 192.168.4.35
2025/03/17 14:07:49.101371 [HLS] Stopping transcoder session ch11477-dANY-ip192.168.4.35 (out=0s finished=false first_seq=0 last_seq=-1)
2025/03/17 14:07:49.101932 [TNR] Closed connection to M3U-AH4C for ch11477 CNNHD
2025/03/17 14:07:49.102564 [ERR] Probe cancelled for live stream after 1.6899334s and 0 bytes
2025/03/17 14:07:49.105399 [SNR] Buffer statistics for ch11477 CNNHD: buf=0% drop=0%

What do you see in VLC when you tune to this network stream:

http://192.168.4.89:81/ts/1_0

Also, what do you see in VLC when tuning to:

http://192.168.4.35:7654/play/tuner/CNNHD~d3603aea-f5d8-e789-786c-43c5e8799428

I see the home page in the firestick with the first one.
The second opens and plays CNN

Just what we'd expect, and indicates ah4c is working properly. This suggests something is amiss with your CDVR Custom Channels source. Could you post a screenshot of it please?

Your screenshot looks correct.

Maybe Channels doesn't like your HEVC stream? Try changing it to H.264...