ADBTuner: A "channel tuning" application for networked Google TV / Android TV devices

Having several issues with ADBTuner + 4 ONN sticks. First want to see what is happening when I try and watch ESPN/ESPN2, etc. One one tuner, I will get it to tune sometimes (other problem to solve for eventually), but for Tuners 2-4, I am seeing this in my encoders sneak-a-peak link when I try and tune to ESPN1/2 and something else is playing on Tuner 1:

I can tune other channels fine, but seems like the ESPN channels are hitting some handshake issue between the ONN box and the encoder ports 2-4 but not port 1?

So not 100% solved for me (timeouts), but it is MUCH better after moving off the VM to an actual hardware PC. Not sure why. It will still timeout sometimes when I try to load a channel in Kodi, but it seems to auto correct the tuner lock now after a minute or so, and it doesn't happen even remotely as often. It also seems to only happen on the FireTV stick, so I may move that down in priority so it chooses the Google Streaming box first.

Kodi works bad as a direct client to adb tuner. Starts end stops the stream 2 times before it works, channel tune takes a long time.
With Kodi and nextpvr as backend it works fine or Kodi and Tvh as backend also works fine but need to pipe the stream to tvh first.

I am using Kodi with NextPVR as the backend currently (although I just changed that - most of the above I was on Channels). I may change back to Channels, haven't decided yet (NextPVR has better Kodi implementation - except I can't get series artwork to work). Either way though, I use Channels for TVE and import it into NextPVR.

So have mentioned previously I've been having some challenges with ADBTuner. As a reminder, here's my setup:
Streaming Devices: 2xONN (original boxes, ONN1, ONN2); 2x ONN4K (sticks, ONN3, ONN4)
4 Port HDMI Encoder
SynologyNAS for CDVR Server
Streaming Services: Fubo & Philo

Problem Statement 1: When I stop streaming a Fubo based channel through ADBTuner, it shows the tuner is released on the ADB admin page, but when I go into the HDMI admin page and do a sneak-peak, the channel simply has been paused.

Problem Statement 2: I also noticed that if I switch from a Fubo channel to a Philo channel on the same streaming device, the Fubo Channel will pause as usual, and then switch over to the Philo channel, but when I stop the Philo channel, the Fubo Channel I was watching will resume (not on CDVR, but in the background as confirmed through sneak-a-peak window on my HDMI Encoder webpage) not jus paused, but resumes live TV even though I didn't go back to that Fubo Channel to resume watching that channel through CDVR.

I have all Fubo based channels set to Deep Links Default and Philo based channels set to Compatibility based on previous comments I've seen in this group.

Basically in the example, I tuned into ESPN, stopped, tuned into Destination America, Stopped and ESPN popped back up in the sneak-a-peek window of my HDMI encoder even though ADBTuner said all tuners were released:

