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

@turtletank I will start by start by saying the challenge I'm having is so unique, it may only apply to me. I don't want to request development for such a small audience. But with the newly created ADBT Thread dedicated to DirecTV, figured I would open discussion.

I've been testing my Osprey Boxes with ADBT for a few months. It works rather well, but I have to use a work around. It seems ADBT needs to verify the declared Package Name is installed before continuing with the rest of the tuning process. The Osprey does not have an installed app. Instead it uses the System App com.att.tv.openvideo baked into the Osprey Firmware.

I bypass this challenge by selecting a random installed app during my Channel setup, then use a custom config to manually target the "openvideo" system app. Is there any way to use a System App as Package Name? Possible to skip this verification of installed, and just trust the declared (manual input) package name is good?

Again, this is not a show stopper for me. The bypass I'm using now works. Appreciate all you do.

1 Like

Are you on the stable branch or the development version. I think it was address in the threads.
a configuration is available to address the boxes.

Can you take a look at the current development version (20251208-1) and let me know if this issue is resolved? In this build the full list of packages is used when allocating tuners instead of the filtered third-party list.

Gave it a quick test on the new dev version before work. Did not seem to take. I will pull a log and see what's happening. Thank you so much for attention to this config!

Okay, so I checked the logs. The dev version in fact does allow me to manually enter the system package by typing it in, and attempts to tune, but then errors out saying "Application is not installed".

2025-12-08 20:08:10.057 - stream - [Tune (3hR7ibUCQDsDwXMvn9rjMH)] No active tuners found for CNNHD. Reserving a new tuner.
2025-12-08 20:08:10.058 - tuner_management - [Tune 3hR7ibUCQDsDwXMvn9rjMH] Attempting to reserve tuner for: ['com.att.tv.openvideo'].
2025-12-08 20:08:10.059 - tuner_management - [Tune 3hR7ibUCQDsDwXMvn9rjMH] Available Tuners:
2025-12-08 20:08:10.059 - tuner_management - [Tune 3hR7ibUCQDsDwXMvn9rjMH] Name: Opsrey1 Priority: 
2025-12-08 20:08:10.059 - tuner_management - [Tune 3hR7ibUCQDsDwXMvn9rjMH] Name: Osprey2 Priority: 
2025-12-08 20:08:10.059 - tuner_management - [Tune 3hR7ibUCQDsDwXMvn9rjMH] Name: Osprey0 Priority: 
2025-12-08 20:08:10.059 - tuner_management - [Tune 3hR7ibUCQDsDwXMvn9rjMH] Selecting random tuner
2025-12-08 20:08:10.060 - tuner_management - [Tune 3hR7ibUCQDsDwXMvn9rjMH] Reserved Tuner: Name: Opsrey1 Priority: 
2025-12-08 20:08:10.060 - stream - [Tune (3hR7ibUCQDsDwXMvn9rjMH)] Tuning to CNNHD on Opsrey1
2025-12-08 20:08:10.063 - stream - [Tune (3hR7ibUCQDsDwXMvn9rjMH)] Using channel configuration: DTV: Osprey Deep Link (DODL) (870d0f68-6c1f-4358-b3c3-0c97fd0cb316)
2025-12-08 20:08:10.444 - lib.adb - [Tune (3hR7ibUCQDsDwXMvn9rjMH)] ADB: 192.168.xxx.xxx - input keyevent KEYCODE_WAKEUP
2025-12-08 20:08:11.757 - tuner_management - [Tune (3hR7ibUCQDsDwXMvn9rjMH)] Released tuner (1).
2025-12-08 20:08:11.757 - stream - [Tune 3hR7ibUCQDsDwXMvn9rjMH] Application (None) is not installed. Exiting.
2025-12-08 20:08:11.764 - stream - [Tune 3hR7ibUCQDsDwXMvn9rjMH] Tuner (Opsrey1) is no longer available.

@turtletank

Would you be willing to expose a new variable for use in Custom Configurations along the lines of ||TARGET_DEVICE||? When I was experimenting with your codebase during your "hiatus" :slight_smile: from ADBTuner, I recall it was fairly trivial, since that value is already available as an internal variable.

Armed with ||TARGET_DEVICE||, and what you've added for obtaining a deeplink from a remote endpoint, I believe I could revive the ability for ADBTuner to be able to capture CDVR Virtual Channels streams (from the CDVR client app running on an encoder-connected streaming stick).

CDVR Virtual Channels are typically only viewable on CDVR clients. This would make them viewable in other media centers, via the WebUI, and in CDVR Multiview. The GET to the remote endpoint would be to a webhook that would execute the curl command required to do channel changes on a CDVR client (via its API) on the "target device".

The only thing that's different from the typical ADBTuner flow, is that CDVR app channel changes can only be triggered by curl.

Yeah, of course. Are you looking for the "Device IP Address" associated with the allocated tuner? Or something else?

Yes, exactly. This value:

I just pushed an updated development build (20251209-1).

@bnhf a new ||TARGET_DEVICE_IP_ADDRESS|| variable is now available for commands within custom configurations.

@spammedeeper I temporarily added the full list of installed applications for each tuner to the output of the status page at /up. Can you take a look and let me know if the com.att.tv.openvideo package is appearing in that list?

2 Likes

First test I will do when home tonight. Thank you!

EDIT: Confirmed. The system app com.att.tv.openvideo shows under category cached_all_packages on all three of my Osprey tuners.

@bnhf Any plans to add an ADBTuner config button for Sling like you did for YTTV? This is what I got so far coding wise. I haven't tested it out yet but it should work the same way as YTTV

Screenshot 2025-12-10 at 20-28-44 Olivetin - Organizr V2

That was for more of a combo manual/automated process I used to import my YTTV channels initially into ADBTuner and cc4c:

What I'd really like to do now, is duplicate what I just did for ESPN+ and DTV, for YTTV and Sling. The JSONs one can grab for either have all kinds of Unicode garbage in them I need to figure out how to filter out first, so I have a clean text-only JSON to work with.

1 Like

If you can that'll be great although I don't think it'll be as easy as DTV but I'm happy to test

My Osprey boxes should be here Friday or Saturday. I'll be able to test this as well this weekend.

1 Like

And you have com.att.tv.openvideo configured for the channel? It should work as that's the list that's being checked when tuners are allocated. If you can try again and share some logs that might be helpful Maybe I missed something.

I will test and troubleshoot. Appreciate the help and will report back.

I made good progress on an automated Sling virtual channel creator for ADBTuner today. It appears the callsigns they use are not "Gracenote standard", which means I need to include the Station ID data.

My current Sling data contains the STARZ package only. Do you have, or have you seen, a decent list of Gracenote Station IDs for other channels in other Sling packages?

If anyone has a reasonable M3U or JSON dataset for Sling, DM it to me, and I'll add that data to this automation. This includes Freestream channels, if possible...

1 Like

I found this above

I still got my old json file on hand

That'll help. My global search of the forum turned up nothing, but clearly it should have. Hopefully I'll get a few more responses, and perhaps someone has done the work to match up the Freestream channels.

I don't think they'll be enough demand for the Freestream stuff as thats available directly through other FAST sources. I the main the focus should be on the paid channels IMO