How to protect your privacy by blocking all annoying Spotify ads & analytics in Linux, OSX and Windows with hosts file.

Today I will show you how to easily block the servers hosting Spotify ads on your Linux/Mac or Windows machine with a hosts file. This will allow you to listen all day long on a free account without hearing a single ad + to protect yourself from Spotify selling your private data to highest bidder. This trick is very simple, legal and works great. Spotify may catch on and find some way to stop this from working but, as of today (23 August 2019) it works swimmingly.


Blocking Ad Server

In order to remove those pesky ads, all we need to do is setup out hosts file to override the DNS for Spotify’s ad servers and redirect that traffic to our local machine. When the traffic hits out local machine the call will fail and the ad will be skipped. Follow the steps below to add the entries needed.

Updates & changes on this project can be found below on Github:

Open your hosts file using your favorite text editor. I mostly use terminal in Linux. Add the following lines to the bottom of your hosts file and save your hosts file (Look below How To in your favour OS):
Fully Updated HOSTS File:
For Windows 10 & 8

  1. Press the Windows key.
  2. Type Notepad in the search field.
  3. In the search results, right-click Notepad and select Run as administrator.
  4. From Notepad, open the following file: c:\Windows\System32\Drivers\etc\hosts
  5. Make the necessary changes to the file.
  6. Click File > Save to save your changes.

For Linux

  1. Open a terminal window.
  2. Use the nano command line text editor, or a different one you have available to open up the hosts file. The command with nano is as follows (the command will require your Linux user’s password):
    sudo nano /etc/hosts