--------------------------------------------------
Tuner "ONN1" is currently in use and locked.
Tune ID: CPC24ZmWYajSRgihcRf2Rd
Channel: Destination America
Lock Obtained: 2025-08-15 16:10:49 (10.47 minutes ago)
Last Seen: 2025-08-15 16:21:16 (1.47 seconds ago)
Bytes Transferred: 1507631408 (1437.79MB)
Remote User Agent:
Go-http-client/1.1
--------------------------------------------------
2025-08-15 16:21:19.204 - tuner_management - Releasing tuner 1 as it has been inactive for 3 seconds.
2025-08-15 16:21:19.204 - tuner_management - Releasing tuner: {'lock_obtained': 1755274249, 'tuner_name': 'ONN1', 'name': 'Destination America', 'number': 102, 'provider_name': 'Philo', 'tuner_id': 1, 'channel_id': 16, 'request_key': 'CPC24ZmWYajSRgihcRf2Rd', 'target_package': 'com.philo.philo.google'}
2025-08-15 16:21:19.402 - tuner_management - [Tune CPC24ZmWYajSRgihcRf2Rd] Using configuration: Deep Links - Compatibility Mode (bb353259-17e0-4b38-a328-8629fb1ec2ca) for channel cleanup.
2025-08-15 16:21:19.402 - lib.adb - [Tune CPC24ZmWYajSRgihcRf2Rd] ADB: 192.168.0.20 - am force-stop 'com.philo.philo.google'
2025-08-15 16:21:19.582 - tuner_management - [Tune CPC24ZmWYajSRgihcRf2Rd] Released tuner (1).
2025-08-15 16:21:19.582 - tuner_management - [Tune CPC24ZmWYajSRgihcRf2Rd] Cleanup complete. ONN1 (Destination America)
2025-08-15 16:21:23.409 - stream - [Tune RqyCDVdSQKvMQMCi9zbZyL] 127.0.0.1:5592 | Go-http-client/1.1
2025-08-15 16:21:23.412 - tuner_management - [Tune RqyCDVdSQKvMQMCi9zbZyL] Attempting to reserve tuner for: ['com.fubo.firetv.screen'].
2025-08-15 16:21:23.414 - tuner_management - [Tune RqyCDVdSQKvMQMCi9zbZyL] Available Tuners:
2025-08-15 16:21:23.414 - tuner_management - [Tune RqyCDVdSQKvMQMCi9zbZyL] Name: ONN1 Priority: 1
2025-08-15 16:21:23.414 - tuner_management - [Tune RqyCDVdSQKvMQMCi9zbZyL] Name: ONN2 Priority: 2
2025-08-15 16:21:23.414 - tuner_management - [Tune RqyCDVdSQKvMQMCi9zbZyL] Name: ONN3 Priority: 3
2025-08-15 16:21:23.414 - tuner_management - [Tune RqyCDVdSQKvMQMCi9zbZyL] Name: ONN4 Priority: 4
2025-08-15 16:21:23.414 - tuner_management - [Tune RqyCDVdSQKvMQMCi9zbZyL] Using first available tuner (by priority).
2025-08-15 16:21:23.415 - tuner_management - [Tune RqyCDVdSQKvMQMCi9zbZyL] Reserved Tuner: Name: ONN1 Priority: 1
2025-08-15 16:21:23.415 - stream - [Tune (RqyCDVdSQKvMQMCi9zbZyL)] Tuning to ESPN on ONN1
2025-08-15 16:21:23.415 - stream - [Tune (RqyCDVdSQKvMQMCi9zbZyL)] Using channel configuration: Deep Links (default, recommended) (8ec77d65-30d6-46a3-8045-282571cff8d8)
2025-08-15 16:21:23.828 - lib.adb - [Tune (RqyCDVdSQKvMQMCi9zbZyL)] ADB: 192.168.0.20 - pidof com.fubo.firetv.screen
2025-08-15 16:21:23.922 - stream - [Tune (RqyCDVdSQKvMQMCi9zbZyL)] Using https://link.fubo.tv/al1%3Fv%3D1%26a%3Dplay%26t%3Dchannel%26channel_id%3D10179 to load channel.
2025-08-15 16:21:23.922 - lib.adb - [Tune (RqyCDVdSQKvMQMCi9zbZyL)] ADB: 192.168.0.20 - input keyevent KEYCODE_MEDIA_STOP
2025-08-15 16:21:24.019 - lib.adb - [Tune (RqyCDVdSQKvMQMCi9zbZyL)] ADB: 192.168.0.20 - am start -W -a android.intent.action.VIEW -d 'https://link.fubo.tv/al1%3Fv%3D1%26a%3Dplay%26t%3Dchannel%26channel_id%3D10179' 'com.fubo.firetv.screen'
2025-08-15 16:21:25.231 - lib.adb - [Tune (RqyCDVdSQKvMQMCi9zbZyL)] Failed to get status from media_session.
2025-08-15 16:21:29.576 - stream - [Tune RqyCDVdSQKvMQMCi9zbZyL] Waiting for playback start. Status: unknown
2025-08-15 16:21:29.755 - lib.adb - [Tune (RqyCDVdSQKvMQMCi9zbZyL)] Failed to get status from media_session.
2025-08-15 16:21:31.278 - lib.adb - [Tune (RqyCDVdSQKvMQMCi9zbZyL)] Failed to get status from media_session.
2025-08-15 16:21:32.722 - lib.adb - [Tune (RqyCDVdSQKvMQMCi9zbZyL)] Failed to get status from media_session.
2025-08-15 16:21:34.305 - lib.adb - [Tune (RqyCDVdSQKvMQMCi9zbZyL)] Failed to get status from media_session.
2025-08-15 16:21:35.581 - lib.adb - [Tune (RqyCDVdSQKvMQMCi9zbZyL)] Detected 100.0% black pixels. Assuming HDCP is active and video is playing.
2025-08-15 16:21:35.581 - lib.adb - [Tune (RqyCDVdSQKvMQMCi9zbZyL)] ADB: Closing connection - 192.168.0.20
2025-08-15 16:21:35.581 - stream - [Tune RqyCDVdSQKvMQMCi9zbZyL] Tuning completed after 12.17 seconds. [Tune RqyCDVdSQKvMQMCi9zbZyL] Display was on, application (com.fubo.firetv.screen) was running.
2025-08-15 16:21:35.582 - uvicorn.access - 172.17.0.1:0 - "GET /stream/5 HTTP/1.1" 307
2025/08/15 16:21:35 [PROXY] 172.17.0.1 -> GET "/proxy/1?requestKey=RqyCDVdSQKvMQMCi9zbZyL" -> "http://192.168.0.17/0.ts"
2025-08-15 16:21:46.928 - tuner_management - Releasing tuner 1 as it has been inactive for 3 seconds.
2025-08-15 16:21:46.928 - tuner_management - Releasing tuner: {'lock_obtained': 1755274883, 'tuner_name': 'ONN1', 'name': 'ESPN', 'number': 60, 'provider_name': 'Fubo', 'tuner_id': 1, 'channel_id': 5, 'request_key': 'RqyCDVdSQKvMQMCi9zbZyL', 'target_package': 'com.fubo.firetv.screen'}
2025-08-15 16:21:47.150 - tuner_management - [Tune RqyCDVdSQKvMQMCi9zbZyL] Using configuration: Deep Links (default, recommended) (8ec77d65-30d6-46a3-8045-282571cff8d8) for channel cleanup.
2025-08-15 16:21:47.150 - lib.adb - [Tune RqyCDVdSQKvMQMCi9zbZyL] ADB: 192.168.0.20 - input keyevent KEYCODE_MEDIA_STOP
2025-08-15 16:21:47.230 - lib.adb - [Tune RqyCDVdSQKvMQMCi9zbZyL] ADB: 192.168.0.20 - input keyevent KEYCODE_MEDIA_PAUSE
2025-08-15 16:21:47.378 - tuner_management - [Tune RqyCDVdSQKvMQMCi9zbZyL] Released tuner (1).
2025-08-15 16:21:47.378 - tuner_management - [Tune RqyCDVdSQKvMQMCi9zbZyL] Cleanup complete. ONN1 (ESPN)
2025-08-15 16:21:51.050 - stream - [Tune 4EzYB8zXx7TheZhKrMr6Pc] 127.0.0.1:5592 | Go-http-client/1.1
2025-08-15 16:21:51.052 - tuner_management - [Tune 4EzYB8zXx7TheZhKrMr6Pc] Attempting to reserve tuner for: ['com.philo.philo.google', 'com.philo.philo'].
2025-08-15 16:21:51.054 - tuner_management - [Tune 4EzYB8zXx7TheZhKrMr6Pc] Available Tuners:
2025-08-15 16:21:51.054 - tuner_management - [Tune 4EzYB8zXx7TheZhKrMr6Pc] Name: ONN1 Priority: 1
2025-08-15 16:21:51.054 - tuner_management - [Tune 4EzYB8zXx7TheZhKrMr6Pc] Name: ONN2 Priority: 2
2025-08-15 16:21:51.054 - tuner_management - [Tune 4EzYB8zXx7TheZhKrMr6Pc] Name: ONN3 Priority: 3
2025-08-15 16:21:51.054 - tuner_management - [Tune 4EzYB8zXx7TheZhKrMr6Pc] Name: ONN4 Priority: 4
2025-08-15 16:21:51.054 - tuner_management - [Tune 4EzYB8zXx7TheZhKrMr6Pc] Using first available tuner (by priority).
2025-08-15 16:21:51.054 - tuner_management - [Tune 4EzYB8zXx7TheZhKrMr6Pc] Reserved Tuner: Name: ONN1 Priority: 1
2025-08-15 16:21:51.054 - stream - [Tune (4EzYB8zXx7TheZhKrMr6Pc)] Tuning to Destination America on ONN1
2025-08-15 16:21:51.055 - stream - [Tune (4EzYB8zXx7TheZhKrMr6Pc)] Using channel configuration: Deep Links - Compatibility Mode (bb353259-17e0-4b38-a328-8629fb1ec2ca)
2025-08-15 16:21:51.356 - lib.adb - [Tune (4EzYB8zXx7TheZhKrMr6Pc)] ADB: 192.168.0.20 - pidof com.philo.philo.google
2025-08-15 16:21:51.432 - stream - [Tune (4EzYB8zXx7TheZhKrMr6Pc)] Using https://www.philo.com/player/player/channel/Q2hhbm5lbDo2MDg1NDg4OTk2NDg0Mzk1NzY to load channel.
2025-08-15 16:21:51.432 - lib.adb - [Tune (4EzYB8zXx7TheZhKrMr6Pc)] ADB: 192.168.0.20 - input keyevent KEYCODE_MEDIA_STOP
2025-08-15 16:21:51.509 - lib.adb - [Tune (4EzYB8zXx7TheZhKrMr6Pc)] ADB: 192.168.0.20 - am force-stop 'com.philo.philo.google'
2025-08-15 16:21:51.635 - lib.adb - [Tune (4EzYB8zXx7TheZhKrMr6Pc)] ADB: 192.168.0.20 - sleep 2
2025-08-15 16:21:53.694 - lib.adb - [Tune (4EzYB8zXx7TheZhKrMr6Pc)] ADB: 192.168.0.20 - am start -W -a android.intent.action.VIEW -d 'https://www.philo.com/player/player/channel/Q2hhbm5lbDo2MDg1NDg4OTk2NDg0Mzk1NzY' 'com.philo.philo.google'
2025-08-15 16:21:58.612 - lib.adb - [Tune (4EzYB8zXx7TheZhKrMr6Pc)] Checking for profile screen
2025-08-15 16:22:00.695 - lib.adb - [Tune (4EzYB8zXx7TheZhKrMr6Pc)] Checking for profile screen
2025-08-15 16:22:03.435 - lib.adb - [Tune (4EzYB8zXx7TheZhKrMr6Pc)] Checking for profile screen
2025-08-15 16:22:05.213 - lib.adb - [Tune (4EzYB8zXx7TheZhKrMr6Pc)] On screen text: '—_'
2025-08-15 16:22:06.218 - lib.adb - [Tune (4EzYB8zXx7TheZhKrMr6Pc)] Checking for profile screen
2025-08-15 16:22:08.586 - lib.adb - [Tune (4EzYB8zXx7TheZhKrMr6Pc)] ADB: Closing connection - 192.168.0.20
2025-08-15 16:22:08.587 - stream - [Tune 4EzYB8zXx7TheZhKrMr6Pc] Tuning completed after 17.54 seconds. [Tune 4EzYB8zXx7TheZhKrMr6Pc] Display was on, application (com.philo.philo.google) was running.
2025-08-15 16:22:08.587 - uvicorn.access - 172.17.0.1:0 - "GET /stream/16 HTTP/1.1" 307
2025/08/15 16:22:08 [PROXY] 172.17.0.1 -> GET "/proxy/1?requestKey=4EzYB8zXx7TheZhKrMr6Pc" -> "http://192.168.0.17/0.ts"
2025-08-15 16:22:13.636 - tuner_management - Releasing tuner 1 as it has been inactive for 3 seconds.
2025-08-15 16:22:13.636 - tuner_management - Releasing tuner: {'lock_obtained': 1755274911, 'tuner_name': 'ONN1', 'name': 'Destination America', 'number': 102, 'provider_name': 'Philo', 'tuner_id': 1, 'channel_id': 16, 'request_key': '4EzYB8zXx7TheZhKrMr6Pc', 'target_package': 'com.philo.philo.google'}
2025-08-15 16:22:13.867 - tuner_management - [Tune 4EzYB8zXx7TheZhKrMr6Pc] Using configuration: Deep Links - Compatibility Mode (bb353259-17e0-4b38-a328-8629fb1ec2ca) for channel cleanup.
2025-08-15 16:22:13.867 - lib.adb - [Tune 4EzYB8zXx7TheZhKrMr6Pc] ADB: 192.168.0.20 - am force-stop 'com.philo.philo.google'
2025-08-15 16:22:13.990 - tuner_management - [Tune 4EzYB8zXx7TheZhKrMr6Pc] Released tuner (1).
2025-08-15 16:22:13.990 - tuner_management - [Tune 4EzYB8zXx7TheZhKrMr6Pc] Cleanup complete. ONN1 (Destination America)

