تفكيك بنية توزيع الوسائط في تليجرام: بناء محرك استخراج عالي الأداء باستخدام MTProto وFFmpeg
يشرح المقال تطوير أداة لاستخراج الفيديوهات من تليجرام باستخدام بروتوكول MTProto وFFmpeg، مع التركيز على التغلب على التحديات التقنية مثل القيود على حجم الملفات وخنق السرعة. تعتمد الأداة على محاكاة جلسات المستخدم والتواصل المباشر مع مراكز بيانات تليجرام لتحسين الأداء. يتم استخدام تقنيات مثل التحميل المتوازي والكتابة المتدفقة لتقليل استهلاك الذاكرة وتحسين زمن الاستجابة.
- ▪تليجرام يستخدم بروتوكول MTProto بدلاً من HTTP/HTTPS لنقل البيانات، مما يتطلب استدعاءات RPC معقدة لتحميل الملفات.
- ▪يتم تقسيم الملفات الكبيرة إلى أجزاء (Chunks) ويتم تخزينها في مراكز بيانات (DCs) موزعة عالميًا، مما يستدعي حساب الإزاحة والحد لاستردادها.
- ▪تعتمد الأداة على Python Asyncio وTelethon وRedis لتمكين التحميل المتوازي وتقليل استهلاك الذاكرة بنسبة تزيد عن 90%.
- ▪للتغلب على خطأ FloodWaitError، تُستخدم استراتيجيات مثل تجميع الحسابات، الانحسار الأسي، والتوزيع الذكي للطلبات.
- ▪يتم تمرير البيانات مباشرة إلى المستخدم عبر StreamingResponse دون تخزينها كاملة في الذاكرة، مما يقلل زمن الوصول لأول بايت (TTFB).
Opening excerpt (first ~120 words) tap to expand
try { if(localStorage) { let currentUser = localStorage.getItem('current_user'); if (currentUser) { currentUser = JSON.parse(currentUser); if (currentUser.id === 3686154) { document.getElementById('article-show-container').classList.add('current-user-is-article-author'); } } } } catch (e) { console.error(e); } yqqwe Posted on May 1 تفكيك بنية توزيع الوسائط في تليجرام: بناء محرك استخراج عالي الأداء باستخدام MTProto وFFmpeg #webdev #programming #telegram مقدمة كمطورين، لطالما أثارت إعجابنا الطريقة التي تدير بها المنصات العالمية توزيع كميات هائلة من البيانات الوسائطية. تليجرام ليس مجرد تطبيق مراسلة؛ بل هو، من منظور هندسي، نظام تخزين كائنات موزع ضخم يعتمد على بروتوكول تشفير مخصص يُعرف باسم MTProto.
…
Excerpt limited to ~120 words for fair-use compliance. The full article is at DEV.to (Top).