Advice Needed - ADBTuner or AH4C?

I could use some advice. With TVE channels dropping (paramount stations most recently), I am looking for another solution to add those missing stations back. It appears that ADBTuner or AH4C may fit the bill but I have some questions. Here is my current setup:

  • ChannelsDVR running on a Intel 1360p Core i7 dedicated mini pc running Windows 11 (headless).
  • Using HDHR turners currently for OTA.
  • Use Dish Network and Spectrum for TVE

I should also mention that while I am PC literate, I have no experience with Linux or Docker. I do not want to switch to running Linux over windows, so please keep that in mind. If Docker is required, I am willing to give that a go.

I've already experimented with Chrome Capture for Channels, and while that worked, the performance was less than ideal. Even recording a single stream had the occasional hiccup and anything over 2 streams was poor.

Thus far, I have read through the ADBTuner and AH4C threads, but they are very long and have had many changes so it is hard to pick out the pertinent information. Can anyone shed some insight on my questions (see below) so I can start working on setting this up?

  1. Does ADBTuner and/or AH4C work with Dish Network and/or Spectrum? Does one work better than the other? I prefer GUI, but can do some command line work if needed.
  2. Is installing Docker a requirement or can it be run with just Windows11?
  3. Has anyone done a detailed write up on what and how to install all the necessary software requirements? It would sure help a newb like me.
  4. I think I will start with a Link Pi V3 Encoder. From what I have read, this is a powerful and tested encoder. Are there any others I should consider? If I need to add a 2nd tuner, is it ok to add a 2nd Link Pi, or should I just go with a multiport option?
  5. I am willing to buy an Onn Pro, an Apple TV, Firestick 4k, or other streaming device for this project. Recommendations? I would prefer an Ethernet connection over Wifi.
  6. Any other suggestions, tips/tricks, or considerations you recommend?

Thank you in advance for any help.

1 Like

1-if Dish/Spectrum apps work with deep links, then you can use ADBTuner - if you need deep links+remote control you need AH4C - see post 1 in the AH4C thread - I use YTTV and it works great with ADBTuner
2-you have to install docker desktop for windows and you will also want to install Portainer which is a handy tool to install and update dockers - I have Windows 11 start up Docker Desktop upon a reboot via the Task Scheduler so that ADBTuner survives a server reboot or Windows update - if you end up with ADBTuner, there is a fairly recent post on a Portainer stack setup for ADBTuner in the thread
3-I only have crude notes that are outdated, not aware of any official write-up
4-I am using a LinkPi ENC5V2 - I switched to this after using a couple of URaycoders initially and the LinkPi is better imho - better menus and a firmware update capability
5-I recommend using the Onn 4K Pro as a wired ethernet capture box - I also am using an older Nvidia Shield - both work well - I started with the WiFi Onn 4K devices for capture - they work great if your WiFi is solid - in fact, I liked the Onn boxes so much that I switched out some FireTV devices in some locations in favor of the Onn boxes for TV watching in secondary rooms - I put all of the Onn TV boxes in app only mode to minimize junk on the screen

Thank you for the reply. Hoping someone here has experience with Dish Network and Spectrum. The answer may determine what hardware I buy for this (i.e. Onn, Xumo, etc.). Does anyone know if either of these support deep links?

Thank you. I'm ok with installing Docker and Portainer. I don't know anything about it, but I'm sure there is plenty of online info that I can follow (unless someone has a case specific how-to).

I think I am leaning that way as well. I heard Link Pi V3 is better, but I don't think they make a multi-port V3 version. Sounds like you have been happy with the ENC5V2, so that is good.

I'm fine with using the Onn 4k Pro as long as it will work with Dish Network and Spectrum. If it doesn't, is it possible to use an Onn 4k Pro in one HDMI port of the encoder, and a XUMO box in a different HDMI encoder port? In other words, will it work correctly with different brands of steaming devices attached to one ENC5V2 encoder?

Would love to hear more suggestions or tips, especially if anyone is using it with Spectrum and/or Dish Network.

