- 
      
- 
        Save ErikFontanel/4ee1ab393b119690a293ba558976b113 to your computer and use it in GitHub Desktop. 
| #!/bin/sh | |
| # This script will fetch the Googlevideo ad domains and append them to the Pi-hole block list. | |
| # Run this script daily with a cron job (don't forget to chmod +x) | |
| # More info here: https://discourse.pi-hole.net/t/how-do-i-block-ads-on-youtube/253/136 | |
| # File to store the YT ad domains | |
| FILE=/etc/pihole/youtube.hosts | |
| # Fetch the list of domains, remove the ip's and save them | |
| curl 'https://api.hackertarget.com/hostsearch/?q=googlevideo.com' \ | |
| | awk -F, 'NR>1{print $1}' \ | |
| | grep -vE "redirector|manifest" > $FILE | |
| # Replace r*.sn*.googlevideo.com URLs to r*---sn-*.googlevideo.com | |
| # and add those to the list too | |
| cat $FILE | sed -r 's/(^r[[:digit:]]+)(\.)(sn)/\1---\3-/' >> $FILE | |
| # Scan log file for previously accessed domains | |
| grep '^r.*googlevideo\.com' /var/log/pihole*.log \ | |
| | awk '{print $8}' \ | |
| | grep -vE "redirector|manifest" \ | |
| | sort | uniq >> $FILE | |
| # Add to Pi-hole adlists if it's not there already | |
| if ! grep $FILE < /etc/pihole/adlists.list; then echo "file://$FILE" >> /etc/pihole/adlists.list; fi; | 
maybe this is neccesary to append the youtube domains list to the other already validated, works for me .
bash -c 'cat youtube.hosts >> list.1.raw.githubusercontent.com.domains'
i believe this would be a solution.
`
FILE=/etc/pihole/youtube.hosts
curl 'https://api.hackertarget.com/hostsearch/?q=googlevideo.com' 
| awk -F, 'NR>1{print $1}' 
| grep -vE "redirector|manifest" > $FILE
sed -i $FILE -re 's/(^r[[:digit:]]+)(.)(sn)/\1---\3-/'
grep '^r.googlevideo.com' /var/log/pihole.log 
| awk '{print $8}' 
| grep -vE "redirector|manifest" 
| sort | uniq >> $FILE
bash -c 'cat /etc/pihole/youtube.hosts >> list.1.raw.githubusercontent.com.domains'
pihole -g`
An alternative may be to add the following regex on the blacklist:
^r.+\.googlevideo.com$
Seems to work for me locally. The ad segments still appear but it's just a spinner for 5 seconds then 'Skip Ads' appear.
rjhancock,
Thanks for the idea, I just tried it cause I didn't understand it. After adding the regex ^r.+.googlevideo.com$
all youtube movies are blocked....not one runs.
How local did you mean?
Yea, I removed it last night as it looks like about half the videos are blocked if not more. Bad idea. So I wonder if there is a different pattern that might work instead.
Cleaned up the script a little bit by replacing the
curl/awk/grep/sedsequence with justcurlandsed.