Open-source project
xuejianxianzun/PixivFanboxDownloader avatar
xuejianxianzun/PixivFanboxDownloader

PixivFanboxDownloader: batch downloading the Fanbox posts you already have access to

A Chrome extension for downloading files on Pixiv Fanbox in batches. Chrome 扩展,用于批量下载 Pixiv Fanbox 上的文件。

1,102 stars50 forksTypeScriptGPL-3.0

At a glance

What is it?
This Chrome extension crawls a Pixiv Fanbox creator's posts and saves the attached files in bulk, with file type filters and custom naming rules, and it deliberately does not unlock anything: paid posts have to be bought first.
Who is it for?
PixivFanboxDownloader fits a Fanbox subscriber who wants to keep an offline copy of the posts they have paid for, or a creator archiving their own back catalogue, and who is comfortable loading an unpacked extension. It is a poor fit if you want to save posts you have not purchased, because the extension explicitly cannot unlock paid content, and it is a poor fit on Android, where the extension management model does not create subfolders.
Can I use it commercially?
Yes, with conditions. GPL-3.0 is a copyleft licence: if you distribute software that includes it, you must release that software's source code under the same licence. Running it internally without distributing it does not trigger that obligation.
Is it still maintained?
Yes. The repository last received commits 43 days ago.
What is it written in?
Mainly TypeScript, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 20, 2026, and from our analysis. They are not legal advice.

Editorial analysis

What it does, and what it explicitly does not do

PixivFanboxDownloader is a Chrome browser extension for batch downloading files on Pixiv Fanbox, and it supports filtering file types, custom file names, and multiple languages.

The note at the top of the introduction is the one to read before anything else. This program cannot directly reach paid content on Fanbox. If you want to download paid content, you must first purchase it.

That line defines the whole scope of the tool. It is a bulk downloader for content the account already has access to, and not a way around the paywall. A creator downloading their own back catalogue, a subscriber keeping an offline copy of what they have paid for, someone archiving posts before a creator removes them, all of those are the use the extension serves, and everything else is out of scope by design.

The UI is a blue download button on the right side of the Fanbox page, which is a deliberate choice of placement. The button appears after you refresh the page with the extension installed, and the extension then works at three levels of scope: on the home page you can crawl posts from all the sponsored users, on a user's page you can crawl all of their posts, and on a post page you can crawl an individual post.

The README is published in English, Simplified Chinese, Traditional Chinese, Japanese and Korean, with a Readme-EN.md and a set of regional variants in the repository root, which matches a user base spread across those language communities.

The project is GPL-3.0-or-later licensed with a LICENSE file, the primary language is TypeScript, the last push was on 2026-09-10, and the releases are v5.1.0 from 2026-09-07, v5.0.0 from 2026-08-11 and v4.9.4 from 2026-07-22. There is also a changelog.md in the repository, and the name of the package is pixiv-fanbox-downloader with the author listed as xuejianxianzun.

Installing it, and the offline route

Chrome or Edge is the recommended browser, and the online install is a store listing for each. Chromium-based browsers such as Chrome and Edge can install this extension from the Chrome Web Store, and Firefox users can install it from the Add-Ons store.

The offline route reuses the tutorial written for the sibling Pixiv Downloader project, hosted as a wiki at xuejianxianzun.github.io/PBDWiki. There is only one difference from that tutorial: it asks you to download the zip file for the Pixiv Downloader, and instead you download the zip file for the Fanbox Downloader, which is pixivfanboxDownloader.zip from the releases page of this repository.

There is a wrinkle with the offline method that is easy to miss in the wording. The wiki page asks for a zip file, but the repository listing shows PixivFanboxDownloader.crx at the top level, which is the signed extension package format, not a zip. So the offline path has two artifacts to reason about: the pack.js build produces a zip, and the crx is the Chrome package. The build script named in the development section is the one that produces the former.

On Android the extension can be installed using the Quetta browser, which is a mobile browser with the Chromium core that installs extensions online from the Chrome Web Store. The documentation calls that very convenient and then advises against it anyway, because browsers on Android do not create subfolders, so the extension's own folder layout for downloads does not work as intended.

Crawling, filtering, and where the files land

The workflow after installation is a fixed sequence.

You refresh the Fanbox page and click the blue download button on the right to start using the extension. You choose the scope, whether that is the home page for all sponsored users, a user page for all of their posts, or a single post page. After crawling is complete, the downloader automatically starts downloading, so the crawl and the fetch are two separate phases rather than one.

