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

I took a look and at the moment there is no deep link support for the live channels. There is for movies and shows, but not the live stuff. You can see this when browsing the CW website on a mobile device in that everything has an "open in app" button except live channels. Since you said this was just launched, I wouldn't be surprised if this support is added later.

@turtletank
Thanks. Really appreciate you looking...I will try and keep an eye on the app to watch for when they add live channel deep links

I finally had a chance to take a look at Fubo and unfortunately I could not duplicate the issue you are seeing. I tested on a Fire TV 4K Max and a Chromecast with Google TV and it was fine on both. Fubo doesn't use the native video player so Compatibility Mode is necessary as otherwise ADBTuner will just pause the stream and disconnect if it doesn't detect playback.

If you are still seeing this issue, if you can get me some docker container logs and some information about the hardware you are currently using that would be helpful.

Of course there is a better way to get Fubo into Channels DVR now so perhaps it's not as critical.

Been trying to get this work for a couple of weeks and started from scratch 3 times. I am getting this error on a regular basis --
image

Using Fubo as the source, Uray 4 port encoder with onn port1, new firestick 4K Max port2, older 4k firestick on port 3 and another onn on port4. All 4 devices are set to never sleep and all the adb commands set as recommended. After couple weeks of these problems, I setup a new Ubuntu 20.04 LTS server with Docker & Portainer last week. Didn't help with my problem.

When recording - I get an hour of this message. Troubleshooting at this moment just by just trying to preview NBC thru adbtuner - keeping CDVR out of the equation.

Watching vlc as this happens, the screen goes dark - with the little white cursor in the middle - then goes to the error message, then after few seconds - returns to the home screen. I never see the Fubo app launch.
But - after this happens, I can launch the Fubo just fine with remote.

Since we can't toggle / select which tuner to use, I'll try recording something to tie up the ONN tuner1 to force it to use the New Firestick on tuner 2 and get the exact issue.

I'm not sure to troubleshoot past this. Ask you need anything that may be helpful. Here is the adbtuner log

Preview channel from adbtuner
ADBtuner log
2024-02-11 11:28:04.264 - server - Reserved tuner 1
2024-02-11 11:28:04.264 - server - Using tuner id: 1
2024-02-11 11:28:04.264 - uvicorn.access - 10.0.0.145:62591 - "GET /stream/1 HTTP/1.1" 307
2024-02-11 11:28:04.274 - server - Tuner: Tuning to NBC on onn1
2024-02-11 11:28:04.275 - lib.adb - ADB: Connecting to device (attempt 1).
2024-02-11 11:28:04.331 - lib.adb - ADB: Connected.
2024-02-11 11:28:04.331 - lib.adb - ADB: 10.0.0.61 - dumpsys display
2024-02-11 11:28:04.387 - lib.adb - ADB: 10.0.0.61 - getprop ro.build.version.release
2024-02-11 11:28:04.433 - lib.adb - ADB: Android Version: 12.0.
2024-02-11 11:28:04.433 - lib.adb - ADB: 10.0.0.61 - pm list packages -3
2024-02-11 11:28:04.505 - lib.adb - ADB: 10.0.0.61 - pidof com.fubo.firetv.screen
2024-02-11 11:28:04.564 - lib.adb - ADB: Stopping media playback.
2024-02-11 11:28:04.564 - lib.adb - ADB: 10.0.0.61 - input keyevent KEYCODE_MEDIA_STOP
2024-02-11 11:28:04.638 - lib.adb - ADB: Force stopping com.fubo.firetv.screen.
2024-02-11 11:28:04.638 - lib.adb - ADB: 10.0.0.61 - am force-stop com.fubo.firetv.screen
2024-02-11 11:28:06.796 - lib.adb - ADB: 10.0.0.61 - am start -a android.intent.action.VIEW -d "https://link.fubo.tv/al1%3Fv%3D1%26a%3Dplay%26t%3Dchannel%26channel_id%3D32639" com.fubo.firetv.screen
2024-02-11 11:28:11.392 - lib.adb - Checking for profile screen
2024-02-11 11:28:13.130 - lib.adb - Checking for profile screen
2024-02-11 11:28:15.032 - lib.adb - Checking for profile screen
2024-02-11 11:28:17.097 - lib.adb - Checking for profile screen
2024-02-11 11:28:19.039 - lib.adb - Checking for profile screen
2024-02-11 11:28:20.991 - server - Tuner: Compatibility Mode - Stream released after 16.72 seconds. Display was on, application (com.fubo.firetv.screen) was running.
2024-02-11 11:28:20.992 - lib.adb - ADB: Closing connection - 10.0.0.61
2024-02-11 11:28:20.995 - uvicorn.access - 10.0.0.145:62591 - "GET /stream/1/1 HTTP/1.1" 200
2024-02-11 11:28:21.020 - root - Tuner: Stream open (attempt 1).
2024-02-11 11:28:21.079 - httpx - HTTP Request: GET http://10.0.0.60/0.ts "HTTP/1.1 200 OK"
2024-02-11 11:28:24.982 - server - http disconnect
2024-02-11 11:28:24.986 - lib.adb - ADB: Connecting to device (attempt 1).
2024-02-11 11:28:25.040 - lib.adb - ADB: Connected.
2024-02-11 11:28:25.041 - lib.adb - ADB: Stopping media playback.
2024-02-11 11:28:25.041 - lib.adb - ADB: 10.0.0.61 - input keyevent KEYCODE_MEDIA_STOP
2024-02-11 11:28:25.117 - lib.adb - ADB: 10.0.0.61 - input keyevent KEYCODE_MEDIA_PAUSE
2024-02-11 11:28:25.187 - lib.adb - ADB: Force stopping com.fubo.firetv.screen.
2024-02-11 11:28:25.187 - lib.adb - ADB: 10.0.0.61 - am force-stop com.fubo.firetv.screen
2024-02-11 11:28:25.352 - lib.adb - ADB: Closing connection - 10.0.0.61
2024-02-11 11:28:25.352 - server - Released tuner 1
2024-02-11 11:28:25.353 - server - Tuner: Cleanup complete. onn1 (NBC)

