دراسة حالة 02
LocalTube
مكتبة الفيديو بتاعتك. من غير خوارزمية.
نظرة عامة
LocalTube مكتبة فيديو self-hosted للفيديوهات اللي عندك على الكمبيوتر. بتفحص الفولدرات المحلية، وبتستخرج البيانات والصور المصغرة بـ FFmpeg، وبتقدم تجربة تصفح ومشغل زي يوتيوب — من غير ما ترفع أي حاجة.
التحدي
مكتبات الفيديو المحلية عادةً شجرة فولدرات ومشغل عادي. التحدي كان إني أخليها قابلة للتصفح ومناسبة للدراسة: تصنيفات، واستكمال المشاهدة، وتقدم الكورسات، وبحث، ومؤقت يناسب جلسات المذاكرة الحقيقية.
الطريقة
التطبيق بيجمع واجهة React 19 + TypeScript مع باك إند Express + TypeScript. SQLite بيخزن سجل المشاهدة والمفضلة وتقدم الكورسات ومهام البومودورو. FFmpeg بيولد الصور المصغرة؛ وHTTP range requests بتتعامل مع التشغيل. تكامل yt-dlp وYouTube API اختياري، بيضيف تحميل وبيانات من غير ما يبقوا متطلبات أساسية.
بيعمل إيه
- فحص الفولدرات المحلية واستخراج بيانات الفيديو
- تصفح ومشغل بتجربة شبه يوتيوب
- تصنيفات متداخلة وكورسات ومفضلة وسجل مشاهدة
- استكمال المشاهدة وبحث وترتيب وتتبع تقدم
- وضع الكورس مع تخطيط دراسة وإحصائيات
- مؤقت بومودورو بإعدادات ومهام محفوظة
- تحميل اختياري بـ yt-dlp وبيانات يوتيوب
- واجهة إنجليزي وعربي
ملاحظات تقنية
- واجهة React 19 + TypeScript + Vite
- باك إند Express + TypeScript
- SQLite مع better-sqlite3
- صور مصغرة بـ FFmpeg وبث HTTP range
اتعلمت إيه
LocalTube كان أعمق درس ليّا في المعمارية المحلية. كل ميزة كان لازم تشتغل من غير حساب سحابي، وده خلّى التعامل مع الملفات وترقيات SQLite وقرارات البث أوضح بكتير. كمان علمني أصمم تكاملات اختيارية: yt-dlp وYouTube API مفيدين، بس التطبيق لازم يشتغل من غيرهم.