| --- |
| title: Imageboard Grabber |
| emoji: 🖼️ |
| colorFrom: indigo |
| colorTo: purple |
| sdk: docker |
| app_port: 7860 |
| pinned: true |
| --- |
| |
| # Imageboard Grabber |
|
|
| Booru-style imageboard grabber (inspired by Bionus/Grabber): tag search, thumbnail grid, multi-select, server-side batch ZIP download. Ships with **e621** preconfigured and a **schema-based "Add site" panel** for Danbooru/Gelbooru/Safebooru/etc. |
|
|
| ## Features |
|
|
| - **Tag exclusion on ZIP download:** Specify custom tags to filter out of the compiled ZIP's `.txt` tag list and markdown meta files. |
| - **Direct Hugging Face dataset upload:** Enter your Hugging Face write token and desired dataset repository name to instantly package and upload your compiled archives to a Hugging Face dataset. Creates the dataset automatically if it does not already exist. |
|
|
| ## Run locally with Docker |
|
|
| ```bash |
| docker build -t grabber . |
| docker run --rm -p 7860:7860 grabber |
| ``` |
|
|
| Then open http://localhost:7860. |
|
|
| ## Deploy to Hugging Face Spaces |
|
|
| 1. Push this repo to GitHub (Lovable → GitHub sync, or `git push`). |
| 2. Create a new Space on Hugging Face → **SDK: Docker**. |
| 3. Link the GitHub repo (or add the Space as a remote and push). |
|
|
| The frontmatter above tells HF Spaces to build the `Dockerfile` and serve on port `7860`. |
|
|
| ## Adding a custom site |
|
|
| Click **+ Add site** and paste the site's API schema: |
|
|
| - **Base URL / Search Path** — e.g. `https://danbooru.donmai.us` + `/posts.json` |
| - **Param names** for tags / page / limit |
| - **JSON path** to the posts array (empty = root) |
| - **Field mappings** (dotted paths) for `id`, `previewUrl`, `fileUrl`, `ext`, `tags`, `source`, `rating`, `score` |
|
|
| Example (Danbooru): |
|
|
| ``` |
| baseUrl: https://danbooru.donmai.us |
| searchPath: /posts.json |
| postsPath: (empty) |
| fields.id: id |
| fields.previewUrl: preview_file_url |
| fields.fileUrl: file_url |
| fields.ext: file_ext |
| fields.tags: tag_string_general |
| fields.source: source |
| fields.rating: rating |
| fields.score: score |
| ``` |
|
|
| ## Tech |
|
|
| - TanStack Start (React 19, Vite 7) + Tailwind v4 + shadcn/ui |
| - Server-side image fetching and streaming ZIP via `fflate` |
| - Node server build via nitro `node-server` preset |
|
|