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

Good News for Sling TV watchers. Deeplinks DO INDEED WORK!

Check out the HDMI Channels thread for more info, but here's an example JSON

{
  "provider_name": "Sling TV",
  "number": 8000,
  "name": "TV5Monde",
  "url": "https://watch.sling.com/1/channel/fb0bf7eccb2f492ab304abd2d51f9e9f/watch",
  "package_name": "com.sling",
  "alternate_package_name": "",
  "compatibility_mode": false,
  "tvc_guide_stationid": ""
}
1 Like

We are fortunate we have 2 ways to deal with DRM now. Fubo obviously rolled out their new interface.

Can you get me some logs when you have a chance. Maybe also see if you can find what version of the app is installed? I tested here this morning and donā€™t see any change with the profile screen, but maybe itā€™s a staggered rollout.

I will later today.....

Fubo Version 5.1.0

2023-08-31 16:43:05 2023-08-31 21:43:05.844 - server - Reserved tuner 1
2023-08-31 16:43:05 2023-08-31 21:43:05.844 - server - Using tuner id: 1
2023-08-31 16:43:05 2023-08-31 21:43:05.844 - uvicorn.access - 172.17.0.1:52136 - "GET /stream/26 HTTP/1.1" 307
2023-08-31 16:43:05 2023-08-31 21:43:05.853 - server - Tuner: Tuning to Bally Wisconsin on ChromeCast 1
2023-08-31 16:43:05 2023-08-31 21:43:05.854 - lib.adb - ADB: Connecting to device (attempt 1).
2023-08-31 16:43:06 2023-08-31 21:43:06.028 - lib.adb - ADB: Connected.
2023-08-31 16:43:06 2023-08-31 21:43:06.028 - lib.adb - ADB: 192.168.1.41 - dumpsys display
2023-08-31 16:43:06 2023-08-31 21:43:06.120 - lib.adb - ADB: 192.168.1.41 - getprop ro.build.version.release
2023-08-31 16:43:06 2023-08-31 21:43:06.158 - lib.adb - ADB: Android Version: 12.0.
2023-08-31 16:43:06 2023-08-31 21:43:06.158 - lib.adb - ADB: 192.168.1.41 - pm list packages -3
2023-08-31 16:43:06 2023-08-31 21:43:06.225 - lib.adb - ADB: 192.168.1.41 - pidof com.fubo.firetv.screen
2023-08-31 16:43:06 2023-08-31 21:43:06.289 - lib.adb - ADB: Stopping media playback.
2023-08-31 16:43:06 2023-08-31 21:43:06.289 - lib.adb - ADB: 192.168.1.41 - input keyevent KEYCODE_MEDIA_STOP
2023-08-31 16:43:06 2023-08-31 21:43:06.625 - lib.adb - ADB: 192.168.1.41 - am start -a android.intent.action.VIEW -d "https://link.fubo.tv/al1%3Fv%3D1%26a%3Dplay%26t%3Dchannel%26channel_id%3D16348" com.fubo.firetv.screen
2023-08-31 16:43:15 2023-08-31 21:43:15.363 - server - Tuner: Compatibility Mode - Stream released after 9.52 seconds. Display was on, application (com.fubo.firetv.screen) was closed.
2023-08-31 16:43:15 2023-08-31 21:43:15.363 - lib.adb - ADB: Closing connection - 192.168.1.41
2023-08-31 16:43:15 2023-08-31 21:43:15.364 - uvicorn.access - 172.17.0.1:52136 - "GET /stream/1/26 HTTP/1.1" 200
2023-08-31 16:43:15 2023-08-31 21:43:15.373 - root - Tuner: Stream open (attempt 1).
2023-08-31 16:43:15 2023-08-31 21:43:15.439 - httpx - HTTP Request: GET http://192.168.1.168/0.ts "HTTP/1.1 200 OK"

At this point, its waiting at the who is watching prompt.

Yup! There's no "See less often" button anymore either.

