<![CDATA[Adblock Radio]]>https://www.adblockradio.com/blog/https://www.adblockradio.com/blog/favicon.pngAdblock Radiohttps://www.adblockradio.com/blog/Ghost 3.3Mon, 27 Apr 2020 19:00:04 GMT60<![CDATA["Ads exploit the weaknesses of many defenseless souls" - Fall 2019 update]]>In the media

Adblock Radio has received recent press and social media coverage:

]]>
https://www.adblockradio.com/blog/2019/10/26/fall-2019-update/5d8bdefe8d907e216c7a3c1dSat, 26 Oct 2019 16:25:40 GMTIn the media

Adblock Radio has received recent press and social media coverage:

  • Hacker News (#1) and Reddit (r/technology)
  • Vice / Motherboard – interview to explain why Adblock Radio is useful to society and why you should support it, despite its controversial nature.
  • Digital Trends – interview that puts Adblock Radio in the broader context of the next-gen, so-called "perceptual" ad blockers (more on that below).
  • Ad Age – interview to reassure fretting-not-fretting podcast ad companies: Adblock Radio is not yet ready for podcasts.

Adblock Radio is a perceptual ad blocker

I have recently published a blog article describing what perceptual ad blockers are and how they will shape the cat and mouse game between ad companies and ad blockers.

In the past year, researchers from Stanford and the CISPA Helmholtz Center for Information Security have studied perceptual ad blockers, including the Adblock Radio machine learning part. Their work was about circumventing them using adversarial machine learning techniques. It is an interesting research path to follow so that detection capabilities can be further strengthened.

Web player is now open-source

The Adblock Radio web player is now free software. The code is available on Github and is open to contributors.

A skilled frontend developer has recently joined the efforts to rewrite the React app with modern standards, paving the way for further fixes and improvements. Kudos and hurray!

Volunteers are welcome to help

Especially for:

  • creating Android / iOS apps to have a top-notch experience on mobile. Native implementation, React native or another framework, to be discussed. It would be nice to embed the inference algorithm itself in the app, so that it would rely much less on Adblock Radio servers.
  • maintaining streams, as described here. Taking care of the filter of a stream requires minimal investment (a few minutes every day or so), but maintaining dozens is a burden for me. Some unmaintained streams may be removed from the web player in the future, so if you care about a stream, please consider volunteering.
]]>
<![CDATA[Adblock Radio is a perceptual ad blocker]]>Adblock Radio belongs to the family of next-generation ad blockers, so called "perceptual" as they consider content in the same way humans do. Perceptual ad blockers are a recent area of research. In this article I give more details about them and describe the next steps of the cat and

]]>
https://www.adblockradio.com/blog/2019/10/25/adblock-radio-is-a-perceptual-ad-blocker/5db318da8d907e216c7a3c29Fri, 25 Oct 2019 17:03:08 GMT

Adblock Radio belongs to the family of next-generation ad blockers, so called "perceptual" as they consider content in the same way humans do. Perceptual ad blockers are a recent area of research. In this article I give more details about them and describe the next steps of the cat and mouse game between ad companies and ad blockers.

Parallel work on web content

On web, the classic way to block ads is to look at the source code of the pages and filter out requests that match an entry in the so-called filter lists. Some publishers, including Facebook, have fought this by obfuscating the content of their pages.

Adblock Radio is a perceptual ad blocker
Facebook obfuscating the sponsored word in a feed's post (source BBC)

This has made some academic researchers from Princeton and Stanford build a new approach to filter ads, that looks at the rendered pages, in the same way our eyes do. From their 2017 paper, their perceptual ad blocker relies "on the key insight that ads are legally required to be clearly recognizable by humans" (source). It analyses web pages as images, identifies boxes and runs OCR on text to identify ads.

In this area of research, we should also note those recent and interesting initiatives: "Sentinel", by eyeo/Adblock Plus and "Percival", by academics and Brave researchers.

Adblock Radio is a perceptual ad blocker
Percival blocking ads and sponsored content in a Facebook feed.

A quick heads-up on how Adblock Radio works

Adblock Radio features two different kinds of ad detectors and combines their independent results for the end user.

The first module runs machine learning algorithms that analyze the texture of audio. Is it speech over music and jingles ? Does it use acoustic compression to catch the ear ? Ads change quite often, but these patterns are almost universal, so that most new ads are caught by this filter, requiring limited maintenance.

Some of the ads get through, because they sound similar to actual content (music or plain speech). For those, here comes the second module. Adblock Radio crowdsources a database of ads and feeds a Shazam-like algorithm to detect what remains from the first filter.

The popularization of perceptual ad blockers will put advertisers under pressure

Ad-funded companies will find workarounds:

  • controlling and locking the end users' platform, so that running an ad blocker is not possible anymore. For example, Google is about to restrict ad blockers in its Chrome browser (source). People caring about their own interests may want to consider alternatives, such as the open-source Firefox.
  • blurring the lines between ads and actual content, so that ads can't reliably be removed anymore. Fortunately, journalists follow a code of ethics that theorically forbids such practise. But will it survive the pressure of ad dollars ?
  • relying on adversarial machine learning. Adversarial machine learning can be used to circumvent the machine learning part of perceptual ad blockers. In a recent paper, researchers from Stanford University and the CISPA Helmholtz Center for Information Security have explored such technique to break common perceptual ad blockers, including Adblock Radio. I am extremely interested in those findings and ready to collaborate for further research on this topic. I do not too worry too much as Adblock Radio filter uses two independent layers (machine learning and acoustic fingerprinting recognition) that have to be simultaneously circumvented, making it harder than if there were only one.

Next steps in the cat and mouse game

Assuming that perceptual ad blockers will be able to hold back the ad business as we currently know it, I think media of the future will split in two groups:

  • those who will heavily rely on product placement, like in Youtube influencers videos,
  • those who will publish premium content worth subscribing for.

Ad blockers are not a solution, they are merely a counter power for users that are tired of ads. The real solution will be to find other ways to fund the media we consume. I support businesses in this domain, such as Flattr, Brave, Blendle and Pressmium.

]]>
<![CDATA[About becoming a maintainer]]>Have you noticed that in Adblock Radio player, there is a button to tell that the filter did not behave as expected?

The ability to learn is one of the key features of Adblock Radio, letting it reach high quality filtering when trained properly. This process is assisted by volunteer

]]>
https://www.adblockradio.com/blog/2019/09/26/about-becoming-a-maintainer/5d8d24818d907e216c7a3c1fThu, 26 Sep 2019 21:21:51 GMT

Have you noticed that in Adblock Radio player, there is a button to tell that the filter did not behave as expected?

About becoming a maintainer

The ability to learn is one of the key features of Adblock Radio, letting it reach high quality filtering when trained properly. This process is assisted by volunteer radio maintainers. Pressing the "filtering error" button is the job of listeners. What follows explains how maintainers handle this data to tune Adblock Radio filters.

Maintainers are usually fans of a given radio station, for which the filter was originally subpar. Everything starts by contacting Adblock Radio team, to get to know each other and get some pointers on how to help.

The maintainer is then given credentials for a dedicated web interface, which looks like the screenshots below. The "Dashboard" tab gives info on the health of the live analysis system. Is it up and running? Has it been updated recently?

About becoming a maintainer

Most of the time will be spent on the "Predictions" tab, that features a timeline of content along with predictions by the ad filter.

About becoming a maintainer

The maintainer can listen and label chunks of audio as ads, talk or musical content.

About becoming a maintainer

When "Flags: none available" appears, it means that the maintainer has processed all the pending misprediction reports from listeners for that stream. Time to close that interface and go back to the original player. The corrections will be taken into account in the following hours.

Maintainers receive a daily notification about pending flags to examine. It's better to do it promptly (e.g. the same day), so that listeners do not flag the same error multiple times. Flags do not accumulate and everybody is happy.

It takes a minute or two every day and it helps a lot. If you are willing to help improve the filter of your favorite station, go to https://github.com/adblockradio/available-models/ and follow instructions!

]]>
<![CDATA[Past and future milestones for Adblock Radio]]>Adblock Radio, the first working ad filter for streaming radios and podcasts, has gone through milestones recently. The article that describes how the filter works got relayed on popular platforms related to technology and startups: Hacker News (front page #5), Reddit's r/programming, Product Hunt, HABR (Russia, Daily top), Gigazine

]]>
https://www.adblockradio.com/blog/2019/02/06/past-and-future-milestones-for-adblock-radio/5c5b07c06bbdbf44ae4ef152Wed, 06 Feb 2019 16:20:58 GMT

Adblock Radio, the first working ad filter for streaming radios and podcasts, has gone through milestones recently. The article that describes how the filter works got relayed on popular platforms related to technology and startups: Hacker News (front page #5), Reddit's r/programming, Product Hunt, HABR (Russia, Daily top), Gigazine (Japan)… It also got featured on high-impact B2B publications such as RBR (USA) and Radiopub (Europe). Thanks for spreading the word!

Adblock Radio as an open source SDK - call for integrators

My first objective is to make Adblock Radio compatible with all listening devices, as a SDK (Software Development Kit). The code is open source and everybody can help integrate it. Currently it's still a bit tricky to install and use Adblock Radio on your own. I work hard to make things easier, so that YOU can play with it. Adblock Radio can fit in smart speakers, mobile apps, browser extensions and even modern car sound systems (Apple Car Play, Android Auto, Mirrorlink…).

More radios compatible, more reliable filters - call for maintainers

My second objective is to support many more radios. As presented on the official list, currently 79 radios are supported across 13 countries.

- Is your favorite station missing on that list? Please write to me so that you can contribute to make it available.

- Do you think the filter is not good enough on some streams you listen to? The algorithm can learn. It just needs teachers. Please flag errors and, if possible for you, email me to volunteer to help make it better.

In the last weeks, I have worked with early contributors and we can all thank them for making 10 new radios available. The process is now ready to scale.

Long-term vision

Nobody wants our favorite radios to go out of business or creators to stop creating. Artists and editors need our financial support. Adblock Radio's long-term vision is to create new experiences for streaming media that will be worth paying for, so that artists get paid and ads won't be necessary anymore.

Happy listening,

Alexandre Storelli

]]>
<![CDATA[Ad blocking for TV]]>https://www.adblockradio.com/blog/2018/12/10/ad-blocking-tv/5b661b4eeff8f9140ae9cb12Mon, 10 Dec 2018 08:15:13 GMT

