Mein Anspruch an den Pi-Hole war initial werbefrei auf YouTube unterwegs zu sein. Scheinbar ist dies aber nicht so einfach.
Also einfach den DNS-Traffic von Youtube sniffen bringt schnell ans Licht das YouTube einen ausgeklügelten Algorithmus für seine Werbung hat.
Mit folgendem Regular Expression der sich sicherlich noch verbessern lassen sollte, habe ich es aber geschafft einen „Großteil“ der Werbung zu eliminieren.
r[0-9-]-sn-[a-z0-9]-[0-9a-z]{4}.googlevideo.com
Fügt diesen Regex einfach zur Blacklist hinzu.
// Folgenden Regular Expression
r[0-9]+---sn-.*\.googlevideo\.com$
findet man auch noch im Web, ab dem Zeitpunkt spielt YouTube jedoch auch keine Video mehr ab.
Weitere Informationen zu unserem I MAKE YOU INTELLIGENT Cloud gehosteten Pi-Hole:
Pi-Hole Cloud
Benötigte Hardware:
Hallo,
Toller Blog. Macht Spaß zu stöbern und neue Impulse mitzunehmen.
Konntest du den Code vielleicht verbessern?
Ich hab ihn eingefügt und auf den Geräte läuft weiterhin Werbung. Vor allem auf dem iPad und Apple TV nervt es sehr.
Hi Paul,
danke für dein Feedback – dann hat YouTube leider wieder den Algorithmus verändert.
Wenn die Zeit es zulässt, werde ich mir die Sache noch einmal anschauen.
Beste Grüße und schönes We!!
/rr\d—sn-[A-Za-z0-9]+\.googlevideo\.com/
/rr[0-9]—sn-4g5e[a-z]{4}\.googlevideo\.com/
schon nah dran.. paar Videos bleiben stehen
Der noch dabei
/rr[0-9]—sn-f5f7[a-z]{4}\.googlevideo\.com/
Kann man nicht einfach die Domain YouTube.com auf YouTube.com. Umleiten? Wichtig ist der Punkt am Ende im Browser funktioniert es ohne Probleme und Werbung. Das müsste man doch mit einem DNS rewrite erreichen können. Doch wie implementiert man das ?
Hat diesen Ansatz mal jemand noch weiter verfolgt?
Moin. Wenn ich es richtig sehe, fehlte nur das ^ am Anfang, also
^r[0-9-]-sn-[a-z0-9]-[0-9a-z]{4}.googlevideo.com
Bisher kommt zumindest so gut wie keine YT-Werbung mehr bei mir.
gerade ausprobiert, leider hat auch nicht geholfen
Es funktioniert nur mit dem hinzufügen des Zeichens „^“ vor dem in diesem Tutorial eingetragenen Filter. Dieser muss nur Pihole 5 > Blacklist > Reiter „Regex Filter“ eingetragen und gespeichert werden. Funktionierte im Anschluss sofort.
Habe ein bisschen mit den Regen Einträgen gespielt:
r[0-9]—sn-[a-z0-9]{8}-[0-9a-z]{4}.googlevideo.com
r[0-9]—sn-[a-z0-9]{8}.googlevideo.com
Diese beiden blocken ansich als weg, man muss aber damit rechnen, dass das Video an der Werbeunterbrechung hängen bleibt. Scheinbar wird von der Werbung TEILS ein „gesehen“ an die App geschickt, damit sie das Video weiterspielt. Dieses wird dann eben auch geblockt.
Danke! Der Regex funktioniert bei mir wirklich gut! Die eingeblendeten Werbebanner reduzieren sich wirklich erheblich, zum Teil bis gar nicht mehr vorhanden. EInzig die Werbeunterbrechungen sind noch da, aber das ist schon mal eine MEILENWEITE Verbesserung!
Herzlichen Dank!!
Diese ganzen Methoden sind der völlig falsche Weg ! Ziel hätte es von Anfang an sein müssen, das die Werbung absichtlich von Pi-Hole „angeschaut“ wird, damit Youtube zufrieden ist. Während der Nutzer davon gar nichts mitbekommt. Oder eine zeitverzögerte Wiedergabe welche die Videos via Timeshift speichert. Am Ende wird YT Werbung und Video untrennbar in einen Stream packen. Dann gibt es nur noch die Möglichkeit, das die Werbung erkannt wird. So das ständig ein Dienst im Hintergrund laufen muss und die Werbung solange ausblendet wird. Es gibt nur ein Plugin unter Chrome welches derzeit zuverlässig blockt und ich will das es so bleibt, daher keinen Namen.
Diese ganzen Methoden sind der völlig falsche Weg ! Ziel hätte es von Anfang an sein müssen, das die Werbung absichtlich von Pi-Hole „angeschaut“ wird, damit Youtube zufrieden ist. Während der Nutzer davon gar nichts mitbekommt. Oder eine zeitverzögerte Wiedergabe welche die Videos via Timeshift speichert. Am Ende wird YT Werbung und Video untrennbar in einen Stream packen. Dann gibt es nur noch die Möglichkeit, das die Werbung erkannt wird. So das ständig ein Dienst im Hintergrund laufen muss und die Werbung solange ausblendet wird.
Aber solange es noch auf diesem Wege zum Teil geht, bin ich natürlich froh. Danke für das RegEx
möchtes du alle Videos von YouTube vorher aufzeichnen? Wir groß ist deine Festplatte? Oder hast du ein Datacenter?
Damit wäre Youtube/Google erst recht nicht zufrieden und das würde von denen erst recht sanktioniert werden! Google hat sich nämlich gegenüber den Werbetreibenden verpflichtet, den Werbetraffic auszuweisen Schließlich zahlen diese dafür! Jede Werbung, die von einer Maschine (Bot, Pi-Hole etc.) aber nicht von einem Menschen gesichtet wird, muss im Reporting der Werbeserver ausgefiltert werden, da dieser von den Werbetreibenden als Bot-, Fraud- oder Mal-Traffic verstanden wird. Den Request nach dem Werbemittel erst gar nicht stattfinden zu lassen, ist der einzig tolerierbare Weg für alle Akteure. Damit tut man der Werbeindustrie schon ausreichend weh.
Nach etwas stöbern bin ich hier auf diese Seite gestoßen und ich muss sagen bis jetzt FUNKTIONIERT es bei mir prima, danke dafür.
Man kann es auch relativ einfach machen ;), was aber auf dauer nerven würde.
Und zwar lässt man die Admin Konsole im extra Tab geöffnet (am besten angemeldet), und macht im anderen Tab sein YT Video auf.
Wenn man diesen Regex r5—sn-4g5e6nsr.googlevideo.com findet, sofort blockeren.
Ich habs noch nicht getestet ob der Regex neu „gedownloadet“ wird.
Vielen Dank dafür, das klappt ja prima!
Hi zusammen,
ich frage mich wie das ganze bei allen funktionieren kann.
Die Ads werden zwar blockiert und vom Pi-Hole erkannt, aber nun steht das Video in der Endlos Werbe Schleife im Blackscreen und die 5 Sekunden laufen ebenfalls nicht runter um die Werbung zu skippen. Gibt es hier einen anderen Weg oder habe ich etwas falsche gemacht?
Auf dem Desktop scheint der Filter tatsächlich fast immer zu funktionieren, da benutze ich aber normalerweise sowieso einen Adblocker.
In der Youtube App auf meinem Android Tablet funktioniert der Filter leider scheinbar nicht, obwohl beide im gleichen Netzwerk sind. Das Tablet hat keine SIM Karte, also kann es auch nichts übers mobile Netz laden.
Ich habe auch festgestellt, dass die Youtube-App eine Anfrage an s.youtube.com schickt. Wenn die Domain geblockt ist, werden die geschauten Videos nicht im Wiedergabeverlauf von Youtube gespeichert.
Wenn ich allerdings auf meinem Desktop im Browser Youtube anschaue, gibt es keine Anfrage an s.youtube.com und der Wiedergabeverlauf funktionert trotzdem.
Also Youtube scheint den Traffic von Desktop Browsern und der App ganz unterschiedlich zu handhaben.
Wäre dankbar, wenn jemand mir sagen könnte, wie ich die Werbung auch in der App blocken kann.
Das würde mich auch interessieren, denn in Videos eingebettete Werbung in der YouTube-App ist die Königsdisziplin – und diese Video-Werbung habe ich bisher noch nicht aus den Apps weg bekommen… :-(
Das würde mich auch mal brennend interessieren: Also warum kann man mit Hilfe eines beliebigen Adblockers im Webbrowser die YT Werbung komplett blocken, aber in den mit Hilfe von Pi-Hole nicht. Was können die Adblocker, was Pi-Hole nicht kann? Oder (was wo ich eher die Ursache vermute) was ist im Webbrowser anders als in der App?
Ganz einfach, ein Adblocker im Browser scanned die einzelnen Teile der Website (DOM) und kann so am Inhalt erkennen, was es ist.
Pi-Hole und andere DNS Blocker haben naturgemäß keinen Zugriff auf den tatsächlichen Inhalt sondern kennen nur den Server, der angefragt wird. Youtube mischt hier sehr gerne Werbung und echten Content auf einem Server, weswegen DNS-Blocker an dieser Stelle einfach ins leere laufen.
Die regex ist sehr unzuverlässig und läß sehr viele werbund durch
Bei mir hat der Regex nicht funktioniert.
Folgende Probleme:
Beispieldomains von youtube ads:
r3—sn-hoxu-h0js.googlevideo.com
r2—sn-hoxu-h0js.googlevideo.com
Zur Vereinfachung nummeriere ich die beschriebenen stellen:
r [0-9-] – sn- [a-z0-9] -[0-9a-z]{4} .googlevideo.com
1 2 3 4 5 6 7
– das – in 2 ist meiner Meinung nach hinfällig, da immer eine zahl auf das r folgt
– das – in 3 kommt mehrmals vor
– 5 funktioniert mit den Beispiel Domains auch nicht, das es nur ein Zeichen beschreibt – die yt domains haben mehrere (meist 4)
– bei 7 habe ich noch die punkte escaped (macht keinen unterschied, ist nur der schönheithalber, da immer ein . kommen muss)
Durch die Korrektur dieser Punkte komme ich auf folgendes Pattern:
r[0-9]-*sn-[a-z0-9]*-[0-9a-z]{4}\.googlevideo\.com
Ich selbst habe an einem weiteren Regex experimentiert, der bis jetzt keine Probleme macht und tendenziell zuverlässiger funktioniert als der obere:
r{1}\d.*sn.*\.googlevideo\.com
Zur Erklärung:
r{1} > string beginnt mit einem einzelnen r
\d > es folgt eine zahl
.* > beliebige zeichen
sn > sn
.* > beliebige zeichen
\.googlevideo\.com > domainende immer googlevideo.com
Edit: Ich habe festgestellt mehrere folgende leerzeichen werden gekürzt, daher:
Zur Vereinfachung nummeriere ich die beschriebenen stellen:
r [0-9-] – sn- [a-z0-9] -[0-9a-z]{4} .googlevideo.com
1– 2—3–4——-5———6—————-7
Edit:
pihole kennt die \d (digits) syntax nicht, daher [0-9]
r{1}\d.*sn.*\.googlevideo\.com
->
r{1}[0-9].*sn.*\.googlevideo\.com
r{1}[0-9].*sn.*\.googlevideo\.com
führt bei mir zum Nichtladen der Videos.
Ich habe mir selbst eine Regex zusammengebaut
r[0-9]{1,2}—sn-[a-z0-9]{6,8}.googlevideo.com
die der des Authors rechte nahe kommt
r[0-9]+—sn-.*\.googlevideo\.com$
Geht aber mit beiden nicht richtig, die Videos laden dann nicht. Mir kommt es vor, dass wenn gemäß Regex ein oder mehrere Werbevideos abgefangen werden, das eigentliche YT Video einfach nicht im Anschluss geladen wird.
Kann es sein, dass die Regex Variante nicht mehr funktioniert? Habe zumindest mit „r[0-9-]-sn-[a-z0-9]-[0-9a-z]{4}.googlevideo.com“ null Erfolg – Werbung in Hülle und Fülle.
Der Admin hat es oben geschrieben es muss ein ^ vor dem r eingefügt werden also
^r[0-9-]-sn-[a-z0-9]-[0-9a-z]{4}.googlevideo.com
Grüße
Also ich habe bisher mit dem folgenden Ausdruck die besten Erfolge erzielt:
^r[0-9]{1,2}-*sn-[a-z0-9]*-[0-9a-z]{4}.googlevideo.com
Es ist aus einigen der obigen zusammengesetzt. Ich werde jetzt noch die Variante, dass der letzte 4-er-Block optional ist testen:
^r[0-9]{1,2}-*sn-[a-z0-9]*(-[0-9a-z]{4})?.googlevideo.com
@hanth funktioniert gar nicht so schlecht deine ^r[0-9]{1,2}-*sn-[a-z0-9]*-[0-9a-z]{4}.googlevideo.com
die Variante ^r[0-9]{1,2}-*sn-[a-z0-9]*(-[0-9a-z]{4})?.googlevideo.com hat bei mir einige Videos gar nicht abgespielt
Bisher läuft es mit dieser Version ohne Probleme… Geil!!! Danke!!!
Hi Holger,
das freut uns zu hören ;)
Gibts hier mal was neues auf dem Markt? Ich habe mit allen o.g. und eigenen Regex experimentiert und bin dabei auf 2 Probleme gestoßen:
– wenn ich eine erfolgreiche Syntax habe, laden auch die Videos nicht mehr
– wegen des Coaching erscheint es zwischendurch, dass es funktioniert, tut es aber nicht wirklich
Gut macht sich der Funktionstest auf https://regex101.com.
finales Fazit: Ich habe noch nicht das Muster rausgefunden, welches Videos von Werbung unterscheidet. Möglicherweise haben Sie auch keine unterschiedlichen Muster.
Mein letzter Verdacht war, dass die Werbevideos direkt vor .googlevideo.com eine Zahl haben, das war es nun scheinbar. Hier der aktuell funktionierende RegEx:
r[0-9]+(\.|—)sn-[a-z0-9]+[0-9]\.googlevideo.com$
Hallo,
für die YouTube Web-Version funktioniert das bei mir sehr gut. Gibt es auch ein RegEx welcher mit der YouTube App auf mobilen Endgeräten funktioniert?
Vielen Dank, das funktioniert ja super (zumindestam desktop)!
Grundsätzlich funktioniert die Blockierung per Regex zwar, aber die Videos bleiben dann hängen und der Browser/Player versucht in einer endlosschleife die Werbungen immer wieder zu laden, sodass man nur den schwarzen Hintergrund mit der Ladeanimation sieht. Leider nicht zielführend.
Easy lösung für Youtube
https://www.youtube.com. und du hast kiene Werbung mehr dort wenn du denn Punkt hinter das com setzt.
Anfängerfrage: Muss ich eigentlich die gravity db neu erstellen (pihole -g) wenn ich einen regex hinzugefügt habe oder ist das hier nicht notwendig?
Hallo Dehnes,
wie ich die Dokumentation verstanden habe, sollte nach jedem neuen Eintrag in Werbe-, Black-, oder Whitelist ein Gravity Update stattfinden.
Ob hier euch die RegEx-Einträge hierbei in die tatsächlichen (=potenziell extrem viele) URLs zerlegt werden, war mir demnach egal.
Ich hatte immer gedacht, seit setzen der neuen Google API (alte Smart TV oder KODI können Youtube nicht mehr anzeigen). Den API-Zugang kann man sich für KODI umständlich bei Google besorgen (Websuche hilft), doch in die veraltete TV-App kann zumindest ich die nicht hineinprogrammieren.
Auch dachte ich, Zwangswerbung hätte man automatisiert untrennbar mit dem Video vereint. Als Betreiber dieses Streaming-Dienstes YT würde ich das so machen. Dann wäre die komplette Diskussion für die Katz.
Allerdings würde dies das Überspringen der Werbeeinblendung nach X Sekunden erschweren.
Weiß jemand dazu konkretes? Wie listet Ihr die abgerufenen URLs auf.
Ich habe leider nicht so tiefgreifende Kenntnisse und meine IT-Ausbildung kam 2002 gerade im rechten Moment, mein Geld dann doch ganz woanders zu verdienen.
Hallo,
leider gibt es im Internet keinen wirklich gut funktionierenden Regex-Filter um Youtube Werbung gut wegzublocken.
Hat jemand einen guten gefunden, dann antworte mir bitte.
LG Knightrider
Hi,
https://www.sunshine.it/blacklist.txt
als Filter übernehmen, YouTube-Werbung ade ;-)
Der ist doch auch 1 1/2 Jahre alt. Der funktioniert nicht
Funktioniert wunderbar. Danke
Besten Dank!
Gibt es eine aktuelle RegEx die die Werbung am Anfang und in den Videos blocked?
In der App funktioniert es mit den o.g. Mitteln nicht.
Könnte daran liegen das in der APP DOH genutzt wird… Vielleicht mal blocken und dann probieren? Hat sonst jemand eine Idee? Gibt es eine RegEx?
Super danke, funktioniert perfekt! :-)
Zurzeit benutze ich folgenden RegEx Eintrag:
^r[0-9]-*sn-[a-z0-9]*-[0-9a-z]{4}\.googlevideo\.com
^rr[0-9]-*sn-[a-z0-9]*-[0-9a-z]{4}\.googlevideo\.com
Man bekommt nicht alles geblockt aber eine Menge (-:
Zurzeit benutze ich folgenden RegEx Eintrag:
^r[0-9]-*sn-[a-z0-9]*-[0-9a-z]{4}\.googlevideo\.com
^rr[0-9]-*sn-[a-z0-9]*-[0-9a-z]{4}\.googlevideo\.com
Man bekommt nicht alles geblockt aber eine Menge (-:
Warum nutzt Ihr nicht den BRAVE Browser? Da wird jede Werbung geblockt, auch die bei youtube.com
@Ted, weil das nicht auf jedem Gerät möglich (z. B. Handy, Smart TV usw.).
@Bendel ich habe deinen Regex getestet und habe dann leider zu 80% nicht ladende Videos, manchmal auch trotzdem Werbung unter iOS mit der YouTube App.
Habe deinen string leicht angepasst und zusammengefasst: ^r*[0-9]-*sn-[a-z0-9]*\.googlevideo\.com
Hallo zusammen, ich habe den Link eben entdeckt und wollte ihn mal auf den Stand 2/2023 bringen.
Die Anfragen von YT sehen so aus (Ausschnitt):
rr2—sn-f5f7knee.googlevideo.com
rr2—sn-f5f7knee.googlevideo.com
rr2—sn-4g5lzne6.googlevideo.com
rr3—sn-4g5lznez.googlevideo.com
rr1—sn-4g5edndy.googlevideo.com
rr3—sn-f5f7lnl6.googlevideo.com
rr1—sn-4g5edndy.googlevideo.com
rr3—sn-f5f7kn7z.googlevideo.com
rr1—sn-4g5edndy.googlevideo.com
Nun haben wir ja die Webiste https://docs.pi-hole.net/ftldns/configfile/ um folgendes Ergebnis zu bekommen:
^rr[0-9-]—sn-[a-z0-9]{8}.googlevideo.com
dies blockt die Anfragen auf dem Pihole effektiv, jedoch dauert es nicht lang und es werden andere Anfragen generiert, dies dauert zwar eine Weile, aber dennoch bekomme ich diese Anfragen:
i1.ytimg.com
yt3.ggpht.com
Auf YouTube läuft ein Timer ab und es wird nur das Firmenprodukt Logo..oder wie auch immer angezeigt. Fakt ist, man muss trotzdem ca. 15 SEC warten.
Blockt man diese auch mit dem Regex Eintrag:
^i[0-9].ytimg.com ^yt[0-9].ggpht.com
(mit leerzeichen kann man mehrere filter setzten)
Passiert Folgendes: Die Website wird ebenfalls versucht zu laden, nach ca. 20-25 SEC wird aufgegeben und das Video spielt ab.
Vielleicht hat noch jemand eine Lösung außer Adblockern im Browser.
yup. Videos wollen nimma laden.
Fazit: no way.
manchmal bekommt man noch bilder der werbung gezeigt, diese sind eventuell im videoinhalt „versteckt“. Nach dem Anzeigezeitraum lädt das video nicht mehr.
Wer das Problem nicht hat, hat so wie ich vergessen
i.ytimg.com
zu blocken.
Die Anleitung von Robin scheint nicht alle Werbe-Videos zu blocken. Erst beim erneuten laden von YouTube verschwindet die Werbung.
Ist echt nicht einfach.. Hatte auch schon mal allres mögliche durch probiert…
Videos mit bezeichnung (z.Bsp.: rr3—sn-f5f7kn7z.googlevideo.com) können heute das Video sein und in paar Tagen ein Werbeclip.