androidtvremote2
A Python library for interacting with Android TV using the Android TV Remote protocol v2
Decision gist · record as of 2026-08-14
Yes. The package is actively maintained, has no known vulnerabilities, low install friction, and fills a specific need for Android TV control without ADB. The Apache-2.0 license is permissive. Install if you need to control Android TV devices from Python; skip if you don't have Android TV devices to control.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.10 or later.
- Target Android TV device must have Android TV Remote Service pre-installed.
- Low friction install with three straightforward dependencies.
License · maintenance · safety
Apache-2.0 (permissive) — Apache-2.0 permissive license allows free use, modification, and distribution with minimal restrictions.
last release 2026-03-20 (147 days) · last repo commit 2026-08-07 · 128 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 102,559 downloads/mo, #12,861 on PyPI
Alternatives
Verify before relying
pip install androidtvremote2
import asyncio
from androidtvremote2 import AndroidTVRemote
async def main():
remote = AndroidTVRemote(host='tv-device')
await remote.connect()
await remote.send_key_command('KEYCODE_HOME')
await remote.disconnect()
asyncio.run(main())- Whether pairing or authentication setup is required before sending commands.
- Latency and reliability characteristics for real-time remote control use.
- Whether voice command support requires additional system dependencies beyond pip installation.
- Network connectivity requirements and supported Android TV device versions.
What it is and what it does
androidtvremote2 is a Python client for the Android TV Remote protocol v2, the same protocol used by the Google TV mobile app. It lets you send remote control commands (key presses, app launches, voice input) to Android TV devices over the network without needing ADB or developer mode enabled. The library handles the protocol's cryptographic pairing and messaging layer, exposing an async API for sending commands and receiving responses.
The package depends on aiofiles, cryptography, and protobuf to handle asynchronous I/O, protocol encryption, and message serialization. It supports a wide range of commands documented in TvKeys.txt, can open apps via deep links, and accepts PCM audio for voice commands. It's designed for home automation, remote control applications, and integration into systems that need programmatic Android TV control.
Use it for
- Build a home automation system that controls multiple Android TV devices from a central Python application.
- Create a custom remote control app that sends commands to Android TV without the official mobile app.
- Automate testing of Android TV apps by sending commands and verifying responses programmatically.
- Send voice commands to Android TV as PCM audio from a voice assistant or transcription service.
- Integrate Android TV control into a media center or smart home dashboard application.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes.
The package is actively maintained, has no known vulnerabilities, low install friction, and fills a specific need for Android TV control without ADB. The Apache-2.0 license is permissive. Install if you need to control Android TV devices from Python; skip if you don't have Android TV devices to control.
Install
androidtvremote2 on PyPI
Before you install
Low friction install with three straightforward dependencies. Actively maintained with recent commits and no known vulnerabilities.
Requires Python 3.10 or later. Target Android TV device must have Android TV Remote Service pre-installed.
License in practice
Apache-2.0 permissive license allows free use, modification, and distribution with minimal restrictions.
Quickstart
pip install androidtvremote2
import asyncio
from androidtvremote2 import AndroidTVRemote
async def main():
remote = AndroidTVRemote(host='tv-device')
await remote.connect()
await remote.send_key_command('KEYCODE_HOME')
await remote.disconnect()
asyncio.run(main())
Verify before relying
- Whether pairing or authentication setup is required before sending commands.
- Latency and reliability characteristics for real-time remote control use.
- Whether voice command support requires additional system dependencies beyond pip installation.
- Network connectivity requirements and supported Android TV device versions.
Package facts
| License | Apache-2.0 permissive |
| Python support | Supports the current Python release >=3.10 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 3 packagesaiofilescryptographyprotobuf |
| Maintenance | Actively maintained 147 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 102,559 / month, #12,861 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
Evidence: androidtvremote2-0.3.1-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “android tv remote control”
- androidtvremote2A Python library for controlling Android TV devices over the network…
- aiowebostvAsync Python library for controlling LG webOS-based TV devices over…
- samsungtvwsA Python library for remotely controlling Samsung Smart TVs via…
Give your agent the search over MCP, or paste the wish link into any chat.
More Networking packages
h11 is a pure-Python HTTP/1.1 protocol implementation that handles parsing and serializing HTTP messages without any built-in I/O, letting you integrate it with any network layer you choose.
psutil retrieves real-time information about running processes and system resources (CPU, memory, disks, network, sensors) across multiple operating systems, enabling system monitoring, process profiling, and resource management.
pyOpenSSL wraps OpenSSL's SSL/TLS functionality for Python, providing high-level connection objects and certificate handling through a Python-friendly interface around OpenSSL's cryptographic operations.
uvloop is a drop-in replacement for Python's built-in asyncio event loop, implemented in Cython and using libuv, that accelerates async I/O operations.
execnet lets you spawn and communicate with Python interpreters across local processes, remote hosts, and different platforms, using a simple API for task distribution and inter-process messaging.
However, the aging maintenance status (275 days since last release) means you should verify it meets your concurrency and performance needs before committing to a…
PyZMQ provides Python bindings for ZeroMQ (ØMQ), a lightweight messaging library that enables fast, asynchronous communication between distributed processes and applications.
See also python-fullykiosk · uiautomator2 · rokuecp · adbutils · adb-shell · uiautomator · aiowebostv · pyatv · pure-python-adb · samsungtvws