Radio and TV are both linear media, most often funded by ads. So it is interesting to see the current state of the art in TV ad skipping.

Two of leading open-source solutions for ad detection on TV are Comskip and MythTV. Both use feature detection techniques.

Comskip combines up to 8 detection methods for ads (source code):

  • Black Frame (though it's less and less relevant in the age of digital TV)
  • Logo detection
  • Scene Change
  • Resolution Change
  • Closed Captions
  • Aspect Ratio
  • Silence
  • Cutscenes

Results are good, though there are many parameters to tune for the detection to work properly. Those parameters may vary between channels. There is a forum so that people can help each other tune their configuration. Standalone usage is a bit complex as it is a command-line tool, but it has been integrated in more user-friendly interfaces such as TiVo, XBMC and MediaPortal.

MythTV uses combinations of the following methods:

  • Blank Frame Detection - Is used to determine when a programme fades to black (this invariably happens between show segments)
  • Scene change detection - Tries to determine that a large amount of the picture has changed
  • Logo detection - Looks for a part of the picture that does not change during a recorded show - i.e. an onscreen logo. Logos are usually removed for the duration of commercial breaks, making them 'easier' to spot.
  • Silence clusters detection - An advert is defined as a cluster of silences, at least minbreak long, that is composed of at least mindetect silences that occur within maxsep of each other (source).

Commercial solutions offer ad-skipping, such as:

All of these techniques seem to require fine tuning of multiple knobs, leading to poor reliability. There may be room for improvement…

Update (Jan 2020): nice French project that mutes TV when stream logo disappears, indicating the presence of ads https://make.lichat.net/adblock-tv/

]]>
<![CDATA[Designing an audio adblock]]>https://www.adblockradio.com/blog/2018/11/15/designing-audio-ad-block-radio-podcast/5b661b8deff8f9140ae9cb14Thu, 15 Nov 2018 12:52:45 GMTtl;dr: Adblock Radio detects audio ads with machine-learning and Shazam-like techniques. The core engine is open source: use it in your radio product! You are welcome to join efforts to support more radios and podcasts.Designing an audio adblock

Few people enjoy listening to ads on the radio. I built AdblockRadio.com to enable listeners to skip ads interruptions on their favorite webradios. The algorithm is open source and this article describes how it works.

Adblock Radio has been tested with real-world data from 60+ radios, across 7 countries. It is also compatible with podcasts. It works pretty well!

It is innovative compared to previous implementations, that could not be applied to all streams. A first one relies on webradio metadata, but only a small fraction of radios are compatible with this technique. Another one listens to known jingles, but in many cases the beginning and the end of ad breaks are not marked by a jingle.

In addition to detecting commercials, the proposed algorithm can also distinguish talk from music. So it can also be used to avoid chit-chat and listen to music only.

This is a report of personal work spanning over almost three years. I started Adblock Radio in the end of 2015, a few months after completing my PhD studies in fusion plasma physics. Soon after Adblock Radio gained some traction in 2016, I have received lawyer threats from French radio networks (more details below). I had to partially shut the website down, change its architecture, better understand the legal ramifications, etc. My vision today is that Adblock Radio will go much further with open innovation.

This article contains three parts that target different audiences. You can scroll down or click on their titles to navigate directly.

- Detecting ads: attempted strategies — for tech-savvy people, data scientists… It presents the different technical ways I have tested to detect advertisements, including speech recognition, acoustic fingerprinting and machine learning. I also discuss some paths for further work.

- Running Adblock Radio in the cloud is not recommended — for software developers but also for people interested in copyright law. It shows how difficult it is to find a satisfying intersection between technical and legal restrictions that apply to run Adblock Radio in cloud servers. For these reasons, it's better to run Adblock Radio on end users devices.

- You are welcome to integrate Adblock Radio in your radio player — for makers, product owners, UX designers, techies… I review ideas to integrate the open source algorithm in end user products, including cars, and highlight the need to get mispredictions flags from users to maintain the system. Finally, I give clues on how to design proper user interfaces. I expect a lot of feedback on this topic.

Designing an audio adblock
Adblock Radio brings back the zen in your radio experience

Detecting ads: attempted strategies

To block ads, it is first needed to detect them. My goal is to detect ads in an audio stream, without any cooperation from the radio companies. It is not an easy task. I have tried several approaches before getting good results.

1 - Low-hanging fruits (not working)

Loudness

A first idea is to check the loudness of the audio, because they are so noisy! Ads often rely on acoustic compression. This is an interesting criterion but it is not enough to discern ads from other content. For example, this strategy would work quite well for classical music stations where ads are most often louder. But it would not in pop music radios, where songs and announcements are as loud as ads. Moreover, some ads are quite on purpose, so they would not be detected.

Fixed-time blocking

Another idea is to consider that ads are broadcast at fixed times. This is true to some extent, but this lacks precision. For example, I have observed a morning show on a French station did not start exactly at the same time every morning, with variations of up to two minutes. Radio stations could easily defeat a block by time strategy by randomly shifting their programs by a few tens of seconds.

Metadata

An obvious solution would be to rely on webradio's ICY/Shoutcast metadata, that helps software like VLC display info about the stream. Unfortunately, this data is in most cases broken. It would be possible to fallback on the live stream info on radio websites (I developed a tool for this), but most often ads are not identified as is. In general, during ads, the website displays the name of the song or show that was broadcast before. One noteworthy exception to this rule is Jazz Radio where, at the time of writing, shows "La musique revient vite..." (music will be back soon) during ads. In conclusion, this strategy is not durable as radios can change that metadata very easily.

Human flagging

Finally, one could detect ads without any algorithm! One could simply ask some listeners to push a button when ads start or stop. Other listeners would benefit from this. This is the strategy behind the TV recorder TiVo Bolt. It offers to skip ads on a selection of channels at certain times. Its gives perfect results but does not scale well on thousands of radio stations.

A drawback is that it is difficult to bootstrap the system. A newly supported station may not have enough listeners at the same time for it to work correctly. Those listeners would get frustrated and leave.

Another difficulty is that radio stations have the incentive to send bogus flags to sabotage the system. This requires a system of moderation, user consensus or vote threshold.

Crowdsourcing is a good idea. I think it is even more durable if an algorithm does most of the work, leaving the minimum for people. That's what I have done.

2 - Speech recognition and lexical field analysis (failure)

Advertising is always about the same topics and lexical field: buying a car, getting supermarket coupons, subscribing to an insurance, etc. If audio can be converted to words, tools to fight email spam can be used to detect unwanted content. This has been my first path of research in late 2015, but it turns out I could not get speech recognition to work.

Being a newbie to speech processing, I started up by reading Huang's Spoken Language Processing, an excellent book, though now a bit dated. I got my hands dirty with CMU Sphinx, the best open source speech recognition toolkit at the time.

My first attempt gave very poor results and required heavy CPU computations. I used default parameters: standard French dictionary (list of possible words and corresponding phonemes), language model (probabilities of word sequences) and acoustic model (phoneme to waveform relationship).

I tried to improve the system, but in vain: recognition was still disappointing. I customized the dictionary and language model with a small dataset I had crafted for this purpose, using recordings split with a diarization tool. I also did MLLR to adapt the acoustic model to the broadcast station - Europe 1 (French) - I was studying.

I abandoned the idea to detect ads with speech recognition. This is probably a topic for experts. Note that this idea could be revisited. Much progress has been made in speech recognition since 2015. New open source tools have been published, such as Mozilla Deep Speech.

3 - Crowdsourced database of ads, detection with acoustic fingerprints (encouraging)

The first version of Adblock Radio in 2016 maintained a database of advertisements. It listened to the stream continuously, searching for ads. Results were really promising, but keeping the database up to date was challenging.

The search technique was acoustic fingerprinting, similar to what Shazam does on its servers when you want to identify a song. This kind of algorithm is commonly known as landmark. I adapted it to work on live streams and open-sourced it: adblockradio/stream-audio-fingerprint.

Fingerprinting is relevant to detect ads because ads are identically broadcast many times. For the same reason, it can also detect music. But this technique would not work for talk content because people never pronounce words the exact same way. Such talk detection may only happen for reruns at night, which does not interest us here. So, to build a fingerprints database, one should put ads and music (considered as "not an ad"), but inserting talk content is useless.

In more detail, audio fingerprinting is about converting some audio features into a series of numbers, called fingerprints. When many fingerprints match between live audio and an ad sample in a database, we can guess the radio is broadcasting ads. Some tuning is needed to have an optimal resolution and range in time and frequency. Different audio samples have to be correctly discriminated. But almost-identical audio should be matched, even if the audio encoding is different or if the radios apply different equalizer settings. Finally the amount of fingerprints should remain small, to not run out of computing resources.

