- YouTube ने हाल में ad-blocking विरोधी प्रयोगों को तेज़ किया है, जिससे कुछ उपयोगकर्ताओं को fake buffering जैसी स्थिति दिख रही है
- यह fake buffering विज्ञापन की लंबाई के लगभग 80% जितना वीडियो शुरू होने में विलंब पैदा करता है
- उपयोगकर्ता ad-blocking filter में कुछ खास सेटिंग जोड़कर इस प्रभाव को आंशिक रूप से bypass कर सकते हैं
- YouTube global cache और SABR protocol जैसी कई तकनीकों से ad blocker का पता लगाकर जवाब दे रहा है
- कुछ JavaScript locker scripts की वजह से browser, filter और extension के काम करने पर भी रोक जैसी स्थिति बन रही है
अवलोकन
- हाल में YouTube ने फिर से ad-blocking विरोधी फीचर लागू कर प्रयोग शुरू किया है
- A/B test के ज़रिए यह प्रयोगात्मक फीचर केवल कुछ खातों पर लागू किया जा रहा है
- उपयोगकर्ता uBlock Origin या Brave browser में ऐसे filters इस्तेमाल कर सकते हैं जो इन बदलावों से बचाते हैं (ये पहले से default filters में शामिल हैं)
fake buffering की स्थिति
- मुख्य लक्षण है वीडियो शुरू होते समय लंबा buffering, बीच में नहीं
- इस fake buffering की अवधि आम तौर पर उस समय की 80% होती है जितना समय मूल रूप से विज्ञापन देखने में लगता
- उदाहरण के लिए, अगर विज्ञापन 15 सेकंड का है तो उपयोगकर्ता को लगभग 12 सेकंड buffering झेलनी पड़ सकती है
- अगर कई विज्ञापन लगातार हों, तो उनके समय के 80% का कुल योग जितना इंतज़ार प्रभाव पैदा होता है
- ad blocker इस्तेमाल करने वाले उपयोगकर्ताओं को फिर भी समय का कुछ लाभ मिलता है
आंतरिक संरचना और काम करने का तरीका
- InnerTube YouTube का आधिकारिक internal API है, जिसका उपयोग web और mobile clients वीडियो व संबंधित जानकारी तक पहुँचने के लिए करते हैं
- वीडियो stream GVS(Google Video Services) के ज़रिए भेजी जाती है, और उसके links समय-सीमा पूरी होने पर दोबारा generate करने पड़ते हैं
- YouTube network load को optimize करने के लिए Google Global Cache servers का भी उपयोग करता है
- पहले वीडियो range को साधारण query parameter से सेट किया जाता था, लेकिन हाल में SABR(Server ABR) नाम का proprietary binary protocol इस्तेमाल हो रहा है
- ज़रूरत पड़ने पर SABR backoff (विलंब निर्देश) भेजता है, जिससे client को कुछ समय इंतज़ार करना पड़ता है
fake buffering वास्तव में क्यों होता है
- ad blocker detection होने पर, InnerTube GVS stream में विज्ञापन लंबाई के 80% के बराबर backoff शामिल करता है
- यह backoff ad blocker के उपयोग से अलग, यदि उपयोगकर्ता A/B test group में है तो हमेशा लागू होता है
- जिन उपयोगकर्ताओं के विज्ञापन block नहीं होते, उनके लिए backend content video को पहले ही load कर देता है, इसलिए उन्हें यह विलंब महसूस नहीं होता
- "Experiencing interruptions" जैसे alerts लंबे backoff के कारण दिखाई देते हैं
- web पर फैली "CPU overload issue" जैसी बातें सच नहीं हैं
विज्ञापनों को मूल स्तर पर block करने का तरीका
- ad stream खुद प्राप्त न करने के लिए
isInlinePlaybackNoAd property को true पर सेट किया जा सकता है
- यदि JSON request में
"isInlinePlaybackNoAd":true शामिल हो, तो InnerTube विज्ञापन और backoff दोनों शामिल नहीं करता
- uBlock Origin user filters में संबंधित rule जोड़कर इसे अपने-आप लागू किया जा सकता है
- यह property frontend JavaScript और Protocol Buffers definitions में भी देखी जा सकती है
सीमाएँ और side effects
- यह तरीका केवल पहले से load किए गए YouTube single-page app के भीतर navigation (warm loading) में ही bypass किया जा सकता है
- पहली बार प्रवेश (cold loading) पर backend से मिले शुरुआती data की वजह से यह लागू नहीं हो पाता
- शुरुआती data को ज़बरदस्ती हटाने की कोशिश live stream, page speed, user experience आदि में कई समस्याएँ पैदा करती है
locker script का bypass
- YouTube कुछ प्रयोग समूहों में `` tag के ऊपर ऐसी locker script डालता है जो global objects को बदले न जा सकने वाली स्थिति में ले जाती है
- uBlock Origin जैसे extensions केवल उस script के चलने से पहले ही object hooking कर सकते हैं
- Firefox HTML filtering के ज़रिए इसे bypass कर सकता है, लेकिन Chromium browsers इस तरीके को support नहीं करते
- इसके जवाब में Object.assign hooking के ज़रिए filter bypass किया जा सकता है
- इस तरीके का उपयोग करने पर advanced Proxy फीचर से
"isInlinePlaybackNoAd":true डालना संभव है
1 टिप्पणियां
Hacker News की राय
हाल में YouTube को पूरी तरह छोड़ देने का अनुभव साझा किया गया। पहले यह उपयोगकर्ता हर दिन कई घंटे तक शैक्षिक और विज्ञान से जुड़ा बेहतरीन कंटेंट देखता था, लेकिन बाद में एहसास हुआ कि वास्तव में इसकी ज़रूरत नहीं थी। साथ ही, विज्ञापनों से मुक्त एक साफ़ अनुभव मिलने की बात भी कही गई। अगर कोई YouTube वीडियो भेज दे तो कभी-कभी देख लेते हैं, लेकिन अब जानबूझकर साइट पर नहीं जाते। सबको ज़ोरदार सलाह दी गई कि YouTube जैसे passive entertainment की खपत कम करके समय को रचनात्मक और सजग गतिविधियों की ओर मोड़ें.
यह भी कहा गया कि बस पैसे देकर सेवा ली जा सकती है। पूरा परिवार subscription plan इस्तेमाल कर रहा है और विज्ञापन-मुक्त माहौल में है। इसे काफ़ी किफ़ायती माना गया। मोटरसाइकिल build project वीडियो के बिना भी पूरा किया जा सकता है, लेकिन ऐसा करने की ज़रूरत ही क्या है, ऐसा विचार रखा गया.
Netflix भी इसी तरह छोड़ा गया, Prime भी रद्द कर दिया गया और Amazon का इस्तेमाल लगभग बंद कर दिया, हालांकि AWS डेटा की वजह से व्यावहारिक रूप से छोड़ना संभव नहीं, इसलिए वह अपवाद है। YouTube को ad-free plan के साथ इस्तेमाल किया जा रहा है, और अगर उसने ad-free का वादा तोड़ा तो YouTube भी स्थायी रूप से बंद करने की सूची में होगा.
YouTube account हटाकर Patreon पर चले गए। Patreon पर subscribe किए गए creators के वीडियो की notifications अब भी YouTube पर मिल जाती हैं और उन्हें देखा जा सकता है। इससे कंटेंट देखने का तरीका कहीं अधिक इरादतन और उच्च-गुणवत्ता वाला हो गया.
यह भी कहा गया कि बड़ी आबादी इन platforms की लत में फँसी हुई है। इसे ‘सिगरेट 2.0’ के दौर से तुलना की गई.
एक सुझाव यह भी था कि बेहतरीन science programs PBS और Nebula जैसे platforms पर भी बहुत मिलते हैं.
एक राय यह थी कि जब तक Google विज्ञापनों को जबरन थोपता रहेगा, तब तक हमें दिखाए जाने वाले विज्ञापनों की अनुपयुक्तता और धोखाधड़ी वाले ads पर और अधिक संवेदनशील नज़र रखनी चाहिए। खासकर तब, जब ad blocking ही अपने परिवार और खुद को हानिकारक विज्ञापनों से बचाने का एकमात्र तरीका बन जाए, तो Google से उसके प्रसारित विज्ञापनों के लिए अधिक ज़िम्मेदारी की मांग करना जायज़ है.
हाल के YouTube ads का स्तर इतना खराब और अनुपयुक्त हो गया है कि लोग हैरान हैं। यह राय भी आई कि executives KPI, bonus और promotion के लिए standards को बेहद नीचे ला रहे हैं। किसी ने mobile पर thumbnail में porn ads तक देखने का अनुभव बताया, और इसे पुराने Evony Online ads से भी बदतर कहा। इसे YouTube के growth stagnation का संकेत माना गया.
TV broadcasting में ad time अपेक्षाकृत नियंत्रित रहता है, लेकिन YouTube पर बहुत घटिया और लंबे विज्ञापन आते हैं। कभी-कभी background playback के दौरान 5-second skippable ad पार करने के बाद भी 30 मिनट, यहाँ तक कि उससे भी लंबे infomercials घुस आते हैं। ऐसे लंबे विज्ञापन देखने के flow को अनजाने में बाधित करते हैं, फिर भी इन्हें अनुमति देना अजीब और लगभग आपराधिक लगता है। अनुमान लगाया गया कि ऐसे ads लाने के लिए YouTube भारी ad fee लेता होगा.
यह सिद्धांत रखा गया कि content creation और platform निर्माण में लगने वाले प्रयास और श्रम का उचित प्रतिफल मिलना चाहिए। किताबें, फ़िल्में, TV, news—हर तरह के कंटेंट में या तो पैसे देकर या विज्ञापन देखकर किसी न किसी रूप में कीमत चुकानी पड़ती है। यदि विज्ञापन पसंद नहीं हैं, तो paid subscription लेने की सलाह दी गई.
ad blocker developers के सम्मान में ‘Thin Adblock Writer Line’ का कोई झंडा होता, तो उसे गाड़ी पर लगा लिया जाता—ऐसा हल्के-फुल्के अंदाज़ में समर्थन जताया गया.
बस premium plan के पैसे दे देने का सुझाव भी दिया गया, और यह भी कि किसी को YouTube इस्तेमाल करने के लिए मजबूर नहीं किया जा रहा.
Firefox में HTML filter के ज़रिए ads को आसानी से block किया जा सकता है, यह बात कही गई। साथ ही इस बात पर हैरानी जताई गई कि Chromium में extension API न होने की वजह से यह तरीका संभव नहीं, और इस development environment के अंतर ने चौंका दिया.
हाल में YouTube पर buffering delay बार-बार महसूस हो रही है, लेकिन एक राय यह थी कि इससे बहुत असुविधा नहीं होती। विज्ञापन परेशान इसलिए करते हैं क्योंकि वे समय नहीं, बल्कि अनचाहा audio और video जबरन दिखाते-सुनाते हैं। 12-second buffering के दौरान बस email देख लेने या थोड़ी देर खाली बैठ जाने जैसी आदत बन गई है। बल्कि बार-बार buffering होने लगे तो दिमाग उसे अपने-आप ignore करने लगता है। उल्टा, अगर यह 5 में 1 बार जैसा कभी-कभार हो, तो शायद ज़्यादा परेशान करे.
एक बुनियादी सवाल उठाया गया: ‘हम ad blocking को सही क्यों ठहराते हैं? कंटेंट की लागत होती है, storage और distribution में भी पैसा लगता है, तो ad blocking के लिए कोई नैतिक आधार या entitlement क्यों महसूस होना चाहिए?’ अगर वजह सिर्फ़ विज्ञापन से असहजता है, तो खुद से यह भी पूछना चाहिए कि ‘हम free चीज़ों को अपना अधिकार क्यों मान लेते हैं?’ यह नैतिक निर्णय नहीं, बल्कि समझने के लिए पूछा गया सवाल बताया गया.
पहले Google AdSense में प्रति पेज 3 ads की सीमा थी और उल्लंघन पर suspension तक हो सकता था, लेकिन अब एक web page पर 10, 15 या उससे भी अधिक ads भरे होते हैं। YouTube भी शुरुआती banner से शुरू होकर pre-roll, mid-roll, in-video sponsored segments, और premium subscribers के लिए भी नीचे ads तक से भर गया है। Google Search तक में ऊपर का हिस्सा ads से भर जाता है और organic results देखने के लिए scroll करना पड़ता है। free use का अधिकार जताने की बात नहीं है, लेकिन ‘अब यह हद से ज़्यादा हो गया’ इस सोच से सभी devices पर ad blocker इस्तेमाल करने की बात कही गई.
‘हम free चीज़ों पर अधिकार क्यों महसूस करते हैं?’ इस सवाल को ही वास्तविक users की सोच से अलग बताया गया। तर्क यह था कि लोग ऐसा इसलिए करते हैं क्योंकि वे कर सकते हैं और करना चाहते हैं; इसे रोकने के लिए नैतिक कारण चाहिए। किसी पर भी ads देखना नैतिक कर्तव्य नहीं है। बल्कि विज्ञापन मानवीय ध्यान को manipulate करके लाभ उठाते हैं, स्वभाव से ही intrusive और privacy-invasive होते हैं, इसलिए उन्हें मूलतः बाध्यकारी अनुबंध नहीं माना जा सकता.
यह भी कहा गया कि Google ऊपर से users के हितैषी होने का दिखावा करता है, लेकिन व्यवहार में increasingly hostile और anti-competitive होता जा रहा है, इसलिए ad blocking मानो युद्ध में हथियार उठाने जैसा है। पहले ads को block करना कठिन या असंभव था, लेकिन आज जिन चीज़ों को block किया जाता है उनमें से ज़्यादातर वास्तव में ad-surveillance hybrid हैं। संबंधित लेख और अतिरिक्त पृष्ठभूमि के लिंक भी दिए गए.
यह भी इंगित किया गया कि YouTube creators को कुल revenue का 55% मिलता है। Google के विशाल लाभ-केंद्रित ढाँचे की आलोचना के बावजूद, वास्तविकता यह है कि बड़े खर्चों का प्रमुख हिस्सा creators तक जाता है। Patreon जैसे support models में सक्रिय भागीदारी केवल कुछ बेहद समर्पित fans ही करते हैं, जबकि अधिकांश users मुफ्त दावत खाकर रेस्तराँ की शिकायत करने वालों की तरह लागत उठाने से बचते हैं.
यह आपत्ति उठाई गई कि
Object.definePropertyका उपयोग करके global object की properties को immutable बना देना और इस तरह bait objects के ज़रिए block evasion करना browser या spec स्तर की गंभीर खामी है। तर्क यह था कि page content और scripts को browser extensions की कार्यक्षमता सीमित करने में सक्षम नहीं होना चाहिए.एक व्यक्ति ने कहा कि ad blocking का मुख्य उद्देश्य distraction और context switching से बचना है। विज्ञापनों से पैदा होने वाला information overload पहले से मौजूद ऊँचे cognitive load पर और बोझ डालता है, इसलिए इसे सहना मुश्किल लगता है.
इस पर सवाल उठा कि YouTube देखते समय cognitive load ऊँचा कैसे हो सकता है। मज़ाकिया अंदाज़ में पूछा गया कि क्या बीच-बीच में कोई heart transplant surgery training video देखकर वास्तविक सर्जरी की जा रही है.
यह राय भी दी गई कि केवल $13 प्रति माह देकर context switching की चिंता से आसानी से बचा जा सकता है। अगर cognitive load सचमुच इतना अधिक है, तो शायद कमाई भी पर्याप्त होगी, इसलिए यही ज़्यादा efficient समाधान है.
एक व्यक्ति ने सादा तौर पर अपना अनुभव साझा किया कि ads हटाने और content creators की आय बरक़रार रखने के लिए उनका पूरा परिवार खुशी-खुशी Youtube Premium का भुगतान करता है.
इसके जवाब में किसी ने कहा कि वह इस सोच से बिल्कुल सहमत नहीं है और Newpipe का इस्तेमाल करता है, बिना एक पैसा खर्च किए ad-free अनुभव ले रहा है.
किसी ने यह भी कहा कि समझ नहीं आता कि ऊपर की बात व्यंग्य थी या नहीं, लेकिन अगर वह गंभीर थी, तो यह देखकर आश्चर्य होता है कि कोई इंटरनेट के बड़े ज़मींदारों को इतनी खुशी और स्वेच्छा से अतिरिक्त पैसा देता है.
एक राय यह थी कि हैरानी होती है कि YouTube अभी तक ads को सीधे video stream में inject नहीं करता। HLS/DASH environment में बीच में कंटेंट आसानी से जोड़ा जा सकता है, इसलिए अगर stream में ही ads शामिल कर दिए जाएँ तो ad blocking बहुत कठिन हो जाएगी। साथ ही, अगर playback speed के हिसाब से packet delivery सीमित की जाए, तो पहले से download करके बच निकलने के रास्ते भी रोके जा सकते हैं.
इसके जवाब में कहा गया कि ऐसे environment में भी HLS hardware स्तर पर इतनी व्यापक रूप से optimized है कि targeted ads के लिए अतिरिक्त computation जोड़ने पर लागत बहुत बढ़ सकती है। Netflix के streaming edge server performance optimization materials देखने की भी सलाह दी गई.
यह विश्लेषण भी था कि YouTube बहुत तेज़ बदलाव करने के बजाय धीरे-धीरे चीज़ें लागू करना चाहता है। अनुमान लगाया गया कि जल्द ही stream में सीधे ad insertion वाला परिदृश्य सामने आएगा। अभी ads और video streams अलग हैं, लेकिन server-side ad insertion के experiment अलग से पहले ही चल रहे हैं.
SponsorBlock, Tubular जैसे timestamp-based crowdsourced ad blocking approaches का भी ज़िक्र हुआ। यह विश्वास जताया गया कि आगे चलकर on-device real-time AI content recognition ad blocking भी आएगा, इसलिए कितना भी रोक लें, ad blocking इतनी आसानी से खत्म नहीं होगी.
यह भी साझा किया गया कि YouTube अभी वास्तव में server-based ad insertion (SSAI) का A/B test चला रहा है, हालांकि वक्ता ने स्वयं अब तक ऐसे ads अनुभव नहीं किए हैं.
अंत में यह तर्क दिया गया कि client जिस तरह ads को वीडियो में जोड़ सकता है, उसी तरह उन्हें काट भी सकता है। SponsorBlock जैसी crowd-database प्रणाली हो तो ad detection काफ़ी संभव है, और stream ads को भी bypass करके block किया जा सकता है.