SoCo(SONOS Controller)는 프로그래밍 방식으로 Sonos 스피커를 제어할 수 있는 Python 라이브러리입니다. 원래 Rahim Sonawalla가 Music Hack Day Sydney에서 만들었으며 현재 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를 설치하면 종속성이 자동으로 설치됩니다. 그렇지 않은 경우 요구 사항.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
그러나 아마도 가장 쉬운 방법은 모듈 수준 검색 기능을 사용하는 것입니다. 그러면 네트워크의 모든 Zone Player를 찾고 이를 포함하는 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로 무엇을 만들 수 있는지 보여주기 위해 간단한 웹 애플리케이션이 examples
폴더에 포함되어 있습니다.
웹앱 스크린샷
SoCo는 다음과 같은 제어 기능을 지원합니다.
SoCo는 또한 Python에서 모든 Sonos 서비스(예: ContentDirectory 또는 RenderingControl)에 대한 낮은 수준의 액세스를 지원합니다.
Socos 는 Sonos 장치를 제어하기 위한 명령줄 도구입니다. Soco와 함께 개발되었지만 별도의 저장소에 있습니다.
SoCo-CLI (soco-cli)는 스크립트, 예약된 작업 등에 사용하기에 적합한 강력하고 모든 기능을 갖춘 명령줄 도구입니다. 시간 기반 및 상태 기반 작업과 루프를 사용한 반복 명령을 지원합니다. 로컬 파일 시스템의 오디오 파일은 명령줄을 통해 Sonos에서 직접 재생할 수 있습니다. 다세대 Sonos 시스템이 지원됩니다.
루비 팬이 더 많나요? 문제 없습니다. Sam Soffes는 멋진 Ruby gem을 만들고 있습니다.
단순한 샘플 프로젝트 이상의 GUI를 찾고 계십니까? Joel Björkman은 공식적인 Sonos Controller 애플리케이션이 없는 Linux 사용자에게 적합한 Sonos Controller GUI를 구축하고 있습니다! https://github.com/labero/SoCo-Tk에서 찾아서 포크하고 기여하세요.
SoCo Gitter 토론방이 있습니다. SoCo와 관련된 지원, 아이디어 또는 일상적인 대화를 원하시면 언제든지 들러주세요.
SoCo는 MIT 라이센스에 따라 출시됩니다.