Designing an audio adblock
Example of calculation of acoustic fingerprints. The background map, in red, is a spectrogram. It represents the intensity versus time of low to high pitched sounds, respectively from bottom to top. In this map, spectral peaks are identified (blue dots) and assembled together (gray lines). The position, length and orientation of each gray line is converted into a unique number, the fingerprint.

The classification was binary, classifying audio between ads and other content. The system gave almost only false negatives, i.e. it missed ads, and very rarely had false positives, i.e. marked good content as ad. Users could report undetected ads with a single click, giving an excellent user experience. The corresponding audio was automatically integrated in the DB. I moderated those actions a posteriori.

It was difficult to keep the database up to date as commercials change a lot. Similar ads are often broadcast in multiple slight variations. They are also renewed frequently, in some cases every few days. Some streams with not enough listeners were very poorly classified.

I investigated exciting strategies to automate some part of the work of listeners. Ads are identically broadcast many times every day. This can help identify them. I looked for maximally repeated sequences (MRS) in radio recordings.  Other content is also repeated, such as songs and radio jingles. I sorted all sequences by length and looked at the results whose length was approximately 30 seconds, the typical length of ads. That way, I very often caught advertisements. But sometimes, I also got the refrain of songs (between different verses) or even recorded weather forecasts.

I found a way to discard most musical repeated sequences. I looked at the musical playlist of radios, downloaded the songs and integrated them in the database under a "not ad" label. Therefore more and more MRS candidates were actual ads. But still not all of them, so user actions were still needed.

Less manual work was necessary, but the I/O load on the servers had become problematic. In retrospect, the choice of SQLite for these read-write-intensive, time-critical database operations was probably not the best.

Fortunately, the algorithm had several seconds to determine if the sound was an ad or not. It is because webradios use an audio buffer, usually between 4 and 30 seconds, that is not immediately played on the end user device. It helps prevent audio cuts when the network is not reliable.

I used this buffer delay to post-process predictions, to make them more stable and context-aware. Just before the audio is played on the end user device, the algorithm looks at predictions results that are still in the buffer, as well as older ones that have already been played. It prunes dubious data points with few fingerprint matches, introducing a hysteresis behavior. It also does a weighted time average to smooth out temporary glitches.

Designing an audio adblock
Adblock Radio at some point in 2016. The red/not red interface, updated in real time, was really satisfying! Users could flag undetected ads with the blue button. The music-in-a-cloud button at the top allowed users to export a custom MP3 stream with ads removed and, if configured so, soft transitions between radios. More user interfaces are presented below.

4 - Acoustic classification between ads, talk and music with machine learning (almost there!)

The next version of the algorithm analyzed the acoustic content of radio broadcasts: low to high-pitched sounds, and their variations in time. New unknown ads were detected almost as well as the old ones used for tuning, just because they are as noisy and catchy. This is a more sophisticated method to monitor the audio loudness (see previous discussion).

For this, I used machine learning tools, more precisely the Keras library wired to Tensorflow. It gave very good results while using few computational resources. It stayed in production for more than a year, from early 2017 to mid 2018. Distinction between talk and music turned out to be reachable, so the classification became more precise, from ad /not ad to ads / talk / music.

Let's dive into details. I converted sound in a 2D map, giving the intensity of the sound as a function of frequency and time (on a scale of about four seconds). This map was conceptually similar to the red one in the fingerprinting paragraph. The main difference is that instead of classical Fourier spectra, I used the Mel-frequency cepstral coefficients that are common in speech recognition contexts.

Consecutive maps, at different timestamps, were then analyzed like pictures in a movie with a LSTM (long short-term memory) recurrent neural network. Each map was analyzed independently from the other (stateless RNN) but maps overlapped each other. Maps were 4-second long and there was a new map every second. The final output for each map was a softmax vector, such as ad: 72%, talk: 11%, music 17%. Those predictions were then post-processed in a similar way than described before with the acoustic fingerprinting technique.

Designing an audio adblock
Preview of what typical machine learning results look like for two radios. The horizontal axis represents time, over about 17 minutes. The green line moves between three positions: ad at the top, talk in the middle and music at the bottom (close to the uniform grey background). Red areas let the user listen to a chunk of audio. If the algorithm gives a wrong prediction, the user can correct it.

Initially, I trained the neural network with a very small dataset. I developed a UI tool (see figure above) to visualize predictions versus time and could add more data to train models with better performance. At the time of writing, the training dataset contains about ten days of audio: 66 hours of ads, 96 of talk and 73 of music.

Despite the good behaviour, the precision of the classification reached a plateau a bit below user expectations (see Future improvements below). At training, categorical accuracy was about 95%. The remaining mispredictions made the listener experience subpar.

Note for data scientists: it is common practice to present formal performance measures, by splitting the dataset into training and testing subsets. I think it is not meaningful to do it here, because the dataset has been built incrementally with data that was confusing to earlier models. It means the dataset contains more pathological data than the average radio broadcast and that the accuracy would be underestimated. A separate work to measure the real-world performance would be needed. An operator could label continuous segments of regular audio records, as test data, and calculate precision and recall against it. Doing this on a regular basis would enable to monitor the health of the filters.

Predictions became between ad, talk and music brought more flexibility for listeners. But such classification made the user interfaces more complex and the user reports became more difficult to handle. If a flag indicates that some content is not music, is it an ad or is is talk? This required a priori moderation.

To improve the quality of detection even further, I designed the last version of Adblock Radio, which is an incremental improvement of this strategy.

5 - Combination of acoustic classification and fingerprint matching (win!)

The best performing algorithm I have built is available on Github. For improved reliability, it combines concepts from the two previous attempts: acoustic classification and audio database.

The machine learning predictor, if properly trained, provides correct classifications on most original content, but it fails in some situations (see below in Future improvements section). The role of the fingerprint matching module is to alleviate the errors of the machine learning module.

Not all known training data is put in the database of the fingerprint module. Only the small subset of the database that is mispredicted by the machine learning predictor is inserted. I call it the hotlist database. Its small size helps reduce the overall error rate while keeping computations cheap.

On a regular laptop CPU, the whole algorithm runs at 5-10X for files and at 10-20% usage for live stream.

Future improvements

Some kinds of content are still problematic

Detection is not perfect for some specific kinds of audio content:

  • hip-hop music, easily mispredicted as advertisements. Workaround is to add tracks to the hotlist, but that's a lot of music to whitelist. A more general neural network could be designed, but maybe at the cost of performance.
  • ads for music albums, often mispredicted as music. But blocking them with fingerprints would lead to false positive detection when the real song is broadcast. Can be solved by doing a stronger context analysis, but is hard to solve for live streams where future further than a few seconds of buffer is unknown.
  • advertisements for talk shows, mispredicted as talk. This is litigious, because those are both talk and ad at the same time. It highlights a limit of the ad / talk / music classification. For fingerprints classification, I have used for a while an ad_self class, containing announcements for shows on the same station, but stopped doing it with the machine learning algorithm. It may be wise to recreate that class. Alternatively, context could be better analyzed to identify this as ads.
  • native advertisements, where the regular speaker reads sponsored content. This is quite unusual on radios, though more common in podcasts. The logical next step for this would be to use speech recognition software.

Markov chains for a more stable post-processing

Stability of the post-processing could be improved. Currently, it only uses confidence thresholds. When below the threshold, it uses the last confident prediction. Thus the system sometimes persists in error.

Cycles of ads, talk and music are fairly repetitive for each radio streams. For example, an ad break commonly lasts a few minutes. For each period of time in an ad break, it would be possible to calculate a probability of transition to another state (talk or music). That probability would help better interpret noisy predictions of the algorithm: is this just a short segment of music in an ad or is the ad break finished? In this topic, Hidden Markov Models are a good direction to look at.

Analog radio is not supported yet

Analog signals (FM) have not been tested and are not currently supported. Analog noise might void the techniques used here. Filters and/or noise-resistant fingerprinting algorithms may be needed. Work on this topic could broaden the use cases of this project. However, in the future, radio will be more significantly consumed with noise-free technologies such as DAB and webradios.


Adblock Radio should ideally be run on the end user device. But it is in vogue to do the computations in the cloud and to serve the results to the listeners. Moreover, it would be a great business idea! Adblock Radio has tested two options to design architecture with this paradigm. First-hand experience shows it is not an ideal solution, for technical and legal reasons.

Option #1 - Server rebroadcasts audio

The analysis server can transmit audio content to listeners, with ad/talk/music tags. This has been briefly tested in 2016. This leads to legal issues as relaying a stream could be considered as counterfeiting and/or copyright infringement (disclaimer: IANAL). Also this scales poorly because now you are a CDN and have to bear the costs.

For the anecdote, on a Sunday while I was at a family meeting, Adblock Radio has got some virality and subsequently a hug of death. Fun fact: a few days later, France Inter, a major French public radio station, advertised Adblock Radio at a high audience time (though, without naming it). This surprising editorial choice may be put in perspective with the fact that regulators chose in 2016 to loosen restrictions for ads broadcast on public radio stations, contributing to a poor climate between the staff of Radio France and its direction.

A few weeks later, I received lawyer threats from French private radio network Les Indés Radios, on supposed grounds of copyright and trademark infringements. Lacking the financial resources to seriously defend myself, it forced me to remove some streams from the site, partially shut down the site and change the architecture of the system. At the time, that radio group declined to start a collaboration to find a middle ground. Ever since, I could detect by traffic analysis that they have kept monitoring my website (sometimes with pseudonymous accounts) and consulted their lawyers. What an honor! Retrospectively, they successfully bought time, but nothing more. Hi Indés guys! Hope you enjoy reading this! xoxoxo.