Do I have something setup incorrectly or is something else going on? I'm currently using the development version as it seems to be more stable than the others (I was having a lot of tuners locked after trying to tune individual channels).

EDIT1: was doing some additional testing and noticed this in the logs. Why is "pause" command being issued? This is a Fubo Based channel.

EDIT2: here's what is happening when a Philo based channel is stopped (goes back either to home screen if no preceeding Fubo Channel was being watched, or back to live Fubo if Fubo was paused when exiting the previous Fubo Channel):

I don't have Fubo but you could try using compatibility mode for it also since it sounds like Fubo channels are not releasing correctly.

Fubo is a mixed bag. I find more success using ah4c than using adbtuner but yeah try with compatibility mode. Fubo probably needs to be closed out first and then tuned in

Tried converting all to compatibility mode and seems to be working better.

ah4c requires a lot more in-depth knowledge than I have right now. May continue to tinker to see if I can get setup, but need a lot more free time and a "phone-a-friend" to work my way through that.

Still seeing some issues with trying to tune into a channel, and although ONN1 shows in the encoder admin page it's tuned into the channel itself, ADBtuner moves on to the next tuner, sometimes typing up all tuners eventually, and sometimes eventually giving up and "releasing" all the tuners.

ah4c isn't exactly hard to figure out. A little time spent on Notepad++ and that is that. You may need to browse fubo to find the channel ids for any DRM-d channels you may need but thats not much a hassle really