Then the filters and the naming rules come in. You can use a variety of filters to select the posts and files you want to download, and you can set file name rules, so the output is not a dump of whatever the attachment happened to be called.

Where the files end up is entirely the browser's decision. Downloaded files are saved in the browser's download directory, and if you want them somewhere else you need to change the browser's download directory. There is no path setting in the extension.

Two browser settings need changing, and both are the kind of thing that turns a batch of two hundred files into a two hundred dialogs. The first is to disable the browser setting Ask where to save each file before downloading, to avoid the save-as dialog during downloads. The second is a workaround for a conflict: if the filename of the downloaded file is abnormal, disable other browser extensions with download functions. That is a symptom of two extensions both rewriting filenames, and the resolution is to turn the other one off rather than to change the naming rules.

The build, and how to run it from source

The tech stack is TypeScript, LESS and Webpack 5, and the build is a small set of npm scripts that are worth reading because they are split by what you changed.

bash
npm install            # Install dependencies
npm run ts            # Bundle TypeScript with webpack → dist/js/
npm run less          # Compile src/style/style.less to dist/style/style.css with lessc
npm run fmt           # Format with prettier
npm run pre-build     # ts + less + fmt
npm run build         # pre-build + pack.js: updates the contents of /dist and packs them into a zip file

The package.json scripts show the underlying commands. The ts script is webpack with./webpack.conf.js, the less script is lessc with -x compiling src/style/style.less into dist/style/style.css, the fmt script runs prettier over the src/ts and src/style trees, and build is pre-build followed by node./pack.js, which updates the contents of /dist and packs them into a zip file.

The guidance for a contributor is to run the command matching what you modified. If you only modified ts files, run npm run ts. If you only modified less files, run npm run less. If you modified other files such as manifest.json, run node pack to copy the files into the /dist directory. A full build runs all of them.

To install locally, you load the /dist directory from the browser's extension management page. Then the loop for debugging is: modify the source, compile into /dist, refresh the extension, and then refresh the web page, to apply the changes. The second refresh is the one people forget, because reloading an extension resets its state and the page has to be reloaded to pick up the new content script.

The repository also carries an AGENTS.md file, an eslintrc.js with a.eslintignore, a.prettierrc with a.prettierignore, a tsconfig.json, a webpack.conf.js, pack.js, a dist/ directory checked in, a docs/ directory, a screenshot/ directory and the regional README files.

Editorial conclusion

PixivFanboxDownloader fits a Fanbox subscriber who wants to keep an offline copy of the posts they have paid for, or a creator archiving their own back catalogue, and who is comfortable loading an unpacked extension. It is a poor fit if you want to save posts you have not purchased, because the extension explicitly cannot unlock paid content, and it is a poor fit on Android, where the extension management model does not create subfolders. Before installing, read the note about paid content, and check the terms of the service you are downloading from, since a bulk downloader is exactly the kind of client behaviour those terms tend to address.

Frequently asked questions

What does the PixivFanboxDownloader extension do?

It is a Chrome extension that crawls Pixiv Fanbox posts and batch downloads the attached files, with filtering by file type and custom file name rules. You can crawl from the home page for all sponsored users, from a user's page for all their posts, or from an individual post page.

Does the PixivFanboxDownloader get around the Fanbox paywall?

No. The project states that the program cannot directly reach paid content on Fanbox by itself, and that if you want to download paid content you must first purchase it. It is a bulk downloader for content your account already has access to.

How do I install the PixivFanboxDownloader extension on Chrome, Edge and Firefox?

Chrome and Edge users install it from the Chrome Web Store, and Firefox users from the Add-Ons store. For an offline install you follow the Pixiv Downloader offline tutorial but download the Fanbox zip from the releases page instead, then load the dist directory from the browser's extension management page.

How do I build the PixivFanboxDownloader from source?

Run npm install, then npm run ts to bundle the TypeScript with webpack, npm run less to compile src/style/style.less with lessc, and npm run fmt for prettier. The full build is npm run build, which runs pre-build and then pack.js to update the dist directory and pack it into a zip file.

Official sources

  1. Issues
  2. License: GPL-3.0
  3. README
  4. Releases
  5. xuejianxianzun/PixivFanboxDownloader on GitHub
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/xuejianxianzun-pixivfanboxdownloader.svg)](https://hysenlabs.com/projects/xuejianxianzun-pixivfanboxdownloader)

Was this useful?