Designing an audio adblock
Declaration of love from Les Indés, a network of 131 French radio stations

Option #2 – Server rebroadcasts audio, but it's private copy

An option would be to consider that analysis and relaying of the cleaned audio stream is an operation for a specific individual. Such a system could land in legal exceptions of the right to do private copies of your own media. If the server is managed by the end user, this is probably fine, as long as the original source is legal and officially available in your area. For more information about this, please refer to discussions about Station Ripper [FR] and VCast [FR]. But end users are rarely tech-savvy enough to rent and install a server to do this.

It is very tempting to have the server managed by a third party, but this leads to legal trouble as, when the operator doing the copy and the end user are not the same person, legal restrictions apply, at least in France. French Internet service Wizzgo [FR] got smashed by this rule in 2008. More recently, in the USA, TV service Aereo got sued into oblivion even if it took the precaution to use a separate tuner for each of its clients (!).

Current actor Molotov.TV [FR] is struggling against the attacks of rights holders that want restrictions on features [FR], despite the considerable influence of its cofounders. It is required to pay a private copy levy to an official organization [FR]. The amount is determined by rather opaque calculations [FR] and is increasing [FR] year after year, reaching a few tens of euro cents per user and per month. That fee has become so high that Molotov.TV recently removed features of its service for free users [FR]. (Note: I warmly thank the journalists of French website NextINpact for their very good coverage on this topic).

Paying is not enough: law requires actors such as Molotov.TV to sign agreements [FR] on features with the companies holding the copyrights. Good luck reaching an agreement with radio companies if you ostensibly cut their ads.

Option #3 - Server only sends metadata

The other option is to have both the user and the server listen to the same webradio at the same time. The server analyzes the audio and sends to the user classification metadata (ad/talk/music), but no audio content. This architecture is in production on adblockradio.com since 2017. It relies on the CDN of radios, so there is no cost or availability requirements to bear regarding the broadcast of audio.

This architecture has the benefit to clear legal concerns about author's rights (disclaimer: I am not a lawyer). However, there may still be some uncertainty about trademark laws. Recently (october 2018), the radio network behind Skyrock has requested the removal of content on such supposed grounds.

Designing an audio adblock
Romantic message from Skyrock legal department

Legal considerations apart, a technical issue is that there is no way to be sure synchronization between audio and metadata will be correct. In most cases, it works well, with a sync gap of less than two seconds. But some radios have weird/malicious CDNs or have introduced dynamic advertising in their streams. This means that streams between the server and the clients can become significantly different. For example, lags of about 20s have been observed for Radio FG and up to 45s for Jazz Radio. This leads to a frustrating experience for listeners.

Synchronization can be brutally enforced by comparing data chunks between the server and the user. Unfortunately, this does not work in web browsers, because most webradios CDNs have not enabled CORS headers. It means that JavaScript in browser will not be able to read the audio content to compare it. Standalone bundles (e.g. Electron), Flash modules (duh) or web extensions would be needed, but this seems slightly overkill.


You are welcome to integrate Adblock Radio in your radio player

This project is not intended to be handled by end-users. It is meant to be integrated in mass market products. You are welcome to do it!

Developers have two options to integrate Adblock Radio. The first one, using the SDK, simply fetches live metadata from adblockradio.com servers. It is not the ideal solution for reasons detailed above (legal & sync issues). The better bet is to run the full analysis algorithm.

Software

  • mobile apps for webradios and podcasts. Keras models should be converted to native Tensorflow ones, and the Keras + Tensorflow library could be replaced with Tensorflow Mobile for Android and iOS. Node.JS routines could be integrated with this React Native plugin or less probably with Termux.
  • browser extensions, with Tensorflow JS and SQL.js. The extension could take control of the volume knob on popular webradios catalogs such as TuneIn or Radio.de. I already did work on this. It was funny to reverse engineer the JavaScript players to control them. Depending on how you implement this, be aware of the synchronization issues detailed above.

Hardware

  • digital alarm-clocks and hobbyist projects, as long as enough computation power and network are available. Platforms as small as Raspberry Pi Zero/A/B should be enough for single stream analysis, though RPi 3B/3B+ is recommended to monitor several streams in parallel. Tensorflow is available on Raspbian.
  • connected speakers, such as Sonos. The algorithm itself will not run on Sonos hardware, so, if not done in the cloud, a separate hardware device on the same local network could do it (such as a Raspberry). Great idea for a crowdfunding campaign.

Using Adblock Radio in a car

Car is one of the most frequent situations where people listen to the radio. Users do need Adblock Radio there. It is also a context where implementing Adblock Radio is not straightforward. The algorithm needs updates to efficiently filter new ads, therefore it needs a network connection. I present three possible concepts of car products featuring Adblock Radio.

  • App compatible with infotainment systems of modern cars – The easiest way to transmit data in a car device is probably through a smartphone's Internet access. A smartphone can be used alone with a mobile app, streaming webradios, with it's audio out connected to the car's AUX or Bluetooth audio in. It could also be integrated with the car's infotainment system, in the spirit of Apple Car Play, Android Auto and MirrorLink. It would be fantastic to listen to terrestrial radio (FM, DAB). But work is needed to identify in what exact configurations Adblock Radio can gain access to the audio output of the radio tuner and, at the same time, control the tuner (volume, channel).
  • Universal hardware adapter, dedicated user interface – It is also possible to develop custom hardware, similar to existing DAB adapters for cars. These devices tune to radio stations and transmit the audio data to the car system through an AUX jack connection or through an unused FM channel, like those old iPod FM adapters do. Network access could again rely on a smartphone through a Bluetooth connection. Alternate solutions could be considered, like Sigfox and LoRa, if communication bitrate and price are found to be compatible. One should design a dedicated user interface, separate from the car's head unit. This may be too expensive to be viable.
  • Minimalist device that hacks FM reception – For the convenience of using the main car radio interface instead of that of a small device, the small device could be headless and take control of the tuner when needed. There is no interface for that, being standard and easily connectable at the same time. A good candidate would have been the steering wheels controls, but they cannot be easily adapted by end users. So we need to hack into the system.
    The headless device would have a FM tuner and would get to know which station is listened in the car with a microphone (doing cross-correlation). When ads are detected, it would emit bogus RDS data (such as traffic announcements) to cheat the car tuner into changing station during ads. It could also emit blank audio on the same FM frequency to turn the volume down.
    The interface of such device would be very simple, with just a few knobs. So it would be cheaper than the full-featured car adapter. However it is unclear if this would work reliably as, without a license, the emitting power is strictly limited by law. Finally it is unknown if such strategy could be adapted to work with digital DAB streams.

If the technique can be worked out with a cheap bill of materials, a product offering Adblock Radio in cars would very likely be a commercial success. Moreover it is crowdfunding-friendly.

Adblock Radio needs reports of mispredictions from listeners and help to process them

When integrating Adblock Radio in a product, please give the user a way to give negative feedback on the classification. Mispredictions should promptly be reported to me so that I can update ML models and hotlist databases accordingly.

Reports are manually reviewed: it is enough to provide the name of the radio(s) and a timestamp at which the problem happened. For a given selection of radios, one report every few minutes is enough. A mechanism to send reports is included in the library.

Processing reports is a burden. In addition to server costs, this is why I have not added more radios to adblockradio.com. Help on this is needed, by listening to audio tracks and classifying them on a dedicated web administration interface. This can make more radios available, as well as bring support for native podcasts. If you are ready to help, please register here and watch this Github repo where discussion about supported streams will take place.

What to replace ads with – a UX challenge

Skipping ads in a podcast is trivial in terms of user experience: it is like skipping a part of a song. Unfortunately, it is not as simple for radio. Broadcasts are linear and for live content, fast-forwarding is not an option!

The current adblockradio.com service offers three options to the users when an ad is to be filtered:

  • turning the volume down
  • tuning to another radio, tuning back when ads are over. This is relevant when the user listens to a radio show. During ads, it fallbacks temporarily on a musical station.
  • permanently tuning to another radio. This is useful when listening to several musical stations.

I made efforts to give the best possible user experience, but it is still complex. Not as straightforward as a regular radio and not as simple as adblockers on computers, that are amazingly install and forget. I really count on the community to brainstorm on this topic.

Designing an audio adblock
Current Adblock Radio web interface
Designing an audio adblock
Earlier prototype that I never released. It provided full customization capabilities to the user. Talk-only from a station, music-only from another station, etc. Testing users were so confused! In retrospect, even I barely understand this interface.

There is another way to consume content that I find interesting. For legal reasons discussed above, I could not implement it on adblockradio.com. I have built instead a standalone desktop player (also available on Github), inspired by the digital video recorders capabilities. Users start listening with a time-shifting of about 10 minutes (i.e. if they start listening at 7.30AM, they listen to the audio broadcast at 7.20AM). Each time an ad break happens, they fast-forward and enjoy their program without interruptions. Given the typical amount of ads, a time-shift of 10 minutes gives the ability to listen without breaks for an hour or two. If it were a mobile app, it would be long enough to commute to work.

When the user turns the device on, audio from ten minutes before has to be served. How to do this in a mobility context, with energy and data volume constraints? Note that law prevents unlicensed third parties (in the cloud) to serve radio recordings.