So now that Fubo is playing nice again with the compatibility mode, moving one to some other issues:

Issue 1: Still see occasional "fallback" from ONN1 to ONN2 or ONN3 even though I can see in the sneak-a-peek encoder admin page that ONN1 successfully tuned into the channel. Here's the log from my latest attempt;

2025-08-16 12:33:09.864 - stream - [Tune (nAS4hBFvWd5CewG29a8xXi)] Tuning to NBC on ONN1
2025-08-16 12:33:09.865 - stream - [Tune (nAS4hBFvWd5CewG29a8xXi)] Using channel configuration: Deep Links - Compatibility Mode (bb353259-17e0-4b38-a328-8629fb1ec2ca)
2025-08-16 12:33:10.395 - lib.adb - [Tune (nAS4hBFvWd5CewG29a8xXi)] ADB: 192.168.0.20 - pidof com.fubo.firetv.screen
2025-08-16 12:33:10.475 - stream - [Tune (nAS4hBFvWd5CewG29a8xXi)] Using https://link.fubo.tv/al1%3Fv%3D1%26a%3Dplay%26t%3Dchannel%26channel_id%3D25544 to load channel.
2025-08-16 12:33:10.476 - lib.adb - [Tune (nAS4hBFvWd5CewG29a8xXi)] ADB: 192.168.0.20 - input keyevent KEYCODE_MEDIA_STOP
2025-08-16 12:33:10.625 - lib.adb - [Tune (nAS4hBFvWd5CewG29a8xXi)] ADB: 192.168.0.20 - am force-stop 'com.fubo.firetv.screen'
2025-08-16 12:33:10.774 - lib.adb - [Tune (nAS4hBFvWd5CewG29a8xXi)] ADB: 192.168.0.20 - sleep 2
2025-08-16 12:33:12.888 - lib.adb - [Tune (nAS4hBFvWd5CewG29a8xXi)] ADB: 192.168.0.20 - am start -W -a android.intent.action.VIEW -d 'https://link.fubo.tv/al1%3Fv%3D1%26a%3Dplay%26t%3Dchannel%26channel_id%3D25544' 'com.fubo.firetv.screen'
2025-08-16 12:33:13.168 - server - 
--------------------------------------------------
Tuner "ONN1" is currently in use and locked.
      
