[Maurice-Michel Didelot] صاحب یک بلندگوی هوشمند Sonos است و از ناتوانی (یا عدم تمایل آشکار) دستگاه ها در پخش جریانی موسیقی از منابع آنلاین بدون استفاده از سرویس اشتراک ابراز تاسف می کند. YouTube Music کار خواهد کرد، اما به عنوان یک محصول اشتراک، هزینه ماهانه ای وجود دارد که بسیار بد است زیرا می توانید به طور رایگان به محتوای زیادی در YouTube گوش دهید. [Maurice] تصمیم گرفت که راه رو به جلو این است که به بررسی نحوه دسترسی سفتافزار Sonos به منابع «رادیو وب» بپردازد، و ببیند که آیا میتوان از آن برای پخش صدا از YouTube از طریق نوعی فرآیند تبدیل جریان در جریان استفاده کرد.

بنابراین بیایید بررسی کنیم که [Maurice] چگونه به این موضوع نزدیک شد. اسپیکر هوشمند را میتوان برای افزودن منابع صوتی پخش جریانی مختلف پیکربندی کرد و به شما امکان میدهد منابع سفارشی را برای آنها اضافه کنید. سفتافزار Sonos علاوه بر MP3 از کدکهای صوتی مختلفی پشتیبانی میکند، اما YouTube از فرمت MP4 استفاده میکند. Sonos این کار را از طریق یک منبع رادیویی تحت وب انجام نمیدهد، بنابراین چه کاری باید انجام میشد، مگر اینکه یک مبدل سفارشی بسازید؟
پس از کمی جستجو، مشخص شد که Sonos از رمزگذاری AAC (که MP4 صدا را رمزگذاری میکند) پشتیبانی میکند. باید آن را در یک کانتینر ADTS (جریان انتقال داده صوتی) پیچیده شود. با ساختن یک برنامه وب پروکسی معکوس، در پایتون با استفاده از Flask، گرفتن شناسه ویدیوی YouTube از درخواست رادیو وب به اندازه کافی ساده بود، درخواستی را با استفاده از نسخه اصلاح شده pytube که برای دانلود نشدن ویدیو، اما پخش جریانی به یوتیوب تغییر داده شده بود، ارسال کرد. آی تی. Pytube [Maurice] را فعال کرد تا «اتمهای صوتی» AAC را از محفظه MP4 استخراج کند و سپس آنها را با ADTS بپیچد و به دستگاه Sonos ارسال کند، که با خوشحالی فکر میکند که فقط یک جریان رادیویی MP3 قدیمی است، حتی اگر اینطور نباشد. t.

فرض کنید Sonos بهترین شهرت را ندارد، اما نمیتوانید انکار کنید که فناوری بسیار نرمی در داخل وجود دارد. در اینجا یک هک منظم است که سال گذشته پوشش دادیم، پشتیبانی Sonos را به یک بلندگوی قدیمی مدرسه اضافه کردیم، و یک دستگاه سازگار با IKEA Sonos را که از چند هک طراحی دقیق استفاده میکند، اضافه کردیم. ]تصویر ویژه توسط چارلز دلویو در Unsplash.