Designing an audio adblock
Working prototype of a time-shifted radio player. Audio chunks are classified in segments, with delayed audio on the right and live audio on the left. Music in blue, talk in green and ads in red. When the pink playing cursor reaches a red zone (ads), it skips it.

In the long term, the solution is likely to consume broadcast content on-demand and to completely customize it according to the tastes of each listener. Mark radio shows as favorites, choose musical tastes, insert podcasts, etc. The optimal experience would be, in my opinion, to offer Spotify-like features on live content that cannot wait to be downloaded as a podcast: sport events, news reports, weather forecast, live music, etc. It could even be the foundation of an alternate business model for radios.

Conclusion

The technical solution to detect ads in radio streams and podcasts is more complex than I wish it were. Its models need to be periodically updated to account for new advertisements, which means the system is to be used in devices connected to the Internet, such as smartphones and WiFi radios. It cannot yet be used in regular offline Hertzian-only radios (FM, DAB+). Fortunately, uses of radio are changing with ubiquitous mobile data carriers, so that the use of this algorithm will plausibly be easier in the future.

You can help Adblock Radio go further.

In the future, audio ads will only be distant memories! Thank you for reading.

Spread the word!

This article got featured on:
- Reddit's r/programming
- Hacker News (front page #5)
- Gigazine (Japan)
- HABR (Russia, #1 daily top)

]]>
<![CDATA[Ad blocking on the web]]>https://www.adblockradio.com/blog/2018/10/08/ad-block-web/5b574bdceff8f9140ae9cb08Mon, 08 Oct 2018 14:18:14 GMT

Advertising is one of the main business models on the Internet: it scales very well and enables websites to charge micro-transactions to their visitors without the fees that apply to regular online payments, e.g. fixed fees of about $0.30 for Paypal and Stripe.

Publishers have the incentive to display more ads, in more intrusive formats, so that visitors cannot just ignore them. For example, they introduced pop-up ads in the early 2000's.

Visitors got annoyed and designed workarounds to skip those ads. A competition had begun between publishers and visitors, in a $100B+ market.

I first describe the different types of ad blockers and how they work. Some projects even try to sabotage the ad system!

Then, I discuss the available options for ad companies to fight blocking: technology, law or redefining the content itself.

Lastly, I review different mechanisms that will regulate the ad market and shape the future of that industry.

Ad blocking on the web
Can't afford the subway? Use an AdBuddy! (from the Netflix show Maniac)

Overview of ad blocking software

Detecting and filtering ads in webpages can be done when content is in transit (e.g. ISP, home router) or directly on the end-user device (e.g. computer, smartphone).

Browser ad blockers

Adblock Plus, uBlock are extensions for browsers. They use filter lists, such as the community-managed EasyList that is installed by default. Filter lists are lists of patterns for web resources. When a page is loaded, the address (URL, domain) and display characteristics (DOM structure, CSS classes) of each resource are checked against filter lists.

They are compatible with the most popular desktop browsers, as well as some mobile browsers, such as Firefox for Android.

Network ad blockers

Ads can also be filtered at the network level, by blocking a list of domain names, by using a proxy or simply at the DNS-resolution, hostfile level. Such ad blockers can be installed on the user machine, or on its router.

For example, on Android, hostfile installer AdAway cleans many ads at the system level, using several domain lists).

At the router level, Pi-Hole, a software that is to be installed on any Linux machine (including the Raspberry Pi, hence the name) and Privoxy, a web proxy, can filter some ads before they reach computers on the network.

A French ISP, Free, tested blocking ads for their customers in 2013. They mangled the DNS server configured by default for end users. This has been abandoned since, some groups condemning the move as a bold attack against Google in the context of ongoing peering agreements and a first step towards censorship (archive if the site is down).

Combining both at home can be a good idea

Domain-name filtering has the advantage that it can be set up at a network level, ensuring that all requests are blocked on all devices, for all applications, without any further configuration required. However, it lacks the precision of browser-based blockers, especially on domains that use HTTPS and that serve useful content (e.g. https://domain/ham) as well as unwanted one (e.g. https://domain/spam). The proxy only sees https://domain/ and cannot filter by full path, DOM structure or CSS rules. Also, network ad blockers are less convenient when a temporary whitelisting is needed.

In a nutshell, using two adblockers is nice if the network-level filter is tuned to have a minimum of false positives. Browsers can finish the filtering job with their own blocker (filering DOM/CSS and the websites that need to be occasionnaly whitelisted). The presence of the network adblocker ensures other ressources on the network where adblockers are not easily installed (e.g. smartphones & rooting) have also much less ads.

Advertising and tracking sabotage

Simply hiding the ads is only one way to fight an Internet driven by advertising platforms. Sabotaging the system is even more entertaining in the eyes of the developers of AdNauseam, a web extension that not only hides ads, but also quietly click[s] on every blocked ad, registering a visit on ad networks' databases. This is devilishly genius. My personal piece of advice is to use AdNauseam on the websites you want to support, so that they benefit from the click fraud. For other websites, use a plain adblock. This extension has been kicked out of the Chrome Web Store but you can still install it manually. It is also available on Firefox and Opera.

Automating click-fraud has been at the center of Google Will Eat Itself, now defunct, artistic project:

We generate money by serving Google text advertisements on a network of hidden Websites. With this money we automatically buy Google shares. We buy Google via their own advertisement! Google eats itself - but in the end "we" own it!
By establishing this autocannibalistic model we deconstruct the new global advertisement mechanisms by rendering them into a surreal click-based economic model.

Counterattacks from advertisers

Obfuscation

A counterattack from a website would be to obfuscate its assets. The homepage /index.html would show a useful image /m33te.jpg and an ad /fdc65.jpg, with the paths changing regularly. In the scenario where DOM/CSS filters would not be effective either (ads and content mixed in a feed for example, with same presentation), there would be no easy way to block the ad. It has been the approach of Facebook. A game of cat and mouse is happening between Facebook and the Easylist community. List maintainers have to tailor very sophisticated filter rules (by DOM structure and CSS properties) that break as soon as Facebook decides so.

But few websites follow this strategy. Facebook can do it because it is a walled garden having its own advertising platform and vast resources to engage in an obfuscation battle. The majority of websites in general rely on third-party advertising networks, as it is much easier to implement.

Fortunately, third-party ad networks are straightforward to filter and the community maintaining the lists it has grown to a point you almost never see an ad anymore when you surf the web.

Adblock walls

An adblock wall is a technique to detect if ads have been correctly displayed on a website. If they have not, it denies access and displays instead a message asking the user to disable its adblocker (at least for the given website). This technique has mixed results, as described by a PageFair report from 2017:

90% of adblock users surveyed have encountered an adblock wall.
74% of these users say that they leave websites when they encounter such an adblock wall.When faced with an adblock wall, older internet users and men are more likely to leave than perform the steps required to disable their adblocker.

Verdict: Adblock walls are ineffective at motivating most adblock users to disable their adblock software, even temporarily. Unless the website in question has valued content that cannot be obtained elsewhere, an adblock wall is likely to be ineffective at combating adblock usage at any significant rate.

The main difficulty of web advertisers is that they do not control the end user platform. Adblock walls can be circumvented by tools such as Anti Adblock Killer or even the more general-purpose tool NoScript, that disables JavaScript execution.

Court

One of the remaining ways to fight adblockers has been to sue the only for-profit adblocking company in the sector, Eyeo GmbH, editor of Adblock Plus. There have been many decisions between Eyeo and Springer, over several years. The last one, handed down by the German Supreme Court, ruled in favor of Eyeo:

Today’s Supreme Court ruling confirms -- just as the regional courts in Munich and Hamburg stated previously -- that people have the right in Germany to block ads. This case had already been tried in the Cologne Regional Court, then in the Regional Court of Appeals, also in Cologne – with similar results. It also confirms that Adblock Plus can use a whitelist to allow certain acceptable ads through. Today’s Supreme Court decision puts an end to publisher Axel Springer’s claim that they be treated differently for the whitelisting portion of Adblock Plus’ business model.
Importantly, the judges ruled that the use of ad-blocking software and the employment of a whitelist that allows non-intrusive advertising is legitimate. Specifically, the judges decided that Adblock Plus does not breach the law §4a UWG (unfair competition), because it does not enforce aggressive business practices.

This final decision only deals with Germany, but establishes a very significant legal precedent.

Ad is the content itself: product placement

If displaying ads is not enough profitable because of blockers or platform fees, publishers still have the option to do product placement. The practice is common on blogs and social media, where you can pay influencers to get a product featured, or fake news distributed.

Fortunately, it has a very limited impact on real journalism, as it follows a code of ethics. But in general, product placement on a website is possible. This marks a clear difference between the Internet as a media on one side, and TV and radio on the other side. In Europe at least, product placement is forbidden on TV and radio. Ads and content have to be clearly separated (e.g. for radio in France: Décret n°87-239 du 6 avril 1987, Article 8).

Let's hope the financial pressure of ad blockers will not jeopardize the rule of separation between content and ads, as it contributes a lot to media quality.

Towards better ads on the web

Acceptable ads / Adblock Plus

Completely blocking ads is not really helpful for the web economy. Adblock Plus has introduced the concept of Acceptable Ads program a few years ago. Ads that follow a strict set of rules (defined by ABP) get whitelisted for Adblock Plus users that have not disabled this feature. Given the market share of Adblock Plus, this put an incentive on advertisers to use ads formats that are more respectful to the users, see e.g. Carbon Ads. Ads in general get better over time.

Despite the nice intentions behind this program, this move has lead to controversy. The caveat is that even if Eyeo whitelists the majority of ads for free, it asked money to the biggest ad networks (including Google). That looked a bit like extortion.

Coalition for Better Ads / Ad companies

The rise of ad blockers has gathered many actors to define better standards for advertising: the Coalition for Better Ads. Where the Acceptable Ads program (from Adblock Plus) has strict rules, Coalition for Better Ads guidelines are much more lenient. This puts incentives at different levels of the ad market, which is a good thing.

Recently, Google introduced an adblocker in Chrome itself, following the CBA rules. At first glance, this is a counter-intuitive move. Why would Google, an advertising company, give some income up? All things considered, it is quite brilliant in my opinion. If the worst ads get blocked, people have less incentive to install a full fledged adblocker and Google saves its business model.

I am looking forward to a big antitrust legal battle when Google will have used Chrome to block all ads except its own ones. My 2-cents piece of advice is not to rely on Chrome's built-in adblocker.

Innovative business models / Brave

Brave has its own approach to reconcile readers with advertising. Its main product, a browser, replaces ads with respectful ones, which means tracking-free and lightweight. Furthermore, it shares 15% the ad revenue with the user.

Users in the Brave ecosystem can gracefully migrate to an ad-free experience with the micro-payment system based on Basic Attention Tokens, that shares similarities with that of Flattr (now tied to Adblock Plus) or Tipeee. It's innovative. Brave should definitely stay in your radar.

To conclude, the war between ad companies and ad blockers is fascinating to analyze. I cannot wait to know what clever moves those actors are going to do next.

]]>
<![CDATA[Consumer sensitivity to audio advertising measured by Pandora]]>https://www.adblockradio.com/blog/2018/10/05/consumer-sensitivity-to-audio-advertising/5bb20ba188b12c22053285fcFri, 05 Oct 2018 15:44:10 GMT