Made some headway on this yesterday. Problem was Fubo - showing not on my home network. Once I set that - everything worked. But - today, both the onn sticks showed not on home network again. The 2 firesticks we're still fine. So not an adbtuner issue...

Has anyone used ADBTuner to view the WX Channel App on a Firestick? I have Frndly and watch WX Channel on TVE. Would like the current WX without closing Channels.

Tnx

1 Like

Sorry to get back so late! Unfortunately while the other method works fine for most channels it doesn't work for the soccer channels, so I still need ADBTuner.

I am still seeing the problem, I'm using an Exvist box with a 1080p Chromecast with Google TV. What's the best way to get the logs?

@turtletank, The Max app has some linear feeds these days. There is a CNN feed that runs 24/7, and there are live sports broadcasts that match whatever national broadcast of NBA or NHL game that TBS or TNT is having, if they are having one. I think I have found deep links using the web browser method, but while implementing it, I sometimes get tripped up by the Who's watching screen on the app. It seems to behave very similarly to the Paramount Plus app, where there is a splash screen, then the Who's watching ask.

I am using the experimental version of the docker, and I do have the enable compatibility mode box checked, and only have one account name to select from, but still no love. I think I read earlier in this forum that you thought that everyone is doing the "Who's watching" the same, so it could likely work in other apps as well. Thoughts why it doesn't seem to on this one? Is it possibly a timing issue with the length of the splash screen?

2 Likes

So I am going to be one of those guys who ends up answering his own question.

With some more trial and error, I have been able to get past the problem with the deeplinks for the Max app asking "Who's watching?" every time I tried to use them. The solution I found is I created a second user for my account and set a pin password for that user. Then the next time I tried the deep link, I used my main account, which is not pin protected. Since then (at least for now), it has skipped right past the "Who's watching?" ask, and the deep links have been working.

Here is what I did to create the deeplinks. Using a web browser, I found that the linear feeds have a format of this:
"https://play.max.com/video/watch/BigNumber1/BigNumber2"

I guessed that BigNumber1 might be the channel, and BigNumber2 might be the current program, so I put this into ADBTuner for the CNN feed and it has been working for several days now.

"https://play.max.com/video/watch/BigNumber1"

I haven't had enough tries currently of this approach, to see if the TBS and TNT broadcasts of NHL and NBA games have persistent links, as the links seem to be only available during the live broadcasts. Time will tell on that.

Technically they are calling these games B/R games, and I think I recall when I was an active YoutubeTV subscriber they had dedicated B/R channels on the program guide. I think there were as many as 4 of them. Maybe then their needs to be 4 channels for this too...

The package name for me for the Max app is: com.wbd.stream

Also, this whole second account thing was just discovered, so not sure how long that will last too. But thought I would share what I learned.

@turtletank this thing is fantastic. Thanks so much for building it.

4 Likes

Blockquote Sorry to get back so late! Unfortunately while the other method works fine for most channels it doesn't work for the soccer channels, so I still need ADBTuner.

Well this is embarrassing... a reboot of the exvist fixed it! Crisis averted, thanks @turtletank for everything!

@turtletank
Any chance that you can make a docker ”PyatvTuner” for Apple TV ? :innocent: https://pyatv.dev/
Love the simple interface of ADBTuner and it would be nice to use it with Apple TV and hdmi encoders too

Having spent some time playing around with pyatv -- I have to say, it's very limited compared to what you can do with adb.

I wouldn't recommend it for anybody unless they need to use an app that's only available on AppleTV.

This is great info. Thanks for sharing.

I actually took a look into pyatv a bit ago under @tmm1 's recommendation. It's a solid library with a good API that works well in controlling an Apple TV. I was actually pretty interested in the idea because as a long-time Apple TV user (first gen intel model!) I have a few sitting in a closet that could be repurposed.

Unfortunately, for now, my conclusion is similar to @bnhf's. The amount of live tv apps that support deep links on the Apple TV (tvOS) seem to be very limited. Apple doesn't offer any sort of "live guide" so there is no incentive for developers to support deep links on the platform at all.

