SoCo (Sonos Controller) は、Sonos スピーカーをプログラムで制御できるようにする Python ライブラリです。これは元々、シドニーの Music Hack Day で Rahim Sonawalla によって作成され、現在は GitHub リポジトリのチームによって開発されています。
プロジェクトの詳細な背景については、Rahim のブログ投稿を参照してください。
機能の詳細な概要については、SoCo のドキュメントを参照してください。
Sonos は、音楽サービスのアカウント情報を入手する方法を変更しました。これは、現在、一部の音楽サービスで認証の問題が発生し、まったく使用できないことを意味します。このグループの既知のメンバーは、Google Play Music、Apple Music、Amazon Music、Spotify、Napster です。
問題 #557 はこの問題のメタ問題であり、問題解決の進捗状況を追跡するために使用できますが、 「私も」というコメントをそこに投稿することは控えてください。また、これに関してこれ以上別の問題を開く必要はありません。リストに追加すべき別の音楽サービスがある場合は、#557 にコメントしてください
v0.26.0 では、初期の音楽サービスのサポートが復活しましたが、いくつかの既知の問題があります。テストと問題の報告をいただければ幸いです。
SoCo には Python 3.6 以降が必要です。
ピップを使用します。
pip install soco
SoCo は多くの Python パッケージに依存しています。 pip を使用して Soco をインストールすると、依存関係が自動的にインストールされます。そうでない場合は、requirements.txt ファイル内の要件を検査できます。
SoCo オブジェクトを通じて Sonos Zone Player と対話できます。 Zone Player の IP アドレスがわかっている場合は、SoCo オブジェクトを直接作成できます。
>> > from soco import SoCo
>> > my_zone = SoCo ( '192.168.1.101' )
>> > my_zone . player_name
Kitchen
>> > my_zone . status_light = True
>> > my_zone . volume = 6
しかし、おそらく最も簡単な方法は、モジュールレベルの検出機能を使用することです。これにより、ネットワーク上のすべてのゾーン プレーヤーが検索され、それらを含む Python セットが返されます。
>> > from soco import discover
>> > for zone in discover ():
... print ( zone . player_name )
Living Room
Kitchen
セットよりリストを好む場合:
>> > zone_list = list ( discover ())
>> > zone_list
[ SoCo ( "192.168.1.101" ), SoCo ( "192.168.1.102" )]
>> > zone_list [ 0 ]. mute = True
もちろん音楽再生も可能!
#!/usr/bin/env python
from soco import SoCo
if __name__ == '__main__' :
sonos = SoCo ( '192.168.1.102' ) # Pass in the IP of your Sonos speaker
# You could use the discover function instead, if you don't know the IP
# Pass in a URI to a media file to have it streamed through the Sonos
# speaker
sonos . play_uri (
'http://ia801402.us.archive.org/20/items/TenD2005-07-16.flac16/TenD2005-07-16t10Wonderboy.mp3' )
track = sonos . get_current_track_info ()
print ( track [ 'title' ])
sonos . pause ()
# Play a stopped or paused track
sonos . play ()
SoCo のサポートが必要な場合は、お気軽に SoCo Gitter Room に質問を投稿してください。
SoCo で何が作成できるかを示すために、簡単な Web アプリケーションがexamples
フォルダーに含まれています。
Web アプリのスクリーンショット
SoCo は、特に次のコントロールをサポートしています。
SoCo は、Python からすべての Sonos サービス (ContentDirectory や RenderingControl など) への下位レベルのアクセスもサポートしています。
Socos は、 Sonos デバイスを制御するためのコマンド ライン ツールです。これは Soco と連携して開発されていますが、別のリポジトリにあります。
SoCo-CLI (soco-cli) は、スクリプト、スケジュールされたタスクなどでの使用に適した、強力でフル機能のコマンド ライン ツールです。時間ベースおよび状態ベースのアクション、およびループを使用した繰り返しコマンドをサポートします。ローカル ファイルシステム上のオーディオ ファイルは、コマンド ラインから Sonos で直接再生できます。複数世帯の Sonos システムがサポートされています。
Ruby のファンですか?問題ありません。Sam Soffes は素晴らしい Ruby gem を構築しています。
単なるサンプル プロジェクト以上の GUI をお探しですか? Joel Björkman は Sonos コントローラー GUI を構築しています。これは、公式の Sonos コントローラー アプリケーションがない Linux を使用している人にとっては最適です。ここで見つけてフォークし、貢献してください: https://github.com/labero/SoCo-Tk。
SoCo Gitter ディスカッション ルームがあります。 SoCo に関するサポート、アイデア、カジュアルな会話のためにお気軽にお立ち寄りください。
SoCo は MIT ライセンスに基づいてリリースされています。