Reading Past the Paywall

A daily-reviewed Bypass Paywalls Clean filter list for uBlock Origin — and the two minutes it takes to add it to your browser.

Reading Past the Paywall
Photo by Anna Keibalo / Unsplash

You know the drill. A friend sends you a link, you read the first two paragraphs, and then the page dims and a box slides up asking you to subscribe. Sometimes it is a hard wall and there is nothing behind it. But surprisingly often the whole article is already sitting in your browser—the site delivered it, then ran a script to hide it from you. That second kind of paywall is a client-side trick, and client-side tricks can be undone client-side.

For the last few months I have been running a filter list in uBlock Origin that does exactly that, and a couple of friends have asked me how to set it up. This guide covers what it is, why I subscribe to a reviewed copy of it instead of pointing my browser at the original, and the two minutes it takes to add it to yours.

TL;DR - are you in a rush to set it up? Skip the introduction and jump straight to the Step-by-Step Guide.

How does this work

Most news sites run a "soft" or metered paywall. The page loads with the full text, and a small piece of JavaScript—usually from a paywall vendor, not the newspaper itself—keeps a counter in a cookie or in local storage, decides you have used up your free articles, and draws an overlay on top of the content. The article never left; you just can't scroll to it.

uBlock Origin is best known for blocking ads, but under the hood it is a general-purpose rules engine. A filter list can tell it to do three kinds of things:

  • Block a request. If the paywall vendor's script never loads, the overlay never appears. A single rule can cover every site that uses the same vendor.
  • Hide or remove a page element. The dimming layer and the "subscribe now" box are just HTML. A cosmetic rule makes them go away and lets the page scroll again.
  • Run one of uBlock's built-in scriptlets. These are small, fixed helpers that ship with the extension itself: clear a cookie, reset a value in local storage, remove an attribute from an element. A filter list can call them by name with a couple of parameters, but it cannot ship any code of its own.

That last point matters more than it sounds, and I will come back to it.

The list itself is Bypass Paywalls Clean, a long-running open source project. It exists both as a full browser extension and as a plain filter list for uBlock Origin. The filter list covers fewer sites than the extension, but it also needs far less trust: it is a text file that uBlock interprets, not a program with its own permissions. The project has had a rough couple of years—DMCA takedowns pushed it off GitLab in April 2024 and off GitHub that August—and it now lives on GitFlic, a Russian code-hosting site.

What You'll Need

  • uBlock Origin—the full version, not Lite. Google's Manifest V3 changes removed the original uBlock Origin from Chrome, and its replacement, uBlock Origin Lite, deliberately does not support imported filter lists. The path I use and can vouch for is Firefox, on the desktop and on Android, where the full extension still works.
  • Not Adblock Plus. Back in my Pi-hole guide I called ABP my favorite browser blocker, and for ordinary ad blocking that still holds. For this list it will not do: roughly 40% of the rules are uBlock scriptlet injections that ABP does not understand, and unsupported rules fail silently—it looks installed, and nothing happens.
  • On Chrome or Safari? Skip ahead to What about Chrome and Safari? after the guide. There is a workable detour for Chrome on both desktop and Android, and an honest account of what Safari can and cannot do.

Step-by-Step Guide

Step 1: Install uBlock Origin

Install it from the Firefox Add-ons site. On Android, the same page works from Firefox on your phone; you can also find it under Settings › Extensions inside the app. Once installed you will see the red uBlock shield icon in the toolbar.

Step 2: Import the list

  1. Click the uBlock Origin icon, then the gears icon at the bottom of the popup to open the dashboard.
  2. Switch to the Filter lists tab.
  3. Scroll all the way to the bottom and expand Custom, then tick Import…. A text box appears.

Paste the address into that box, on its own line if you already have others there:

https://bindump.link/bpc-paywall-filter.txt

Then click Apply changes at the top of the page. On Android the dashboard is the same page; it just opens in a new tab, and the tabs along the top may be collapsed into a menu.

[!info] If you would rather take the upstream list as-is, its address is in the header of the file above—you can open the URL in a tab and read it yourself.

Step 3: Verify it

Back on the Filter lists tab, under Custom, you should now see an entry named Bypass Paywalls Clean filter with a green checkmark, a filter count in the mid-700s, and a "last updated" timestamp. Two settings at the top of that tab are worth confirming:

  • Auto-update filter lists is ticked. This is what makes the daily refresh happen.
  • If the count reads zero or the entry shows a warning icon, click Purge all caches and then Update now. That forces an immediate re-fetch.

Step 4: Test it

Open the list address in a tab and search the page for a newspaper you actually read—the file is organized by site, so a quick Find for the domain tells you whether it is covered. Then visit an article there that was walled for you before. If the overlay still shows up, do a hard refresh (Ctrl+Shift+R, or Cmd+Shift+R on a Mac); the counter rules only take effect on the next page load, and your browser may still be holding the old page.

[!tip] Already over your free-article limit? Clear that site's cookies and site data once, then reload. The list keeps the counter from coming back, but it may not reset one that is already maxed out.

What about Chrome and Safari?

I use Firefox on both my laptop and my phone, so that is the path I can vouch for. But most of the people who asked me about this are on Chrome or Safari, so here is the honest state of things on each, desktop and mobile. The short version: Chrome has a workable detour, Safari mostly does not.

Chrome on the desktop

