- YouTube baru-baru ini memperkuat eksperimen anti-pemblokiran iklan, sehingga pada sebagian pengguna muncul gejala buffering palsu
- Buffering palsu ini bekerja dengan cara menunda mulai video sekitar 80% dari durasi iklan
- Pengguna dapat menghindari sebagian efek ini dengan menambahkan pengaturan tertentu pada filter pemblokir iklan
- YouTube mendeteksi dan merespons pemblokiran iklan dengan berbagai teknologi seperti global cache dan protokol SABR
- Karena beberapa skrip penguncian JavaScript, juga muncul pembatasan pada cara kerja browser, filter, dan ekstensi
Gambaran umum
- Baru-baru ini YouTube kembali memperkenalkan dan menguji fitur anti-pemblokiran iklan
- Melalui A/B test, fitur eksperimental ini hanya diterapkan pada sebagian akun
- Pengguna dapat memakai filter di uBlock Origin atau browser Brave untuk menghindari perubahan ini (sudah termasuk dalam filter bawaan)
Fenomena buffering palsu
- Gejala utamanya adalah buffering yang lebih lama saat video mulai diputar (tidak terjadi di tengah pemutaran)
- Durasi buffering palsu ini setara dengan 80% dari waktu iklan yang seharusnya ditonton
- Misalnya jika iklannya 15 detik, pengguna akan mengalami buffering sekitar 12 detik
- Jika ada beberapa iklan berurutan, efek tunggunya terjadi sebesar total 80% dari masing-masing durasi tersebut
- Pengguna pemblokir iklan tetap memperoleh keuntungan waktu
Struktur internal dan cara kerja
- InnerTube adalah API internal resmi YouTube yang dipakai klien web dan mobile untuk mengakses video serta informasi terkait
- Stream video dikirim melalui GVS(Google Video Services), dan tautannya memiliki masa berlaku sehingga perlu dibuat ulang
- YouTube juga memanfaatkan server Google Global Cache untuk mengoptimalkan beban jaringan
- Dulu rentang video cukup ditentukan lewat query parameter, tetapi belakangan digunakan protokol biner milik sendiri bernama SABR(Server ABR)
- SABR dapat mengirim backoff (perintah penundaan) saat diperlukan, sehingga klien diarahkan untuk menunggu selama waktu tertentu
Penyebab sebenarnya buffering palsu
- Saat pemblokiran iklan terdeteksi, InnerTube menyertakan backoff sebesar 80% dari durasi iklan pada stream GVS
- Backoff ini selalu diterapkan jika termasuk dalam grup A/B test, terlepas dari ada atau tidaknya pemblokiran iklan
- Pengguna yang tidak memblokir iklan tidak merasakan penundaan ini karena backend lebih dulu memuat content video
- Notifikasi seperti "Experiencing interruptions" muncul akibat backoff jangka panjang
- Isu yang beredar di web seperti "masalah beban CPU berlebih" sebenarnya tidak benar
Cara memblokir iklan dari sumbernya
- Untuk tidak menerima stream iklan itu sendiri, properti
isInlinePlaybackNoAd dapat diatur ke true
- Jika permintaan JSON berisi item
"isInlinePlaybackNoAd":true, InnerTube tidak akan menyertakan iklan maupun backoff
- Aturan terkait dapat disisipkan ke filter pengguna uBlock Origin agar diterapkan secara otomatis
- Properti ini dapat dikonfirmasi di JavaScript frontend dan definisi Protocol Buffers
Batasan dan efek samping
- Cara ini hanya bisa melewati pemblokiran pada navigasi (warm loading) di dalam aplikasi single-page YouTube yang sudah dimuat
- Saat pertama kali masuk (cold loading), cara ini tidak bisa diterapkan karena adanya data awal yang diberikan backend
- Upaya menghapus data awal secara paksa menimbulkan berbagai masalah seperti live stream, kecepatan halaman, dan pengalaman pengguna
Melewati pemblokiran dari Locker Script
- Pada sebagian grup eksperimen, YouTube menyisipkan skrip penguncian yang membuat objek global tidak bisa dimodifikasi di bagian atas tag ``
- Ekstensi seperti uBlock Origin hanya bisa melakukan hooking objek sebelum skrip tersebut dijalankan
- Firefox dapat mengatasinya lewat HTML filtering, tetapi browser Chromium tidak mendukung cara ini
- Sebagai tanggapan, filter dapat melewatinya dengan metode hooking
Object.assign
- Dengan metode ini, fitur Proxy tingkat lanjut dapat digunakan untuk menyisipkan
"isInlinePlaybackNoAd":true
1 komentar
Opini Hacker News
Berbagi pengalaman baru-baru ini benar-benar berhenti dari YouTube; dulu termasuk pengguna yang menonton sangat banyak sampai beberapa jam per hari untuk konten edukatif/ilmiah yang bagus, tetapi rasanya seperti menyadari bahwa itu sebenarnya tidak diperlukan, plus hidup jadi terasa lebih bersih tanpa iklan; kalau ada orang yang mengirim video YouTube kadang masih ditonton, tetapi tidak lagi sengaja membuka situsnya; sangat merekomendasikan semua orang untuk mengurangi konsumsi hiburan pasif seperti YouTube dan mengalihkan waktu ke aktivitas yang lebih kreatif dan sadar
Ada juga pendapat bahwa cukup bayar saja; seluruh keluarga memakai paket langganan dan hidup tanpa iklan, terasa sangat sepadan, dan meski proyek modifikasi motor mungkin tetap bisa diselesaikan tanpa video, rasanya tidak perlu memaksakan itu
Sudah berhenti dari Netflix dengan cara yang sama, membatalkan Prime dan sekaligus berhenti memakai Amazon secara keseluruhan; tentu AWS jadi pengecualian karena data membuatnya praktis tidak mungkin ditinggalkan; YouTube dipakai dengan paket bebas iklan, dan kalau sampai melanggar janji bebas iklan maka YouTube juga akan dihentikan permanen
Menghapus akun YouTube dan pindah ke Patreon; untuk video kreator yang didukung di Patreon, notifikasi masih diterima dan videonya tetap bisa ditonton di YouTube, sehingga konsumsi konten jadi jauh lebih disengaja dan berkualitas lebih tinggi
Menyebut kenyataan bahwa populasi besar sudah kecanduan pada platform-platform seperti ini, dan menyebut era sekarang sebagai ‘rokok 2.0’
Ada tips bahwa program sains terbaik juga banyak tersedia di platform seperti PBS dan Nebula
Selama Google terus memaksakan iklan, kita harus lebih peka dalam memperhatikan dan mengawasi ketidaklayakan serta sifat penipuan dari iklan yang kita lihat; khususnya ketika pemblokir iklan menjadi satu-satunya cara melindungi diri sendiri dan keluarga dari iklan berbahaya, maka Google harus dimintai tanggung jawab lebih besar atas iklan yang mereka tayangkan
Belakangan ini kualitas iklan YouTube sangat rendah dan tidak pantas sampai mengejutkan; para eksekutif tampak menurunkan standar serendah mungkin demi KPI, bonus, atau promosi; bahkan pernah melihat iklan porno dalam thumbnail di ponsel, sampai terasa lebih parah daripada iklan Evony Online dulu; ini dipandang sebagai tanda bahwa YouTube mulai mengalami stagnasi pertumbuhan
Di siaran TV durasi iklan dikelola dengan tetap, sedangkan di YouTube terlalu banyak iklan buruk dan durasinya panjang; kadang saat memutar di latar belakang, setelah melewati iklan 5 detik yang bisa di-skip, malah muncul infomersial 30 menit atau bahkan lebih lama; aneh dan hampir terasa kriminal bahwa iklan panjang seperti ini diizinkan mengganggu alur tontonan secara tidak sengaja, dan diduga YouTube menerima biaya iklan yang sangat besar untuk menayangkannya
Prinsipnya, usaha dan kerja untuk membuat konten serta membangun platform memang pantas mendapat kompensasi; semua konten seperti buku, film, TV, dan berita pada dasarnya menuntut bayaran, entah lewat uang atau menonton iklan; kalau tidak suka iklan, disarankan berlangganan berbayar
Ada dukungan santai bahwa jika ada bendera ‘Thin Adblock Writer Line’ untuk memuji para pengembang pemblokir iklan, bendera itu sudah pasti akan dipasang di mobil
Usulan sederhana bahwa cukup bayar paket premium; tidak ada yang memaksa siapa pun untuk memakai YouTube
Menyebut bahwa pemblokiran iklan bisa dilakukan dengan mudah lewat filter HTML di Firefox, dan terkejut mengetahui bahwa cara ini tidak mungkin di Chromium karena tidak ada API ekstensi yang mendukung, sehingga perbedaan lingkungan pengembangan terasa mengejutkan
Sering mengalami keterlambatan buffering di YouTube belakangan ini, tetapi sebenarnya tidak terlalu mengganggu; yang menjengkelkan dari iklan bukan soalnya waktu, melainkan pemaksaan audio dan video yang sejak awal tidak diinginkan; selama buffering 12 detik cukup memeriksa email atau bengong sebentar sehingga terasa sebagai adaptasi alami; malah kalau buffering terus-menerus, otak terasa otomatis belajar mengabaikannya; justru kalau hanya sesekali, misalnya 1 dari 5 kali, mungkin malah lebih mengganggu
Mengajukan pertanyaan mendasar: ‘mengapa kita merasa pemblokiran iklan itu layak? konten ada biayanya, penyimpanan dan distribusi juga butuh uang, jadi adakah dasar moral atau rasa hak istimewa untuk memblokir iklan?’; kalau alasannya semata karena iklan terasa menjengkelkan, mungkin kita juga perlu bertanya pada diri sendiri ‘mengapa kita menganggap gratis itu sewajarnya?’; ini bukan penilaian moral, hanya pertanyaan untuk benar-benar memahami
Dulu Google AdSense membatasi hanya 3 iklan per halaman dan pelanggaran bisa menyebabkan suspend, tetapi sekarang satu halaman web bisa ditanami 10, 15, atau lebih banyak iklan; YouTube juga berkembang dari banner awal menjadi iklan sebelum video, iklan tengah video, segmen sponsor di dalam konten sendiri, bahkan iklan bawah untuk pelanggan premium; pencarian Google pun dipenuhi iklan di bagian atas sampai hasil organik baru muncul setelah scroll; bukan berarti ingin mengklaim hak untuk menggunakan semua ini secara gratis, tetapi karena rasanya ‘sudah kelewatan’, akhirnya memakai adblock di semua perangkat
Menunjukkan bahwa pertanyaan “mengapa kita merasa berhak atas yang gratis?” sendiri berbeda dari cara pikir pengguna nyata; orang melakukannya karena bisa dan karena ingin, jadi justru perlu ada alasan etis untuk melarangnya; tidak ada kewajiban moral bagi seseorang untuk harus menonton iklan; malah iklan dijelaskan sebagai sesuatu yang pada dasarnya manipulatif, merampas privasi, dan mengambil keuntungan dengan memanipulasi perhatian manusia, sehingga bukan kontrak yang bisa dipaksakan sejak awal
Google berpura-pura berpihak pada pengguna padahal dalam praktiknya makin bersifat memusuhi dan anti-persaingan, sehingga pemblokiran iklan dianalogikan seperti mengangkat senjata dalam perang; dulu iklan memang sulit atau mustahil diblokir, tetapi sebagian besar yang diblokir hari ini sebenarnya adalah hibrida iklan-dan-pengawasan; disertakan tautan artikel terkait dan bacaan latar tambahan
Menunjukkan bahwa kreator YouTube menerima 55% dari total pendapatan; di tengah kritik terhadap struktur Google yang berpusat pada laba besar, kenyataannya sebagian besar biaya utama memang kembali ke kreator; dukungan aktif seperti lewat Patreon hanya dijalankan oleh sebagian kecil penggemar fanatik, sementara mayoritas pengguna yang menikmati jamuan gratis sambil terus mengeluh tentang restorannya sebenarnya sedang menghindari ikut menanggung biaya
Menunjukkan bahwa cara kerja skrip yang memakai
Object.definePropertyuntuk membuat properti pada global object menjadi tak dapat diubah sehingga memungkinkan penghindaran pemblokiran lewat objek umpan, merupakan cacat serius pada browser atau bahkan spesifikasinya; halaman dan skrip seharusnya tidak boleh dapat membatasi fungsi ekstensi browserMenjelaskan bahwa tujuan utama pemblokiran iklan adalah mencegah distraksi dan perpindahan konteks; beban informasi dari iklan menambah ketidaknyamanan di atas beban kognitif yang sudah tinggi, sehingga sulit ditoleransi
Ada yang balik bertanya bagaimana mungkin beban kognitif bisa tinggi saat menonton YouTube, sambil bercanda apakah yang sedang diamati itu video pelatihan bedah sungguhan atau bahkan operasi transplantasi jantung
Ada pendapat bahwa cukup bayar $13 per bulan dan masalah perpindahan konteks selesai dengan mudah; kalau beban kognitif memang setinggi itu, mestinya penghasilannya juga cukup tinggi sehingga itu justru lebih efisien
Disampaikan secara lugas pengalaman seseorang yang dengan senang hati membayar Youtube Premium untuk seluruh keluarga demi menghapus iklan dan tetap menjaga pendapatan para pembuat konten
Ada yang sama sekali tidak setuju dan memakai Newpipe, menikmati tanpa iklan tanpa mengeluarkan sepeser pun
Meski sulit menebak apakah komentar sebelumnya satir atau tidak, kalau itu serius maka terasa mengejutkan melihat seseorang begitu cerah dan sukarela membayar uang tambahan kepada tuan tanah besar internet
Ada pendapat bahwa mengejutkan YouTube belum langsung menyuntikkan iklan ke dalam stream video; di lingkungan HLS/DASH, konten di tengah stream bisa disisipkan dengan mudah sehingga kalau iklan dimasukkan ke stream, pemblokirannya akan jadi lebih sulit; selain itu, kalau pengiriman paket dibatasi mengikuti kecepatan pemutaran, akal-akalan mengunduh lebih dulu untuk menghindarinya juga bisa dicegah
Dijelaskan bahwa bahkan dalam lingkungan seperti itu, HLS sudah sangat dioptimalkan pada skala besar di tingkat perangkat keras, sehingga menambah beban komputasi demi iklan bertarget hampir pasti akan membuat biaya meledak; untuk memahami konteksnya lebih jauh, disarankan melihat materi Netflix tentang optimasi performa server edge streaming
Ada analisis bahwa YouTube sengaja tidak mendorong perubahan terlalu cepat dan mencoba menerapkannya perlahan; diprediksi skenario penyisipan iklan langsung ke stream akan segera terjadi; saat ini stream iklan dan video masih terpisah, tetapi eksperimen server-side ad insertion juga sudah sedang berjalan secara terpisah
Diperkenalkan alur pemblokiran iklan berbasis kecerdasan kolektif dan timestamp seperti SponsorBlock dan Tubular; ke depan diperkirakan akan muncul pula pemblokiran iklan berbasis pengenalan konten AI real-time di perangkat, sehingga sekeras apa pun upaya pencegahan, pemblokiran iklan tidak akan mudah dihentikan
Disebutkan bahwa YouTube saat ini memang sedang menjalankan A/B test untuk server-side ad insertion (SSAI); penulis sendiri belum mengalaminya, tetapi membagikan status terkini itu
Ada pendapat bahwa sebagaimana klien bisa menyisipkan iklan ke video, klien juga bisa memotongnya kembali; dengan basis data kolektif seperti sponsorblock, deteksi iklan dinilai sepenuhnya memungkinkan, sehingga iklan dalam stream pun tetap bisa dilewati atau diblokir