SoCo (Sonos Controller) adalah pustaka Python yang memungkinkan Anda mengontrol speaker Sonos secara terprogram. Ini awalnya dibuat di Music Hack Day Sydney oleh Rahim Sonawalla dan sekarang dikembangkan oleh tim yang terdiri dari orang-orang di repositori GitHub-nya
Untuk latar belakang lebih lanjut mengenai proyek ini, silakan lihat postingan blog Rahim.
Kunjungi dokumentasi SoCo untuk gambaran umum fungsi yang lebih rinci.
Sonos telah mengubah cara informasi akun layanan musik tersedia. Artinya saat ini sekelompok layanan musik akan memberikan masalah otentikasi dan tidak dapat digunakan sama sekali . Anggota grup ini yang diketahui adalah: Google Play Musik, Apple Music, Amazon Music, Spotify, dan Napster.
Masalah #557 adalah masalah meta untuk masalah ini dan Anda dapat menggunakannya untuk melacak kemajuan dalam penyelesaian masalah, namun harap jangan memposting komentar "saya juga" di sana. Selain itu, tidak perlu membuka terbitan terpisah lagi mengenai hal ini. Jika Anda memiliki layanan musik lain yang harus ada dalam daftar, beri komentar di #557
Pada v0.26.0, dukungan layanan musik yang baru telah diaktifkan kembali, dengan beberapa masalah umum. Pengujian dan pelaporan masalah akan dihargai.
SoCo memerlukan Python 3.6 atau lebih baru.
Gunakan pip:
pip install soco
SoCo bergantung pada sejumlah paket Python. Jika Anda menggunakan pip untuk menginstal Soco, dependensi akan diinstal secara otomatis untuk Anda. Jika tidak, Anda dapat memeriksa persyaratan di file persyaratan.txt.
Anda dapat berinteraksi dengan Sonos Zone Player melalui objek SoCo. Jika Anda mengetahui alamat IP Zone Player, Anda dapat membuat objek SoCo secara langsung:
>> > 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
Namun mungkin cara termudah adalah dengan menggunakan fungsi penemuan tingkat modul. Ini akan menemukan semua Pemain Zona di jaringan Anda, dan mengembalikan set python yang berisi mereka:
>> > from soco import discover
>> > for zone in discover ():
... print ( zone . player_name )
Living Room
Kitchen
Jika Anda lebih memilih daftar daripada kumpulan:
>> > zone_list = list ( discover ())
>> > zone_list
[ SoCo ( "192.168.1.101" ), SoCo ( "192.168.1.102" )]
>> > zone_list [ 0 ]. mute = True
Tentu saja, Anda juga bisa memutar musik!
#!/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 ()
Jika Anda memerlukan dukungan untuk SoCo, silakan kirimkan pertanyaan Anda di Ruang SoCo Gitter.
Untuk memamerkan apa yang bisa dibuat dengan SoCo, aplikasi web sederhana disertakan dalam folder examples
.
Tangkapan layar aplikasi web
SoCo mendukung kontrol berikut antara lain:
SoCo juga mendukung akses tingkat rendah dari Python ke semua layanan Sonos (misalnya ContentDirectory atau RenderingControl).
Socos adalah alat baris perintah untuk mengendalikan perangkat Sonos. Ini dikembangkan bersama dengan Soco, tetapi dalam repositori terpisah.
SoCo-CLI (soco-cli) adalah alat baris perintah yang kuat dan berfitur lengkap yang cocok untuk digunakan dalam skrip, tugas terjadwal, dll. Mendukung tindakan berbasis waktu dan negara, dan perintah berulang menggunakan loop. File audio di sistem file lokal dapat diputar langsung di Sonos dari baris perintah. Sistem Sonos multi-rumah tangga didukung.
Lebih dari penggemar Ruby? Tidak masalah, Sam Soffes sedang membuat permata Ruby yang mengagumkan.
Mencari GUI yang lebih dari sekedar proyek sampel? Joel Björkman sedang membangun GUI Pengontrol Sonos – cocok untuk pengguna Linux yang tidak memiliki aplikasi Pengontrol Sonos resmi! Temukan, bercabang, dan berkontribusi di sini: https://github.com/labero/SoCo-Tk.
Ada ruang diskusi SoCo Gitter. Jangan ragu untuk mampir untuk mendapatkan dukungan, ide, atau percakapan santai terkait SoCo.
SoCo dirilis di bawah lisensi MIT.