AlphaMoatによると、2026-09時点でRoon Controllerのダウンロード数は3,047、スター数は3で、AIスキル全体5,078件中3,695位、デザイン・メディアでは512件中348位です。
| プラットフォーム | インストール数 | ダウンロード数 | スター数 | コメント |
|---|---|---|---|---|
| ClawHub ↗ | 99 | 2976 | 3 | - |
| SkillHub ↗ | 121 | 3047 | 3 | — |
プラットフォームごとに集計方法と集計時点が異なります。
主文には再生、一時停止、曲の移動、現在曲の照会、ゾーン一覧、ゾーン切り替えの Python と CLI の例があります。初回利用時は Roon で拡張機能を認証する必要があり、スクリプトを実行する端末はネットワーク経由で Roon Core にアクセスできなければなりません。ローカルネットワーク上の再生機器を操作するため、対象 Core の制御が意図された信頼できる端末・ネットワークでのみ使ってください。認証トークンはローカルに保存されるため、ファイル権限を制限し、利用終了後は Roon 拡張機能の認証を取り消してください。依存パッケージは仮想環境で導入し、バージョン固定も検討します。
資料公開日 2026-10-29
スキルのドキュメントをもとに生成した例であり、実際の実行結果ではありません。
2026-09 から集計方法を変更し、同名スキルを作者ごとに分けて集計し、全スキルを対象にしました。破線は変更前の月で、変更後のデータとは直接比較せず、変更をまたぐ増減も計算していません。
| 月 | ダウンロード数 | 前月比 | スター数 |
|---|---|---|---|
| 2026-09 | 3047 | — | 3 |
| 2026-08 | 2879 | +2.9% | 3 |
| 2026-07 | 2797 | +7.1% | 3 |
| 2026-06 | 2611 | +4.4% | 3 |
| 2026-05 | 2500 | — | 3 |
| 2026-03 | 2189 | — | 3 |
作者が公開した元のファイルをテキストのまま表示しています。AlphaMoat による編集や審査はしていません。リンクはクリックできません。コマンドは内容を確認してから実行してください。取得日 2026-10-23。
--- name: roon-controller description: Control Roon music player through Roon API with automatic Core discovery and zone filtering. Supports play/pause, next/previous track, and current track query. Automatically finds Muspi zones. Supports Chinese commands. --- # Roon Control Skill Control the Roon music player with Chinese command support. ## Quick Start
### Install Dependencies
```bash
pip install roonapi
```
### Usage Examples
```python
from roon_controller import RoonController
# Create controller (token will be saved automatically)
controller = RoonController(verbose=True)
# Play/Pause
result = controller.play_pause()
# Next track
result = controller.next()
# Get current track
track_info = controller.get_current_track()
print(f"Now playing: {track_info['track']}")
```
## Core Features
### 1. Automatic Discovery and Connection
- Automatic Roon Core discovery
- Token automatically saved to `~/clawd/roon_config.json`
- Auto-reconnect after restart, no re-authorization needed
### 2. Zone Selection and Switching
- Supports switching between any available zone
- Selected zone is saved in config and persists across restarts
- If no zone is selected, defaults to zones ending with "[roon]"
- Use `set_zone()` to switch zones programmatically
**Switch Zone**
```python
result = controller.set_zone("Living Room")
# {"success": True, "message": "Switched to zone: Living Room", "zone": "Living Room"}
```
**Get Current Zone**
```python
zone = controller.get_current_zone()
# Returns zone info dict with zone_id and zone_data
```
### 3. Playback Control
**Play**
```python
result = controller.play()
# {"success": True, "message": "Playback started", "zone": "Living Room Muspi"}
```
**Pause**
```python
result = controller.pause()
# {"success": True, "message": "Paused", "zone": "Living Room Muspi"}
```
**Play/Pause Toggle**
```python
result = controller.play_pause()
```
**Previous Track**
```python
result = controller.previous()
```
**Next Track**
```python
result = controller.next()
```
### 4. Get Current Track
```python
track_info = controller.get_current_track()
# Returns:
# {
# "success": True,
# "is_playing": True,
# "zone": "Living Room Muspi",
# "track": "Bohemian Rhapsody",
# "artist": "Queen",
# "album": "A Night at the Opera",
# "seek_position": 12345, # milliseconds
# "length": 354000 # milliseconds
# }
```
### 5. List All Zones
```python
zones = controller.list_zones()
# ["Living Room Muspi", "Kitchen", "Bedroom"]
```
## Command Line Tool
The script can be used as a command line tool:
```bash
# Play
python roon_controller.py play
# Pause
python roon_controller.py pause
# Previous track
python roon_controller.py prev
# Next track
python roon_controller.py next
# View current track
python roon_controller.py status
# List all zones
python roon_controller.py zones -v
# switch zone
python roon_controller.py switch zonename
```
## Chinese Command Support
The skill supports the following Chinese trigger words:
| Command | Meaning | Example |
|---------|---------|---------|
| 音乐播放 / 播放音乐 | Start playback | "音乐播放" |
| 暂停 / 暂停播放 | Pause playback | "暂停一下" |
| 下一曲 / 切歌 | Next track | "下一曲" |
| 上一曲 | Previous track | "上一曲" |
| 当前曲目 / 正在放什么 | View current track | "当前曲目" |
## Error Handling
All methods return a unified dictionary structure:
```python
{
"success": True/False,
"message": "Operation result description",
"zone": "Zone name (optional)"
}
```
### Common Errors
- **Muspi zone not found**: Check if the Roon zone name ends with "muspi"
- **Failed to connect to Roon**: Ensure Roon Core is running and network-accessible
- **Token load failed**: First run requires authorization, ensure authorization completes successfully
## Notes
1. **First Run**: Extension authorization required in Roon, check for the extension authorization prompt in Roon interface
2. **Zone Naming**: Muspi zone names must end with "muspi" (case-insensitive)
3. **Token Storage**: Token is saved in `~/clawd/roon_config.json`, ensure secure file permissions
4. **Network Requirements**: The device running the script must be on the same network as Roon Core
## Technical Details
### Dependencies
- `roonapi>=0.1.6`: Official Roon API Python library
### Token Management
- Token storage path: `~/clawd/roon_config.json`
- Auto-load: Automatically loaded on each startup
- Auto-save: Automatically saved on first authorization or update
### Zone Finding Algorithm
```python
# Find all zones
zones = roon.zones
# Filter zones with muspi suffix
muspi_zones = [
(zone_id, zone_data)
for zone_id, zone_data in zones.items()
if zone_data['display_name'].lower().endswith('muspi')
]
# Use the first matching zone
zone_id, zone_data = muspi_zones[0]
```
ContextWeaveアーキテクチャ図ワンショット生成
Nano Banana Pro で画像を生成・編集するスクリプト型のスキルです。
whisper コマンドで音声をローカルで文字起こしするスキルです。
MCP サーバー経由で図を生成、編集するスキルです。
洗練された画面のための設計知見と実装指南をまとめたスキルで、レイアウトからフロー、トークン、フロントエンドの変更まで扱います。
複数の動画モデル API をまたぐ AI 動画生成と編成のスキルです。
ffmpeg を使って動画からフレームを取り出し、手早い確認用のサムネイルを作るスキルです。
ローカルの Whisper で音声ファイルを文字に起こすスキルで、モデルのダウンロード後は完全にオフラインで動きます。
データ月:2026-09 · ダウンロード数、スター数、インストール数は公開スキルレジストリ(ClawHub、SkillHub)から月単位で集計しています。詳しくはデータの方法論をご覧ください。