2023-08-31 15:17:28.156 - server - Reserved tuner 4
2023-08-31 15:17:28.156 - server - Using tuner id: 4
2023-08-31 15:17:28.156 - uvicorn.access - 192.168.6.248:39744 - "GET /stream/2 HTTP/1.1" 307
2023-08-31 15:17:28.157 - server - Tuner: Tuning to HGTV on ChromeCast 1
2023-08-31 15:17:28.159 - lib.adb - ADB: Connecting to device (attempt 1).
2023-08-31 15:17:28.336 - lib.adb - ADB: Connected.
2023-08-31 15:17:28.336 - lib.adb - ADB: 192.168.6.199 - dumpsys display
2023-08-31 15:17:28.424 - lib.adb - ADB: 192.168.6.199 - getprop ro.build.version.release
2023-08-31 15:17:28.513 - lib.adb - ADB: Android Version: 12.0.
2023-08-31 15:17:28.513 - lib.adb - ADB: 192.168.6.199 - pm list packages -3
2023-08-31 15:17:28.589 - lib.adb - ADB: 192.168.6.199 - pidof com.fubo.firetv.screen
2023-08-31 15:17:28.703 - lib.adb - ADB: Stopping media playback.
2023-08-31 15:17:28.703 - lib.adb - ADB: 192.168.6.199 - input keyevent KEYCODE_MEDIA_STOP
2023-08-31 15:17:28.791 - lib.adb - ADB: 192.168.6.199 - am start -a android.intent.action.VIEW -d "https://link.fubo.tv/al1%3Fv%3D1%26a%3Dplay%26t%3Dchannel%26channel_id%3D82117" com.fubo.firetv.screen
2023-08-31 15:17:37.565 - server - Tuner: Compatibility Mode - Stream released after 9.41 seconds. Display was on, application (com.fubo.firetv.screen) was closed.
2023-08-31 15:17:37.565 - lib.adb - ADB: Closing connection - 192.168.6.199
2023-08-31 15:17:37.566 - uvicorn.access - 192.168.6.248:39744 - "GET /stream/4/2 HTTP/1.1" 200
2023-08-31 15:17:37.571 - root - Tuner: Stream open (attempt 1).
2023-08-31 15:17:37.579 - httpx - HTTP Request: GET http://192.168.6.198/ts/1_0 "HTTP/1.0 200 Ok"

@Anvil_DVR @Ryboflavins

I took a look at the new version of the Fubo app and as you noticed it's a big change and unfortunately what worked before won't with the new version. We will have to go back to the drawing board on this one and I can't say for certain if/when there will be another solution for this.

In the meantime I would recommend turning off automatic app updates (settings->apps->manage updates), uninstalling the current version, and then sideloading the 4.75 apk. It still works for now.

One of many places to download the apk:
https://www.apkmirror.com/apk/fubotv/fubotv-watch-live-sports-tv-android-tv/fubotv-watch-live-sports-tv-android-tv-4-75-0-release/fubotv-watch-live-sports-tv-android-tv-4-75-0-android-apk-download/

There are a bunch of ways to install it, the easiest being adb install path_to_apk_file.apk if you already have adb setup (or are willing to set it up) on a computer.

Other options involve installing "downloader" apps on the device first and then using that app to download the apk. I don't have a specific recommendation on that, but a google search should point you in the right direction.

Hey, thanks for looking into it.
I'll try and roll back tonight.

Oh shoot, thatā€™s my worst fear with this setup.

Thanks so much for your work on this, Iā€™ll give the rollback a go.

And if youā€™re reading this Fubo, booooooo. :smiley:

I've had issues today getting the Gracenote ID to import. Below is some test data I've been using. Also I notice some examples having a component but the export doesn't export one. Any details on that?

