SoCo (Sonos Controller) — это библиотека Python, которая позволяет программно управлять динамиками Sonos. Первоначально он был создан Рахимом Сонаваллой на Music Hack Day Sydney, а теперь разрабатывается командой людей в репозитории GitHub.
Дополнительную информацию о проекте можно найти в блоге Рахима.
Посетите документацию SoCo для более подробного обзора функций.
Sonos изменил способ предоставления информации об учетной записи музыкального сервиса. Это означает, что в настоящее время группа музыкальных сервисов будет вызывать проблемы с аутентификацией и ее вообще нельзя будет использовать . Известными членами этой группы являются: Google Play Music, Apple Music, Amazon Music, Spotify и Napster.
Проблема № 557 — это мета-проблема для этой проблемы, и вы можете использовать ее для отслеживания прогресса в решении проблем, но , пожалуйста, воздержитесь от публикации комментариев «я тоже» . И больше нет необходимости открывать по этому поводу отдельную тему. Если у вас есть еще один музыкальный сервис, который должен быть в списке, оставьте комментарий #557.
Начиная с версии 0.26.0, поддержка новых музыкальных сервисов была восстановлена с некоторыми известными проблемами. Тестирование и отчеты о проблемах будут признательны.
Для SoCo требуется Python 3.6 или новее.
Используйте пип:
pip install soco
SoCo зависит от ряда пакетов Python. Если вы используете pip для установки Soco, зависимости будут установлены автоматически. Если нет, вы можете проверить требования в файле require.txt.
Вы можете взаимодействовать с Sonos Zone Player через объект SoCo. Если вы знаете IP-адрес Zone Player, вы можете напрямую создать объект 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, в папку examples
включено простое веб-приложение.
Скриншот веб-приложения
SoCo поддерживает, среди прочего, следующие элементы управления:
SoCo также поддерживает доступ нижнего уровня из Python ко всем сервисам Sonos (например, ContentDirectory или RenderingControl).
Socos — это инструмент командной строки для управления устройствами Sonos. Он разработан совместно с Soco, но в отдельном репозитории.
SoCo-CLI (soco-cli) — это мощный и полнофункциональный инструмент командной строки, подходящий для использования в сценариях, запланированных задачах и т. д. Он поддерживает действия, основанные на времени и состоянии, а также повторяющиеся команды с использованием циклов. Аудиофайлы в локальной файловой системе можно воспроизводить непосредственно на Sonos из командной строки. Поддерживаются многоквартирные системы Sonos.
Больше фанат Руби? Не проблема, Сэм Соффс создает потрясающий рубиновый драгоценный камень.
Ищете графический интерфейс, который представляет собой нечто большее, чем просто пример проекта? Джоэл Бьоркман создает графический интерфейс Sonos Controller — отлично подходит для пользователей Linux, где нет официального приложения Sonos Controller! Найдите, разветвите и внесите свой вклад здесь: https://github.com/labero/SoCo-Tk.
Имеется дискуссионная комната SoCo Gitter. Не стесняйтесь зайти, чтобы получить поддержку, идеи или непринужденную беседу, связанную с SoCo.
SoCo выпускается под лицензией MIT.