pybravia
Python async library for remote control of Sony Bravia TVs 2013 and newer.
Decision gist · record as of 2026-08-14
Yes. The package is actively maintained, has low install friction, carries a permissive MIT license, and solves a specific problem (Bravia TV control) with a clean async API. It's well-suited for Home Assistant users and anyone building Python-based home automation. No known vulnerabilities. Verify TV model compatibility and network stability requirements before deploying to production.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.10 or higher; TV must be on the same network and support Bravia API (2013 and newer models).
- Low install friction with only two runtime dependencies (aiohttp and yarl).
- Marked active with a recent release 23 days ago, supporting current Python versions (3.10+).
License · maintenance · safety
MIT (permissive) — MIT license is permissive; you can use, modify, and distribute this package with minimal restrictions, provided you retain the license notice.
last release 2026-07-22 (23 days)
0 known vulnerabilities (OSV.dev, 2026-08-14) · 89,483 downloads/mo, #13,657 on PyPI
Alternatives
Verify before relying
import asyncio
from pybravia import BraviaClient
async def main():
async with BraviaClient("192.168.1.20") as client:
await client.connect(psk="sony")
info = await client.get_system_info()
print(info)
asyncio.run(main())- Whether all Sony Bravia TV models from 2013 onward are equally well-supported or if there are known compatibility gaps.
- Performance characteristics under high-frequency command scenarios (e.g., rapid volume or channel changes).
- Whether the library handles network timeouts and reconnection gracefully in production environments.
What it is and what it does
pybravia is an async Python library that lets you remotely control Sony Bravia TVs over your network. It wraps the Bravia API with a clean, easy-to-use interface built on aiohttp, supporting both PSK (pre-shared key) and PIN-based authentication methods. The library is designed primarily to support Home Assistant integrations but works standalone for any Python 3.10+ application that needs to automate TV operations like power, volume, and system queries.
The package handles the low-level HTTP communication and authentication handshake, letting you focus on what you want the TV to do. It uses async/await patterns throughout, making it suitable for concurrent control of multiple devices or integration into event-driven applications. With only two dependencies (aiohttp and yarl), it has minimal footprint and low install friction.
Use it for
- Integrate Sony Bravia TV control into Home Assistant for voice-activated or automation-triggered TV commands.
- Build a custom home automation dashboard that controls TV power, volume, and input selection alongside other smart devices.
- Automate TV operations in a media room or commercial display setup (e.g., turn on for presentations, adjust volume for events).
- Monitor TV system information and status programmatically for logging or alerting in a networked environment.
- Develop a multi-room entertainment system that coordinates TV playback across several Bravia devices.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes.
The package is actively maintained, has low install friction, carries a permissive MIT license, and solves a specific problem (Bravia TV control) with a clean async API. It's well-suited for Home Assistant users and anyone building Python-based home automation. No known vulnerabilities. Verify TV model compatibility and network stability requirements before deploying to production.
Install
pybravia on PyPI
Before you install
Low install friction with only two runtime dependencies (aiohttp and yarl). Marked active with a recent release 23 days ago, supporting current Python versions (3.10+).
Requires Python 3.10 or higher; TV must be on the same network and support Bravia API (2013 and newer models).
License in practice
MIT license is permissive; you can use, modify, and distribute this package with minimal restrictions, provided you retain the license notice.
Quickstart
import asyncio
from pybravia import BraviaClient
async def main():
async with BraviaClient("192.168.1.20") as client:
await client.connect(psk="sony")
info = await client.get_system_info()
print(info)
asyncio.run(main())
Verify before relying
- Whether all Sony Bravia TV models from 2013 onward are equally well-supported or if there are known compatibility gaps.
- Performance characteristics under high-frequency command scenarios (e.g., rapid volume or channel changes).
- Whether the library handles network timeouts and reconnection gracefully in production environments.
Package facts
| License | MIT permissive |
| Python support | Supports the current Python release >=3.10 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 2 packagesaiohttpyarl |
| Maintenance | Actively maintained 23 days since the last release |
| First released | |
| Downloads | 89,483 / month, #13,657 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
Evidence: pybravia-0.5.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 › “sony bravia tv control”
- pybraviaProvides an async Python interface to control Sony Bravia TVs (2013…
- python-songpalPython library for controlling Sony audio devices (soundbars,…
- androidtvremote2A Python library for controlling Android TV devices over the network…
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 afsapi · aiowebostv · samsungtvws · pyatv · pyps4-2ndscreen · pysensibo · pymata-express · rokuecp · pyeconet · aioasuswrt