Tune ID: N/A
      
Channel: NBC
Lock Obtained: 2025-08-16 12:33:09 (0.07 minutes ago)
Last Seen: N/A
Bytes Transferred: None
Remote User Agent:
N/A
--------------------------------------------------
2025-08-16 12:33:17.871 - lib.adb - [Tune (nAS4hBFvWd5CewG29a8xXi)] Checking for profile screen
2025-08-16 12:33:20.314 - lib.adb - [Tune (nAS4hBFvWd5CewG29a8xXi)] On screen text: 'wgal
news 8 today/weekend'
2025-08-16 12:33:21.317 - lib.adb - [Tune (nAS4hBFvWd5CewG29a8xXi)] Checking for profile screen
2025-08-16 12:33:29.907 - stream - [Tune Qo6uGdvMdroJAoY5YYwnpr] 127.0.0.1:5592 | Go-http-client/1.1
2025-08-16 12:33:29.910 - tuner_management - [Tune Qo6uGdvMdroJAoY5YYwnpr] Attempting to reserve tuner for: ['com.fubo.firetv.screen'].
2025-08-16 12:33:29.912 - tuner_management - [Tune Qo6uGdvMdroJAoY5YYwnpr] Available Tuners:
2025-08-16 12:33:29.913 - tuner_management - [Tune Qo6uGdvMdroJAoY5YYwnpr] Name: ONN2 Priority: 2
2025-08-16 12:33:29.913 - tuner_management - [Tune Qo6uGdvMdroJAoY5YYwnpr] Name: ONN3 Priority: 3
2025-08-16 12:33:29.913 - tuner_management - [Tune Qo6uGdvMdroJAoY5YYwnpr] Name: ONN4 Priority: 4
2025-08-16 12:33:29.913 - tuner_management - [Tune Qo6uGdvMdroJAoY5YYwnpr] Using first available tuner (by priority).
2025-08-16 12:33:29.914 - tuner_management - [Tune Qo6uGdvMdroJAoY5YYwnpr] Reserved Tuner: Name: ONN2 Priority: 2
2025-08-16 12:33:29.914 - stream - [Tune (Qo6uGdvMdroJAoY5YYwnpr)] Tuning to NBC on ONN2
2025-08-16 12:33:29.915 - stream - [Tune (Qo6uGdvMdroJAoY5YYwnpr)] Using channel configuration: Deep Links - Compatibility Mode (bb353259-17e0-4b38-a328-8629fb1ec2ca)
2025-08-16 12:33:30.518 - lib.adb - [Tune (Qo6uGdvMdroJAoY5YYwnpr)] ADB: 192.168.0.21 - pidof com.fubo.firetv.screen
2025-08-16 12:33:30.602 - stream - [Tune (Qo6uGdvMdroJAoY5YYwnpr)] Using https://link.fubo.tv/al1%3Fv%3D1%26a%3Dplay%26t%3Dchannel%26channel_id%3D25544 to load channel.
2025-08-16 12:33:30.602 - lib.adb - [Tune (Qo6uGdvMdroJAoY5YYwnpr)] ADB: 192.168.0.21 - input keyevent KEYCODE_MEDIA_STOP
2025-08-16 12:33:30.758 - lib.adb - [Tune (Qo6uGdvMdroJAoY5YYwnpr)] ADB: 192.168.0.21 - am force-stop 'com.fubo.firetv.screen'
2025-08-16 12:33:30.893 - lib.adb - [Tune (Qo6uGdvMdroJAoY5YYwnpr)] ADB: 192.168.0.21 - sleep 2
2025-08-16 12:33:31.191 - lib.adb - [Tune (nAS4hBFvWd5CewG29a8xXi)] On screen text: 'stabbing ~
investigation
      
