Youtube Ads Blocker 3.0 para Pihole 5.0

La nueva versión de Pihole 5.0 ha eliminado los siguiente ficheros:

gravity.list,black.list,whitelist.txt

Y ha generado para todo esto una pequeña base de datos en SQLite3:

/etc/pihole/gravity.db

Con esto, todas las versiones anteriores a la 3.0 del Script que hice para bloquear anuncios en Youtube, han dejado de funcionar. Por lo que he generado una nueva versión que se conecta contra la pequeña base de datos SQLite y es completamente compatible, realizando el mismo proceso de inserción de subdominios de Googlevideo.

Para instalar esta nueva versión, realizad los siguientes pasos:

  • Desinstalar la versión anterior a la 3.0, ejecutando:
./ytadsblocker.sh uninstall
  • Descargar la nueva versión desde mi Github e instalar:
git clone https://github.com/deividgdt/ytadsblocker.git
cd ytadsblocker
chmod a+x ytadsblocker.sh
./ytadsblocker.sh install

Recomiendo que echéis un vistazo a la documentación de la nueva versión de Pihole ya que trae muchos cambios.

VERSION 3.0 YTADSBLOCKER

Ahora el script genera un grupo denominado: YTADSBLOCKER. Este nombre no debe ser modificado, el script podría dejar de funcionar correctamente. Esto se puede comprobar en ‘Group Management -> Groups’

En ‘Group Management -> Domains’ se podrán visualizar los nuevos dominios añadidos por el script:

Finalmente, en ‘Group Management -> Clients’ se debe asignar el grupo YTDASBLOCKER a los clientes que deseemos que se le bloquee el acceso a estos dominios, por ejemplo:

EXTRA

He visto que esta versión trae un apartado para bloquear dominios con expresiones regulares:

¿Puede ser este el fin del script? o ¿si añadimos una expresión regular aquí Youtube dejará de funcionar? ¡Eso lo dejo para otra entrada!

