- YouTube Embeds का आकार लगभग 1.3MB होता है और कई embeds के बीच resources साझा नहीं करते
<lite-youtube> web component का उपयोग करने पर यह लगभग 100k तक घट जाता है, resources साझा करता है, और functionality से समझौता नहीं करता
YouTube वीडियो embed
- YouTube वीडियो को वेबसाइट में embed किया जा सकता है
- YouTube के Share मेनू में < > Embed विकल्प चुनने पर
<iframe> शामिल HTML code दिया जाता है
<iframe> performance के लिए अच्छा नहीं है, लेकिन संरक्षित third-party content के लिए उपयुक्त है
performance सुधारने के सुझाव
loading="lazy" attribute जोड़ें ताकि वीडियो दिखाई न देने पर तुरंत load न हो
- inline style जोड़ें ताकि वीडियो का मूल ratio बना रहे और वह fluid रहे
मौजूदा YouTube Embed की समस्याएँ
- सिर्फ एक YouTube Embed वाले page में 32 requests, 1.3MB data transfer, और 2.76 सेकंड load time लगता है
- कई embeds के बीच resources साझा नहीं होते, इसलिए embed की संख्या बढ़ने पर data transfer रैखिक रूप से बढ़ता है
appearance और functionality
- YouTube Embed वीडियो की "poster" image, वीडियो title, और बड़ा play button देता है
- इन features को बहुत अधिक resources के बिना भी लागू किया जा सकता है
ऐसा क्यों है?
- हल्के embeds का परीक्षण किया गया था, लेकिन engagement घटने की रिपोर्ट मिली
- हालांकि यह परिणाम सहज समझ के खिलाफ है और इसकी गहराई से समीक्षा की जरूरत है
- बहुत अधिक resources का उपयोग पर्यावरण की दृष्टि से भी समस्या है
समाधान: embed अनुभव को दूसरे तरीके से दोहराना
- Google के Paul Irish द्वारा बनाया गया
lite-youtube-embed web component मौजूद है
- यह component visual performance पर केंद्रित है और लगभग 224 गुना तेज render होता है
- यह default embed जैसी ही functionality देते हुए speed, efficiency, और default privacy में सुधार करता है
Lite YouTube Embed का उपयोग कैसे करें
- web component को initialize करने वाला JavaScript जोड़ें
- उपयोग करें
- npm से install किया जा सकता है या project में copy करके इस्तेमाल किया जा सकता है
- CDN से link करके भी इस्तेमाल किया जा सकता है
विकल्प
- Shadow DOM version (style protection, styling कठिन)
- खुद implement करना
- Raymond Camden: YouTube Embed web component build करना (vanilla और WebC version)
- Adrian Roselli: YouTube और Vimeo web components
- Mux:
<youtube-video> (DOM API से मेल खाता है)
- React port और Next.js का आधिकारिक version
GN⁺ का सार
- YouTube Embed बहुत अधिक resources का उपयोग करता है, जिससे performance पर नकारात्मक असर पड़ता है
lite-youtube-embed जैसे web component का उपयोग करने से performance में बड़ा सुधार हो सकता है
- इसका पर्यावरण पर भी सकारात्मक प्रभाव हो सकता है
- समान functionality देने वाले अन्य web components पर भी विचार किया जा सकता है
2 टिप्पणियां
lite-youtube-embed - और तेज़ YouTube embed
Hacker News राय
कम्युनिटी फ़ोरम प्लेटफ़ॉर्म पर YouTube embed का पता लगाकर उसे क्लिक करने तक लोड न होने वाले proxy thumbnail से बदल दिया जाता है
लेखक यह नहीं मानता कि हल्का version engagement कम करता है
यह हैरानी की बात नहीं है कि अलग player users के साथ अलग तरह से व्यवहार करते हैं
यह इस गलत धारणा का उदाहरण है कि developers ठीक-ठीक जान सकते हैं कि users software का उपयोग कैसे करते हैं
bloggers को GitHub Gist embeds का उपयोग न करने के लिए मजबूर करने की ज़रूरत है
embed का कुल भार कम करने और UX बेहतर करने का एक तरीका ads को block करना है
ublock users के लिए user-side solution के रूप में click 2 load का उपयोग किया जा सकता है
ऐसे test results हैं जिनमें हल्के embeds engagement कम करते हैं
embedded वीडियो, YouTube server की files की ओर इशारा करने वाला <video> element हो सकता है
embeds की संख्या बढ़ने पर भार रैखिक रूप से बढ़ता है
lite youtube embed के विकल्प के रूप में मैं अपना solution साझा कर रहा हूँ