adams county
      
.
>» state police report
> saw a
>» wednesday in
straban township ‘
>» charged: 20-year-old
liam owings
> victim stabbed
in stomach'
2025-08-16 12:33:32.193 - lib.adb - [Tune (nAS4hBFvWd5CewG29a8xXi)] ADB: Closing connection - 192.168.0.20
2025-08-16 12:33:32.194 - stream - [Tune nAS4hBFvWd5CewG29a8xXi] Tuning completed after 22.33 seconds. [Tune nAS4hBFvWd5CewG29a8xXi] Display was on, application (com.fubo.firetv.screen) was closed.
2025-08-16 12:33:32.194 - stream - [Tune nAS4hBFvWd5CewG29a8xXi] Client disconnected before redirecting to stream URL. Cleaning up and releasing tuner.
2025-08-16 12:33:32.475 - tuner_management - [Tune nAS4hBFvWd5CewG29a8xXi] Using configuration: Deep Links - Compatibility Mode (bb353259-17e0-4b38-a328-8629fb1ec2ca) for channel cleanup.
2025-08-16 12:33:32.475 - lib.adb - [Tune nAS4hBFvWd5CewG29a8xXi] ADB: 192.168.0.20 - am force-stop 'com.fubo.firetv.screen'
2025-08-16 12:33:32.639 - tuner_management - [Tune nAS4hBFvWd5CewG29a8xXi] Released tuner (1).
2025-08-16 12:33:32.639 - tuner_management - [Tune nAS4hBFvWd5CewG29a8xXi] Cleanup complete. ONN1 (NBC)
2025-08-16 12:33:33.005 - lib.adb - [Tune (Qo6uGdvMdroJAoY5YYwnpr)] ADB: 192.168.0.21 - am start -W -a android.intent.action.VIEW -d 'https://link.fubo.tv/al1%3Fv%3D1%26a%3Dplay%26t%3Dchannel%26channel_id%3D25544' 'com.fubo.firetv.screen'
2025-08-16 12:33:37.975 - lib.adb - [Tune (Qo6uGdvMdroJAoY5YYwnpr)] Checking for profile screen
2025-08-16 12:33:40.322 - lib.adb - [Tune (Qo6uGdvMdroJAoY5YYwnpr)] On screen text: 'al
wgal
news 8 today/weekend'
2025-08-16 12:33:41.325 - lib.adb - [Tune (Qo6uGdvMdroJAoY5YYwnpr)] Checking for profile screen
2025-08-16 12:33:43.294 - server - 
--------------------------------------------------
Tuner "ONN2" is currently in use and locked.
      