[
    {
        "provider_name": "Youtube TV",
        "number": 3001,
        "name": "ABC-GTV",
        "url": "https://tv.youtube.com/watch/cxlQRHTKurQ?onboard=1",
        "package_name": "com.google.android.youtube.tvunplugged",
        "alternative_package_name": null,
        "compatibility_mode": false,
        "tvc_guidestation_id": "1234"
    },
    {
        "provider_name": "Youtube TV",
        "number": 3002,
        "name": "NBC-GTV",
        "url": "https://tv.youtube.com/watch/cxlQRHTKurQ?onboard=1",
        "package_name": "com.google.android.youtube.tvunplugged",
        "alternative_package_name": null,
        "compatibility_mode": false,
        "tvc_guidestation_id": "5678"
    }
]
2 Likes

Right?
Cat/Mouse

I'm back in business....for now.

Do we have a list of which apps work or donā€™t work with ADB tuner?

I use XFINITY Stream... To Capture Premium Channels.

1 Like

Thapp is know of thus far are as follows.
YTTV
HULU Live
Xfinity
Philo (programs always start from the beginning regardless of what is set in the app)
NBC (haven't used but heard people talking about it).
Hope this is a good start for people
if at all possible try to use the same brand of HDMI encoder for each tuner.

2 Likes

NBC does work but has an annoying habit of putting up a banner on the right half of the screen (when you start a live channel) that screws up recordings. It's totally random so you never know when they're going to do it but when it does happen you're hosed. Seen it twice in the last week or so.

Haven't figured out an adb key sequence that would get rid of this without messing up playback, you have to hit down and then select to get the not now option in the banner and make it go away. But if you automatically do down and select all the time, you pause the video I think.

This is the list of compatible providers so far:

YTTV
HULU Live
Xfinity
Sling
Philo (programs always start from the beginning regardless of what is set in the app)
FuboTV (app version prior to V5)
NBC (works with occasional annoying popups)

2 Likes

@turtletank
I read over in the CC4C topic that paramount + works.
On a lark I thought I would try it with ADBTuner.
It works with the exception it lands on the Who is watching screen.
Once I click past that with the Chromecast remote it works like a charm.
This happens every single time, same as the new FuboTV app.
(I have Fubo working with the old app for now)
Is it possible to make sending a click as an option?
I'm not sure how CC4C is getting around this, when I post the link into a browser I need to interact to get it to play.

Crazy stuff.....

did you try enabling compatibility mode?
I understand it is able to detect the who is watching box and let it pass through.

Yes, that is currently broken with the new version of Fubo TV app. Works with versions prior to V5.

Does not detect on the paramount app.

@Anvil_DVR CC4C looks for a video player in the HTML document, sets it to full screen, and then clicks play. I haven't looked at it specifically, but I would guess that the video player is in the HTML document behind the profile selection dialog so it still works.

This is trivial with an automated web browser, not so much when controlling an android app via ADB.

If it wasn't cost prohibitive (hardware, space, power consumption), a dedicated desktop computer connected to an HDMI encoder could be the best of both worlds (full device/browser control without the limitations of capturing video using Chrome's developer tools).

I don't know what the long term situation will be for profile screens in ADBTuner. I will keep looking into it, but I can't guarantee that there will always be a solution.

You can also add Sling to your compatible providers list. @bnhf figured out how to find the channel URLs and they work beautifully in ADBTuner.

@sdelap The "component" field in those exports was made unnecessary in later versions of ADBTuner. They can be left in the JSON export, they will be ignored when imported.

ADBTuner is still going strong here, I marvel at how seamlessly, with a YouTube TV subscription and two $50 encoders I got via eBay. Practically fun to use :slight_smile:

Sometimes when channel surfing though, or jumping back and forth between two channels (i.e. live sports) I think about how itā€™s choosing which tuner or if itā€™s just round-robin?

Which makes me wonder if it can be optimized on a 2+ tuner setup. I have a vague recollection of TiVo ā€œparkingā€ recent tunersā€¦? Does ADBTuner jump to the next HDMI encoder with every channel change, by design, or can we force it to tune to another station on the same Android device/encoder? Are there any smarts involved or planned for this?

Itā€™s been awesome and so appreciated, thanks again.