تطبيق ويب لعرض أغنيتك التي تشغل حاليًا على Spotify. يتيح لك تخطي الأغاني ، وتشغيل/توقف ، ومثل/على عكس. يحلل الألبوم الفني لاختيار الخلفية والألوان المقدمة لمطابقة الصورة. استطلاعات الرأي كل ثانيتين لتحديث الشاشة لإظهار أغنيتك التي تشغل حاليًا. موازين إلى حجم الشاشة الخاصة بك باستخدام التصميم الديناميكي.
لقد بدأت مشروعي عن طريق إعداد موقع أساسي لإظهار json Raw لبيانات Spotify الخاصة بي باستخدام SpotiPy ، وهو Sotify Python API. في وقت لاحق ، كتبت بعض JavaScript لاستطلاع API Spotify كل ثانيتين للتحقق من التغييرات. إذا تغيرت الأغنية ، يتم تحديث الصفحة بالمعلومات الجديدة.
أقوم بحساب لوحة الألوان باستخدام مكتبة JavaScript تسمى ColorThefe التي تستحوذ على اللون المهيمن للخلفية ، ولون بديل متناقض من اللوحة للنص. لون النص ليس فقط أسود أو أبيض ، ولكن بدلاً من ذلك يعين بعض الألوان البديلة لتشكيل لوحة كاملة ، ويجد لونًا من تلك اللوحة التي تتناقض مع لون الخلفية المحدد.
يمكنني استخدام رموز مواد Google لرموز التحكم في التشغيل. هذا يسمح بسهولة التحجيم إلى أحجام شاشة مختلفة دون الحاجة إلى صور منفصلة.
كان الحصول على ترتيب عناصر على الشاشة والتوسيع لشاشات العرض المختلفة يمثل تحديًا. أردت أن تبدو مقبولة على الأقل على أي شيء من جهاز كمبيوتر مع شاشة للمناظر الطبيعية ، إلى شيء مثل الهاتف المحمول. إنه ليس مثاليًا ، لكنه قوي إلى حد ما. بالإضافة إلى ذلك ، كان من الصعب العثور على النص في أي نقطة أبيض بدلاً من الأسود. اضطررت إلى التأكد من أن تفاصيل الأغنية ستكون قابلة للقراءة بسهولة بغض النظر عن الأغنية التي كانت يتم تشغيلها في تلك اللحظة.
هناك العديد من الطرق المختلفة التي يمكنك من خلالها استضافة WebApp. أنا شخصيا استخدام fly.io. ستحتاج أيضًا إلى إعداد تطبيق Spotify Developer للحصول على معرف Spotify للعميل وسرية العميل.
قم بإنشاء حساب Spotify Developer إذا لم يكن لديك حساب ، وقم بإنشاء تطبيق جديد. ستحتاج إلى ملاحظة معرف العميل وسرية العميل. استضافة WebApp باستخدام أحد الخيارات الثلاثة التالية:
ثم عد إلى لوحة معلومات Developer Developer ، وأدخل URI إعادة توجيه. تأكد من إزالة أي مائلات زائدة. يجب أن يكون وظيفيا!
هناك معلومات إضافية حول ضبط متغيرات البيئة والاستضافة محليًا في تعليق كبير في الجزء العلوي من App.py.
في الأصل ، كان هذا مشروعًا لدورة هارفارد CS50. منذ ذلك الحين ، قمت بإضافة ميزات خاصة بي. يمكنك رؤية إصدار CS50 الأصلي في فرع منفصل. منذ ذلك الحين ، قمت بتحسين خوارزمية الكشف عن الألوان على نطاق واسع. يوجد الآن فرع "Raspi" المعين يحتوي على خطوط إضافية من التعليمات البرمجية للاتصال بخادم ويب محلي لإيقاف شاشة Raspberry Pi عند تشغيل الموسيقى.
ما زلت أعتزم تحديث هذا لإصلاح الأخطاء مع اكتشاف الألوان وتوسيع الشاشة ، وزوجان آخران وميزات إضافية ، وأكثر من ذلك.