Scientists from Stanford, Pandora and Netflix have analyzed the effects of ads on listeners. They have used a broad dataset from Pandora, representing the real behaviour of 35M users during 21 months. All other parameters remaining constant, what happens when the amount of ads is varied?

The results are presented in the paper available at this page: http://www.davidreiley.com/papers/PandoraListenerDemandCurve.html

TL;DR; They have shown that:

  • broadcasting more ads makes people consume the media in shorter sessions, and less often. Broadcasting 12 ads per hour instead of 3 makes people listen 5% less (in total hours). At the root of this reduction, 18% of people listen less every day, 41% listen less often, 41% do not listen at all anymore.
  • between 3 and 12 ads per hour, the economics show that broadcasting more ads is marginally profitable. Most of the additional money comes from ad revenue, not from people switching to a paid, ad-free plan. To avoid ads, older people are more prone to pay for an ad-free content than younger people, that most often leave the service.

The average duration of ads was not given in the paper. David Reily kindly answered my question: it is approximately 25 seconds, on average.

Interesting quotes from the article:

More than 80% of listening now takes place on mobile devices.
The coefficients show us that one additional ad per hour results in mean listening time decreasing by 2.075% ± 0.226%, and the number of active listening days decreasing by 1.897% ± 0.129%.
Had we run an experiment for just a month or two, we could have
underestimated the true long-run effects by a factor of 3.
This tells us that approximately 18% of the decline in the hours in the final month is due to a decline in the hours per active day, 41% is due to a decline in the days per active listener, and 41% is due to a decline in the number of listeners active at all on Pandora in the final month. We find it interesting that all three of these margins see statistically significant reductions, though the vast majority of the effect involves fewer listening sessions rather than a reduction in the number of hours per session.
For each additional one ad per hour during the experiment, we see a 0.14 percentage-point increase in the probability of being a paid subscriber at the end of the experiment. Multiplying by the subscription fee of $5 per month, we see that Pandora picks up additional monthly subscription revenue of approximately 0.75 cents per listener for each increase of one ad per hour (minus payment-processing costs). This turns out to be considerably smaller than the effects on advertising revenue implied by the demand-curve estimates above.
For each listener converted to a subscription by increased ad load, three more listeners leave Pandora entirely.
We see that listeners over 55 years old are twice as likely as listeners between the ages of 13 and 24 (marginal impact of 0.21% versus 0.09% or less) to react to an increase in ad load by paying for the ad-free service.
We find weak evidence to suggest that redistributing advertising across more interruptions, conditional on the number of ads per hour being held constant, may have a small impact on customers’ propensity to listen to Pandora.

I have discovered this article thanks to a post in a Hacker News discussion:

https://news.ycombinator.com/item?id=18107960

]]>
<![CDATA[Radio would be much better without ads]]>https://www.adblockradio.com/blog/2018/07/25/better-radio-without-ads/5b572bbceff8f9140ae9cb04Wed, 25 Jul 2018 15:48:00 GMTRadio would be much better without ads

Advertising is currently the main business model of broadcast radio, because it is the simplest one to implement.

Paid radio is less common and more recent: custom online music programs with Pandora, sports live coverage with Tunein Premium, high-quality jazz music with JazzRadio.com or premium podcasts with BoxSons. Some companies run a hybrid business model, such as satellite radio provider SiriusXM, by broadcasting ads to paying subscribers.

I distinguish four kinds of radio providers:

  • publicly funded radio (NPR, Radio France, RTS, BBC…), with generally high-quality programs and few ads.
  • private classic radio networks, ad-funded, with highest common denominator shows and mainstream musical styles.
  • non-profit radios organizations, with minimal funds, doing sometimes high quality programs but for niche audiences.
  • private pure players, ad-funded or with paying access, with innovative content.

As a listener, I want to choose to have ads, or to not have them and pay directly for the service. In addition to the ads themselves (see previous article about this), I am tired of the sometimes pathetic shows that are broadcast on private radios. They are not bad on purpose, they are tailored to target a segment of audience that maximizes the ads income. I want to hear more quality content. We need private radios for this, because public radio cannot tailor programs for all segment audiences and relying too much on non-profits is not sustainable.

Doing paid radio is hard, because the population is accustomed to listening to the radio for free, i.e. through ads and taxes. A study in 2014 showed that the vast majority of web users would not be willing to pay to browse the internet without advertisements.

However, web press proved that a transition from free to paid is possible, with more premium content and paywalls. Many musical services today encourage a subscription, e.g. Spotify and similar services. There are less and less technical hurdles to expand the usage of connected radio, as smartphones and mobile broadband have become a commodity, at least in Europe.

In my opinion, bringing more premium content and innovating in the way radio programs are built will enable radios to adopt a hybrid business model: free with ads, ad-free with a subscription. Such move could bring the industry back on a growth trajectory.

By making the advertisement business model less attractive, I hope Adblock Radio will be a catalyst for such innovation.

Edit after some reactions on r/radio:

I think I should have made a distinction between big private radio networks, and small, local radio networks. Local content has indeed great value and is a strength of radio as a media. Ads for local businesses are somewhat okay, as long as they are creative and interesting.

Unfortunately, in France, local radios rely a lot on ads from non-local businesses: malls, telcos, banking, insurance, cars… (e.g. Leclerc). Repetitively listening to those ads is painful, because of poor content and also the often higher perceived audio level.

People willing to pay for an ad-free experience register to Spotify and other streaming services. And they are millions to do that. Why can't it work for radio, in the age of broadband internet and ubiquitous cellphone carrier coverage?

]]>
<![CDATA[Getting rid of annoying ads on the radio]]>https://www.adblockradio.com/blog/2016/11/21/manifesto/59afd715cb581750976003e7Mon, 21 Nov 2016 10:00:00 GMTGetting rid of annoying ads on the radio

Radio advertising suffers from the so-called tragedy of the commons. This means that given a scarce resource, here being your attention span, advertisers will each have an individual incentive to push more, longer and louder ads to you. Their collective behaviour will lead to saturation so that you will finally turn off your radio in a collective punishment. We invite you to read more about the relationships between the tragedy of the commons and advertising here and there.

Beyond advertising, there are many concerning examples of this phenomenon, such as abusive fishing, leading to halieutic depletion, greenhouse gases emissions, leading to climate change, and all-car transportation, leading to traffic jams and pollution. For each, governments had to take action and regulate.

Getting rid of annoying ads on the radio
Getting rid of annoying ads on the radio

Back to radio ads: to be fair, we praise the current regulating entities in France that, to a great extent, protect the radio listeners, such as the CSA.
For example, thanks to the rules it enforces, there are no ads for alcohol (at least during evenings) or tobacco, as they could be harmful temptations for addicted people. The amount of ads that can be broadcast on the radio is also strictly limited.

But we believe these rules are not enough. Here are two examples of why there is still room for improvement of the listener experience.
Advertisers exploit auditory artifacts, such as dynamic range compression and equalization (read here about the loudness war) to make their ads stand out of those of others despite not being mathematically louder. Victims of this acoustic war, listeners invented the very first audio adblock: the volume knob!

Advertisers also try to trigger impulse buying by exploiting our emotions and serendipitous discovery, short circuiting our rational thougths. These mind tricks are manipulative and disrespectful.

Getting rid of annoying ads on the radio

We believe that writing new laws is not a good way to stop those questionable practises and to raise the overall intellectual standards. The solution should come from a conscious listener reaction against it. Today, many people do not listen to the radio anymore because of the advertisement burden. Some exasperated listeners, thinking about quitting, express their despair on Twitter.

We want them back, with us, by guaranteeing them that advertisements will follow stricter guidelines in the future. This initiative is similar to the acceptable ads initiative by Adblock Plus.