@ChannelSam is using Spectrum via ah4c with AppleTV(s) as the streaming device(s), so hopefully he'll see this and give you some input on why he went this route.

1 Like

@Helios2
@bnhf

I am currently running 2 onn4k that I use to tune Philo Channels with ADBTuner and...
2 ATV 4th gen (must have app store so you can install Spectrum App. I am using bnhf/ah4c:appletv docker image to control them.

All 4 are plugged into a linkpi ENC5V2. ADBTuner controls the 2 Onn boxes exclusively and ah4c controls the 2 Apple tv's exclusively.
I have completely removed the tveverywhere channels from CDVR because fewer and fewer seem to work reliably month by month.
In order to use the Apple TV's you needed pyatv installed on the ah4c docker. @bnhf added this in his Apple build.

Personally I ended up with the ATV's because it was the first devices I found that would support sending the commands to them to directly tune the channels for spectrum.
The Roku Spectrum app doesn't support the deeplinks and Android devices don't have the Spectrum app available.
Considered the Xumo boxes but they were out of stock at the time and didn't trust spectrum not to half cripple the devices and they would decide what apps could run on them.

I have been very happy with the reliabilty of the this solution and liked the ATV's enough that I picked up an ATV 4k on ebay to use as my daily driver for the CDVR client.

@Helios2
If you need additional information on my setup or need some help with your setup just let me know. Not an expert or anything but I have stumbled my way through and may be of some help.

2 Likes

Thank you @ChannelSam this is helpful. A few follow-up questions for you.

  1. I see lots of AppleTV 4th Gen devices used on ebay for cheap. Is there some issue with not being able to get the app store on these used units? I assume I would just do a factory reset and then set them up as I want? It seems like Spectrum and Dish both have Apple TV apps, so that may be the best way for me to go.

  2. In your experience, is it easier to setup and use AH4C or ADBTuner? Are they both as reliable once they have been configured?

  3. Can I still use Portainer with Docker when using AH4C/PYATV. I will search for @bnhf build.

Thank you all again. I know you've not only helped me and others who will be exploring these options down the road.

I have bought all my units on Ebay with no real issues so far. I mention the 4th gen because anything earlier does not have the app store so can not install spectrum app. I did need to buy some power cords from amazon for a few of them. Also I have only bought one that came with a remote...but I use that remote to set all of them up. I did buy some cheap 3rd party remotes that I use for the client ATV unit. These are bigger with more buttons than the ATV one anyhow and I don't care about Siri so they work for me. I have spent between $38-$52 each on the 2 ATV 4th gen and 2 ATV4k.

All my units came factory reset except one...I still did another factory reset on these because I am paranoid...lol
The one unit that was not factory reset was a little bit of a bear...I could not get it to work with any of my remotes at all including the ATV remote I had. I eventually turned on CEC HDMI on the tv and was able to use the tv remote to move through the ATV menus and factory reset it. Following this all my remotes would work with it :man_shrugging:
I don't have any experience with the Dish app so you may want to make sure it has deeplinks on it's ATV app.

As far as I know ADBTuner Will NOT Work. It is somewhat easier to setup because it has been streamlined to work only with android boxes using ADB. Unless something has changed there is NO way to Link your ADBTuner to the ATV's to control them. This is only able to be done with ah4c:apple image (image: bnhf/ah4c:appletv)

Yes that is exactly what I am using. Here is a copy of my current stack inside portainer that I use to run it...

version: '3.9'
services:
  atvtuner:
    image: bnhf/ah4c:appletv
    container_name: atvtuner
    hostname: atvtuner
    dns_search: localdomain # Specify the name of your LAN's domain, usually local or localdomain
    ports:
      - 5037:5037 # Port used by adb-server
      - 7654:7654 # Port used by this androidhdmi-for-channels proxy
      - 7655:8000 # Port used by ws-scrcpy
    environment:
      - IPADDRESS=192.168.1.101:7654 # Hostname or IP address of this androidhdmi-for-channels extension to be used in M3U file (also add port number if not in M3U)
      - NUMBER_TUNERS=2 # Number of tuners you'd like defined 1, 2, 3 or 4 supported
      - TUNER1_IP=192.168.1.54 # Streaming device #1 with adb port in the form hostname:port or ip:port
      - TUNER2_IP=192.168.1.55 # Streaming device #1 with adb port in the form hostname:port or ip:port

      - ENCODER1_URL=http://192.168.1.41/live/stream3 # Full URL for tuner #1 in the form http://hostname/stream or http://ip/stream
      - ENCODER2_URL=http://192.168.1.41/live/stream4 # Full URL for tuner #1 in the form http://hostname/stream or http://ip/stream

      - STREAMER_APP=scripts/atv/spectrum # Streaming device name and streaming app you're using in the form scripts/streamer/app (use lowercase with slashes between as shown)
      - CHANNELSIP=http://192.168.1.20:8089 # Hostname or IP address of the Channels DVR server itself
      
      - ALERT_SMTP_SERVER=${ALERT_SMTP_SERVER} # The domainname:port of the SMTP server you'll be using like smtp.gmail.com:587. This is for sending ah4c alerts if tuning fails.
      - ALERT_AUTH_SERVER=${ALERT_AUTH_SERVER} # The auth server for the e-mail you'll be using like smtp.gmail.com
      - ALERT_EMAIL_FROM=${ALERT_EMAIL_FROM} # The e-mail address you'd like your ah4c failure alert e-mails to show as being from.
      - ALERT_EMAIL_PASS=${ALERT_EMAIL_PASS} # Gmail and Yahoo both support the creation of app-specific e-mail passwords, and this is the way to go! It's NOT recommended to use your everyday e-mail password.
      - ALERT_EMAIL_TO=${ALERT_EMAIL_TO} # The e-mail address you'd like your alert e-mails sent to.
      #- ALERT_WEBHOOK_URL="" # For advanced users, tuning failure alerts can be sent via a webhook.
      - LIVETV_ATTEMPTS=5 # For FireTV Live Guide tuning only, set maximum number of attempts at finding the desired channel
      - CREATE_M3US=false # Set to true to create device-specific M3Us for use with Amazon Prime Premium channels -- requires a FireTV device
      - TZ=America/New_York # Your local timezone in Linux "tz" format
    volumes:
      - /srv/5ab84941-c842-42b9-9bce-80979edd927d/Pool/_AppData/atvtuner/scripts:/opt/scripts # pre/stop/bmitune.sh scripts will be stored in this bound host directory under streamer/app
      - /srv/5ab84941-c842-42b9-9bce-80979edd927d/Pool/_AppData/atvtuner/m3u:/opt/m3u # m3u files will be stored here and hosted at http://<hostname or ip>:7654/m3u for use in Channels DVR - Custom Channels settings
      - /srv/5ab84941-c842-42b9-9bce-80979edd927d/Pool/_AppData/atvtuner/adb:/root/.android # Persistent data directory for adb keys
    restart: unless-stopped

May not need this line... ? @bnhf

  • 7655:8000 # Port used by ws-scrcpy

I believe bnnf removed ws-scrcpy from the appletv image. I just haven't changed my stack since then.

May also be able to remove this since not using adb... ? @bnhf

  • 5037:5037 # Port used by adb-server

Hope this helps :grinning:

1 Like

It does, thank you for taking the time to provide the detailed reply. I am positive I will have more questions as I progress, but this will get me started with the hardware and initial setups.

Neither are needed for the version you're running.

@Helios2

The docker compose from @ChannelSam will give you some good examples of how he has values set. However, my recommendation is to use the compose as shown in post #1 here, which uses environment variables -- so that the compose itself does not need to be edited:

Your unique values can all be placed in the Environment variables section of the Portainer-Stack. That way if the compose is updated, it's relatively easy to swap it out, while keeping your specifics the same. It also makes it easier later to see at glance what's specific to your installation, vs generic to everyone.

1 Like

100% support using post #1 from the other thread for your starting point...just been to lazy to go back and update mine...
May get to it someday...lol

@Helios2 Definitely follow @bnhf advice about post#1 with respect to the env variables if just starting. :+1:

1 Like