Hay un filtro uBlock flotando que oculta todas las miniaturas de video, si el lapso de tiempo del texto asociado es inferior a 70 segundos:
www.youtube.com##ytd-browse ytd-grid-video-renderer:has(span.ytd-thumbnail-overlay-time-status-renderer:has-text(/\s(0:\d\d|1:0\d)\s/))Pero no quiero bloquear todo mientras carga. Simplemente me gusta poder ocultar los elementos después de cargar la página de descripción general del video de un usuario. Busqué en stackoverflow y encontré este bookmarklet que oculta imágenes por getElementsByTagName:
javascript bookmarklet para ocultar todas las imágenes de la página web actual?
javascript:(function(){var imgs=document.getElementsByTagName("img");for(var i=0;i<imgs.length;i++)imgs[i].style.visibility="hidden"}());Perdí algunos pelos mientras adaptaba este bookmarklet para que coincidiera con el selector CSS escrito arriba con getElementsByClassName. Simplemente no funcionó. El elemento de texto (span.ytd-thumbnail-overlay-time-status-renderer:has-text) debe tener menos de 70 segundos y luego se debe eliminar el elemento principal ytd-grid-video-renderer . ¿Por qué no puedo hacer que esto funcione?
Encontré una solución que funciona por mi cuenta, no estaba al tanto del hecho de que tengo que hacer la búsqueda en javascript en lugar de en el selector de CSS. Esta línea de código hace exactamente lo que quiero:
javascript:(function(){var tn=document.getElementsByClassName("ytd-thumbnail-overlay-time-status-renderer");for(var i=0;i<tn.length;i++)if(tn[i].textContent.match(/\s(0:\d\d|1:0\d)\s/))tn[i].closest("ytd-grid-video-renderer").style.visibility="hidden"}());