The current business equilibrium of the radios will have to change. Today, on most commercial radios, it is centered on making profit from the listeners that are the most tolerant to advertisements. Speaking in economic terms, we believe this profit maximization will become local and suboptimal as, following the adblockers revolution, unwanted advertisement will become less and less accepted.

There must be another advertising strategy, more focused on the listener experience and more sustainable in the long term. This new model could rely on ads in smaller volume and with more listeners. Ads could be tailored to each listener, so that at least you will not hear the same ad ten times every day. Ad customization is not a new idea, but regarding broadcast media it still faces technical challenges. We are ready to address them in a way that values user privacy at its top, as we care a lot about it ourselves.

Radio could even be paid and ad-free, but some established players believe this is not viable. Why not by the way? A few previous attempts failed but there are interesting counter-examples, such as the well-established SiriusXM and the more recent TuneIn Premium package in the USA. Furthermore, many people pay for Pandora and Spotify every month.

Have no doubt that we, at Adblock Radio, love the radio between the commercial breaks. For the benefit of genuine radio and at the expense of what remains, this project aims at rejuvenating the fossilized European radio business.

At this stage, we are open for a few partnerships with radio companies that would like to join forces with us in this adventure. Mail us at contact [-at-] adblockradio.com. Whether or not there will be candidates, be assured that we have exciting plans for the future of the radio.

Stay tuned on Adblock Radio.

]]>
<![CDATA[Ils parlent d'Adblock Radio]]>

Twitter

@PierreCol
GÉNIAL : AdBlockRadio, un bloqueur de publicité audio pour les radios écoutées via le web ! https://www.adblockradio.com/

@reesmarc
"Avec Adblock Radio, écoutez la radio avec ou sans la pub." Via @PierreCol #adblock https://www.adblockradio.com/

@zenbrn
"Adblock Radio" fonctionne plutôt bien ! Baisse

]]>
https://www.adblockradio.com/blog/2016/10/14/ils-parlent-dadblock-radio/59afd715cb581750976003e6Fri, 14 Oct 2016 16:27:00 GMT

Twitter

@PierreCol
GÉNIAL : AdBlockRadio, un bloqueur de publicité audio pour les radios écoutées via le web ! https://www.adblockradio.com/

@reesmarc
"Avec Adblock Radio, écoutez la radio avec ou sans la pub." Via @PierreCol #adblock https://www.adblockradio.com/

@zenbrn
"Adblock Radio" fonctionne plutôt bien ! Baisse automatique du volume ou zapping sur une autre chaîne pendant la pub https://www.adblockradio.com/

@ColasZibaut
Merci à vous de bidouiller pour rendre ce merveilleux monde numérique à sa pureté originelle, sans pub

Suivez le compte d'Adblock Radio sur Twitter @AdblockRadio et parlez du service avec le hashtag #adblockradio.

L'AdBlock de la radio (France Inter)

Vous connaissez sûrement déjà AdBlock, ce logiciel ou plugin pour navigateur web, qui permet de masquer les publicités sur les sites Internet et d’empêcher le lancement des publicités au début des vidéos Youtube par exemple. Et bien, il existe désormais une version radio d’AdBlock sur le web. Lancée en beta-test depuis une semaine, elle permet de passer automatiquement à une autre radio au moment des pubs ou, au choix, de basculer vers une playlist musicale.

Très bien, me direz-vous, mais est-ce qu’il est possible d’utiliser ce stratagème sur son poste de radio ou sa voiture? Et bien oui, en utilisant une imprimante 3D. En effet, les hackers derrière cette opération ont également réalisé un prototype FM, à l'aide ce cette machine.

Les régies publicitaires radio planchent d’ores et déjà à des façons de contourner ce dispositif technique. On peut parier que ce n’est que le début du jeu du chat et de la souris entre les Adblockers et les radios.

France Inter Le monde de... du 12 octobre 2016

Note de la part des hackers: nous remercions France Inter d'avoir présenté Adblock Radio sur les ondes. Nous attirons cependant l'attention du lecteur sur les points suivants. Le basculement des pubs vers une playlist musicale n'est pas implémenté et il n'est pas encore très pratique d'utiliser Adblock Radio dans une voiture. Mais il est possible que ce le soit dans le futur !

Adblock Radio : écouter la radio sans les pubs (Blogmotion)

Si vous moi vous n'écoutez plus la radio parce que les pubs 3 fois par heure ce n'est plus supportable, alors ce service va vous plaire.

Adblock Radio est un site web français sur lequel on choisit d'écouter une radio dans une liste, pour l'instant assez réduite. Quand une publicité est diffusée le lecteur peut au choix : baisser le son, zaper sur une autre radio, zaper et revenir ensuite sur la radio d'origine.

Le code source n'est pas ouvert puisque l'auteur cherche plutôt un modèle économique pour rentabiliser le site. Je trouve simplement dommage d'avoir un flux dédié. Si l'information comme quoi une publicité est présente était pushée directement dans le navigateur pour entreprendre une action ensuite serait une bonne évolution.

Il est possible d'obtenir le lien externe pour écoute le flux dans un lecteur tiers (VLC, foobar2000...).

Je rêve secrètement depuis des années à un système équivalent pour la télévision. Ajouter un petit boitier connecté capable de passer en mute le son TV (via infrarouge, RF ou IP) lors de l'arrivée d'une publicité. Un Raspberry Pi me semble tout à fait adapté pour ça, ou un smartphone. Il suffirait d'avoir une communauté d'utilisateurs derrière qui enverrait un signal lors de l'arrivée d'une pub pour que tous les autres reçoivent ce signal. Envoyer un signal permettrait d'aquérir des points pour que ce ne soit pas toujours les mêmes qui envoient le signal. Peut-être qu'un jour mon rêve deviendra réalité!

Le plus simple pour la TV reste d'utiliser Captvty qui fait bien le job, ou l'excellent Molotov avec un décallage qui permet de bypasser les période de pub. Le principe de la passivité de la TV a tendance à abrutir assez rapidement et les médias y jouent un rôle crucial.

Blogmotion Article du 10 octobre 2016

Adblock Radio : un bloqueur de publicité pour webradios (World of Geeks)

C’est une idée toute bête mais encore fallait-il y penser ! Le service web Adblock Radio permet en effet, à l’instar du plug-in Adblock capable de bloquer les publicités présentes sur les sites web visités avec Chrome, Internet Explorer ou Firefox, d’en faire de même avec la radio. Ou tout du moins avec les webradios.

Une vingtaine d’entre-elles sont « compatibles » avec ce service sans doute à limite de légalité. C’est le cas entre autres de RTL, Oui FM, NRJ, Fun Radio, Chérie FM, France Inter ou encore SKyrock. Comment fonctionne Adblock Radio ?

Il suffit de cliquer sur la webradio de son choix et de choisir parmi quatre options possibles :

  • Baisser le son automatiquement pendant les publicités, remonter le son après
  • Changer de station sitôt une publicité reconnue
  • Zapper au début des publicités, revenir sur la radio une fois les publicités terminées
  • Écouter la radio, même pendant les pubs !

Reste à savoir si les webradios vont longtemps autoriser une telle web app, la publicité diffusée sur tous les médias en/hors-ligne permettant aux marques de rentabiliser leur service.

Selon l’ACPM (Alliance pour les chiffres de la Presse et des Médias), ce sont 115 millions de sessions d’écoutes qui ont été comptabilisées cet été sur les différentes webradios et sites Internet de radio nationales.

World of Geeks Article du 10 octobre 2016

]]>
<![CDATA[Prototyping a radio that blocks ads]]>

Publishing a website to listen to the radio ad-free is good. Building a good old physical radio is even better. This article presents the conception of a radio prototype and provides some technical details. The reader who just wants to see the results can skip the text and look at

]]>
https://www.adblockradio.com/blog/2016/10/05/prototyping-a-radio-that-blocks-ads/59afd715cb581750976003e5Wed, 05 Oct 2016 12:00:00 GMT

Publishing a website to listen to the radio ad-free is good. Building a good old physical radio is even better. This article presents the conception of a radio prototype and provides some technical details. The reader who just wants to see the results can skip the text and look at the pictures!

Choosing a platform

It's not easy to include the technology behind Adblock Radio in an analog FM tuner. The most practical solution is to have access to the Internet. So basically what we need is a small and portable computer with a wifi chip and speakers. Smartphones are very good candidates for this job but I wanted a more native experience. There remained two alternatives: single-board computers and microcontrollers. Microcontrollers have the advantages of being fast to boot and of having a low power profile, giving high autonomy on battery. For example, I found that the ESP8266 would suit well: some people have already implemented a realtime MP3 decoder! The major drawback of this option is that programming those chips is complex and I do not have the expertise to tinker with firmwares, nor the time to acquire it.

Therefore I decided to go with single-board computers. In this large family, Raspberry Pis are the most popular. There are a lot of alternatives, like Hardkernel Odroid products, NextThing Co's Chip or even Pine64 boards. Most of them are cheap: in the tens of euros, sometimes less.

I picked a Raspberry Pi A+, as it draws less power than the beefier Raspberry Pi 2 and 3. I also picked a Odroid C0, ordered Chip's (still waiting for them though, months after placing the order) as well as a Pine 64. I only did tests with the Raspberry and the Odroid.

Here is a picture of the Odroid streaming good vibes. It's hard to listen to a picture, but let your imagination play! (Note: for the curious readers, here is the link to the comic displayed on the screen)

Odroid-C0 Adblock Radio Prototype

