أتمتة محتوى راديو إنترنت: جدولة ذكية + متابعة جودة البث
سير عمل يدير جدولة محطة AzuraCast: يتحقق من توفر playlists، يكتشف فجوات البرمجة، ينبه عند مشاكل بث، ويصدر تقرير شهري للمشرف.
الهدف من مسار العمل
تخفيف عبء صيانة الراديو على المشرف المتطوع. الـ workflow يكتشف المشاكل قبل المستمعين، ويصدر تقارير تفيد قرارات البرمجة المستقبلية.
مخطط البنية والربط الهندسي
خطوات التشغيل التفصيلية
الخطوات
التفاصيل البرمجية والتهيئة
مقدمة حول سير العمل
سير عمل يدير جدولة محطة AzuraCast: يتحقق من توفر playlists، يكتشف فجوات البرمجة، ينبه عند مشاكل بث، ويصدر تقرير شهري للمشرف.
الهدف من سير العمل
تخفيف عبء صيانة الراديو على المشرف المتطوع. الـ workflow يكتشف المشاكل قبل المستمعين، ويصدر تقارير تفيد قرارات البرمجة المستقبلية.
الأدوات والتقنيات المستخدمة
تم استخدام الأدوات التالية: n8n و azuracast و telegram و apitable
تفاصيل تنفيذ سير العمل
- مستوى الصعوبة: متوسط
- الوقت المتوقع للإعداد:
- محفز التشغيل (Trigger):
خطوات العمل (الآلية)
- n8n schedule كل 15 دقيقة: HTTP Request للـ AzuraCast NowPlaying API
- Code Node: تحقق من listeners > 0، playlist active، live DJ if scheduled
- إذا stream not playing أو error: Telegram alert فوري
- إذا live DJ مجدول لكنه غير متصل بعد 5 دقائق من البدء: تنبيه للمتطوع
- كل تشغيل: log في APITable (timestamp، listeners، current_track، playlist)
- Daily aggregation (6 صباحاً): الإحصاءات من AzuraCast Reports API
- تخزين البيانات اليومية: peak listeners، أعلى ساعات، أكثر المسارات
- Monthly report (1 من الشهر): Ollama يولّد تقرير سردي من البيانات
- إيميل للمشرف: ‘تقرير شهر X — أعلى الساعات، توصيات للجدول’
وصف مفصل
## المشكلة محطة راديو ذاتية تعتمد على متطوع لمراقبة الجدول. غياب المتطوع يومين قد يخلق فجوات في البث (Liquidsoap يملأ بـ default rotation، لكن جودة التجربة تنخفض). الإحصاءات في AzuraCast موجودة لكن تستهلك وقتاً للمراجعة. ## المُدخلات – AzuraCast API access – n8n – Telegram bot للتنبيهات – APITable للأرشيف ## المُخرجات – تنبيهات Telegram عند انقطاع بث، فشل live DJ، أو فجوة في الجدول – تقرير شهري للمشرف: أعلى ساعات الاستماع، أكثر البرامج شعبية، الفجوات – أرشيف بيانات الاستماع للتحليل لاحقاً ## مخطط Mermaid “`mermaid graph LR A[Schedule: every 15min] –> B[AzuraCast API: NowPlaying] B –> C{Stream healthy?} C –>|No| D[Telegram alert] C –>|Yes| E[Log to APITable] F[Schedule: daily 6am] –> G[Yesterday stats from AzuraCast] G –> H[Analyze: peak hours, top songs] H –> I[Insert to APITable] J[Schedule: monthly 1st] –> K[Aggregate APITable] K –> L[Ollama: generate report narrative] L –> M[Email to admin] “` ## نقاط الفشل – AzuraCast API يطلب authentication: تأكد من API key في n8n credentials – Stream healthy لكن البث الفعلي مشوّش: AzuraCast API لا يكشف صوتاً سيئاً — تحتاج مونيتور خارجي يستمع – تنبيهات مفرطة عند مشاكل عابرة (إعادة تشغيل Liquidsoap لثوانٍ): اضبط threshold (3 محاولات متتالية فاشلة) – Reports API بطيء لمحطات كبيرة: استخدم date range محدود ## نقاط المراجعة البشرية – التنبيهات للمشرف للقرار: هل يتدخل؟ هل يستعين بمتطوع؟ – التقرير الشهري يُقرأ يدوياً، توصياته اقتراحية لا تطبَّق آلياً – تغيير الجدول قرار بشري بناء على الإحصاءات ## اعتبارات الخصوصية إحصاءات المستمعين قد تحوي IPs و locations. AzuraCast يمكن تعطيل تخزينها. التقارير المُرسلة بريدياً تحوي بيانات تجميعية فقط. ## ملاحظات الصيانة مراجعة شهرية للتنبيهات: false positives؟ false negatives؟ تحديث thresholds.