ADBTuner

ADBTuner is a small, containerized, web-based application that can load deep linked content on networked Android TV devices via ADB (Android Debug Bridge).

ADBTuner is fully configurable via a web interface interface with support for multiple "tuner" devices and easily managed "channels."


Installation

docker run -d --init -p 5592:5592 --name adbtuner -v adbtuner_config:/app/.config turtletank99/adbtuner

or via Docker Compose:

version: '2'
  services:
    adbtuner:
      image: turtletank99/adbtuner
      restart: always
      init: true
      volumes:
        - adbtuner_config:/app/.config
      ports:
        - "5592:5592"
volumes:
  adbtuner_config:

Web Interface

http://ip.of.docker.host:5592

Tuners

A "tuner" consists of two configuration settings. The first is the Android/Google TV device's IP address. The second, labeled "Streaming Endpoint" is for the URL to a HTTP video streaming device (HDMI receiver, transmitter, etc.).

Before adding a new tuner, please ensure the following:

  • Device has been freshly restarted and isn't actively connected to another ADB server.
  • Device is powered on.
  • Developer Mode is enabled.
  • The device remote is available to approve the connection.

Channels

A channel consists of the following data fields:

  • Channel Number: Value: Any number. Used for ordering
  • Provider Name: Value: Name of channel provider (ex. Hulu Live). Only used for reference purposes
  • Channel Name: Value: Name of channel (ex. NBC).
  • Gracenote Station ID: Optional - Value: Gracenote / TVG id for this channel. If provided, this ID will be included in generated m3u files.
  • URL: Value: Deep link to the specified content (ex. https://www.hulu.com/watch/channel-1234567 or nbctve://live/nbc)
  • Package Name: Value: The name of the target Android application package (ex. com.appmaker.appname.androidtv).
  • Alternate Package Name: Optional. Value: An alternate Android application package name (ex. com.appmaker.appname.firetv). This is useful with mismatched device types (ex Google TV and Fire TV).
  • Compatibility Mode: Some applications use non-standard video players and/or don't respond to standard control actions such as "stop video." Enabling "compatibility mode" for this channel enables more aggressive measures to ensure the target app properly loads the deep linked content. Your results may vary.

Channel lists can be imported and exported for backup purposes, sharing, or to migrate to another instance of adbtuner. Export some data to see the current JSON document structure.

M3U Playlist

To provide easy access to all of the "channels" that are available to "tune" a dynamically generated M3U playlist is available at:

http://ip.of.docker.host:5592/channels.m3u

This standard playlist can consumed by many different applications, many of which will let you switch between each playlist item (channel) with ease.

License: All rights reserved (pending open-source release)