jangles
jangles

Reputation: 323

Trying to regex YouTube ads with pihole

EDIT:

As far as I know, Pihole does not block YouTube ads.

Original Post:

Trying to regex urls like:

r4---sn-vgqsrnez.googlevideo.com
r1---sn-vgqsknlz.googlevideo.com    
r5---sn-vgqskn7e.googlevideo.com    
r3---sn-vgqsknez.googlevideo.com    
r6---sn-vgqs7ney.googlevideo.com    
r4---sn-vgqskne6.googlevideo.com    
r4---sn-vgqsrnez.googlevideo.com    
r5---sn-vgqskn76.googlevideo.com    
r6---sn-vgqs7ns7.googlevideo.com    
r1---sn-vgqsener.googlevideo.com    
r1---sn-vgqskn7z.googlevideo.com    
r1---sn-vgqsknek.googlevideo.com    
r6---sn-vgqsener.googlevideo.com    
r3---sn-vgqs7nly.googlevideo.com    
r1---sn-vgqsknes.googlevideo.com    
r4---sn-vgqsrnes.googlevideo.com    
r6---sn-vgqskn76.googlevideo.com

I've tried:

(^|\.)r[0-100]---sn-vgqs?n??\.googlevideo\.com$
(^|\.)r[0-100]?*\.googlevideo\.com$
^r[0-100]---sn-vgqs(?:.*)n(?:.*)(?:.*).googlevideo.com$
^r[0-100]---sn-vgqs(?:.*)n(?:.*).googlevideo.com$

but nothing works

I am probably using regex wrong because I don't have much experience with it but looking online some people have said it could be a thing with Pihole.

Upvotes: 2

Views: 18287

Answers (4)

busymind
busymind

Reputation: 69

blocking may work temporarily

I am using these 2 forms of regex now

Form 1: ^r[0123456789]+((-{3})|(.))sn-.{8}.googlevideo.com$ 
Form 2: ^r+[0-9]+.sn-[a-z0-9-]+.googlevideo.com$. 

when ads are loading then I see a link in one form or another

ex:rr1---sn-p5qddn7z..googlevideo.com

I had stop the firefox the auto-running the videos so I can look easier in the logs.

regex blacklisted rr1---sn-p5qddn7z.googlevideo.com is 0.0.0.0
regex blacklisted rr2.sn-8p4pou-t0ae.googlevideo.com is ::

router > set proxy DNS > points to PiHole > pihole using Custom DNS > DNS server LAN

Chain is long I know but is set for other purposes.

Upvotes: 0

Sakkade
Sakkade

Reputation: 1

The post is a bit older but because I tried myself with regexes I just want to say that your regexes can't work because of one "little" point.

Pi-Hole uses the POSIX ERE (POSIX Extended Regular Expressions) standard. So there are no lazy quantifiers or shorthand character classes.

It also does not support non-capturing groups like in your third and fourth line. You can check such regexes in tools like RegexBuddy. Maybe other free tools can check it too and help to convert it. My current regex is:

^r[[:digit:]]+---sn-4g5e[a-z0-9]{4}\.googlevideo\.com$

It correctly blocks all ads BUT also videos. If you use it you have to do the following.

Open a youtube video and check if the video loads. If not, go to your pi hole dashboard to the query log.

For your device you will have two dns queries r5---sn-4g5e6nze.googlevideo.com and r5---sn-4g5ednse.googlevideo.com

The last one (upper) in the query log is the video. So whitelist the dns. You have to do it sometimes.

Greetings

Upvotes: 0

chumpon chumxeed
chumpon chumxeed

Reputation: 23

The following Regex match all the url start with "r" then followed by anything else without limiting number of character then followed by "sn" then followed by any number of characters then end with ".googlevideo.com" the expression was anchor with ^ and $. I try it on my pihole with great success but have to remove it later. all r....sn...googlevideo.com was blocked in the query list but it also rendered my smart tv youtube app broken. It will not play any video at all unless I remove it from pihole. use it at your own risk.

^r.+sn.+(\.googlevideo\.com)$

Upvotes: 0

Emma
Emma

Reputation: 27743

I'm guessing that you'd like to have restricted boundaries, if not though, this expression might be somewhat close to what you have in mind:

^r\d+---sn-vgqs[a-z0-9]{4}\.googlevideo\.com$

Demo 1

You can add more boundaries, if necessary, such as:

^r(?:100|[1-9]\d|\d)---sn-vgqs[a-z0-9]{4}\.googlevideo\.com$

Demo 2

or:

^r(?:100|[1-9]\d|\d)---sn-vgqs(?:rne(?:s|z)|kne(?:s|z)|knlz|kn7e|7ney|kne6|kn76|7ns7|ener|kn7z|knek|7nly)\.googlevideo\.com$

Demo 3

which I'm just guessing.


If you wish to explore/simplify/modify the expression, it's been explained on the top right panel of regex101.com. If you'd like, you can also watch in this link, how it would match against some sample inputs.


Upvotes: 1

Related Questions