Was there a specific app you had in mind that isn't available on Android TV? I would be glad to revisit at some point.

My kluge to get past the "Who's watching" has stopped working. Also, the deeplinks for sporting events appear to be event based and change for every game. It is not the slam dunk of having a single link found that connects me to all NHL or NBA games every time there is one on TNT, but it still may have value for being able to set up to record something in advance, if I can get past this "Who's watching" thing. I have found that if you look on their website, on a future event page, you can get a link like this:

"https://play.max.com/sport/EventNumber"

if you change the /sport/ part of the above link to /video/watch/ and put that event link into an ADB channel setup, you should be able to record it. Also, I used a grace note number for TNT as well for that channel setup, so the event I wanted to record would show up in the guide as well. This link does work while the event is live, if you can avoid the "Who's watching". I have been stomping over that with my remote while testing.

This seems like it should work, but alas, the Who's watching" ask is back, and not getting cleared with your utility. I read on HBO Max's troubleshooting guide, that they ask "Who's watching" every time for their TV version of their app. Annoying that they do that with only user, regardless.

The end goal would be able to do these steps to set up in advance, so that I could get Channels set up to record an event that I am interested in.

So coming back full circle, thoughts on why your "Who's watching" fix doesn't work on this app, when it does on Paramount, Fubo, Sling, etc? Different font size, a timing issue?

Was just hoping to be able to reduce channel change time with Allente since compabilty mode on Adbtuner gives to long time, Allente also has a start up logo with audio for a few second so startup is long . Restarting the app on every channel change is not preferd for me (not usable with Kodi or Tvheadend)
Allente supports deeplinks on iOS and ipad os so there is a good chance for deeplink support on Tvos too !?

I pushed a small update to the experimental version on Docker Hub today. It includes something I've been messing around with as an alternate means of detecting video playback to hopefully move some apps out of compatibility mode.

If anyone feels up to testing this I would appreciate it. I'm mostly looking for false positives, situations when the stream starts before the video started playing. This should take Fubo out of compatibility mode at least.

@Bossmann let me know if it helps with your Allente app as I can't test that myself.

For anyone who is interested in the specifics, I'm taking advantage of the fact that screenshots are blacked out when HDCP is enabled. If more than 99.8% of the pixels are black it seems to be safe to assume that playback has started. It's 99.8% instead of 100% to allow for things like the "Advertisement" text that might be overlaid on a stream while it's playing.

Another hack of a thing for sure, but that's where we gotta be with some of this stuff unfortunately.

Cool i`ll let you know tomorrow .
How to change from latest to experimental with Docker Compose ?

1 Like

I will test it I use Compatibility mode... for XFINITY ... What is the experimental image name ?

Change the image name in docker-compose.yml to:

image: turtletank99/adbtuner:experimental

followed by:

docker-compose stop
docker-compose rm
docker-compose pull
docker-compose up -d

turtletank99/adbtuner:experimental

There is a fix for this in the experimental version referenced above.
It was a case of who's watching vs who’s watching. :rofl:

It worked with compatibilty mode off .. tuning is much faster.

2024-03-06 23:10:59.788 - lib.adb - ADB: 192.168.50.41 - am start -a android.intent.action.VIEW -d "https://www.xfinity.com/stream/live/HBOHW/5232923399725817105/HBOHW" com.xfinity.cloudtvr.tenfoot
2024-03-06 23:11:02.368 - lib.adb - Detected 100.0% black pixels. Assuming HDCP is active and video is playing.
2024-03-06 23:11:02.368 - server - Tuner: Waiting for playback start. Status: playing
2024-03-06 23:11:02.369 - server - Tuner: Tuning completed in 3.91 seconds. Display was on, application (com.xfinity.cloudtvr.tenfoot) was closed.
2024-03-06 23:11:02.369 - lib.adb - ADB: Closing connection - 192.168.50.41
2024-03-06 23:11:02.370 - uvicorn.access - 192.168.50.92:62543 - "GET /stream/1/1 HTTP/1.1" 200
2024-03-06 23:11:02.389 - root - Tuner: Stream open (attempt 1).
2024-03-06 23:11:02.454 - httpx - HTTP Request: GET http://192.168.50.242:8086/6.ts "HTTP/1.1 200 OK"
2024-03-06 23:11:31.333 - server - http disconnect
2024-03-06 23:11:31.338 - lib.adb - ADB: Connecting to device (attempt 1).
2024-03-06 23:11:31.513 - lib.adb - ADB: Connected.
2024-03-06 23:11:31.513 - lib.adb - ADB: Stopping media playback.
2024-03-06 23:11:31.514 - lib.adb - ADB: 192.168.50.41 - input keyevent KEYCODE_MEDIA_STOP
2024-03-06 23:11:32.476 - lib.adb - ADB: 192.168.50.41 - input keyevent KEYCODE_MEDIA_PAUSE
2024-03-06 23:11:33.328 - lib.adb - ADB: Closing connection - 192.168.50.41
2024-03-06 23:11:33.329 - server - Released tuner 1
2024-03-06 23:11:33.329 - server - Tuner: Cleanup complete. test1 (HBOHDP)