منصوبے کے بارے میں

Bose نے SoundTouch کلاؤڈ بند کر دیا، جس سے اسپیکرز بلوٹوتھ، AUX، AirPlay اور ملٹی روم زونز کے ساتھ تو کام کرتے رہے لیکن انٹرنیٹ ریڈیو، پری سیٹس، براؤزنگ یا Alexa کے بغیر رہ گئے۔ یہ ریپوزٹری ایک Claude Code سکل ہے جو مالک کو ان کے اسپیکرز کو خود میزبانی شدہ متبادل سروس کی طرف رجوع کرنے اور ریڈیو اور پری سیٹس واپس حاصل کرنے میں رہنمائی کرتی ہے۔ یہ ایک غیر تکنیکی صارف کو فرض کرتی ہے: سکل ہدایت دینے کے بجائے سوال کرتی ہے، آزادانہ پڑھتی ہے، اور اسپیکر پر کچھ بھی تبدیل کرنے سے پہلے تصدیق کی ضرورت ہوتی ہے۔ متبادل سروس gesellix (Bose-SoundTouch) کی AfterTouch ہے، جسے سکل بنیادی حقیقت کے طور پر تسلیم کرتی ہے؛ یہ ریپوزٹری ایک سکل ہے، فورک نہیں، اور شائع شدہ کنٹینر امیج انسٹال کرتی ہے۔ ضروریات میں لوکل نیٹ ورک پر ایک یا زیادہ SoundTouch اسپیکرز، اسی نیٹ ورک پر Docker کی صلاحیت والی مشین (NAS، Raspberry Pi، چھوٹا Linux باکس) مستحکم ایڈریس کے ساتھ، نیز Python 3.11+، uv اور compose پلگ ان کے ساتھ Docker شامل ہیں۔ سکل کا پہلا مرحلہ خود ان کی جانچ کرتا ہے اور انسٹال لائنز کے ساتھ رپورٹ کرتا ہے کہ کیا غائب ہے۔ انسٹالیشن Claude Code پلگ ان مارکیٹ پلیس کے ذریعے ہے: /plugin marketplace add bitranox/soundtouch-decloud /plugin install soundtouch-decloud اسے مسئلہ کو سادہ الفاظ میں بیان کرکے بھی متحرک کیا جا سکتا ہے، یا نام سے پکارا جا سکتا ہے۔ ورک فلو چیک ان کے ساتھ مراحل میں چلتا ہے: پیشگی شرائط کی جانچ اور انسٹالیشن مدد، اسپیکر کی دریافت، سروس کو کھڑا کرنا، کسی بھی تبدیلی سے پہلے ہر اسپیکر کا بیک اپ، چار سروس URLs کو دوبارہ لکھنا، ریڈیو ذرائع کا انتظار، اسٹیشنوں کی بازیابی اور تصدیق، پری سیٹس لکھنا، اور آخر میں گننے کے بجائے سن کر پلے بیک ثابت کرنا۔ سکل پانچ حوالہ فائلیں اور چار اسکرپٹس فراہم کرتی ہے۔ ہر اسکرپٹ JSON لفافہ پرنٹ کرتا ہے اور مستقل exit codes استعمال کرتا ہے (0 ہاں، 1 نہیں، 2 بتا نہیں سکے)؛ جو کچھ بھی اسپیکر کو تبدیل کرتا ہے اسے واضح --confirm کی ضرورت ہوتی ہے، لہذا صرف پڑھنے کی کارروائیاں ہمیشہ محفوظ ہیں۔ اسکرپٹس میں preflight چیکس، Docker/compose توثیق اور سروس صحت، نیٹ ورک دریافت، تشخیصی SSH پورٹ پر URL دوبارہ لکھنے اور ریبوٹ کے ساتھ آن بورڈنگ، اور پری سیٹ بیک اپ/ہارویسٹ/تصدیق/چیک/بحالی/ریلیٹیوائز شامل ہیں۔ دستاویزات ان ناکامی کے طریقوں کو اجاگر کرتی ہیں جن کی غلط تشخیص آسان ہے: برج نیٹ ورکنگ انسٹال شدہ نظر آتی ہے لیکن کچھ دریافت نہیں کرتی (host نیٹ ورکنگ ضروری ہے)؛ صرف اکاؤنٹ URL دوبارہ لکھنے سے اسپیکر رجسٹر اور سنک تو ہوتا ہے لیکن کچھ چلاتا نہیں؛ URL لکھنے کی ترتیب اہم ہے کیونکہ محفوظ کرنے سے پہلے persist کرنا پرانی اقدار کو محفوظ کرتا ہے جبکہ کمانڈز پھر بھی OK جواب دیتی ہیں؛ پری سیٹس میں خام اسٹریم URLs قبول کیے جاتے ہیں لیکن کبھی چلتے نہیں، لہذا پری سیٹس AfterTouch کی رشتہ دار شکل استعمال کرتے ہیں؛ ایک کاپی شدہ سروس settings.json server_url کے ذریعے پرانا ایڈریس رکھتی ہے؛ اور DHCP تفویض شدہ سروس ایڈریس بعد میں ایک ساتھ ہر اسپیکر کو توڑ دیتا ہے۔ اسٹیشن کی بازیابی چار مراحل پر مشتمل ہے: منتقلی سے پہلے کے پری سیٹس سے اسٹریم URLs حاصل کرنا (سروس انہیں برقرار نہیں رکھتی، لہذا بیک اپ پہلے چلتا ہے)، مالک سے پوچھنا کہ کیا پرانی اسٹیشن فہرست اب بھی مطلوب ہے، باقی اسٹیشنوں کے لیے موجودہ براہ راست اسٹریم اینڈ پوائنٹس کی تحقیق، اور سروس ہوسٹ سے تصدیق۔ تصدیق ہر بٹن کے لیے رپورٹ کرتی ہے: آڈیو، پلے لسٹ، hls، نان-آڈیو، ڈیڈ، یا غائب۔ دستاویزات نوٹ کرتی ہیں کہ اسٹیشن منتقل اور مر جاتے ہیں، اور .m3u پلے لسٹس سادہ آڈیو چیک پاس کر سکتی ہیں جبکہ ان میں کوئی آڈیو نہیں ہوتا۔ جاری آپریشن کے لیے، سکل ہر اسپیکر کے پری سیٹس کا سروس سے باہر سنیپ شاٹ، ایک بار بحالی، اور شیڈولڈ الرٹنگ کے لیے موزوں صرف پڑھنے والا چیک شامل کرتی ہے۔ یہ جان بوجھ کر کچھ بھی انسٹال نہیں کرتی جو خود لکھتا ہو، کیونکہ AfterTouch v0.137.0 اکاؤنٹ پر اسپیکرز کے درمیان پری سیٹس شیئر کرتا ہے۔ دستاویزات ماپا ڈیٹا کا حوالہ دیتی ہیں: 18.7 دنوں میں دو منٹ کا بحالی لوپ 11692 رنز کرتا ہے اور پری سیٹس ایک بار لکھتا ہے، اور ایک سوتا ہوا WiFi اسپیکر 1303 ناقابل پڑھنے والی ریڈنگز پیدا کرتا ہے جبکہ پری سیٹس کی کبھی کمی نہیں ہوتی۔ الرٹ غائب پری سیٹس کو غیر جوابی اسپیکر سے ممتاز کرتا ہے۔ اسکرپٹس صرف معیاری لائبریری ہیں تاکہ وہ ایسی مشین پر چلیں جس پر کچھ بھی انسٹال نہ ہو؛ pytest واحد ٹیسٹ انحصار ہے۔ ایک ریپوزٹری کنونشنز چیکر مینی فیسٹس، سکل فرنٹ میٹر، شپڈ اسکرپٹس کی ٹیسٹ کوریج اور لائن اینڈنگز کی توثیق کرتا ہے، Linux، Windows اور macOS پر CI کے ساتھ۔ لائسنس MIT ہے۔