Tune ID: N/A
      
Channel: NBC
Lock Obtained: 2025-08-16 12:33:29 (0.24 minutes ago)
Last Seen: N/A
Bytes Transferred: None
Remote User Agent:
N/A
--------------------------------------------------
2025-08-16 12:33:44.753 - lib.adb - [Tune (Qo6uGdvMdroJAoY5YYwnpr)] On screen text: 'two killed one
injured in crash
franklin township
76°
: wgal °2'
2025-08-16 12:33:45.757 - lib.adb - [Tune (Qo6uGdvMdroJAoY5YYwnpr)] Checking for profile screen
2025-08-16 12:33:48.128 - lib.adb - [Tune (Qo6uGdvMdroJAoY5YYwnpr)] On screen text: 'deadly crash'
2025-08-16 12:33:49.131 - lib.adb - [Tune (Qo6uGdvMdroJAoY5YYwnpr)] ADB: Closing connection - 192.168.0.21
2025-08-16 12:33:49.132 - stream - [Tune Qo6uGdvMdroJAoY5YYwnpr] Tuning completed after 19.22 seconds. [Tune Qo6uGdvMdroJAoY5YYwnpr] Display was on, application (com.fubo.firetv.screen) was closed.
2025/08/16 12:33:49 [PROXY] 172.17.0.1 -> GET "/proxy/2?requestKey=Qo6uGdvMdroJAoY5YYwnpr" -> "http://192.168.0.17/4.ts"
2025-08-16 12:33:49.132 - uvicorn.access - 172.17.0.1:0 - "GET /stream/1 HTTP/1.1" 307
2025-08-16 12:34:13.352 - server - 
--------------------------------------------------
Tuner "ONN2" is currently in use and locked.
Tune ID: Qo6uGdvMdroJAoY5YYwnpr
      
Channel: NBC
Lock Obtained: 2025-08-16 12:33:29 (0.74 minutes ago)
Last Seen: 2025-08-16 12:34:13 (0.35 seconds ago)
Bytes Transferred: 51449960 (49.07MB)
Remote User Agent:
Go-http-client/1.1
--------------------------------------------------

Issue 2: I'm now seeing this on ONN1 for ESPN whereas non-ESPN based channels I can still watch channels on ONN1 (ie NFL Network). Assuming ESPN is DRM and something has happened to the "handshake" between ONN1 and the hdmi encoder? I believe a reboot of ONN1 will solve the problem, but trying to figure out how to prevent in the future as Channels/ADBTuner can't tell it's displaying a warning vs. an actual live stream so ADBTuner isn't trying to switch to one of the other 3 tuners.

TIA

Some quick notes:

For the moment, Philo seems to work ok with the standard deep link configuration (on the Onn devices at least). The app now exits to the home screen when a MEDIA_STOP command is issued which fixes the old bug where it failed to load deep linked content when the app was open. It's worth checking if the standard deep link configuration will work for you.

