StudocuHack

Removes the premium blur and the upsell chrome from Studocu documents, and downloads them as one complete PDF.

A browser extension for studocu.com, studeersnel.nl, studocu.vn and studocu.id. Chrome, Brave, Edge and Firefox 142 or newer. No account, no server, no data collection.

Download the latest release Source on GitHub

Every release carries a .zip for Chrome, Brave and Edge and an .xpi for Firefox. Neither goes through a store, so each is loaded from the file; the steps take a minute.

A Studocu document open in the browser with the extension active: the site logo replaced by the StudocuHack tile, no premium banner or Upgrade button, and a page of text fully readable where the site would have blurred it.

What it does

The document, without the parts that sell you something

The blur goes.
Every page whose content Studocu sends to your browser is shown sharp, and kept sharp while the viewer re-renders around it. Blur removal is the one thing that is always on.
The upsell chrome goes with it.
The premium banners, the badges, the Upgrade button and the modal that covers the document are removed before they can flash. The ads and the "Ask a question" AI toolbar are hidden as well.
Download as one PDF.
A Download button above the pages captures every page, text and figures both, and prints the whole document through the browser's own Save as PDF. Each sheet takes the size of the page it carries, so a document with mixed orientations comes out the way it went in.
Every page loads on open.
The viewer normally renders a page only as you scroll past it. The extension walks the document once so every page is rendered and ready, then puts you back where you were.
Each extra is a switch.
The download button, the automatic page loading, ad hiding, the AI toolbar and the logo replacement can each be turned off from the toolbar popup. Settings live in the browser's own synced storage and apply the next time a document loads.

What it cannot do

A page the site never sends cannot be unblurred

Studocu renders a native PDF as two separate layers per page: a background image holding the figures (rules, table borders, coloured boxes) and a separate HTML text layer holding the words. The two are authorised separately, and on a premium document the site never sends the text layer of the locked pages to the browser at all. No extension can un-blur those pages, because the words are not on your computer in any form.

Pages in that state keep the site's blurred preview and carry a label that says so, in the viewer and in the download, so you can tell a locked page from a page that failed to load. Every page whose text the site does send is unlocked in full, and the browser console lists exactly which pages could not be recovered.

A premium-locked page in the viewer: the page stays blurred, and a dark label under it reads that page 3 is premium-locked because Studocu does not send its text to non-subscribers.
A premium-locked page keeps its blur and says why, instead of printing as a crisp, empty sheet.

Install

From a release, in either browser

Download the archive for your browser from the latest release. The version number is part of the file name.

Chrome, Brave, Edge

  1. Download studocuhack-vX.Y.Z.zip and extract it somewhere you will keep it.
  2. Open chrome://extensions (Brave: brave://extensions, Edge: edge://extensions).
  3. Turn on Developer mode, top right.
  4. Click Load unpacked and pick the extracted folder, the one that contains manifest.json.

To update, extract the new zip over the old folder and press the reload icon on the extension's card.

Firefox

  1. Download studocuhack-vX.Y.Z.xpi.
  2. Open about:addons, click the gear icon, choose Install Add-on From File and pick the file.
  3. Open a Studocu document, click the puzzle icon in the toolbar, open the extension's settings and choose Always Allow on studocu.com, and on studeersnel.nl, studocu.vn or studocu.id if you use them.

Release builds of Firefox only install add-ons Mozilla has signed, and the notes on each release say whether the attached .xpi is. An unsigned one, like a build you make yourself, needs Firefox Developer Edition or Nightly with xpinstall.signatures.required off, or a temporary load through about:debugging.

Downloading a document

Three steps, and the tab stays in front

  1. Open the document and click the blue Download button above the pages.
  2. A preview opens in the same tab and captures every page on its own. It reports "Capturing pages X / N" and then "Embedding images X / N". Keep the tab in the foreground: a browser throttles a background tab and the capture stalls.
  3. When it finishes, click Print / Save as PDF, or press Ctrl+P (Cmd+P on a Mac), and choose Save as PDF as the destination.

Esc, or the Close button, leaves the preview.

How it works

Two layers per page, fetched from a CDN that signs its URLs

Studocu's viewer is pdf2htmlEX output wrapped in a React virtual scroller. Each page is a background image plus a positioned HTML text layer, both fetched from a CDN with signed URLs that are embedded in the page. The extension reads those signed parameters, works out which pages the server will actually serve, fetches the full-resolution assets for those, and labels the rest. The blur itself is a CSS filter the extension strips and keeps stripped as React re-renders.

The architecture document has the CDN layout, the access model and the reasoning behind the premium-locked detection, for anyone who wants to check the claim above before trusting it.

Build from source

Plain files, one command to package them

Node 20 or newer. The extension has no runtime dependencies and no bundler: the content scripts load in manifest order and share one namespace.

git clone https://github.com/danieltyukov/studocuhack.git
cd studocuhack
npm install
npm test
npm run build

That runs the unit and fixture tests and packages src/ into dist/. Load src/ as an unpacked extension to run the working copy directly, or let web-ext launch a browser with it through npm run start:firefox or npm run start:chromium. CONTRIBUTING covers the layout and how a release is cut.

When something comes back

Studocu renames its classes; the fix is a selector

The site changes its CSS class names from time to time. When a banner or the blur reappears after a site update, the fix is almost always one new selector, and pull requests for those are very welcome. For anything else, open an issue: the bug template asks for your browser, the extension version, the kind of document and the lines starting with StudocuHack: from the browser console, which say exactly which pages the extension could and could not recover.