The original uBlock Origin no longer runs in Chrome. Google's Manifest V3 changes removed the extension model it depends on, and the replacement, uBlock Origin Lite, is deliberately declarative: it has no way to import a filter list from a URL, and that is a design decision, not a bug waiting for a fix. Copying the 700-odd rules into its settings by hand is technically possible but you would have to redo it every time the list changes, which is often.

You have two realistic options:

  • Install Firefox alongside Chrome and use it for news. This is what I would do. It takes five minutes, you do not have to move anything else over, and the steps above work exactly as written.
  • Switch to Brave. Brave is built on Chromium but ships its own ad blocker, which is not affected by the Manifest V3 changes and understands uBlock Origin's filter syntax, including a good share of its scriptlets. To subscribe: open brave://settings/shields/filters, scroll to Custom filter lists, click Add custom filter list, paste the address, and save. You do not need Brave's "developer mode" for this—that is for writing your own scriptlets, not for subscribing to a list.
[!warn] Two Brave caveats. Brave refreshes custom lists on its own schedule, roughly weekly rather than daily, so fixes take longer to reach you—use the update now control next to the list when a site breaks. And while Brave's engine covers most of the scriptlets this list uses, it is not a byte-for-byte uBlock Origin, so a few sites that work in Firefox may not work in Brave. I have not run this list in Brave myself; if you do, I would like to hear how it goes.

Chrome on Android

Chrome for Android does not support extensions at all—Google's own support page still says so as of this writing—so there is nothing to install. Again, two options:

  • Firefox for Android runs the full uBlock Origin. Install it from the Play Store, then follow Steps 1 through 3 above; the dashboard is identical, it just opens in a tab.
  • Brave for Android takes custom list URLs too. Open the app's Settings › Brave Shields & privacy › Content filtering, find the custom filter lists section, add the address, and save. The same Brave caveats apply.

Safari on the Mac

Safari cannot run uBlock Origin, and this is where the news gets worse. Apple's content-blocker model is declarative in the same way uBlock Origin Lite is: an extension hands Safari a fixed list of "block this request" and "hide this element" rules, and Safari applies them itself. That covers the first two kinds of rule I described earlier but not the third—the scriptlets that clear counters and strip attributes—and on this list the scriptlets are the workhorses.

Two things get you partway:

  • AdGuard for Safari can subscribe to a custom filter list by URL, and it ships a companion "Advanced Blocking" extension that interprets scriptlets and other rules Safari cannot handle natively, translating uBlock Origin's syntax into its own. On paper that should cover a good part of this list. In practice I have not tested it, and I would expect some sites to work and some not, with no obvious pattern.
  • Orion, the browser from the Kagi search people, is a WebKit browser that can run real Firefox and Chrome extensions, including uBlock Origin, on macOS. Extension support is labeled experimental and I have not tried it, but it is the only way I know of to get the actual uBlock Origin onto a Safari-like browser on a Mac.

If you are on a Mac and want this to just work, the answer is the same as for Chrome: install Firefox and use it for news.

Safari on iPhone and iPad

On iOS every browser, Firefox and Chrome included, is Safari underneath, and every content blocker is bound by the same declarative model. There is no way to run the full uBlock Origin on an iPhone. A uBlock Origin Lite for Safari exists in the App Store, but it has the same no-import limitation as its Chrome sibling. The closest you can get is AdGuard for iOS, which accepts custom filter lists and has a Safari web extension for the rules Safari cannot apply natively—the same partial-coverage story as on the Mac.

I do not use an iPhone, so I have not tested any of this and will not pretend to have a tidy recommendation. Expect the request-blocking rules to work and the scriptlet-driven sites to be hit or miss. If you find a setup that works well, tell me and I will add it here.

When it doesn't work

This is a good tool, not a magic one. A few things to check before you assume something is broken:

  • Hard paywalls. If the site never sends the article to your browser in the first place, there is nothing on your side to unhide. No filter list changes that.
  • Site not covered. The filter list supports fewer sites than the full extension. If a domain does not appear anywhere in the file, it is not going to work, and that is expected.
  • Wrong blocker. Chrome with uBlock Origin Lite, Safari, or any browser with Adblock Plus will not run these rules, or will run only some of them. See What about Chrome and Safari?
  • Upstream fixed it yesterday. Sites change their paywall code and the list catches up, sometimes the same day. Between the nightly review and your browser's daily refresh, expect a fix to take a day or two to reach you. Purge all caches and Update now if you are impatient.

And if a site you care about stops working and stays that way, tell me. It may be an update that got flagged and is waiting for a human to read it, and I can ask.

A note on supporting journalism

I will be the first to admit that this sits in a gray area. Here is where I have landed: the outlets I read every week get my subscription money, and I do not need this list for them. What this list is for is the other 90% of my news reading—the one article a month from a paper I will never subscribe to, the link a friend sends, the source I need to check for something I am writing. If you find yourself bypassing the same site every day, that is a site worth paying for. This should make you a broader reader, not a cheaper one.

What's Next?

  • Pair it with Pi-hole. The filter list only works inside a browser that runs uBlock Origin. For everything else on your network—apps, smart TVs, the phone that cannot run extensions—Pi-hole still does the heavy lifting for ads and trackers, and the two do not get in each other's way.
  • Read the list. It is a plain text file, and skimming it is a genuinely interesting look at how many newspapers share the same handful of paywall vendors. The rules with no site name on them are the ones that cover dozens of outlets at once.
  • Build your own gate. Nothing in that review pipeline is specific to this list. Fetch, diff, check, review, publish from a server you control—the same shape works for any filter list you would rather not trust blindly, and none of the pieces are exotic.