The Fubo app completely ignores MEDIA_STOP commands. The only way to stop playback is to send a pause command, or navigate back or home. ADBTuner always sends both stop and pause commands because Fubo isn't the only app that behaves this way.

In addition, if paused, the Fubo app automatically resumes playback when it is brought back into focus. @jator , this explains what you were seeing. The Philo app was being killed because it's in compatibility mode which brought the Fubo app back into focus, which restarted playback. Using Fubo in compatibility mode should solve this. It may be possible to use Fubo in standard deep link mode if someone can figure out a custom configuration that effectively stops the video in a way that won't resume when the app regains focus.

Were all of these playback attempts from Channels DVR, or were you using the web interface or another player? I'm curious as to why a disconnect was detected prior to the stream starting. It looks like there was a disconnect and then it immediately tried again which picked up another tuner.

I haven't seen anything like this before. What HDMI device are you using? It seems to be acting as if HDCP isn't supported?

I believe this can show if you reach a stream limit. Some channels have limits on how many streams you can have, less than what the provider allows for other channels. Very common with Sports channels. Ate you using your service anywhere else?

No, not streaming at other locations. Also, since ONN1 shows the warning but if I tune ONN1 to say NBC and then try and watch ESPN and ADBTuner uses ONN2, then it tunes fine. Leads me to believe it's a handshake issue of some sort.

Generic 4x hdmi encoder bought off eBay (link) some time ago. Supports HDCP as ONN2 - ONN4 will tune just fine. I've expeerienced this before on ONN2 & ONN3 and a reboot of the boxes solves the issue. Just trying to figure out what is causing the issue to pop up from time to time.

I used Web Interface as I can have multiple sessions going by opening up several tabs. Agreed it's odd, especially since the first box is actually tuned in (verified by having the hdmi sneak-a-peek on when I tune to a channel on that ONN box) but ADBTuner still tries additional boxes as if the ONN box didn't actually tune in.

Fired up a test ADBTuner Docker, testing deep links and the DirecTV App. So far so good. If anyone is interested in results, shoot me a ping.

Interested in how you got it working with DirecTV. I already have DirecTV working via AH4C but am curious. What are you putting in as the link for ADBtuner?

I would definitly be interested in how you were able to get directv working with ADB Tuner.
I do know the link works off the account associated with the subscriber.

I was inspired by info shared in this thread:

The Deep Link follows this schema:

dtvnow://deeplink.directvnow.com/play/channel/(CHANNELID)/(UNIQUE DTV ID)

For example, CNN is:

dtvnow://deeplink.directvnow.com/play/channel/CNNHD/d3603aea-f5d8-e789-786c-43c5e8799428

If you want build a full list, you can pull the Channel ID and DTV ID from the first link I posted.


So far my testing has been pretty positive. All the channels I've tried work and seem pretty reliable. I do know those DirecTV IDs are somewhat unique, especially for regional networks like FS1. I do not know how long these IDs are good for, if they are somewhat unique or if they get re-indexed from time to time. I will continue testing. I still recommend Osprey/Gemini devices with AH4C for reliable DTV Tuning and better picture quality.

One last thing if you want to try. Use the Development version of ADBTuner to allow a custom config. The DTV App does not work well when the program is left open. I have a config that closes the DTV App before tuning, just in case it was left open, and I close the app when tuning is complete.

DTV App Config

    "global_options": {
        "wait_for_video_playback_detection": true,
        "use_fixed_delay": false,
        "fixed_delay_seconds": 0,
        "check_for_and_clear_whos_watching_prompts": false
    },
    "pre_tune_commands": [
        "input keyevent 3",
        "am force-stop '||TARGET_PACKAGE_NAME||'"
    ],
    "tune_commands": [
        "am start -W -a android.intent.action.VIEW -d '||TARGET_URL_OR_IDENTIFIER||' '||TARGET_PACKAGE_NAME||'"
    ],
    "post_tune_commands": [
        "am force-stop '||TARGET_PACKAGE_NAME||'",
        "input keyevent 3",
        "input keyevent 26"
    ]
}

Have fun testing.

2 Likes

See above: ADBTuner: A "channel tuning" application for networked Google TV / Android TV devices - #2323 by spammedeeper

That's interesting, and the opposite of what caused DTV deeplinks to stop working with ADBTuner sometime back. The previous behavior was that the app had to be open before a deeplink would be accepted. That meant neither standard nor compatibility mode would work reliably.