rokuecp
Asynchronous Python client for Roku (ECP)
What it is and what it does
Rokuecp is an async Python client for the Roku External Control Protocol, enabling programmatic monitoring and control of Roku devices over the network. It wraps the ECP API in a Python-friendly interface built on aiohttp, allowing you to query device state and send commands asynchronously.
The package is designed for home automation, device management, and integration scenarios where you need to control Roku TVs or streaming players from Python. It uses standard async/await patterns and includes retry logic via backoff to handle network transience. The library is in beta status but actively maintained, supporting Python 3.9 through 3.13.
Use it for:
- Integrate Roku control into home automation platforms or custom smart-home scripts.
- Monitor the state and activity of Roku devices across a household or venue.
- Build remote-control applications or dashboards that send commands to Roku devices.
- Automate testing or validation workflows that require controlling Roku playback.
- Create notification or event-driven systems triggered by Roku device state changes.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
An asynchronous Python client for controlling and monitoring Roku devices over the External Control Protocol (ECP).
Yes. The package has low install friction, active maintenance, a permissive license, no known vulnerabilities, and a straightforward async API. Install it if you need to programmatically control or monitor Roku devices; the async design and retry logic make it suitable for reliable home automation or device management tasks.
Install
rokuecp on PyPI
pip
pip install rokuecpuv
uv add rokuecppoetry
poetry add rokuecpInstalling rokuecp
Before you install
Low friction install with a pure-Python wheel. The package is actively maintained with a recent commit on 2026-08-13 and has been in active development since 2020-05-03. Dependencies are all well-established async libraries (aiohttp, async-timeout, backoff, xmltodict, yarl, awesomeversion).
License in practice
MIT license is permissive, allowing free use, modification, and distribution with minimal restrictions—suitable for both open-source and commercial projects.
Quickstart
import asyncio
from rokuecp import Roku
async def main():
async with Roku("192.168.1.100") as roku:
print(roku)
if __name__ == "__main__":
asyncio.run(main())
Requires Python 3.9 or later and a Roku device on the network accessible at the specified IP address.
Verify before relying
- Whether the package supports all Roku device models or only specific generations.
- Performance characteristics when controlling multiple Roku devices concurrently.
- Full feature coverage of the ECP protocol and which Roku capabilities are exposed.
Package facts
| License | MIT (permissive) |
| Python support | supports the current Python release (<4.0,>=3.9) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 6 — aiohttp, async-timeout, awesomeversion, backoff, xmltodict, yarl |
| Maintenance | actively maintained — 426 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 100,874/month — #12,970 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: rokuecp-0.19.5-py3-none-any.whl
Keywords: roku, ecp, api, async, client
Tags
More Python Modules packages
Converts domain names between Unicode and…
permissive · top 100 on PyPI
setuptoolsSetuptools is a Python build backend and…
permissive · top 100 on PyPI
PyYAMLPyYAML parses and emits YAML 1.1 data format,…
permissive · top 100 on PyPI
pydanticPydantic validates Python data structures…
permissive · top 100 on PyPI
annotated-typesProvides reusable metadata objects for use with…
permissive · top 100 on PyPI
typing-inspectionProvides runtime tools to inspect and…
permissive · top 100 on PyPI
directvAsynchronous Python client for controlling and…
permissive · top 15,000 on PyPI
elgatoAsynchronous Python client for controlling and…
permissive · top 15,000 on PyPI
go2rtc-clientAsynchronous Python client library for…
permissive · top 15,000 on PyPI
pyippAsynchronous Python client for querying and…
permissive · top 15,000 on PyPI
androidtvremote2A Python library for controlling Android TV…
permissive · top 15,000 on PyPI
pyeconetProvides an async Python interface to the…
permissive · top 15,000 on PyPI
pyatvAn asyncio Python library for controlling Apple…
permissive · top 15,000 on PyPI
afsapiAsynchronous Python client for controlling…
permissive · top 15,000 on PyPI
pybraviaProvides an async Python interface to control…
permissive · top 15,000 on PyPI
wledAn asynchronous Python client library for…
permissive · top 15,000 on PyPI