SoCo (Sonos Controller) é uma biblioteca Python que permite controlar os alto-falantes Sonos programaticamente. Foi originalmente criado no Music Hack Day Sydney por Rahim Sonawalla e agora é desenvolvido por uma equipe de pessoas em seu repositório GitHub
Para obter mais informações sobre o projeto, consulte a postagem no blog de Rahim.
Visite a documentação do SoCo para uma visão geral mais detalhada da funcionalidade.
A Sonos mudou a forma como as informações da conta do serviço de música estão disponíveis. Isto significa que atualmente um grupo de serviços de música apresentará problemas de autenticação e não poderá ser usado de forma alguma . Os membros conhecidos deste grupo são: Google Play Music, Apple Music, Amazon Music, Spotify e Napster.
O problema nº 557 é um metaproblema para esse problema e você pode usá-lo para acompanhar o progresso na solução dos problemas, mas evite postar comentários do tipo "eu também" nele. Além disso, não há necessidade de abrir mais nenhuma edição separada sobre isso. Se você tem outro serviço de música que deveria estar na lista, comente em #557
A partir da versão 0.26.0, o suporte emergente ao serviço de música foi restabelecido, com alguns problemas conhecidos. Testes e relatórios de problemas seriam apreciados.
SoCo requer Python 3.6 ou mais recente.
Usar pip:
pip install soco
SoCo depende de vários pacotes Python. Se você usar pip para instalar o Soco, as dependências serão instaladas automaticamente para você. Caso contrário, você poderá inspecionar os requisitos no arquivo requirements.txt.
Você pode interagir com um Sonos Zone Player por meio de um objeto SoCo. Se você souber o endereço IP de um Zone Player, poderá criar um objeto SoCo diretamente:
>> > 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
Mas talvez a maneira mais fácil seja usar a função de descoberta em nível de módulo. Isso encontrará todos os Zone Players em sua rede e retornará um conjunto python contendo-os:
>> > from soco import discover
>> > for zone in discover ():
... print ( zone . player_name )
Living Room
Kitchen
Se você preferir uma lista a um conjunto:
>> > zone_list = list ( discover ())
>> > zone_list
[ SoCo ( "192.168.1.101" ), SoCo ( "192.168.1.102" )]
>> > zone_list [ 0 ]. mute = True
Claro, você também pode tocar música!
#!/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 ()
Se precisar de suporte para SoCo, sinta-se à vontade para postar sua pergunta na SoCo Gitter Room.
Para mostrar o que pode ser feito com SoCo, um aplicativo web simples está incluído na pasta de examples
.
Captura de tela do aplicativo da web
SoCo suporta os seguintes controles, entre outros:
SoCo também suporta acesso de nível inferior do Python a todos os serviços Sonos (por exemplo, ContentDirectory ou RenderingControl).
Socos é uma ferramenta de linha de comando para controlar dispositivos Sonos. É desenvolvido em conjunto com a Soco, mas em um repositório separado.
SoCo-CLI (soco-cli) é uma ferramenta de linha de comando poderosa e completa, adequada para uso em scripts, tarefas agendadas, etc. Ele suporta ações baseadas em tempo e estado, e comandos repetidos usando loops. Os arquivos de áudio no sistema de arquivos local podem ser reproduzidos diretamente no Sonos a partir da linha de comando. Sistemas Sonos multi-domésticos são suportados.
Mais fã de Ruby? Não tem problema, Sam Soffes está construindo uma joia Ruby incrível.
Procurando uma GUI que seja mais do que apenas um projeto de amostra? Joel Björkman está construindo uma GUI do Sonos Controller – ótima para quem usa Linux onde não existe um aplicativo oficial do Sonos Controller! Encontre, bifurque e contribua aqui: https://github.com/labero/SoCo-Tk.
Há uma sala de discussão SoCo Gitter. Sinta-se à vontade para receber suporte, ideias ou conversas casuais relacionadas ao SoCo.
SoCo é lançado sob a licença do MIT.