For Mac OS X 10.6 through 10.12

  1. Open Applications > Utilities > Terminal.
  2. Open the hosts file by typing the following line in the terminal window:
    sudo nano /private/etc/hosts
  3. Type your domain user password when prompted.
  4. Edit the hosts file.The file contains some comments (lines starting with the # symbol), and some default hostname mappings (for example, – local host). Add your new mappings after the default mappings.
  5. Save the hosts file by pressing Control+x and answering y.
  6. Make your changes take effect by flushing the DNS cache with the following command:
    dscacheutil -flushcache

There you go, editing hosts file has taken effect.

Why This Works?

To understand how this works we first need to understand the role DNS plays in our operating system.  When we are communicating with other services on the web everything is referenced by IP address.  For instance, when I tell my browser to go to, it has to know where to find  This is where DNS comes into play.  DNS short for Domain Name Servers is a service that translates human readable, easy to remember domain names into IP addresses that other machines can communicate with.  Whenever you add an entry to your local hosts file you are overriding the DNS entry locally for whatever domain you enter.  For instance, if I add the line “ test.local” to my hosts file, whenever i type “test.local/” into my browser, it will see the entry in my hosts file and use the IP rather than reaching out to a DNS server to try and resolve that address.  Where this comes into play for us is overriding Spotify ad servers.  When we add an entry for each server that hosts ads for Spotify and points them to our local machine, we are ensuring that whenever Spotify reaches out for an add it hits our local machine instead of the real ad server and gets an error. When Spotify detects this error it stops trying to attempt to run the ad and the ad is skipped.

Wrap Up

Hopefully after reading this you have a better understanding of how DNS works, how to override it and how to never have to listen to another spotify ad again.  As always I love feedback so leave a comment down below if you have anything you would like to add or contact me on Twitter: @0xUID.

Oh and the winter is coming led’s!

87 thoughts on “How to protect your privacy by blocking all annoying Spotify ads & analytics in Linux, OSX and Windows with hosts file.”

    • I use debian, and it didn’t work either:
      if you are using a debian based OS try booth commands with root perm:
      1. apt-get install nscd
      2. /etc/init.d/nscd restart

  1. Or, you can add the following entries to your HOSTS file:
    # Spotify
    Hope it helps.

    • these instructions are incomplete. the HOSTS file is a hidden, read-only system file. in order to change the hosts file, you must apply the following commands on command prompt while run as administrator:
      1) attrib -s -h -r c:\Windows\System32\Drivers\etc\HOSTS
      to make the file writeable. and the following after appending (NOT changing) the HOSTS file:
      2) attrib +s +h +r c:\Windows\System32\Drivers\etc\hosts
      to make the file hidden again

  2. This works for blocking the adds, but it also blocks all requests from spotify to its server (for example for the friends feed or radio stations).. Didn’t find a solution for this so far, the line which is causing the issue is

  3. Thank you for this simple solution.
    Now I have Spotify free without the ads on my Windows 10 PC.
    You made my day!
    Could we do the same directly on the router so the whole house would be spotify FREE of pubs? That would be great! (I tried but could’t find a simple way of doing so 🙁 )
    Thank you again!

  4. There are many illegal entries in the list, all domains listed to start with http:// need to be fixed so that the http:// is removed, or else they will not work at all.
    Also change to, this will give the benefit that no request will be made (going against will make a request to the local machine).

  5. On Mac OSX 10.11.6, works perfectly, no more adds,no pauzes, and no more banners too. Excellent work ! Many thanks . and I now understand DNS.

  6. Sad ly the small list at the top doesn’t work and the long list in A.S. comment only let you play your songs in your Album section, so no new songs…..anyone? The only thing i can do now is search without list, than add to Albums and than add list to hosts file.

  7. Not here, on El Capitan OSX 10.11.6 I’ll try use the big list and delete the Spotify ones….At this moment this one is working for me( as long as it last):
    # Block Spotify Ads

  8. Works seamlessly in both my Windows and Ubuntu, but in Windows when i tried to download a file from Google Drive on a browser its download nothing. Then i remove the “” lines and its works again. Just FYI.

  9. Hey,
    I tried doing this on my PC but no luck!
    Could it be because of my location (India)???
    If yes, can you add Indian add servers too?? (or) how can I find Indian ad servers?
    Thanks in advance!

      • Hey thanks for the quick response. I see that you have added Though the ads are gone the “Friends Activity” tab isnt working.
        I was wondering if any info from my pc’s c:\Windows\System32\activity.txt could be of any help
        I hav got a couple of variations of this in there
        TCP 192.168.0.***:**** CLOSE_WAIT


  11. This hosts-list breaks my spotify. The only songs that play are the ones already in my favourites. I can’t play any other songs or add new ones.

  12. I commented this line because it prevented me from listening to some songs and some thumbnails were not showing.
    I’m on ubuntu 19.04 and the spotify version is this one :

  13. I get spotify stuck when displaying an ad and the only way to fix it is closing and opening the software again
    how do I figure out which address in the host file I should comment?

  14. ya man thanks! everything works as perfect. even my customized version in ubuntu under wine. the only thing which appears is that some album covers and playlist thumbnails aren’t loading anymore, but thats the point you have to come to a compromise when ur using such a free way of getting rid of ads on spotify 😛

  15. For me, it does not block all adds. However, adds are much less than before.
    So it partially works. Maybe we need an update!

    Thanks a lot.

  16. Is the pastebin link updated since the removal of the 2 entries in April? because it didn’t work for me as of 18-5-19 and the date next to the link says 10-3-19

  17. I was having trouble displaying album art with the updated list (May 26, 2019), and I narrowed it down to ‘` being the culprit. Just remove that from the list, and everything is fixed!

  18. Hi, i wrote an java program that collects all host row entries from this sites host file and adds them to your localhost file without you doing it manually. It works in linux, not tested yet in windows but should not be a problem. Read the instructions first and then try it it you want to, here is the simple code:

    import java.text.SimpleDateFormat;
    import java.util.ArrayList;
    import java.util.Date;
    import java.util.Iterator;

    /*This program is written to copy online host file rows from
    * to your local hosts file so you could run it from crontab or from a .bat file
    * from windows so you dont have to update it manually if changes are made to the online host file
    * The syntax should be: java -jar thisJar.jar pathToYourHostFile urlToPasteBin
    * It has been tested in linux/ubuntu but should work in windows to.
    * If there are some new rows on the site that is not in your local host file it will insert them in
    * a new host file, but the program backups your current host file first with syntax hostFile-currentDate
    * Then it saves the new host file to your regular path. Use this program if you want to.
    * Take a backup of your host file first if you are scared of running it the first time 😀
    * Best regards Eskimos20

    public class ReplaceHostFileEntries {

    private static String path = “”;
    private static String address = “”;
    //Containing all rows from current host file + new rows from online site
    private static ArrayList hostFileArr = new ArrayList();
    //Containing all rows from sites host file
    private static ArrayList hostFileFromSite = new ArrayList();
    //If a change has occured then this boolean is true
    private static boolean changeHasOccured = false;

    public static void main(String[] args) {

    if ((args!=null && args.length>0) || (path != “” && address != “”)) {
    if (args.length>0) {
    for(int i = 0; i < args.length;i++) {
    if (i == 0) {
    path = args[i];
    }else {
    address = args[i];
    getHostsInfo(address, path);
    }else {
    getHostsInfo(address, path);

    }else {
    System.out.println("This program requires two parameter, first path to hosts file: /etc/hosts and url to pastebin, as of now it should be:;);

    private static void getHostsInfo(String address, String hostsPath) {
    URL url;
    try {
    url = new URL(address);

    InputStream in;
    try {
    in = url.openStream();
    BufferedReader reader = new BufferedReader(new InputStreamReader(in));

    String line;
    while((line = reader.readLine()) != null) {
    if(line.contains("#")) {
    }else {
    //Collects all rows from online site containing ip

    //Saves rows from local host file

    //Compares local host file to sites host file

    } catch (IOException e) {
    System.out.println("Could not connect to URL: " + address);
    } catch (MalformedURLException e1) {

    private static void gatherRowsFromLocalHostFile() {

    File file = new File(path);

    BufferedReader br;
    try {
    br = new BufferedReader(new FileReader(file));

    String line;
    //Adding local rows from local hostfile
    while ((line = br.readLine()) != null) {
    } catch (FileNotFoundException e) {
    System.out.println("Could not find current host file: " + path);
    } catch (IOException e) {
    System.out.println("Failure while reading input from local host file: " + path);

    private static void compareLocalHostFileToSiteHostFile() {

    Iterator siteArrItr = hostFileFromSite.iterator();

    String siteHostFileRow = “”;

    //Looping sites host file and comparing it to the original host file
    while (siteArrItr.hasNext()) {

    siteHostFileRow =;




    private static void addStringToArrayIfNotFound(String myRow) {

    Iterator itr = hostFileArr.iterator();

    String hostFileRow = “”;
    boolean foundMatch = false;

    while(itr.hasNext()) {

    hostFileRow =;

    if (hostFileRow.equalsIgnoreCase(myRow)) {
    foundMatch = true;
    //Add sites row to local host file if it did not exist
    if (!foundMatch) {
    changeHasOccured = true;

    private static void writeToHostFile(ArrayList myNewHostArray)

    Iterator itr = myNewHostArray.iterator();

    String fileContent = “”;

    fileContent += + “\n”;

    if (fileContent!=””) {
    File origFile = new File(path);

    SimpleDateFormat formatter= new SimpleDateFormat(“yyyy-MM-dd”);
    Date date = new Date(System.currentTimeMillis());

    File renameFile = new File(path + “-” + formatter.format(date));

    if (changeHasOccured) {
    if(origFile.renameTo(renameFile)) {
    BufferedWriter writer;
    try {
    writer = new BufferedWriter(new FileWriter(path));

    if (changeHasOccured) {
    System.out.println(“There was changes between your local host file and the online site!”);
    System.out.println(“Your local host file has now been backup up to: ” + renameFile.toString());
    System.out.println(“Your new host file has been written to: ” + path);
    } catch (IOException e) {
    System.out.println(“Could not write file to disk: ” + path);

    }else {
    System.out.println(“Could not rename original hosts file to: ” + renameFile.toString());
    }else {
    System.out.println(“No changes has been made to host file since it is up to date!”);


  19. Thanks for your host file updates 😀

    Could you please update me on what command you are using to sniff traffic so that you can collect the ads addresses ? I have tried tcpdump on port 4070, 443 and 80 just to see what traffic is showing. Would love to be able to find out spotify ads servers just like you did 😀

      • Hi! I updated it with the latest, now it works better, but some albums dont show album art and some cant play. But most of them can play.

        Its quite hard to understand the logic that spotify have with their streams :/

  20. Not running in Linux: “Offline mode” using the – just updated – hosts file. I’ll stick with my own file, Friend Activity, blank banner ads, but couple Audio/video ads (I close and launch Spotify again)

  21. The Rev Update 103, GitHub Hosts version doesn’t work in my Linux Mint 19.1. When I open the Spotify app, it always appear to be OFFLINE, with the warning “No internet connection detected”.

    Could you fix this? Thx.

  22. I’m trying this on Ubuntu 18.04.3 LTS from the Netherlands.
    I’m still getting ads.
    Is this list country-specific?
    Or do I need to flush the cache like on Mac OS before it takes effect?

    Any help is appreciated 🙂

Leave a Reply to anis Cancel reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.