يوتيوب oneboxing هو شيء قمنا بإنشائه خصيصًا. يحتاج شخص ما إلى تقديم pr-welcome لتوافق shorts. الانتقال إلى Feature
في هذه الأثناء، يمكنك دائمًا إضافة عنوان URL الخاص بـ iframe يدويًا إلى إعداد الموقع allowed iframes:
هل يمكنك فقط إخباري بعنوان URL الذي يجب أن أضيفه في iframes المسموح بها لكي يتم عرض الفيديو كما فعلت؟ سيؤدي ذلك إلى إنجاز المهمة بشكل مثالي في الوقت الحالي، حتى لو كان طويلاً بالفعل.
بالنسبة لارتفاع الفيديو، من الممكن جعله أقل ارتفاعًا عن طريق تعيين max-height باستخدام CSS على iframe. المشكلة هي أن iframe ليس لديه أي سمة من أي نوع تحدد أنه فيديو قصير (عمودي).
إذا كتبت في منشوري https://www.youtube.com/shorts/SWeTMdyv50Q، فلن يعمل.
إذا كتبت <iframe>https://www.youtube.com/shorts/SWeTMdyv50Q</iframe>، فلن يعمل.
إذا كتبت https://www.youtube.com/embed/SWeTMdyv50Q، فسيعمل، ولكنه سيعرض الفيديو القصير بنسبة العرض إلى الارتفاع القياسية لفيديو يوتيوب (وهو أمر جيد بالنسبة لي، على الرغم من أنني أفضل الحصول على نسبة أخرى وعدم الاضطرار إلى كتابة “embed” يدويًا في عنوان URL):
أيضًا، استبدال /shorts/ بـ watch?v=، وهو عنوان URL الافتراضي لمقطع فيديو على يوتيوب، يعمل.
لذلك، في يوتيوب، على https://www.youtube.com/shorts/SWeTMdyv50Q، سيؤدي النقر بزر الماوس الأيمن → نسخ عنوان URL للفيديو إلى العمل لأنه يُرجع https://youtu.be/SWeTMdyv50Q والذي يتم عرضه بشكل صحيح في Discourse (بنسبة العرض إلى الارتفاع الواسعة العادية على الرغم من ذلك).
لقد فعلتها على الرغم من أنني ربما أفسدت طلب السحب الخاص بي قليلاً لأنه لسبب ما، ما زلت غير معتاد على GitHub… أحتاج حقًا إلى قراءة الدليل (ويخبرني صديق، إنشاء فروع من تفرعي في Discourse…).
للعلم فقط، لقد قمت للتو بتحرير الملف lib\\onebox\\engine\\youtube_onebox.rb لإضافة
# https://www.youtube.com/shorts/wi2jAtpBl0Y
if uri.path["/shorts/"]
id ||= uri.path[/\\/shorts\\/([\\w\\-]+)/, 1]
end
أتساءل فقط عما إذا كان سيكون من الأسهل تغيير هذا الرابط؟ لأن youtube.com/shorts/something هو نفس الشيء تمامًا مثل youtube.com/embed/something، ومع /embed/ يعمل تضمين/تضمين الروابط بشكل جيد هنا.
ما زلت لا أفهمك. من سيغير عنوان URL؟ الناشر؟ لكن الناشر لا يريد إعادة كتابة جزء من عنوان URL يدويًا (لن يعرفوا حتى لماذا لا يتم تضمين الفيديو)، فهم يريدون فقط النسخ واللصق، وفجأة، يعمل الأمر.
تعديل: أم تقصد أن كود Oneboxing الخاص بـ Discourse سيستبدل /shorts/ بـ /embed/؟
it \"can parse youtube shorts results\" do
preview = expect(Onebox.preview('https://www.youtube.com/watch?v=wi2jAtpBl0Y').placeholder_html)
preview.to match(/reacts/)
preview.to match(/hqdefault/)
end