Notice the Odroid is not powered to the wall. A LiPo battery pack supplies it with electrons. The Odroid has a built-in voltage regulator and charger for LiPo batteries, which is very convenient in our situation. Two points are less practical: no built-in wifi and no analog audio out. I had to put a wifi dongle (Edup 802.11N) but it suddenly had very high latency (pings in the 800ms to the router) so I later put an old Hercules key instead, which worked fine, despite consuming almost a watt. For the audio, I had to put a USB DAC (digital to analog converter). I used here an old Creative X-Fi I had somewhere, but cheaper options exist, such as the 5HV2 chips. Surprisingly, I could not find any DAC to connect to the I2S digital audio out interface that was not more expensive that the Odroid itself. The speakers, despite costing less than 6 euros, produce a very decent sound.

Designing the user interface

Then we needed to build a user interface around this player. Screen, buttons, touchscreen, e-ink segmented displays? To keep it simple and stupid, I ordered a LCD (20 columns and 4 lines) and a bunch of push-buttons and resistors. Did you know that the chip inside the LCD belongs to the family of HD44780 compatible chips, whose original chip was designed almost 30 years ago by Hitachi?

Here is a photo of the screen displaying some text, as well as a breadboard filled with buttons and resistors. The button logic is true by default (pull-up resistors), set to false when the button is pushed, connecting to a ground wire. Note that I switched to raspberry pi A+ at that stage because I planned to use MCP23017 expanders (visible on the picture, but not connected) and some LED Charlieplexing. The software to use those expanders seemed more mature on that platform. Realizing that I had enough GPIO pins (x17) to drive the LCD (requiring only 6 pins in 4-bit interface mode) and several buttons, I later decided not to use them. The simpler, the better.

Raspberry Pi A+ Screen buttons - Adblock Radio Prototype

A potentiometer is used to tune the contrast on the screen. You need approximately 1.8V on the contrast pin to have the characters displayed correctly. Connecting the contrast pin to the ground (0V), 3.3V or 5V leads to unreadable text, so you need that potentiometer. You can have another one to tune the brightness of the screen. In the following shots, you will see both of them.

Note that there are ten buttons. A group of eight, plus two. The eight are bound to eight radios. You press it and the radio plays the corresponding stream. Among the two additional buttons, one is used to enable or disable ad filtering of the Adblock Radio service. The last one is used to flag any ad that would not have been detected by the filter. I should have added a on/off button, but I forgot and I did not order one in time, so the Raspberry, while supplied with power, is always on. It draws about 0.35A at 5V, so about 2 watts meaning maximum 2 euros at the end of the year. Not a big deal.

Building the case with a 3D printer

The time has come to build a box for this fantastic DIY device. I am glad to have a 3D printer close to me, a HTA3D P3Steel

3D printing a radio case - Adblock Radio Prototype

I turned on Freecad to design the pieces. It's free software (as in freedom) so it's very cool. Unfortunately, in my humble noob opinion, it is not as friendly and stable as Catia is, for example. Though it did the job fine this time.

3D printing Freecad - Adblock Radio Prototype

Once the 3D model of the pieces is ready, it has to be converted into 3D printer instructions, called G-code, such as the following: printer head, please go to the coordinates X,Y,Z and follow this path at velocity V by injecting this precise amount of plastic, etc.. This operation was done with the software Slic3r (read slicer, screenshot below). I was really impressed by this piece of software. The filling patterns of pieces are really great, the interface is clear, intuitive (even if very technical sometimes) and bug-free in my experience. Congratulations to the developpers of Slic3r.

3D printing Slic3r - Adblock Radio Prototype

So I finally got the pieces. The buttons block will be tied with two screws between the top of the radio case and the double hook piece you saw above. The speakers will be tied with yellow rubber bands on each hook. Then simple surfaces will close the box.

Radio case assembly (1/2) - Adblock Radio Prototype

3D printing is an art that requires some trial and error at the beginning. It's not complicated but you need to invest some time to gain experience and be able to print at a decent quality. The deal is to heat the plastic (PLA in this case) at a higher temperature than the melting point, so that it melts in the hot end (heated piece of metal with a small hole from which the plastic goes out), but not too high as it has to solidify just after being placed in the printing zone. It has to cool down slowly and homogeneously, so as not to bend, crack and/or detach from the printing bed because of the internal mechanical constraints due to thermal expansion or retraction. On the printer I used, the extruder fan, used to establish a thermal equilibrium by pumping the heat deposited in the hot end, blew a little bit of air on the bottom left part of the prints, making it cool too quickly. This caused the failure of several prints, as shown on the picture below. I installed some tape and paper to direct the airflow a bit further (visible later in the close-up picture as "mod1"). I also covered the heatbed with removable glue stick, which helped the first layer of plastic stick to the heatbed. That solved the issue.

3D printing failures - Adblock Radio Prototype

A second problem I encountered while printing is with the interaction between the hot end (hot piece of metal from where the plastic goes out) and the second fan of the extruder, the print cooling fan. It is used to to cool and harden the deposited plastic, allowing more precise prints at the scale of several centimeters - this fan is enabled only after having printed several layers so as to not bend the print, phenomenon detailed before. This is my fault: I did not install the thermal insulation for the hot end that was provided by HTA, as it was not useful when printing small elements and made the observation of the hotend more difficult. When printing the big pieces of the radio case, once turned on, it cooled down the hot end suddenly and caused a temporary jam in the extruder that lasted long enough to spoil the print. So I have installed that insulation (visible as "mod2" on the pictore below) and things were printed correctly afterwards.

3D printing fans - Adblock Radio Prototype

The assembly is almost finished! Note that the two potentiometers in the center let the user tune the brightness and contrast of the screen. The volume level is adjusted directly on one of the speakers.

Final results

And here is the result. The two yellow rubber bands prevent the case from slipping on the table.

Radio case final (front) - Adblock Radio Prototype
Radio case final (back) - Adblock Radio Prototype

I offered this radio for the birthday of a close relative, who listens a lot to the radio. I think it's an original gift! This prototype lacking a on/off button, I added a few goodies to be displayed when the radio was off, that are refreshed automatically: first, the aeronautical weather reports called METARs, published by the nearest airport, as well as the hours of the next sea tides.

The wifi configuration is hardcoded in the radio, meaning it is not usable in unknown locations, unless some unpractical configuration is done. IoT companies usually alleviate this problem by publishing a companion app for smartphone that can configure the IoT device through Bluetooth. This is out of my budget… for now! Stay tuned.

]]>
<![CDATA[Listening to the radio: why user experience matters]]>

One of the aims of Adblock Radio is to be as minimalistic and user-friendly as possible. I try to offer an interesting product with the least amount of knobs and arcane features. Finding the good tradeoff is a challenging task.

Listening to the radio is not an expert's field, unlike

]]>
https://www.adblockradio.com/blog/2016/09/19/listening-to-the-radio-why-user-experience-matters/59afd715cb581750976003e4Mon, 19 Sep 2016 14:00:00 GMT

One of the aims of Adblock Radio is to be as minimalistic and user-friendly as possible. I try to offer an interesting product with the least amount of knobs and arcane features. Finding the good tradeoff is a challenging task.

Listening to the radio is not an expert's field, unlike flying the Space Shuttle, playing the piano like a boss or operating a nuclear power plant. There is no prestige at doing it. So it should be simple, dead simple. In the last years I have used two Sony portable radios: first, ICF-M260 and more recently the XDR-S40DBP. Both are built for more or less the same purpose: listening to the radio at home. The only major difference is that the XDR can receive DAB streams, the digital version of FM broadcasts, while the ICF sticks with the analog FM/AM streams.

Sony ICF M260

Sony XDR-S40DBP

The ICF is a truly excellent product, easy to use on a daily basis and with very good receiving quality. I bought two or three of them across the years, as I lost them sometimes. However, despite being (even) more expensive, the newer XDR is considerably inferior. Here are the things that made the ICF outstanding in my opinion:

  • changing station on ICF is easy and fast: you need to press at least three buttons on the XDR, while on the ICF it's only one. When you change station, you get the new sound almost instantaneously with the ICF, while the XDR takes almost one solid second to tune to FM stations, and even two seconds with DAB broadcasts (which deters you from changing station at all).
  • startup time is instantaneous: ICF is instant-on, while the XDR needs between 1 and 2 seconds.
  • autonomy is so high you don't think about it: cells in ICF last weeks or months! In XDR, only days or even hours.

Dear Sony, I understand a chip that can receive digital streams cannot be as fast and simple as a FM tuner. But please be honest, what did your designers have in mind when building the XDR? The ICF, even if older, is better. I stick with it.

The killer feature above is the ease to change station. On Adblock Radio, it will be one-click and stay like this as long as possible. I hope you will enjoy it!

]]>
<![CDATA[Introducing the blog for Adblock Radio]]>

Welcome visitors, here is the little blog that will help you stay tuned with the latest news about Adblock Radio.

Adblock Radio is a service that lets you listen to your favorite broadcasts while being able to choose if you do accept to hear ads, or do not.

You may

]]>
https://www.adblockradio.com/blog/2016/09/19/introducing-the-blog-for-adblock-radio/59afd715cb581750976003e3Mon, 19 Sep 2016 12:07:00 GMT

Welcome visitors, here is the little blog that will help you stay tuned with the latest news about Adblock Radio.

Adblock Radio is a service that lets you listen to your favorite broadcasts while being able to choose if you do accept to hear ads, or do not.

You may want to skip ads because, for example, you generally do not care about what is advertized or because you do not want to be disturbed at the moment.

Adblock Radio will mute the sound of ads, or automatically tune to another station of your choice.

]]>