An ImageFap gallery downloader written in Node.js.
First, install Node.js.
Then, in a terminal, run the following command:
npm i -g imagefap-dl
In a terminal:
// Download all galleries uploaded by johndoe to the current directory
$ imagefap-dl "https://www.imagefap.com/profile/johndoe/galleries"
// Download a single gallery to "C:\Downloads"
$ imagefap-dl -o "C:\Downloads" "https://www.imagefap.com/gallery/1234567"
URLs can be copy-and-pasted from the ImageFap website. Make sure they conform to one of the formats listed in the usage guide (below).
To display usage guide:
$ imagefap-dl -h
Output:
Usage
imagefap-dl [OPTION]... URL
URL
Download all galleries by a user:
- https://www.imagefap.com/profile/<username>/galleries
Download all galleries in a folder:
- https://www.imagefap.com/profile/<username>/galleries?folderid=<folder-id>
- https://www.imagefap.com/organizer/<folder-id>/<folder-slug>
- https://www.imagefap.com/usergallery.php?userid=<user-id>&folderid=<folder-id>
Download a single gallery:
- https://www.imagefap.com/gallery/<gallery-id>
- https://www.imagefap.com/gallery.php?gid=<gallery-id>
- https://www.imagefap.com/pictures/<gallery-id>/<gallery-slug>
Download all user favorites:
- https://www.imagefap.com/showfavorites.php?userid=<user-id>
Download user favorites by folder:
- https://www.imagefap.com/showfavorites.php?userid=<user-id>&folderid=<folder-id>
Options
-h, --help Display this usage guide
-o, --out-dir <dir> Path to directory where content is
saved. Default: current working
directory
-d, --dir-structure <flags> Combination of flags controlling the
output directory structure of
downloaded galleries. See "Directory
structure flags" section for available
flags.
-n, --seq-filenames Add sequential numbers to beginning of
filenames based on display order of
images.
-f, --full-filenames Use full filename for image downloads.
If not specified, filenames may be
truncated. Note: getting full filenames
involves extra page requests that will
increase download time.
-w, --overwrite Overwrite existing image files
-j, --no-json Do not save gallery info in JSON file
-m, --no-html Do not save original HTML
-l, --log-level <level> Log level: 'info', 'debug', 'warn' or
'error'; set to 'none' to disable
logging. Default: info
-s, --log-file <path> Save logs to <path>
-r, --max-retries <number> Maximum retry attempts when a download
fails. Default: 3
-c, --max-concurrent <number> Maximum number of concurrent image
downloads. Default: 10
-p, --min-time-page <milliseconds> Minimum time to wait between page fetch
requests. As a general rule, do not
set this lower than 2000, otherwise you
will likely get 'Too many requests'
errors. Default: 2000
-i, --min-time-image <milliseconds> Minimum time to wait between image
download requests. Default: 200
-y, --no-prompt Do not prompt for confirmation to
proceed
Directory structure flags (--dir-structure)
When downloading a gallery, the following flags specify which directory is to
be included in the output directory structure:
u If downloading user favorites, include directory for the user; otherwise,
include directory for uploader of the gallery (note: does not apply when
uploader is anonymous)
v Include "Favorites" directory (only applies when downloading user
favorites)
f Include directory for folder containing the gallery (note: does not apply
when downloading a single gallery)
g Include directory for the gallery itself
- No directory structure. All images will be downloaded to --out-dir.
Default: uvfg
v2.0.0
- Add support for downloading user favorites (#5)
- Add
--seq-filenames
option - Bump minimum required version of Node.js to v18
v1.2.0
- Add
--full-filenames
option (#2)
v1.1.1
- Fix download of galleries from anonymous uploaders
v1.1.0
- Optimize fetching of image URLs
- Misc bug fixes
v1.0.0
- Initial release
MIT