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. إذا كنت تستخدم النقطة لتثبيت Soco، فسيتم تثبيت التبعيات تلقائيًا لك. إذا لم يكن الأمر كذلك، فيمكنك فحص المتطلبات في ملف require.txt.
يمكنك التفاعل مع Sonos Zone Player من خلال كائن SoCo. إذا كنت تعرف عنوان IP الخاص بمشغل Zone، فيمكنك إنشاء كائن 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
ولكن ربما تكون أسهل طريقة هي استخدام وظيفة الاكتشاف على مستوى الوحدة. سيؤدي هذا إلى العثور على كافة مشغلات المنطقة على شبكتك، وإرجاع مجموعة بايثون تحتوي عليهم:
>> > 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 ببناء جوهرة روبي رائعة.
هل تبحث عن واجهة مستخدم رسومية تكون أكثر من مجرد نموذج لمشروع؟ يقوم Joel Björkman ببناء واجهة المستخدم الرسومية لوحدة تحكم Sonos - وهي رائعة للأشخاص الذين يستخدمون Linux حيث لا يوجد تطبيق Sonos Controller رسمي! يمكنك البحث عنه وتفرعه والمساهمة فيه هنا: https://github.com/labero/SoCo-Tk.
توجد غرفة مناقشة SoCo Gitter. لا تتردد في الحضور للحصول على الدعم أو الأفكار أو المحادثة غير الرسمية المتعلقة بـ SoCo.
تم إصدار SoCo بموجب ترخيص MIT.