Skip to content

Options

agnostos edited this page Dec 13, 2025 · 3 revisions

Options

Setting Description Default Example
save_location Base directory for downloads, on windows replace backslashes ("\") in the path with forward slashes ("/") Required "/home/user/content"
m3u8_dl Enable downloading of high-quality M3U8 video streams. Requires FFmpeg. false true/false
check_updates Check for new updates on launch false true/false
skip_previews Skip downloading preview images/videos for posts and messages true true/false
use_content_as_filename Generate human-readable filenames from post/message content. false true/false
content_filename_template Template for readable filenames. See variables below. "{date}-{content}_{index}" "{date}-{content}"
date_format String "20060102" Defines the date format used in filenames when use_content_as_filename is true. It uses Go's unique time formatting layout. See below for examples.
content_filename_length Integer 50 Sets the maximum number of characters from a post's caption to be used in the filename.
download_media_type Download only specific media. Options: all, images, videos, audio. "all" "videos"
skip_downloaded_posts Skip posts that have already been processed to speed up subsequent runs. false true/false
post_limit Limit the download to the specified number of most recent items. 0 50

Date Format

Go uses a special reference date to define time formats: Mon Jan 2 15:04:05 MST 2006. To get your desired format, you write out this reference date in that format.

Here are some common examples:

  • YYYY-MM-DD (with dashes): "2006-01-02"
  • YYYYMMDD (no separator): "20060102" (Default)
  • DD-MM-YYYY: "02-01-2006"
  • MM-DD-YYYY: "01-02-2006"

M3U8 Video Download

Set m3u8_dl = true to enable the downloading of videos streamed using the M3U8 (HLS) format. It is highly recommended to enable this setting for the best possible video quality.

  • Why enable this? Fansly often serves the highest resolution versions of videos as M3U8 streams. If this option is disabled, the scraper may have to download a lower-quality MP4 file as a fallback, or it may not be able to download the video at all if no other source is available.

  • Requirement: FFmpeg This feature requires FFmpeg to be installed on your system and available in your system's PATH. The scraper uses FFmpeg to download all the small video segments (.ts files) from the stream and seamlessly combine them into a single, high-quality video file (e.g., an .mp4).

Filtering by Media Type

The download_media_type option allows you to save bandwidth and storage by only downloading the content you want. This is useful if you are only interested in a creator's images or videos, for example.

  • all: Downloads all media types (images, videos, and audio). This is the default.
  • images or image: Downloads only images.
  • videos or video: Downloads only videos.
  • audios or audio: Downloads only audio files.

The setting is not case-sensitive, and both singular and plural forms work (e.g., videos and video are treated the same). This filter applies to all content types, including Timeline, Messages, Stories, and Purchases.

Skipping Processed Posts

Set skip_downloaded_posts to true to dramatically speed up re-running the scraper on a creator you have already downloaded. When enabled, the application keeps a record of every post it successfully processes in its local database (downloads.db). On future runs, it will skip any post ID that is already in its records, avoiding the need to re-fetch and check media for that post.

Warning

Due to API rate limits or network issues, it's possible for the application to mark a post as "processed" even if some of its media failed to download. If you suspect content is missing from a previous run, it is recommended to temporarily set skip_downloaded_posts = false to force the scraper to re-check all of the creator's posts for any missing files.

Readable Filenames

When use_content_as_filename is set to true, the scraper will generate filenames based on the content of a post or message, making your archive much easier to browse.

  • For Timeline Posts & Messages with Text: The filename is generated using the content_filename_template.
  • For Purchases, Stories, or content without text: A fallback template ({date}{model_name}{mediaId}_{index}) is used automatically to ensure files are still well-organized.
  • If use_content_as_filename is false: The original ID-based naming scheme ({postId}_{mediaId}) is used.

Available Template Variables:

  • {date}: The date the content was posted (YYYYMMDD format).
  • {content}: The first 45 characters of the post/message text, sanitized for filesystem safety.
  • {index}: A number (0, 1, 2...) for each piece of media in a single post/message.
  • {postId}: The unique ID of the post or message.
  • {mediaId}: The unique ID of the media file.
  • {model_name}: The username of the content creator.

Preview Files

Preview files are typically lower quality or shorter versions of the main media content. They are often used as thumbnails or quick previews on the platform. When skip_previews is set to true, only the main media files will be downloaded, which can:

  • Save storage space
  • Reduce download time
  • Avoid duplicate/similar content

Preview files are usually named with a _preview suffix (e.g., postid_mediaid_preview.jpg).

Limiting Download Count

The post_limit option allows you to restrict the download to only the X most recent items. This is particularly useful if you want to quickly grab the latest content from a creator with a massive history without checking thousands of old posts.

  • 0: Downloads everything (Default).
  • > 0: Downloads only the specified number of recent items.

This limit applies to Timeline Posts and Messages. For example, setting post_limit = 50 will download the 50 most recent timeline posts and the 50 most recent messages.

Note

This feature optimizes API usage. Once the scraper has fetched the requested number of items, it stops asking the Fansly API for more data. This makes it significantly faster than downloading all metadata and filtering later.

Clone this wiki locally