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

Do you have USB Debugging enabled as well? Or, is there an device approval message waiting on the Chromecast device?

EDIT: Also, if your Chromecast device has updated to Android 14 it may no longer be suitable for ADBTuner. Search this thread for more detail on Android 14 related issues.

That is the error I saw when my chromecast devices upgraded to android 14. I had 4 that all quit working over the course of a week as they did automatic updates. No way to stop it updating or back it out. Android 14 is fine on ONN devices but Google broke ADB for the chromecast devices in android 14.

Yeah it's gotta be the Android 14 thing. Thanks.

For those that have used TVE and ADBTuner, do you use both or have you fully migrated over to ADBTuner with multiple tuners? If you only used ADBTuner now, how is the stability of the tuners? TVE was rock solid until as of late for me.

I'm a "belt and suspenders" kind of guy, preferring to have a back-up plan for everything. Even when running multiple tuners on ADBTuner, I have always used it along with TVE. When I had YouTube TV, TVE was solid. Now that I have DirecTV, TVE authentication has been sketchy. I struggled to get DTV to work properly with ADBT and my ONN boxes, and ended up changing over from ADBT to Roku Tuner Bridge.

In any case, I have been preferring the TVE sources, as the channel numbers stay consistent across providers.

What's the best YTTV alternative that works with ADBTuner? ESPN networks going away from YTTV tonight

Sling has worked very well for me with Blue. Have not tried any Orange but imagine it's the same

Has anyone set up ADBTuner to use the ESPN app directly? I have no idea if it supports deep links. It would be nice to get their 1080p streams into CDVR.

The ESPN app supports deep links with (from memory) the prefix sportscenter:// but didn’t test enough to get working past launching the app.

1 Like

3 posts were split to a new topic: DeepLinks: ESPN+

I apologize. I have been too busy to think much about ADBTuner and haven't touched it at all since early September.

Thank you everyone for stepping in to help out. Especially @bnhf who helps everyone with everything around here lol.

The recent experimental version (20250908-3) has some breaking bugs that I need to fix. As far as I can tell, the most recent development tagged version (20250903-1) is quite stable. I'm going to work on releasing that version as a new "stable" release and then we can get back into development.

5 Likes

When you release the final edition of the latest release, it would be helpful under configuration if we had abels for the different services.
Something like Deeplinik-sling
The preset would have the best tweak for Sling.
deeplink-fubo
Best for fubo
I liked all the neat tricks used to get ADBTuner to properly handle the opening and closing of the app along with handling the video signal.
I think it would help the casual user.

I pushed some of the changes from the recent experimental builds to the development version.
The development version at the time of this post is 20251106-2.

  • The keep alive feature now tries to find a valid activity for the specified app instead of making assumptions. This should make most applications open properly.
  • Default configurations were updated to make sure apps don't idle in the foreground. This helps with apps that always play video if they are open.
  • To avoid Channels DVR timeout, the video stream will always start after 20 seconds regardless of playback status.

The earlier experimental builds had a feature that tried to retry if tuning didn't start after a fixed amount of time. This feature was removed as it sometimes caused loading to fail entirely.

If you run intro any issues, please let me know. Thanks!

I added a new option to the development version (currently 20251107-2) to provide the ability to restore the old timeout behavior. There are some situations where it would be preferred to return an error instead of a stream in which media might not be playing.

As a start, I think it would be helpful if we could start compiling a list of I guess what I would call "community recommendations" for each android package. For now, just a simple list of package name ("com.google.android.youtube.tvunplugged") and a recommended default configuration ("Deep Links - Default"). With this, we could include a tooltip with the recommended configuration for that specific app.

I'm open to possibly adding support for third-party configuration repositories so users can load configurations from outside of ADBTuner, but I'm very hesitant in doing something which could actually make things more complicated. I would much prefer to improve the compatibility of the two defaults (standard, compatibility mode) versus creating a situation where there are hundreds of configurations to choose from.

1 Like

I had to update the NBC app on my Onn stick because 9.9.1 just kept showing an error when trying to live play. Is there any fixes for the dim screen in ADBTuner program yet, in any release

I just pushed another update (20251107-8) to development.

It primarily fixes some bugs related to playback detection.

It seems that the log data related to media_session changed from state=3 to state=PLAYING(3) so this form of playback detection has been broken since that happened.

I also added another fallback method for playback detection. ADBTuner now looks to see if the target application is blocking the screensaver from starting. Every app should do this when video playback starts. For reference, it's doing something equivalent to this:
adb shell dumpsys power | grep "Wake Locks:" -A 20 | grep "SCREEN_BRIGHT_WAKE_LOCK" | grep com.whatever.application


I also added an experimental feature for querying a remote URL to obtain the actual deeplink url.
If the URL associated with a channel in ADBTuner includes a "dynamic_url_json_key" parameter the specified URL will be loaded by ADBTuner and the value specified as the "dynamic_url_json_key" within the remote endpoint's json response will be used for loading the content on the android device.

Example:
If the URL configured for the channel in ADBTuner is this:
http://x.x.x.x?dynamic_url_json_key=deeplink_url

Then http://x.x.x.x will be loaded by ADBTuner and the "deeplink_url" key in the json response will be used to obtain the URL:

{
  "example_field": "something",
  "deeplink_url": "http://android_deep_link_for_something"
}

will be used to load the content on the Android.

This was just something to try to help those that are working on solutions for ESPN. I don't know how much value it has, but it's there now.

turtletank, I started testing your latest 20251107-8 build and it seems to be working great so far. My current setup is using a ONN TV 4K Pro box with Sling TV and Link PI single port box. I was using your stable build and I had to set it to use the compatibility mode for ever link to get it to work. With this build I was able to put it back to using the default deep links and so far its rock solid.

Thank you so much for all your hard work.

I moved over to watching get comedy from Sling and am using the latest development build.
I was able to set Sling to use the normal deep link option and it now pulls up the stream with a brief view of the channel logo as it starts.
I have the ONN 4k from 2023.

1 Like

I pushed a new development build (20251108-1) this morning with some adjustments to media playback detection. I had to listen to the YTTV startup sound once and that was not ok lol.

I also added a new default configuration choice (“Deep Links - Show Tuning Process”) for users that want to see the video as soon as possible and don’t care about watching the content load. It should start streaming after about 2 seconds.

3 Likes