Skip to main content

fap-dl

A command-line downloader for images and videos from Fapello profiles.

fap-dl uses Chromium to discover the contents of a profile, then closes the browser and downloads the media directly.

Features

  • Downloads images and videos
  • Automatically discovers lazy-loaded posts
  • Detects video posts
  • Streams downloads directly to disk
  • Skips media that has already been downloaded
  • Uses .part files for incomplete downloads
  • Separates images and videos by default
  • Supports combined output
  • Supports image-only and video-only downloads
  • Automatically installs the required Playwright Chromium browser when needed

Requirements

  • Python 3.10 or newer
  • Internet connection

Platform support

fap-dl is currently developed and tested on macOS.

The underlying Python, Playwright, Chromium, and Requests components are cross-platform, so the program is expected to work on Linux and Windows as well. Linux and Windows have not yet been tested with this project.

Usage

Download a profile:

fap-dl PROFILE

For example:

fap-dl diamondnips-1

You can also provide the full profile URL:

fap-dl https://fapello.com/diamondnips-1/

By default, files are stored in:

~/Downloads/fap-dl/PROFILE/
├── images/
└── videos/

Combined folder

fap-dl PROFILE --combined

Images only

fap-dl PROFILE --images-only

Videos only

fap-dl PROFILE --videos-only

Custom output directory

fap-dl PROFILE --output ~/Desktop/media

This creates:

~/Desktop/media/PROFILE/

Why does Chromium open?

Fapello is protected by Cloudflare and may challenge or block ordinary automated HTTP requests. During development, headless Chromium was also unable to access profile content reliably even when using a previously established browser session.

For that reason, fap-dl briefly launches a normal, visible Chromium window. This allows the profile to load in a regular browser environment and also allows you to complete a Cloudflare verification challenge if one appears.

Chromium is used only for the discovery stage:

  1. Chromium opens the requested profile.
  2. fap-dl scrolls through the profile to discover all available posts.
  3. Images and video posts are identified.
  4. Browser session information is transferred to the downloader.
  5. Chromium closes.
  6. Images and videos are streamed directly to disk without keeping the browser open.

Most runs should therefore require no interaction with the Chromium window. If Fapello presents a verification challenge, complete it in Chromium and follow the prompt in the terminal.

Browser data is retained in:

~/.fap-dl/browser/

This allows browser session information to persist between runs and can reduce the need for repeated verification.

Downloads and existing files

Existing non-empty media files are skipped. This makes it possible to run fap-dl against the same profile later and download newly discovered media without downloading the entire collection again.

Downloads are streamed directly to disk rather than being held entirely in memory.

While a file is downloading, it uses the .part extension:

example.mp4.part

After the download completes successfully, it becomes:

example.mp4

This prevents an interrupted or incomplete download from being mistaken for a completed media file.

Video fallback

Video URLs can normally be determined directly from the profile gallery.

If a predicted video URL fails, fap-dl can reopen Chromium and inspect the individual post to locate its actual MP4 source. Multiple failed videos are handled in the same fallback browser session rather than opening a separate browser for each one.

Disclaimer

This project is not affiliated with or endorsed by Fapello.

Users are responsible for ensuring that their use of this software complies with applicable laws, copyright restrictions, website terms, and the rights of content creators.

License

MIT

Release files for fap-dl 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for fap-dl 0.1.0
File Size Uploaded
fap_dl-0.1.0.tar.gz 10.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for fap-dl 0.1.0
File Interpreter ABI Platform
fap_dl-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 20.9 kB

Release files / fap_dl-0.1.0.tar.gz

Download URL fap_dl-0.1.0.tar.gz
Size 10.6 kB
Tags Source
SHA-256 checksum
How to use checksums
c14d3be2b2f6638b559b66e8025a33f114cda920b24c04a6b0c68b349cab2a24
BLAKE2b-256 checksum
How to use checksums
7ad9254eb059c89e410b6dc5ef80281a64b94877695c410b80f33e6252261489
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 21, 2026.

Transparency log

Release files / fap_dl-0.1.0-py3-none-any.whl

Download URL fap_dl-0.1.0-py3-none-any.whl
Size 10.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
56435b64d327164af48aba2c861e4ed859e5b0d134662fb66536fd343e7a134e
BLAKE2b-256 checksum
How to use checksums
57a7b4dcdd0a5dfa4a0a65ee4006adf59d98431404b9224b109d2d983c274a68
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 21, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page