مقاطع Kick والبث السابق: ماذا يقول الرابط للمنزّل
يجيب Kick عن ثلاثة أسئلة مختلفة حسب الرابط الذي تلصقه: مقطع، أو بث سابق، أو قناة تصادف أنها مباشرة الآن. يقرأ المنزّل الرابط أولًا ويختار الصحيح.
بنية العناوين في Kick نفسها أوضح خريطة لما تحمله بين يديك. المقطع لحظة قصيرة محرّرة. والبث السابق (VOD) بث كامل مضى. وصفحة القناة ليست هذا ولا ذاك، وإن كان الباث مباشرًا في تلك اللحظة فلا شيء لتنزيله — البث المباشر لا نهاية له، فلا وجود لملف.
الروابط الثلاثة، وإلى ماذا يتحوّل كل منها
| شكل الرابط | ما يفعله المحلّل |
|---|---|
kick.com/<channel>/clips/clip_… | يقرأ واجهة المقاطع ويعيد الجودة الأصلية للمقطع. |
kick.com/<channel>/videos/<id> و /video/<id> | يقرأ واجهة الفيديو ويسرد كل نسخة تحملها قائمة التشغيل الرئيسية للبث السابق. |
kick.com/<channel> | يسرد البثوث السابقة الحديثة للقناة؛ والقناة المباشرة تجيب live بدلًا من ذلك. |
| معرّف مقطع مجرّد | يطلب القناة أولًا (need_channel)، لأن واجهة مقاطع Kick تحتاج الاثنين. |
لمعرّف المقطع شكل ثابت — clip_ يتبعه رمز على نمط ULID — لذا يستطيع المحلّل تمييزه بلا أي استدعاء شبكي. والمعرّف المجرّد لا يكفي وحده؛ فواجهة Kick تريد القناة في المسار، ولهذا يعود المعرّف الملصوق وحده طالبًا المزيد.
من أين تأتي الجودات
في البث السابق ينشر Kick قائمة تشغيل رئيسية HLS: ملف صغير يسرد كل نسخة، لكل منها دقتها ومعدّل بتها ومعدّل إطاراتها. يقرأ المحلّل تلك القائمة الرئيسية ولا شيء غيرها — لا ينزّل المقاطع، ولا يطلب من Kick ملفًا مدموجًا، لأن Kick لا يقدّم واحدًا.
- تحتفظ كل نسخة بأفضل معدّل بت متاح لدقتها، فلا تعرض القائمة مدخلين بالحجم نفسه.
- تُرتَّب المتغيّرات حسب معدّل البت، الأعلى أولًا — والصف العلوي هو المصدر.
- النسخة عند 50 إطارًا في الثانية أو أكثر تُوسم بمعدّل الإطارات، مثل
1080p60؛ وما دون ذلك يكون الوسم مجرد الارتفاع. - إذا تعذّر تحليل القائمة الرئيسية، ينتقل المحلّل إلى مدخل
sourceواحد يشير إلى قائمة التشغيل نفسها.
المقاطع أبسط: تحمل عادة ملفًا واحدًا بالجودة التي قُطع بها المقطع، ولهذا نادرًا ما يطلب منك تنزيل المقطع الاختيار.
لماذا تُرفض البثوث المباشرة
البث المباشر نافذة متدحرجة، لا ملف. يُبلّغ Kick عن القناة المباشرة كمباشرة في ثلاثة أماكن — كائن البث السابق، وقائمة فيديوهات القناة، وصفحة القناة نفسها — ويحوّل المحلّل الثلاثة إلى الإجابة نفسها: live. جرّب مقطعًا أو بثًا سابقًا بدلًا من ذلك.
وحالتان أخريان تبدوان كخطأ وليستا كذلك: processing تعني أن البث انتهى قبل دقائق ولم ينتهِ Kick من قطع البث السابق، وno_source تعني أن البث السابق أُزيل أو انتهت صلاحيته. كلتاهما حالة Kick، لا فشل في التنزيل.
لا شيء يُخزَّن
ترسل شبكات CDN الخاصة بـ Kick الترويسة access-control-allow-origin: *، فيستطيع المتصفح قراءة الملف مباشرة. يجري التنزيل في الصفحة، من حافة Kick مباشرة إلى قرصك؛ ولم يتعامل المحلّل إلا مع البيانات الوصفية. لا شيء يُعاد ترميزه أو يُوسم بعلامة مائية أو يُحتفظ به.
وملاحظة عملية: البثوث السابقة الطويلة يُفضّل حفظها على متصفح حاسوب، حيث يتدفق الملف مباشرة إلى القرص. على الهاتف يبقى بث يمتد ساعات في الذاكرة أثناء التنزيل، وقد يستسلم المتصفح قبل انتهاء الملف.
الخلاصة
- روابط المقاطع تعيد المقطع؛ وروابط البث السابق تعيد قائمة نسخ؛ وروابط القنوات تسرد البثوث السابقة الحديثة.
- تُرفض البثوث المباشرة — فلا ملف لحفظه أثناء جريان البث.
- صفوف الجودة تأتي من قائمة التشغيل الرئيسية HLS الخاصة بـ Kick، بأفضل معدّل بت لكل دقة.
- تنتقل البايتات من شبكة CDN الخاصة بـ Kick إلى متصفحك؛ ولا يحتفظ المحلّل بشيء.
أسئلة
هل يمكنني تنزيل بث Kick المباشر أثناء جريانه؟
لا. البث المباشر بلا نهاية وبلا ملف؛ يُبلّغ Kick عنه كمباشر ويرفضه المحلّل. وبمجرد انتهاء البث وإتمام Kick لمعالجته، يعمل رابط البث السابق.
لماذا تسرد البثوث السابقة عدة جودات بينما المقاطع جودة واحدة فقط؟
البث السابق يأتي بقائمة تشغيل رئيسية HLS تحمل كل نسخة رمّزها Kick، فيستطيع المحلّل سرد كل واحدة. أما المقطع فيُقطع من ملف واحد، فلا توجد عادة إلا تلك الجودة الواحدة لتقديمها.
ماذا تعني جودة `source`؟
إنها قائمة التشغيل الرئيسية نفسها، تُعرض حين يتعذّر تحليل النسخ الفردية. وهو الفيديو ذاته، لكن بلا تفصيل لكل دقة.