--- id: wiim version: "0.1.6" license: MIT license_treatment: permissive maintenance: active --- # wiim — A Python-based API interface for controlling and communicating with WiiM audio devices. License: permissive · Maintenance: active · Downloads: 75.2K/mo ## What it is and what it does wiim is a Python library for controlling WiiM smart audio devices—speakers and receivers built on LinkPlay modules—over your local network. It abstracts the device discovery and control protocol, letting you write Python code to play, pause, skip, adjust volume, manage playback metadata, and coordinate multiroom audio groups without directly handling UPnP or mDNS details. The library uses aiohttp for HTTP communication, async-upnp-client to interact with UPnP device descriptions, and zeroconf to discover WiiM devices by their _linkplay._tcp.local. service advertisement. It's designed for smart home automation, custom music player applications, or any Python tool that needs to remote-control WiiM hardware. The API is async-first, reflecting its dependency on aiohttp and the async networking stack. Use it for: - Build a custom Python home automation script that discovers WiiM speakers on startup and plays music on demand. - Create a multiroom audio synchronization tool that groups WiiM devices and coordinates playback across rooms. - Integrate WiiM device control into a larger smart home platform or voice assistant backend. - Monitor playback metadata in real-time to display currently playing track information on a dashboard or display. - Implement a Python-based music player UI that sends commands to WiiM hardware instead of local playback. ## Worth the install? AI-flagged interpretation of the facts above — verify before relying. wiim provides a Python API to discover, control, and monitor WiiM smart audio devices on your network, including playback control, metadata retrieval, and multiroom group management. Yes, if you own WiiM devices and need programmatic control from Python. The library is actively maintained, has no known vulnerabilities, uses permissive MIT licensing, and depends only on stable async libraries. Install friction is low. The project is young (first release 2025-07-02) but shows active development. Start with the quick-start example to verify device discovery works on your network. ## Install pip install wiim uv add wiim poetry add wiim ## Installing wiim Before you install: Low friction install as a pure-Python wheel. Active maintenance with a recent commit on 2026-08-04 and first release in 2025-07-02, so the project is young but actively developed. Depends on aiohttp, async-upnp-client, and zeroconf—all stable async networking libraries. License in practice: MIT license is permissive, allowing use in commercial and private projects with minimal restrictions. You must retain the license notice but face no copyleft obligations. Quickstart: pip install wiim import asyncio from wiim import WiimDevice async def main(): device = WiimDevice("device_ip_address") await device.async_update() print(device.playback_status) asyncio.run(main()) Requires a WiiM device on your local network; device discovery via zeroconf works best on networks with mDNS support enabled. Verify before relying: - Whether the package works with Python versions older than 3.x or has specific version constraints beyond 'Python :: 3' - Whether WiiM device discovery works reliably across different network topologies or requires specific mDNS/UPnP configuration - Minimum Python version required for async code support ## Package facts - License: MIT (permissive) - Python support: unspecified - Install friction: low - Maintenance: active - Downloads: 75.2K/month (top 15,000 on PyPI) - Known vulnerabilities: none known ## Tags wiim device control python, linkplay audio api, multiroom audio streaming, smart speaker automation, upnp audio device control, zeroconf device discovery, home audio integration, audio-control, home-automation, async-networking [View on SkillFed](https://skillfed.io/packages/wiim) · [View on PyPI](https://pypi.org/project/wiim/)