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

Yeah they're all changing stuff I just have been dealing with all these DirecTV issues related to Deep linking.

They have this new process that I pulled from the decompiled APK for the Ospreys: FeatureFlags.ID.USE_YOURTV_FOR_STARTUP . It seems to cause some sort of race condition when you wake immediately tune and don't have some sort delay in between wake and tuning which does not affect ADBTuner because of the built-in delay but does affect ah4c which is why i committed a pr to fix it.

It seemed to get muddied in my testing because I ran into a bunch of other issues that seem to be account level for me. I don't think they're necessarily cracking down on Deep linking but it seems like they're just changing the way these clients work and making it harder for us.

And testing the DirecTV TV app with a non-Osprey client and adbtuner. I've always done am start -S to force a restart of the client. While that makes tunes a bit slower, that has always worked reliably every time because it is a fresh instance of the app.

1 Like

Thank God a good chunk of the channels I want have native apps so I could just use that instead but yeah...they keep moving the goalposts here. Vintage Google lol

Yeah, unfortunately these complexities often make projects like this unreasonable for anyone but enthusiasts. :frowning:

2 Likes

I think the saving grace is the fact that especially with Android, Google Assistant is used generally to tune channels.

We might have an angle with that as a mechanism.

1 Like

Philo on FireStick is no longer working with deeplinks. And to make it more fun, it looks like when ADBTuner tries to tune the station, it permanently breaks the app. If I uninstall Philo and reinstall it works when manually using the app. When I try to use ADBTuner, the app tries to launch, but only the logo shows with a spinning circle. The app never comes up. If I quit the app, reboot the firestick and try to launch Philo again, it just has the logo and spinning circle again.

Just confirmed that I can manually open and use the Philo app multiple times after reinstalling. As soon as I use ADBTuner, the app has to be uninstalled/reinstalled.

Not getting the "break" using my ONN, but it's not directly tuning channels anymore but just a general splash page (trying to tune Destination America):
image

Does anyone else have automatic app updates turned off? I just checked and there is a Feb. 2026 version of the YTTV app that I can update to (on my ONN devices) - I assume that is not the new problematic version, can anyone confirm?

It's possible that the scheme changed. This is something that just happens sometimes.

The easiest way to fix this is to use an AI agent like Claude Code Use JADX to decompile the APK and look at the manifest and see what the new scheme is.

I have some free time and I don't have a subscription but I'll try to find the scheme if that's helpful.

Okay, it appears that with Philo the channel IDs have changed. That's what I was able to determine. I don't have any way of extracting those, so someone with an account will have to figure that out.

I will see if I can get the new version of YTTV to load one one of my Onn Full HD Sticks, see how it works. Will keep you all posted.

I have my Onn Full HD Stick setup on a my extra Link PI. What version of the YTTV Apps should I be using to test? I'm currently on 4.01.03 via the App Store.

For Destination America, here's my current link:

ADBTuner: https://www.philo.com/player/player/broadcast/Q2hhbm5lbDo2MDg1NDg4OTk2NDg0Mzk1NzY
Philo Web Link to Channel: https://www.philo.com/player/channel/Q2hhbm5lbDo2MDg1NDg4OTk2NDg0Mzk1NzY
When I paste the ADBTuner link into Chrome, it redirects me to: https://www.philo.com/player/mytv

Used to when I pasted the ADBTuner link into Chrome, it would play the channel, so something has changed even though the "channel id" hasn't changed it would appear.

I was playing around with Philo deeplinks again this morning and didn't make any progress. My links are still good, but the behavior has changed. When I paste them into Firefox, it now hits a channel landing page and doesn't start playing live. I also found that ADBTuner isn't corrupting the app, but I do have to force close it to get it working again.

For what it's worth, the bug in the newer YTTV app (4.x.x) still surfaces when using voice commands ("open espn on youtube tv"). From the device logs, that voice command more or less executes the same commands that ADBTuner would.

It's something they are certainly going to fix.

It's easy to reproduce. Just keep the app open (suspended in the background) for a good while (I've seen it after six hours, could happen in less). The first deep link, no matter how it's loaded, will fail.

YTTV is just a web app.
Neat trick: if you open https://www.youtube.com/tv/upg in Chrome you can use the tv app UI in browser.

After sitting idle for a while, I believe a server side event triggers a full reload. The URL changes to /tv/upg?hrld=1. You can actually see this when using the app normally. Sometimes you open it, you see the app UI for a millisecond, then it reloads, splash screen and all.

Summary: deep link opens app, content starts loading, full reload is initiated, the deep link context is lost. The app just stops on the home screen.


I'm not going to do anything in ADBTuner to try to fix this since it's likely the bug will eventually get fixed in the app itself. I recommend turning off automatic app updates (should always be off anyway) and sideloading an older 3.x version until this is fixed.

Alternatively, you can use a "compatibility mode" style configuration which will reload the app in advance. This slows down tuning, but should work as expected.

If you use "Keep Device Awake" along with "Keep In Foreground" and YTTV configured as the "Keep Alive Package Name" that will likely avoid the issue, but it's not guaranteed.

A custom configuration that opens the app, waits X seconds, then sends the deep link might be another possible workaround. How long to wait will probably be device dependent and this will slow down tuning as well.


I pushed a new development build of ADBTuner (20260711-1) this morning. It includes two changes.

  1. Restored a previously removed delay before playback detection starts. This should make the YTTV bug result in a failed tune instead of a successful tune that is just the app's home screen.

  2. Fixed a bug that could cause the app that could cause a "keep in foreground" app to end up in the background if an unrelated action pushed it into the background (remote command, software update, etc.)

It turns out I have access to Philo's free channels. It doesn't look like the channel URL changed, but something in the app definitely did. I'm not quite sure that it's possible to even tune anymore, although I am decompiling the APK right now and digging around with a couple of subagents to see if we can figure out some sort of mechanism for tuning it.

I spent the last hour with Philo and failed to get a single deep link to work. The app accepts the deep links in the defined formats, but doesn't do anything with them. It either hangs at a loading screen for a while and then loads the app's home screen, or just loads the app's home screen directly.

I think it's just bugged. /player/player/channel/<channel_id> is still the correct format. It just doesn't work.

I found the same thing and spent about an hour as well. Seems like a buggy update or a change. UI automation may be the future for Philo if this is the case.

2 Likes

For now, rolling Philo back to 10.5.x is the move (uninstall, then side load). It still works. Be sure to turn off automatic updates (always).

3 Likes

I think it's time for me to leave Philo and ditch the FireStick setup. Just signed up for the week trial of Frndly and added the source to FastChannels. The administrative overhead has become a burden.

1 Like

I think there's a project that just handles Frndly natively.