ADBTuner without hardware encoder possible?

how can I remove the channels all at once?

here is what my logs give me.. not sure what i am doing wrong.

2023-11-15 21:02:20.098 - server - Tuner: Tuning to CBS on Fire TV Max
2023-11-15 21:02:20.101 - lib.adb - ADB: Connecting to device (attempt 1).
2023-11-15 21:02:20.304 - lib.adb - ADB: Connected.
2023-11-15 21:02:20.304 - lib.adb - ADB: 192.168.6.101 - dumpsys display
2023-11-15 21:02:20.422 - lib.adb - ADB: 192.168.6.101 - getprop ro.build.version.release
2023-11-15 21:02:20.451 - lib.adb - ADB: Android Version: 9.0.
2023-11-15 21:02:20.451 - lib.adb - ADB: 192.168.6.101 - input keyevent KEYCODE_WAKEUP
2023-11-15 21:02:21.164 - lib.adb - ADB: 192.168.6.101 - pm list packages -3
2023-11-15 21:02:21.331 - lib.adb - ADB: 192.168.6.101 - pidof com.amazon.firetv.youtube.tv
2023-11-15 21:02:21.552 - lib.adb - ADB: Stopping media playback.
2023-11-15 21:02:21.553 - lib.adb - ADB: 192.168.6.101 - input keyevent KEYCODE_MEDIA_STOP
2023-11-15 21:02:22.456 - lib.adb - ADB: 192.168.6.101 - am start -a android.intent.action.VIEW -d "https://tv.youtube.com/watch/D1vdtklRyHg" com.amazon.firetv.youtube.tv
2023-11-15 21:02:22.581 - server - Tuner: Waiting 5 seconds to allow sleeping device to setup.
2023-11-15 21:02:34.278 - server - Tuner: Compatibility Mode - Stream released after 14.18 seconds. Display was off, application (com.amazon.firetv.youtube.tv) was closed.
2023-11-15 21:02:34.278 - lib.adb - ADB: Closing connection - 192.168.6.101
2023-11-15 21:02:34.280 - uvicorn.access - 174.218.117.107:1177 - "GET /stream/1/118 HTTP/1.1" 200
2023-11-15 21:02:34.287 - root - Tuner: Stream open (attempt 1).

When I type in this URL https://tv.youtube.com/watch/M2YyNsA47Lw it tries to show me Law and Order:SVU. Maybe your links are wrong.

does this stream only tv everywhere?

@dubx99 Here is my YTTV ADBTuner export for west coast.

1 Like

No, any channel that has a link, can be tuned and streamed. That's one of the great things about these solutions, is you can pull channels into the ChannelsDVR that never had TVE.

does the app have to be on or just installed on the device?

In a nutshell ADBTuner tunes the app on an android device which outputs via HDMI to an encoder which then streams video to Channels. So yes the app will be on when it is being used. ADBTuner will open the app if it is not already open and theoretically turn to the correct live channel.

so i need an encoder? Is that why its not working? They are all m3u8

Yes you do. Yes that’s why. And you really need to read the beginning of this thread. And you need to also read up a little on HDMI for Channels.

This post from a couple of weeks ago may also clear things up a little.

And now I understand why you asked this. It actually doesn't really have anything to do with TVE. TVE is an authentication method which is bypassed using this method as the apps on the devices take care of authentication.

man... my encoder is ffmpeg and streamlink why do i need a hardware encoder?

It is how you convert your hardware Android device’s physical hdmi output to a video stream format Channels can use.

there has to be a way to take this video stream and remux or transcode without a hardware encoder. I mean the streams are m3u8 as it is, why would it need encoded? why not have chromium stream it and the software remux or copy?

1 Like

The video stream is the HDMI output of the streaming device that ADBTuner is talking to (such as Chromecast, Onn, FireTV). Those m3u8 links you mention are to tell the appropriate app on that streaming device (Youtube TV perhaps) what video to send to the HDMI output of the streaming device. There has to be a piece of hardware with an HDMI port to connect to the HDMI port on the streaming device.

why did you delete that?

  1. Connect your device to your computer.
  2. Open a command prompt.
  3. Run adb devices to make sure your device is properly connected.
  4. Run adb shell am start -a android.intent.action.VIEW -d "https://tv.youtube.com/watch/6T7reIiHVnA".

This will send an intent to the device to view the given URL. If the YouTube app is installed and registered to handle these types of URLs, it should open the link.

#!/bin/bash

URL of the YouTube video

url="https://tv.youtube.com/watch/6T7reIiHVnA"

Use youtube-dl to download the video and pipe it to ffmpeg

youtube-dl -f best -o - "$url" | ffmpeg -i - [ffmpeg commands]

Do those m3u8 streams have DRM? If so, that’s why. The hardware encoder circumvents DRM in a way software cannot, or currently does not.

1 Like

Thought I'd play with this while waiting on my encoder to arrive. Testing with Firetvstick 4K and this is as far as I can get:

from the logs:
2023-12-24 18:55:18.138 - lib.adb - ADB: Android Version: 9.0.

2023-12-24 18:55:18.156 - uvicorn.access - 10.0.0.145:52992 - "GET /admin/tuner/metadata?_=1703444104113 HTTP/1.1" 200

2023-12-24 19:01:17.796 - lib.adb - ADB: Connecting to device (attempt 1).

2023-12-24 19:01:17.929 - lib.adb - ADB: Connected.

2023-12-24 19:01:17.929 - lib.adb - ADB: 10.0.0.184 - dumpsys display

2023-12-24 19:01:18.019 - lib.adb - ADB: 10.0.0.184 - getprop ro.build.version.release

2023-12-24 19:01:18.095 - lib.adb - ADB: Android Version: 9.0.

2023-12-24 19:01:18.113 - uvicorn.access - 10.0.0.145:53254 - "GET /admin/tuner/metadata?_=1703444104162 HTTP/1.1" 200

Thoughts?

1 Like

The endpoint is your hardware decoder ip and port and not the IP of your Firestick.

1 Like

Sorry about that, I'm still figuring out how this is going to work. I thought the title "without hardware encoder" implied this could be done without one. I'll just wait for mine to arrive...