26 comentarios sobre “Youtube Ads Blocker 3.0 para Pihole 5.0

  1. Buenas, gran trabajo!! Lo he montado y está detectando bien los dominios y añadiendo en black lista, pero ahora que tengo ya bastante cantidad parecen que afecta el.ñ bloqueo a la reproducción de los videos. Hay alguna alternativa??

    Gracias

    1. Añado un poco mas de info, veo que realmente bloquea el dominio con 3 guiones pq de algun modo hace match con el de 1 guion:

      2020-12-20 23:20:13 A r5—sn-h5q7knez.googlevideo.com
      (blocked r5.sn-h5q7knez.googlevideo.com) 192.168.1.192 Blocked (exact blacklist, CNAME) CNAME (0.8ms)..

      No veo sentido que si tiene puesto una dirección exacta en la blacklist con un guion, pihole bloquee tb teniendo 3 guiones ya que son dominios distintos :S

  2. Ante todo felicidades por este gran script, la verdad que esta muy bien.

    Me surgen algunas dudas,

    ¿como puedo comprobar la version que tengo? ¿hay algun comando?

    Estoy teniendo problemas al visualizar algunos videos, no me cargan, sobre todo aquellos canales que tienen mas publicidad.

    ¿Esta el script desactualizado o sigues trabajando para solucionarlo?

    Salu2 y gracias!

    1. Buenas, Izael,

      Muchas gracias. A día de hoy, aunque menos asiduamente, sigo trabajando sobre el script con toda la ayuda de la comunidad. La ultima modificación la realicé hace 2 días corrigiendo algun fallo y modificando el script para poder ser ejecutado en un contenedor Docker.
      Para comprobar la versión que tienes puedes abrir el fichero y mirar el contenido de la variable: YTADSBLOCKER_VERSION

      Un saludo,

  3. Hola a todxs!

    Primeramente felicitar a Deivid por el pedazo de trabajo hecho con este script.
    Estoy iniciándome en el mundo de Raspy y PiHole, así que no tengo mucha idea del tema, pero quería preguntarles:

    – Cada vez que se reinicia mi Raspy, ¿debería de volver a ejecutar el start del script?
    – En caso de que el autor realice alguna modificación, ¿Se actualiza automáticamente o debo hacerlo manualmente?. En su caso, ¿como se haría?

    Muchas gracias compañerxs, y siento la inexperiencia.

    1. Buenas Robert,

      Muchísimas gracias.

      No hay necesidad de volver a ejecutar el script, ya que la instalación del mismo lleva una orden que lo deja programado para arrancar siempre con el sistema:
      systemctl enable ytadsblocker 1> /dev/null 2>&1

      Si realizo alguna modificación tienes que descargar tu mismo la versión nueva. El propio script chequea si existe una version nueva, pero no la descarga.

      Un saludo.

      1. Muchas gracias por tu rápida respuesta.

        ¿Puedes explicar como seria la parte de actualizar? ¿Como lo descargas?

        Gracias!

      2. Buenas Robert, primeramente deberias desinstalarlo moviendote a la ruta donde se encuentre el script y ejecutando:
        ./ytadsblocker.sh uninstall
        A continuación eliminas el fichero:
        rm -f ./ytadsblocker.sh
        y descargas la nueva versión ejecutando:
        wget https://raw.githubusercontent.com/deividgdt/ytadsblocker/master/ytadsblocker.sh
        A continuación le darías permisos de ejecución a la versión nueva del script y lo volverías a instalar:
        chmod +x ./ytadsblocker.sh
        ./ytadsblocker.sh install

        Y eso sería todo!

    1. Buenas Erwin,

      Recuerda que desde “Group Management –> Clients” debes asignar el grupo “YTADSBLOCKER” a el/los host/s que quieres bloquearle el acceso a ese grupo de dominios.

      Yo en mi caso, tengo en “Group Management –> Clients” toda la red de mi casa “172.16.0.0/16” –> “Group assignment –> All selected”

      1. Gracias Erwin, voy a corregir este problema. No se por que en algunas ocasiones el fichero pihole.log es tratado como un fichero binario, entonces al hacer un cat sale este mensaje y lo introduce en la BBDD.

        Voy añadir una función que compruebe si lo que se va a introducir en BBDD es efectivamente un dominio o no.

  4. Buenas. He implementado el nuevo script. Pero como decías en otra entrada, si es bloquean los dominios de youtube con 3 guiones, se deja de visualizar esos vídeos. Comentabas algo de que se podían quitar estos dominios del bloqueo, pero no indicabas exactamente cómo. Lo he intentado con regex en whitelist pero no me ha funcionado. Me podrías indicar cómo hacerlo?

    Gracias

    1. Buenas German,

      La siguiente regexp omite los subdominios con los 3 guiones, los que si se bloquean, terminan bloqueando todo Youtube: r([0-9]{1,2})[^-].*\.googlevideo\.com
      Y la siguiente regexp NO omite que se bloqueen esos subdominios: r([0-9]{1,2}).*\.googlevideo\.com

      El script en su ultima versión usa la regexp que no bloque la subdominios con los tres guiones.

      1. Gracias por responder Deivid y sobre todo gracias por compartir tu script.

        Aun así he visto que me siguen bloqueando los dominios de 3 guiones. Como dices que con el último script no debería de pasar he vuelto ha desinstalarlo e instalarlo. Y he visto que me da un error que en la primera instalación tb me dio:

        [i] Installing the service…OK. Service installed.
        [i] Enabling the service to start it automatically with the OS.OK.
        [i] Configuring the database: /etc/pihole/gravity.db …
        [i] Searching googlevideo.com subdomains inside the Pi-Hole’s logs…
        Error: UNIQUE constraint failed: domainlist.domain

        Seguramente por eso no me ha insertado correctamente los subdominios ¿sabes por qué puede ser el error?

      2. Parece que se esta insertando alguna clave duplicada, voy a añadirle un chequeo de que si ya existe el dominio en la BBDD no lo inserte nuevamente.

      3. ¿Podrias dejarme aquí alguno de esos dominios con los tres guiones que te esta bloqueando?

      4. No se como funciona regexp me gustaría un articulo donde poder investigar un poco mas
        analizar las siguiente expresiones reculares
        r([0-9]{1,2})[^-].*\.googlevideo\.com
        r([0-9]{1,2}).*\.googlevideo\.com
        No logro entender mucho, de momento esta fuera de mis capacidades técnicas.

        Lo que si puedo reportar a modo cooperación es lo siguiente
        Estas son algunos dominios que son bloqueados con 3 guiones

        https://ibb.co/Ws9MdWj
        https://ibb.co/jz1PCWH
        https://ibb.co/NjynhC2

        Y lamemente he notado que el scrip no me esta reproduciendo los videos y he tenido que desabilitar de la lista negra. .

        https://ibb.co/Thjnk6t

        Saludos, espero feedback

      5. Hola Deivid,

        Te contacto también en este hilo, espero que no te importe, porque tras muchas horas de funcionamiento continuo con Youtube para verificar el funcionamiento del script me estoy encontrando con lo mismo que describe Erwin Glade. Cada vez es más frecuente que algunos vídeos no carguen y al ir al Query Log me encuentro con entradas de este tipo:

        r4—sn-h5q7kned.googlevideo.com (blocked r4.sn-h5q7kned.googlevideo.com)
        r1—sn-25glenez.googlevideo.com (blocked r1.sn-25glenez.googlevideo.com)
        r3—sn-h5q7knez.googlevideo.com blocked r3.sn-h5q7knez.googlevideo.com)

        Simplemente para tu información y por si puedes solucionarlo en la siguiente versión.

      6. Gracias por el script para empezar, modifique un poco el script para que no agregue los dominios con tres guiones y reemplace:
        esto: r([0-9]{1,2})[^-].*\.googlevideo\.com
        por esto: r([0-9]{1,2})[^-][^-].*\.googlevideo\.com

        Hasta ahora me viene funcionando bien.
        Hice las pruebas en esta pagina: regexr.com/5a8u9

      1. Si en la Administración de Grupos de Clientes se agregan los clientes de toda la red 192.168.XX.XX/24 funciona al menos en mi caso

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s