# All Configuration Options

This page contains detailed information for each configuration option supported by OF-DL. For information about the
structure of the `config.conf` file or a simple list of these configuration options, go to
the [configuration page](/config/configuration).

## BypassContentForCreatorsWhoNoLongerExist

Type: `boolean`

Default: `false`

Allowed values: `true`, `false`

Description: When a creator no longer exists (their account has been deleted), most of their content will be
inaccessible.
Purchased content, however, will still be accessible by downloading media usisng the "Download Purchased Tab" menu
option
or with the [NonInteractiveModePurchasedTab](#noninteractivemodepurchasedtab) config option when downloading media in
non-interactive mode.

## CreatorConfigs

Type: `object`

Default: `{}`

Allowed values: An array of Creator Config objects

Description: This configuration options allows you to set file name formats for specific creators.
This is useful if you want to have different file name formats for different creators. The values set here will override
the global values set in the config file
(see [PaidPostFileNameFormat](#paidpostfilenameformat), [PostFileNameFormat](#postfilenameformat),
[PaidMessageFileNAmeFormat](#paidmessagefilenameformat), and [MessageFileNameFormat](#messagefilenameformat)).
For more information on the file name formats, see the [custom filename formats](/config/custom-filename-formats) page.

Example:

```
"CreatorConfigs": {
    "creator_one": {
        "PaidPostFileNameFormat": "{id}_{mediaid}_{filename}",
        "PostFileNameFormat": "{username}_{id}_{mediaid}_{mediaCreatedAt}",
        "PaidMessageFileNameFormat": "{id}_{mediaid}_{createdAt}",
        "MessageFileNameFormat": "{id}_{mediaid}_{filename}"
    },
    "creator_two": {
        "PaidPostFileNameFormat": "{id}_{mediaid}",
        "PostFileNameFormat": "{username}_{id}_{mediaid}",
        "PaidMessageFileNameFormat": "{id}_{mediaid}",
        "MessageFileNameFormat": "{id}_{mediaid}"
    }
}
```

## CustomDate

Type: `string`

Default: `null`

Allowed values: Any date in `yyyy-mm-dd` format or `null`

Description: [DownloadOnlySpecificDates](#downloadonlyspecificdates) needs to be set to `true` for this to work.
This date will be used when you are trying to download between/after a certain date.
See [DownloadOnlySpecificDates](#downloadonlyspecificdates) and
[DownloadDateSelection](#downloaddateselection) for more information.

## DisableBrowserAuth

Type: `boolean`

Default: `false`

Allowed values: `true`, `false`

Description: The built-in/bundled web browser will not be used to authenticate OF-DL if set to `true`. If set to `true`,
an `auth.json` file will need to be provided using a [legacy authentication method](/config/auth#legacy-methods).
If set to `true`, the `auth.json` file will not be deleted if authentication fails. If set to `false` (the default
behavior), OF-DL will delete the `auth.json` file if authentication fails.

## DisableTextSanitization

Type: `boolean`

Default: `false`

Allowed values: `true`, `false`

Description: When enabled, post/message text is stored as-is without XML stripping.

## DownloadArchived

Type: `boolean`

Default: `true`

Allowed values: `true`, `false`

Description: Posts in the "Archived" tab will be downloaded if set to `true`

## DownloadAudios

Type: `boolean`

Default: `true`

Allowed values: `true`, `false`

Description: Audios will be downloaded if set to `true`

## DownloadAvatarHeaderPhoto

Type: `boolean`

Default: `true`

Allowed values: `true`, `false`

Description: Avatar and header images will be downloaded if set to `true`

## DownloadDateSelection

Type: `string`

Default: `"before"`

Allowed values: `"before"`, `"after"`

Description: [DownloadOnlySpecificDates](#downloadonlyspecificdates) needs to be set to `true` for this to work. This
will get all posts from before
the date if set to `"before"`, and all posts from the date you specify up until the current date if set to `"after"`.
The date you specify will be in the [CustomDate](#customdate) config option.

## DownloadDuplicatedMedia

Type: `boolean`

Default: `false`

Allowed values: `true`, `false`

Description: By default (or when set to `false`), the program will not download duplicated media. If set to `true`,
duplicated media will be downloaded.

## DownloadHighlights

Type: `boolean`

Default: `true`

Allowed values: `true`, `false`

Description: Highlights on a user's will be downloaded if set to `true`

## DownloadImages

Type: `boolean`

Default: `true`

Allowed values: `true`, `false`

Description: Images will be downloaded if set to `true`

## DownloadLimitInMbPerSec

Type: `integer`

Default: `4`

Allowed values: Any positive integer

Description: The download rate in MB per second. This will only be used if [LimitDownloadRate](#limitdownloadrate) is
set to `true`.

## DownloadMessages

Type: `boolean`

Default: `true`

Allowed values: `true`, `false`

Description: Free media within messages (including paid message previews) will be downloaded if set to `true`

## DownloadOnlySpecificDates

Type: `boolean`

Default: `false`

Allowed values: `true`, `false`

Description: If set to `true`, posts will be downloaded based on the [DownloadDateSelection](#downloaddateselection)
and [CustomDate](#customdate) config options.
If set to `false`, all posts will be downloaded.

## DownloadPaidMessages

Type: `boolean`

Default: `true`

Allowed values: `true`, `false`

Description: Paid media within messages (excluding paid message previews) will be downloaded if set to `true`

## DownloadPaidPosts

Type: `boolean`

Default: `true`

Allowed values: `true`, `false`

Description: Paid posts will be downloaded if set to `true`

## DownloadPath

Type: `string`

Default: `""`

Allowed values: Any valid path

Description: If left blank then content will be downloaded to `__user_data__/sites/OnlyFans/{username}`.
If you set the download path to `"S:/"`, then content will be downloaded to `S:/{username}`

!!! note

    If you are using a Windows path, you will need to escape the backslashes, e.g. `"C:\\Users\\user\\Downloads\\OnlyFans\\"`
    Please make sure your path ends with a `/`

## DownloadPosts

Type: `boolean`

Default: `true`

Allowed values: `true`, `false`

Description: Free posts will be downloaded if set to `true`

## DownloadPostsIncrementally

Type: `boolean`

Default: `false`

Allowed values: `true`, `false`

Description: If set to `true`, only new posts will be downloaded from the date of the last post that was downloaded
based off what's in the `user_data.db` file.
If set to `false`, the default behaviour will apply, and all posts will be gathered and compared against the database to
see if they need to be downloaded or not.

## DownloadStories

Type: `boolean`

Default: `true`

Allowed values: `true`, `false`

Description: Stories on a user's profile will be downloaded if set to `true`

## DownloadStreams

Type: `boolean`

Default: `true`

Allowed values: `true`, `false`

Description: Posts in the "Streams" tab will be downloaded if set to `true`

## DownloadVideoResolution

Type: `string`

Default: `"source"`

Allowed values: `"source"`, `"240"`, `"720"`

Description: This allows you to download videos in alternative resolutions, by default videos are downloaded in source
resolution but some people prefer smoother videos at a lower resolution.

## DownloadVideos

Type: `boolean`

Default: `true`

Allowed values: `true`, `false`

Description: Videos will be downloaded if set to `true`

## DrmVideoDurationMatchThreshold

Type: `double`

Default: `0.98`

Allowed values: `0.01` to `1.0`

Description: Minimum required ratio between downloaded DRM video length and expected length.
Expected length is read from the MPD first, with media duration metadata used as a fallback.
For example, `0.98` requires the downloaded file to be at least 98% of the expected duration.
If the download is below this threshold, the program retries the download up to 3 times.

## FFmpegPath

Type: `string`

Default: `""`

Allowed values: Any valid path or `""`

Description: This is the path to the FFmpeg executable (`ffmpeg.exe` on Windows and `ffmpeg` on Linux/macOS).
If the path is not set, the program will try to find it in both the same directory as the OF-DL executable and the PATH
environment variable.

!!! note

    If you are using a Windows path, you will need to escape the backslashes, e.g. `"C:\\ffmpeg\\bin\\ffmpeg.exe"`
    For example, this is not valid: `"C:\some\path\ffmpeg.exe"`, but `"C:/some/path/ffmpeg.exe"` and `"C:\\some\\path\\ffmpeg.exe"` are both valid.

## FFprobePath

Type: `string`

Default: `""`

Allowed values: Any valid path or `""`

Description: This is the path to the FFprobe executable (`ffprobe.exe` on Windows and `ffprobe` on Linux/macOS).
If the path is not set, the program will try to find it in both the same directory as the OF-DL executable and the PATH
environment variable.

!!! note

    If you are using a Windows path, you will need to escape the backslashes, e.g. `"C:\\ffmpeg\\bin\\ffprobe.exe"`

## FolderPerMessage

Type: `boolean`

Default: `false`

Allowed values: `true`, `false`

Description: A folder will be created for each message (containing all the media for that message) if set to `true`.
When set to `false`, message media will be downloaded into the `Messages/Free` folder.

## FolderPerPaidMessage

Type: `boolean`

Default: `false`

Allowed values: `true`, `false`

Description: A folder will be created for each paid message (containing all the media for that message) if set to
`true`.
When set to `false`, paid message media will be downloaded into the `Messages/Paid` folder.

## FolderPerPaidPost

Type: `boolean`

Default: `false`

Allowed values: `true`, `false`

Description: A folder will be created for each paid post (containing all the media for that post) if set to `true`.
When set to `false`, paid post media will be downloaded into the `Posts/Paid` folder.

## FolderPerPost

Type: `boolean`

Default: `false`

Allowed values: `true`, `false`

Description: A folder will be created for each post (containing all the media for that post) if set to `true`.
When set to `false`, post media will be downloaded into the `Posts/Free` folder.

## IgnoreOwnMessages

Type: `boolean`

Default: `false`

Allowed values: `true`, `false`

Description: By default (or when set to `false`), messages that were sent by yourself will be added to the metadata DB
and any media which has been sent by yourself will be downloaded. If set to `true`, the program will not add messages
sent by yourself to the metadata DB and will not download any media which has been sent by yourself.

## IgnoredUsersListName

Type: `string`

Default: `""`

Allowed values: The name of a list of users you have created on OnlyFans or `""`

Description: When set to the name of a list, users in the list will be ignored when scraping content.
If set to `""` (or an invalid list name), no users will be ignored when scraping content.

## IncludeExpiredSubscriptions

Type: `boolean`

Default: `false`

Allowed values: `true`, `false`

Description: If set to `true`, expired subscriptions will appear in the user list under the "Custom" menu option.

## IncludeRestrictedSubscriptions

Type: `boolean`

Default: `false`

Allowed values: `true`, `false`

Description: If set to `true`, media from restricted creators will be downloaded. If set to `false`, restricted creators
will be ignored.

## LimitDownloadRate

Type: `boolean`

Default: `false`

Allowed values: `true`, `false`

Description: If set to `true`, the download rate will be limited to the value set
in [DownloadLimitInMbPerSec](#downloadlimitinmbpersec).

## LoggingLevel

Type: `string`

Default: `"Error"`

Allowed values: `"Verbose"`, `"Debug"`, `"Information"`, `"Warning"`, `"Error"`, `"Fatal"`

Description: The level of logging that will be saved to the log files in the `logs` folder.
When requesting help with an issue, it is recommended to set this to `"Verbose"` and provide the log file.

## MessageFileNameFormat

Type: `string`

Default: `""`

Allowed values: Any valid string

Description: Please refer to [custom filename formats](/config/custom-filename-formats#messagefilenameformat) page to
see what fields you can use.

## NonInteractiveMode

Type: `boolean`

Default: `false`

Allowed values: `true`, `false`

Description: If set to `true`, the program will run without any input from the user. It will scrape all users
automatically
(unless [NonInteractiveModeListName](#noninteractivemodelistname)
or [NonInteractiveModePurchasedTab](#noninteractivemodepurchasedtab) are configured).
If set to `false`, the default behaviour will apply, and you will be able to choose an option from the menu.

!!! warning

    If NonInteractiveMode is enabled, you will be unable to authenticate OF-DL using the standard authentication method.
    Before you can run OF-DL in NonInteractiveMode, you must either

    1. Generate an auth.json file by running OF-DL with NonInteractiveMode disabled and authenticating OF-DL using the standard method **OR**
    2. Generate an auth.json file by using a [legacy authentication method](/config/auth#legacy-methods)

## NonInteractiveModeListName

Type: `string`

Default: `""`

Allowed values: The name of a list of users you have created on OnlyFans or `""`

Description: When set to the name of a list, non-interactive mode will download media from the list of users instead of
all
users (when [NonInteractiveMode](#noninteractivemode) is set to `true`). If set to `""`, all users will be scraped
(unless [NonInteractiveModePurchasedTab](#noninteractivemodepurchasedtab) is configured).

## NonInteractiveModePurchasedTab

Type: `boolean`

Default: `false`

Allowed values: `true`, `false`

Description: When set to `true`, non-interactive mode will only download content from the Purchased tab
(when [NonInteractiveMode](#noninteractivemode) is set to `true`). If set to `false`, all users will be scraped
(unless [NonInteractiveModeListName](#noninteractivemodelistname) is configured).

## PaidMessageFileNameFormat

Type: `string`

Default: `""`

Allowed values: Any valid string

Description: Please refer to [custom filename formats](/config/custom-filename-formats#paidmessagefilenameformat) page
to see what fields you can use.

## PaidPostFileNameFormat

Type: `string`

Default: `""`

Allowed values: Any valid string

Description: Please refer to [custom filename formats](/config/custom-filename-formats#paidpostfilenameformat) page to
see what fields you can use.

## PostFileNameFormat

Type: `string`

Default: `""`

Allowed values: Any valid string

Description: Please refer to the [custom filename formats](/config/custom-filename-formats#postfilenameformat) page to
see what fields you can use.

## RenameExistingFilesWhenCustomFormatIsSelected

Type: `boolean`

Default: `false`

Allowed values: `true`, `false`

Description: When `true`, any current files downloaded will have the current format applied to them.
When `false`, only new files will have the current format applied to them.

## ShowScrapeSize

Type: `boolean`

Default: `false`

Allowed values: `true`, `false`

Description: If set to `true`, the total scrape size will be shown in bytes when downloading posts, messages, etc.
When set to `false`, the total number of posts, messages, etc. will be shown.

!!! warning

    Setting this to `true` will have an impact on performance as it has to go through each piece of media and get the size
    from the server, which is a big task and can sometimes get you rate limited.

## SkipAds

Type: `boolean`

Default: `false`

Allowed values: `true`, `false`

Description: Posts and messages that contain #ad or free trial links will be ignored if set to `true`

## Timeout

Type: `integer`

Default: `-1`

Allowed values: Any positive integer or `-1`

Description: You won't need to set this, but if you see errors about the configured timeout of 100 seconds elapsing then
you could set this to be more than 100. It is recommended that you leave this as the default value.
