# Table of Contents - [Welcome | OF-Scraper](#welcome-of-scraper) - [Installing Prerequisites | OF-Scraper](#installing-prerequisites-of-scraper) - [UV Install | OF-Scraper](#uv-install-of-scraper) - [Install from source | OF-Scraper](#install-from-source-of-scraper) - [Release Info | OF-Scraper](#release-info-of-scraper) - [Getting Started and Settings | OF-Scraper](#getting-started-and-settings-of-scraper) - [Requirements | OF-Scraper](#requirements-of-scraper) - [Binary Releases | OF-Scraper](#binary-releases-of-scraper) - [Install | OF-Scraper](#install-of-scraper) - [Config Options | OF-Scraper](#config-options-of-scraper) - [Config Location | OF-Scraper](#config-location-of-scraper) - [Responsetype Placeholders | OF-Scraper](#responsetype-placeholders-of-scraper) - [Using the Scraper | OF-Scraper](#using-the-scraper-of-scraper) - [Example Configs | OF-Scraper](#example-configs-of-scraper) - [Docker | OF-Scraper](#docker-of-scraper) - [Using Prompts | OF-Scraper](#using-prompts-of-scraper) - [Binaries Options | OF-Scraper](#binaries-options-of-scraper) - [Auth | OF-Scraper](#auth-of-scraper) - [General Options | OF-Scraper](#general-options-of-scraper) - [CDM Options | OF-Scraper](#cdm-options-of-scraper) - [Options | OF-Scraper](#options-of-scraper) - [Download Options | OF-Scraper](#download-options-of-scraper) - [Advanced Customization | OF-Scraper](#advanced-customization-of-scraper) - [Metadata | OF-Scraper](#metadata-of-scraper) - [Media Filtering Options | OF-Scraper](#media-filtering-options-of-scraper) - [Username selection or Fuzzy Search | OF-Scraper](#username-selection-or-fuzzy-search-of-scraper) - [CDM issues | OF-Scraper](#cdm-issues-of-scraper) - [Placeholders | OF-Scraper](#placeholders-of-scraper) - [Page 2 | OF-Scraper](#page-2-of-scraper) - [Scraping Individual Posts or Media | OF-Scraper](#scraping-individual-posts-or-media-of-scraper) - [Page 1 | OF-Scraper](#page-1-of-scraper) - [File Output Options | OF-Scraper](#file-output-options-of-scraper) - [Adding Proxy | OF-Scraper](#adding-proxy-of-scraper) - [Table Columns | OF-Scraper](#table-columns-of-scraper) - [Migrating from Digitalcriminal's script | OF-Scraper](#migrating-from-digitalcriminal-s-script-of-scraper) - [Recipes | OF-Scraper](#recipes-of-scraper) - [Controlling Output/Logs | OF-Scraper](#controlling-output-logs-of-scraper) - [Pre 3.10.7 filtering | OF-Scraper](#pre-3-10-7-filtering-of-scraper) - [Old Menu | OF-Scraper](#old-menu-of-scraper) - [Scripts | OF-Scraper](#scripts-of-scraper) - [Command Reference | OF-Scraper](#command-reference-of-scraper) - [Redownload Deleted Downloads | OF-Scraper](#redownload-deleted-downloads-of-scraper) - [Creating Metadata | OF-Scraper](#creating-metadata-of-scraper) - [Advanced config options | OF-Scraper](#advanced-config-options-of-scraper) - [Metadata location | OF-Scraper](#metadata-location-of-scraper) - [Content Check Modes | OF-Scraper](#content-check-modes-of-scraper) - [Downloading Purchases From Deleted Models | OF-Scraper](#downloading-purchases-from-deleted-models-of-scraper) - [CDM Setup | OF-Scraper](#cdm-setup-of-scraper) - [Testing | OF-Scraper](#testing-of-scraper) - [Request Change to Doc | OF-Scraper](#request-change-to-doc-of-scraper) - [Basic Actions | OF-Scraper](#basic-actions-of-scraper) - [Multiple Actions | OF-Scraper](#multiple-actions-of-scraper) - [Download Toggles | OF-Scraper](#download-toggles-of-scraper) - [Enable label scan | OF-Scraper](#enable-label-scan-of-scraper) - [Scripting tips | OF-Scraper](#scripting-tips-of-scraper) - [Shared Options | OF-Scraper](#shared-options-of-scraper) - [Liking/Unliking Post | OF-Scraper](#liking-unliking-post-of-scraper) - [Table Management | OF-Scraper](#table-management-of-scraper) - [Basic Automation with command-line | OF-Scraper](#basic-automation-with-command-line-of-scraper) - [Price Filtering/Sort | OF-Scraper](#price-filtering-sort-of-scraper) - [Schema | OF-Scraper](#schema-of-scraper) - [Downloading Text Files | OF-Scraper](#downloading-text-files-of-scraper) - [Values to Pick | OF-Scraper](#values-to-pick-of-scraper) - [Advanced Download Options | OF-Scraper](#advanced-download-options-of-scraper) - [Advanced Args | OF-Scraper](#advanced-args-of-scraper) - [Performance Options | OF-Scraper](#performance-options-of-scraper) - [FAQ/Common Issues | OF-Scraper](#faq-common-issues-of-scraper) - [Model Filtering/Sorting | OF-Scraper](#model-filtering-sorting-of-scraper) - [General Program Options | OF-Scraper](#general-program-options-of-scraper) - [Downloading Content | OF-Scraper](#downloading-content-of-scraper) - [Main Scraper Options | OF-Scraper](#main-scraper-options-of-scraper) - [Filename Modification Options | OF-Scraper](#filename-modification-options-of-scraper) - [Script Options | OF-Scraper](#script-options-of-scraper) - [Manual Mode Options | OF-Scraper](#manual-mode-options-of-scraper) - [Metadata Check Mode Options | OF-Scraper](#metadata-check-mode-options-of-scraper) - [Model Sorting & Processing Options | OF-Scraper](#model-sorting-processing-options-of-scraper) - [Automation Options | OF-Scraper](#automation-options-of-scraper) - [Program Options | OF-Scraper](#program-options-of-scraper) - [Shared Scrape and Metadata Check Mode Options | OF-Scraper](#shared-scrape-and-metadata-check-mode-options-of-scraper) - [Content Check Modes Options | OF-Scraper](#content-check-modes-options-of-scraper) - [User Selection Options | OF-Scraper](#user-selection-options-of-scraper) - [Advanced Search & Processing Options | OF-Scraper](#advanced-search-processing-options-of-scraper) - [Logging Options | OF-Scraper](#logging-options-of-scraper) - [Media Filters Options | OF-Scraper](#media-filters-options-of-scraper) - [Script Options | OF-Scraper](#script-options-of-scraper) - [Advanced Program Options | OF-Scraper](#advanced-program-options-of-scraper) - [Advanced User Filters | OF-Scraper](#advanced-user-filters-of-scraper) - [Download Options | OF-Scraper](#download-options-of-scraper) - [User List Filter Options | OF-Scraper](#user-list-filter-options-of-scraper) - [Setting metadata path | OF-Scraper](#setting-metadata-path-of-scraper) - [Content Options | OF-Scraper](#content-options-of-scraper) --- # Welcome | OF-Scraper OF-Scraper is a command-line tool that lets you download media from OnlyFans and perform bulk actions like liking or unliking posts * * * [hashtag](https://of-scraper.gitbook.io/of-scraper#installation) Installation ---------------------------------------------------------------------------------- [Requirementschevron-right](https://of-scraper.gitbook.io/of-scraper/requirements) [Installchevron-right](https://of-scraper.gitbook.io/of-scraper/installation) * * * [hashtag](https://of-scraper.gitbook.io/of-scraper#after-install) After Install ------------------------------------------------------------------------------------ [Getting Started and Settingschevron-right](https://of-scraper.gitbook.io/of-scraper/getting-started) [FAQ/Common Issueschevron-right](https://of-scraper.gitbook.io/of-scraper/faq) [NextRequirementschevron-right](https://of-scraper.gitbook.io/of-scraper/requirements) Last updated 1 year ago * [Installation](https://of-scraper.gitbook.io/of-scraper#installation) * [After Install](https://of-scraper.gitbook.io/of-scraper#after-install) sun-brightdesktopmoon sun-brightdesktopmoon --- # Installing Prerequisites | OF-Scraper This page outlines how to install the necessary tools and Python versions required to run OF-Scraper outside of Docker. * * * [hashtag](https://of-scraper.gitbook.io/of-scraper/installation/pre-install-guide#getting-uv) Getting UV ------------------------------------------------------------------------------------------------------------- UV is a modern, fast Python package installer and dependency resolver. It's the recommended tool for managing OF-Scraper installations. circle-info Installing UV with one of their official installation scripts is recommended for the most straightforward setup. [![Logo](https://of-scraper.gitbook.io/of-scraper/~gitbook/image?url=https%3A%2F%2Fdocs.astral.sh%2Fstatic%2Fapple-touch-icon.png&width=20&dpr=3&quality=100&sign=481e89b9&sv=2)Installation | uvdocs.astral.shchevron-right](https://docs.astral.sh/uv/getting-started/installation/) [PreviousInstallchevron-left](https://of-scraper.gitbook.io/of-scraper/installation) [NextUV Installchevron-right](https://of-scraper.gitbook.io/of-scraper/installation/uv-install) Last updated 9 months ago sun-brightdesktopmoon sun-brightdesktopmoon --- # UV Install | OF-Scraper [hashtag](https://of-scraper.gitbook.io/of-scraper/installation/uv-install#installing-uv) Installing UV ------------------------------------------------------------------------------------------------------------ circle-exclamation Important: UV is a standalone binary. You do not need Python installed on your system to install UV. Once UV is installed, it can then manage and install Python versions for you. Installing UV with one of their official installation scripts is recommended for the most straightforward setup. [Installing Prerequisites](https://of-scraper.gitbook.io/of-scraper/installation/pre-install-guide) [hashtag](https://of-scraper.gitbook.io/of-scraper/installation/uv-install#installing-upgrading-of-scraper) Installing/Upgrading OF-Scraper ------------------------------------------------------------------------------------------------------------------------------------------------ circle-info **Tip: Use the** `**--verbose**` **command to get more details about the install process.** ### [hashtag](https://of-scraper.gitbook.io/of-scraper/installation/uv-install#stable-release-install) **Stable Release Install** To install the latest stable release of OF-Scraper: Copy uv tool install ofscraper --force ### [hashtag](https://of-scraper.gitbook.io/of-scraper/installation/uv-install#development-release) Development Release **Pre-release** To install the latest pre-release version: Copy uv tool install --prerelease allow ofscraper --force **Development** To install the very latest development version directly from the GitHub repository: ### [hashtag](https://of-scraper.gitbook.io/of-scraper/installation/uv-install#specific-version-of-script) Specific Version of Script To install a specific stable or pre-release version of the script: Replace `` with the exact version number you want to install (e.g., `ofscraper==2.4.3`). ### [hashtag](https://of-scraper.gitbook.io/of-scraper/installation/uv-install#specific-version-of-python) Specific Version of Python You can specify the Python version `uv` should use for the tool installation by appending `--python ` to your command. ### [hashtag](https://of-scraper.gitbook.io/of-scraper/installation/uv-install#including-pyffmpeg-optional) Including pyffmpeg (Optional) pyffmpeg is a Python package that provides ffmpeg capabilities directly within Python by bundling its own ffmpeg binaries. You can accomplish this by appending \[ffmpeg\] to the install name when using uv tool install. example: `uv tool install ofscraper[ffmpeg] --force` circle-info When you install ofscraper using ofscraper\[ffmpeg\], pyffmpeg will be automatically installed as a dependency. pyffmpeg then manages its own ffmpeg binary for the script, meaning you generally do not need to separately install ffmpeg or mp4decrypt on your host system or mount them into Docker containers. ### [hashtag](https://of-scraper.gitbook.io/of-scraper/installation/uv-install#upgrade) Upgrade It's recommended to explicitly uninstall `ofscraper` before upgrading to avoid potential conflicts, as not doing so has caused problems for users previously. To upgrade `ofscraper` to the latest stable release: To upgrade `ofscraper` to the latest prerelease or development version: [PreviousInstalling Prerequisiteschevron-left](https://of-scraper.gitbook.io/of-scraper/installation/pre-install-guide) [NextBinary Releaseschevron-right](https://of-scraper.gitbook.io/of-scraper/installation/binary-releases) Last updated 9 months ago * [Installing UV](https://of-scraper.gitbook.io/of-scraper/installation/uv-install#installing-uv) * [Installing/Upgrading OF-Scraper](https://of-scraper.gitbook.io/of-scraper/installation/uv-install#installing-upgrading-of-scraper) * [Stable Release Install](https://of-scraper.gitbook.io/of-scraper/installation/uv-install#stable-release-install) * [Development Release](https://of-scraper.gitbook.io/of-scraper/installation/uv-install#development-release) * [Specific Version of Script](https://of-scraper.gitbook.io/of-scraper/installation/uv-install#specific-version-of-script) * [Specific Version of Python](https://of-scraper.gitbook.io/of-scraper/installation/uv-install#specific-version-of-python) * [Including pyffmpeg (Optional)](https://of-scraper.gitbook.io/of-scraper/installation/uv-install#including-pyffmpeg-optional) * [Upgrade](https://of-scraper.gitbook.io/of-scraper/installation/uv-install#upgrade) sun-brightdesktopmoon Copy uv tool install git+https://github.com/datawhores/OF-Scraper.git --force Copy uv tool install --prerelease allow ofscraper== Copy # Example: Install a specific script version with Python 3.12 uv tool install --prerelease allow ofscraper== --python 3.12 Copy uv tool uninstall ofscraper # Recommended first step uv tool install ofscraper --force Copy uv tool uninstall ofscraper # Recommended first step uv tool install --prerelease allow ofscraper --force sun-brightdesktopmoon --- # Install from source | OF-Scraper This guide provides instructions for installing and setting up the project from source. **Important Note for Developers:** This project uses a custom versioning scheme for development builds that may not strictly adhere to PEP 440 for PyPI. This guide includes steps to manage that for local development. [hashtag](https://of-scraper.gitbook.io/of-scraper/installation/install-from-source#prerequisites) Prerequisites --------------------------------------------------------------------------------------------------------------------- Before you begin, ensure you have the following installed on your system: * **Git:** For cloning the project repository. * [Installation Guidearrow-up-right](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git) * **uv:** A fast Python package installer and resolver. * Follow the official installation instructions: [uv Installation Guidearrow-up-right](https://docs.astral.sh/uv/getting-started/installation/) [hashtag](https://of-scraper.gitbook.io/of-scraper/installation/install-from-source#installation-steps) Installation Steps ------------------------------------------------------------------------------------------------------------------------------- Follow these steps to get your project up and running: ### [hashtag](https://of-scraper.gitbook.io/of-scraper/installation/install-from-source#id-1.-clone-the-repository) 1\. Clone the Repository First, clone the project from its Git repository: Copy git clone https://github.com/datawhores/OF-Scraper/ cd OF-Scraper ### [hashtag](https://of-scraper.gitbook.io/of-scraper/installation/install-from-source#id-2.-pull-the-latest-tags) 2\. Pull the Latest Tags To ensure you have access to all version information, pull the Git tags: ### [hashtag](https://of-scraper.gitbook.io/of-scraper/installation/install-from-source#id-3.-prepare-environment-variables-for-custom-versioning) 3\. Prepare Environment Variables (for Custom Versioning) The project uses a custom versioning strategy for local development and CI/CD that overrides the default PEP 440 checks during the build process. You need to source a script to set the necessary environment variables: Bash This script will set variables that allow Hatch to correctly interpret and build the project's development versions. ### [hashtag](https://of-scraper.gitbook.io/of-scraper/installation/install-from-source#id-4.-create-a-python-virtual-environment) 4\. Create a Python Virtual Environment It's highly recommended to use a virtual environment to isolate your project's dependencies from your system's Python installation. `uv` can create these for you: Bash This will create a new virtual environment named `.venv` (by default) in your project directory. ### [hashtag](https://of-scraper.gitbook.io/of-scraper/installation/install-from-source#id-5.-activate-the-virtual-environment) 5\. Activate the Virtual Environment Before installing dependencies, you need to activate the virtual environment: Bash _(On Windows, you would typically use_ `_.\.venv\Scripts\activate_`_)_ You should see `(.venv) or OF-Scraper` or similar prefix in your terminal prompt, indicating the virtual environment is active. ### [hashtag](https://of-scraper.gitbook.io/of-scraper/installation/install-from-source#id-6.-install-project-dependencies) 6\. Install Project Dependencies Now, use `uv` to install all project dependencies and reinstall any existing ones to ensure a clean state: Bash This command will read your `pyproject.toml` (or `requirements.txt`) and install all necessary packages into your activated virtual environment. The `--reinstall` flag ensures that if any packages are already present, they are reinstalled, which can be useful after pulling updates. [PreviousRelease Infochevron-left](https://of-scraper.gitbook.io/of-scraper/installation/release-info) [NextGetting Started and Settingschevron-right](https://of-scraper.gitbook.io/of-scraper/getting-started) Last updated 9 months ago * [Prerequisites](https://of-scraper.gitbook.io/of-scraper/installation/install-from-source#prerequisites) * [Installation Steps](https://of-scraper.gitbook.io/of-scraper/installation/install-from-source#installation-steps) * [1\. Clone the Repository](https://of-scraper.gitbook.io/of-scraper/installation/install-from-source#id-1.-clone-the-repository) * [2\. Pull the Latest Tags](https://of-scraper.gitbook.io/of-scraper/installation/install-from-source#id-2.-pull-the-latest-tags) * [3\. Prepare Environment Variables (for Custom Versioning)](https://of-scraper.gitbook.io/of-scraper/installation/install-from-source#id-3.-prepare-environment-variables-for-custom-versioning) * [4\. Create a Python Virtual Environment](https://of-scraper.gitbook.io/of-scraper/installation/install-from-source#id-4.-create-a-python-virtual-environment) * [5\. Activate the Virtual Environment](https://of-scraper.gitbook.io/of-scraper/installation/install-from-source#id-5.-activate-the-virtual-environment) * [6\. Install Project Dependencies](https://of-scraper.gitbook.io/of-scraper/installation/install-from-source#id-6.-install-project-dependencies) sun-brightdesktopmoon Copy git pull --tags Copy source scripts/commit_version.sh Copy uv venv Copy source .venv/bin/activate Copy uv sync --reinstall sun-brightdesktopmoon --- # Release Info | OF-Scraper [hashtag](https://of-scraper.gitbook.io/of-scraper/installation/release-info#release-types) Release Types -------------------------------------------------------------------------------------------------------------- OF-Scraper uses distinct release types to indicate stability and origin. ### [hashtag](https://of-scraper.gitbook.io/of-scraper/installation/release-info#continuous-development-builds-snapshot-releases) Continuous Development Builds (Snapshot Releases) These releases are generated directly from recent commits on development branches (like `main`). They represent the absolute latest state of the codebase and typically include a commit hash in their name. * Naming Convention: Often includes a branch name, a short commit hash, and the **date of the associated commit for chronological sorting** (e.g., 3.13.dev8-a70aca3e) * **Stability:** These are bleeding-edge versions and may contain new features, bug fixes, or unresolved issues. They are primarily for testing and development. * **Example Tag:** `main-9e54ed3-1749940070` ### [hashtag](https://of-scraper.gitbook.io/of-scraper/installation/release-info#pre-release-versions-e.g.-x.y.z.devn) Pre-release Versions (e.g., `X.Y.Z.devN`) These releases are designated as "semi-stable" and are pushed for broader testing before a full stable release. They typically follow a `major.minor.patch.devN` numbering scheme. * **Naming Convention:** Follows the format `major.minor.patch.devN` (e.g., `3.7.0.dev0`). * **Stability:** More stable than continuous development builds, but still undergoing testing. * **Example Version:** `3.7.0.dev0` ### [hashtag](https://of-scraper.gitbook.io/of-scraper/installation/release-info#stable-releases-numbered) Stable Releases (Numbered) These are production-ready versions of OF-Scraper, thoroughly tested and considered stable for general use. They mark a specific commit as a reliable release point. * **Naming Convention:** Standard semantic versioning (e.g., `X.Y.Z`, like `3.6.0`). * **Stability:** Highly stable and recommended for most users. * **Example Version:** `3.6.0` * * * [hashtag](https://of-scraper.gitbook.io/of-scraper/installation/release-info#release-distributions) Release Distributions ------------------------------------------------------------------------------------------------------------------------------ ### [hashtag](https://of-scraper.gitbook.io/of-scraper/installation/release-info#python-package) Python Package Stable and pre-release versions of the Python package are hosted on **PyPI** For a comprehensive history of all releases (including pre-releases), visit the official PyPI page: [![Logo](https://of-scraper.gitbook.io/of-scraper/~gitbook/image?url=https%3A%2F%2Fpypi.org%2Fstatic%2Fimages%2Ffavicon.35549fe8.ico&width=20&dpr=3&quality=100&sign=6520cf72&sv=2)ofscraperPyPIchevron-right](https://pypi.org/project/ofscraper/#history) ### [hashtag](https://of-scraper.gitbook.io/of-scraper/installation/release-info#docker-images) Docker Images Stable, pre-release, and dev versions of multi-arch Docker images are hosted on **GitHub Container Registry** and **Docker Hub** [![Logo](https://of-scraper.gitbook.io/of-scraper/~gitbook/image?url=https%3A%2F%2Fhub.docker.com%2Ffavicon.ico&width=20&dpr=3&quality=100&sign=b678431&sv=2)datawhores/of-scraper - Docker Imagehub.docker.comchevron-right](https://hub.docker.com/r/datawhores/of-scraper/tags) [![Logo](https://of-scraper.gitbook.io/of-scraper/~gitbook/image?url=https%3A%2F%2Fgithub.com%2Ffluidicon.png&width=20&dpr=3&quality=100&sign=dc891f14&sv=2)GitHubGitHubchevron-right](https://github.com/datawhores/OF-Scraper/pkgs/container/of-scraper) ### [hashtag](https://of-scraper.gitbook.io/of-scraper/installation/release-info#binaries) Binaries Stable, pre-release, and dev versions are released as binaries on **GitHub** for Windows, macOS, and Linux [![Logo](https://of-scraper.gitbook.io/of-scraper/~gitbook/image?url=https%3A%2F%2Fgithub.com%2Ffluidicon.png&width=20&dpr=3&quality=100&sign=dc891f14&sv=2)Releases · datawhores/OF-ScraperGitHubchevron-right](https://github.com/datawhores/OF-Scraper/releases) #### [hashtag](https://of-scraper.gitbook.io/of-scraper/installation/release-info#release-files) Release Files Binaries include various file types **compatible with different platforms** #### [hashtag](https://of-scraper.gitbook.io/of-scraper/installation/release-info#example-files) Example Files Below is an illustrative list of files you might find in a release, with common naming patterns. * `ofscraper_windows_x64.zip` (Windows zips) * `ofscraper_linux` (Linux script) [PreviousDockerchevron-left](https://of-scraper.gitbook.io/of-scraper/installation/docker) [NextInstall from sourcechevron-right](https://of-scraper.gitbook.io/of-scraper/installation/install-from-source) Last updated 9 months ago * [Release Types](https://of-scraper.gitbook.io/of-scraper/installation/release-info#release-types) * [Continuous Development Builds (Snapshot Releases)](https://of-scraper.gitbook.io/of-scraper/installation/release-info#continuous-development-builds-snapshot-releases) * [Pre-release Versions (e.g., X.Y.Z.devN)](https://of-scraper.gitbook.io/of-scraper/installation/release-info#pre-release-versions-e.g.-x.y.z.devn) * [Stable Releases (Numbered)](https://of-scraper.gitbook.io/of-scraper/installation/release-info#stable-releases-numbered) * [Release Distributions](https://of-scraper.gitbook.io/of-scraper/installation/release-info#release-distributions) * [Python Package](https://of-scraper.gitbook.io/of-scraper/installation/release-info#python-package) * [Docker Images](https://of-scraper.gitbook.io/of-scraper/installation/release-info#docker-images) * [Binaries](https://of-scraper.gitbook.io/of-scraper/installation/release-info#binaries) sun-brightdesktopmoon sun-brightdesktopmoon --- # Getting Started and Settings | OF-Scraper * * * [hashtag](https://of-scraper.gitbook.io/of-scraper/getting-started#running-script) Running Script ------------------------------------------------------------------------------------------------------ The easiest way to run the script is Copy ofscraper This will present a menu, that will allow many actions to be performed without any arguments * * * **For help on authorization** [Authchevron-right](https://of-scraper.gitbook.io/of-scraper/getting-started/auth) **For how to customizing the program** [Config Optionschevron-right](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options) **For information about the prompt/menu system** [Using Promptschevron-right](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/using-prompts) **For More Automation/Advanced Use** [Basic Automation with command-linechevron-right](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions) [Command Referencechevron-right](https://of-scraper.gitbook.io/of-scraper/command-reference) [PreviousInstall from sourcechevron-left](https://of-scraper.gitbook.io/of-scraper/installation/install-from-source) [NextConfig Optionschevron-right](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options) Last updated 1 year ago sun-brightdesktopmoon sun-brightdesktopmoon --- # Requirements | OF-Scraper circle-info **python 3.11 is compatible with most version** circle-info **python <=3.10 is compatible with some older version** circle-info **python >=3.13 is compatible with 3.7 and beyond** [PreviousWelcomechevron-left](https://of-scraper.gitbook.io/of-scraper) [NextInstallchevron-right](https://of-scraper.gitbook.io/of-scraper/installation) Last updated 1 year ago sun-brightdesktopmoon sun-brightdesktopmoon --- # Binary Releases | OF-Scraper circle-info **Check out the binaries below if you want to run without installing** circle-info **However, pip/pipx are the recommended as they will have better performance and provide easier path to updates** [![Logo](https://of-scraper.gitbook.io/of-scraper/~gitbook/image?url=https%3A%2F%2Fgithub.com%2Ffluidicon.png&width=20&dpr=3&quality=100&sign=dc891f14&sv=2)Releases · datawhores/OF-ScraperGitHubchevron-right](https://github.com/datawhores/OF-Scraper/releases) [Release Infochevron-right](https://of-scraper.gitbook.io/of-scraper/installation/release-info) [PreviousUV Installchevron-left](https://of-scraper.gitbook.io/of-scraper/installation/uv-install) [NextDockerchevron-right](https://of-scraper.gitbook.io/of-scraper/installation/docker) Last updated 2 years ago sun-brightdesktopmoon sun-brightdesktopmoon --- # Install | OF-Scraper * * * [hashtag](https://of-scraper.gitbook.io/of-scraper/installation#version-info) Version Info ----------------------------------------------------------------------------------------------- circle-info #### [hashtag](https://of-scraper.gitbook.io/of-scraper/installation#stable-versions-are-hosted-on-various-platform-including-pypi-docker-and-github) Stable versions are hosted on various platform including PYPI,Docker, and GitHub circle-info **Go to** [**https://pypi.org/project/ofscraper/#history**arrow-up-right](https://pypi.org/project/ofscraper/#history) **for latest Dev release** [![drawing](https://of-scraper.gitbook.io/of-scraper/~gitbook/image?url=https%3A%2F%2Fimg.shields.io%2Fpypi%2Fv%2Fofscraper.svg%3Fcolor%3Ddark_green%26label%3DStable-Release&width=300&dpr=3&quality=100&sign=f332d253&sv=2)arrow-up-right](https://pypi.org/project/ofscraper/) [![drawing](https://of-scraper.gitbook.io/of-scraper/~gitbook/image?url=https%3A%2F%2Fimg.shields.io%2Fbadge%2FPre--Release-v3.70.dev-dark_green.svg&width=300&dpr=3&quality=100&sign=2f163be8&sv=2)arrow-up-right](https://pypi.org/project/ofscraper/3.7.0.dev0/) [hashtag](https://of-scraper.gitbook.io/of-scraper/installation#undefined) ------------------------------------------------------------------------------ * * * [hashtag](https://of-scraper.gitbook.io/of-scraper/installation#before-starting) Before Starting ----------------------------------------------------------------------------------------------------- The guide assumes you have your terminal program open and have already installed Python. If you're unsure about this, follow this guide [Installing Prerequisiteschevron-right](https://of-scraper.gitbook.io/of-scraper/installation/pre-install-guide) * * * [hashtag](https://of-scraper.gitbook.io/of-scraper/installation#install-via-a-package-manager) Install via a package manager --------------------------------------------------------------------------------------------------------------------------------- circle-info **pipx is recommended for its virtual environment management capabilities.** **It serves as an abstraction layer over pip, placing installed scripts within isolated virtual environments. This approach is highly recommended for script installation as it offers several advantages:** * **Prevents conflicts:** By isolating scripts and their dependencies within virtual environments, pipx effectively eliminates conflicts with other Python packages or system-wide installations. * **Enhances organization:** Each script resides in its own distinct virtual environment, promoting better organization and clarity in project management. * **Simplifies updates:** pipx streamlines the process of updating scripts, ensuring you always have access to the latest versions and features ### [hashtag](https://of-scraper.gitbook.io/of-scraper/installation#option-1-pipx-install) **Option 1: PIPX Install** [UV Installchevron-right](https://of-scraper.gitbook.io/of-scraper/installation/uv-install) ### [hashtag](https://of-scraper.gitbook.io/of-scraper/installation#option-2-pip-install) **Option 2: PIP install** [hashtag](https://of-scraper.gitbook.io/of-scraper/installation#install-via-docker) Install via Docker ----------------------------------------------------------------------------------------------------------- [Dockerchevron-right](https://of-scraper.gitbook.io/of-scraper/installation/docker) [hashtag](https://of-scraper.gitbook.io/of-scraper/installation#compiled-binaries-no-install) Compiled Binaries \[No Install\] ----------------------------------------------------------------------------------------------------------------------------------- circle-info **A pyinstaller based binary is an executable file that contains your Python script and all the necessary dependencies to run it on different operating systems. Pyinstaller analyzes the script and bundles it with the Python interpreter, libraries, modules, and other resources into a single file or folder** circle-info **Support for issues specific to how pyinstaller operates may be limited** [Binary Releaseschevron-right](https://of-scraper.gitbook.io/of-scraper/installation/binary-releases) * * * [hashtag](https://of-scraper.gitbook.io/of-scraper/installation#basic-install-tutorial) Basic Install/Tutorial ------------------------------------------------------------------------------------------------------------------- circle-info **A quick high level tutorial of the install process** [![Logo](https://of-scraper.gitbook.io/of-scraper/~gitbook/image?url=https%3A%2F%2Fbunkr.cr%2Fimages%2Ffav.ico&width=20&dpr=3&quality=100&sign=f46833c0&sv=2)scraper.mkvbunkrr.suchevron-right](https://bunkrr.su/v/scraper-l3eS0Abl.mkv) **A video showing the install process** [PreviousRequirementschevron-left](https://of-scraper.gitbook.io/of-scraper/requirements) [NextInstalling Prerequisiteschevron-right](https://of-scraper.gitbook.io/of-scraper/installation/pre-install-guide) Last updated 1 year ago * [Version Info](https://of-scraper.gitbook.io/of-scraper/installation#version-info) * [](https://of-scraper.gitbook.io/of-scraper/installation#undefined) * [Before Starting](https://of-scraper.gitbook.io/of-scraper/installation#before-starting) * [Install via a package manager](https://of-scraper.gitbook.io/of-scraper/installation#install-via-a-package-manager) * [Option 1: PIPX Install](https://of-scraper.gitbook.io/of-scraper/installation#option-1-pipx-install) * [Option 2: PIP install](https://of-scraper.gitbook.io/of-scraper/installation#option-2-pip-install) * [Install via Docker](https://of-scraper.gitbook.io/of-scraper/installation#install-via-docker) * [Compiled Binaries \[No Install\]](https://of-scraper.gitbook.io/of-scraper/installation#compiled-binaries-no-install) * [Basic Install/Tutorial](https://of-scraper.gitbook.io/of-scraper/installation#basic-install-tutorial) sun-brightdesktopmoon sun-brightdesktopmoon --- # Config Options | OF-Scraper [Example Configschevron-right](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/example-configs) * * * [hashtag](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options#config-settings-for-save-locations) Config settings for save locations ------------------------------------------------------------------------------------------------------------------------------------------------------------- **Customize the final file path for downloads** [File Output Optionschevron-right](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/file-output-options) * * * [hashtag](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options#media-filtering) Media Filtering ----------------------------------------------------------------------------------------------------------------------- **Customize which files are downloaded** [Media Filtering Optionschevron-right](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/download-options/media-filtering-options) * * * [hashtag](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options#key-options) Key Options --------------------------------------------------------------------------------------------------------------- **These settings are required for some files** [CDM Optionschevron-right](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/key-option) [PreviousGetting Started and Settingschevron-left](https://of-scraper.gitbook.io/of-scraper/getting-started) [NextConfig Locationchevron-right](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/config-location) Last updated 9 months ago * [Config settings for save locations](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options#config-settings-for-save-locations) * [Media Filtering](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options#media-filtering) * [Key Options](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options#key-options) sun-brightdesktopmoon sun-brightdesktopmoon --- # Config Location | OF-Scraper ### [hashtag](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/config-location#config-path) Config Path #### [hashtag](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/config-location#windows) Windows I'm not someone who uses Windows on a daily basis, but it should be Copy C:/Users/username/.config/ofscraper/config.json #### [hashtag](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/config-location#linux-or-mac) Linux or Mac circle-info **If running with sudo or root Then the file will be located in /root/.config/ofscaper/config.json** Copy /home/username/.config/ofscraper/config.json #### [hashtag](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/config-location#change-config-location) Change config location This can also be changed with the --config option [Advanced Argschevron-right](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/advanced-args) ### [hashtag](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/config-location#undefined) [PreviousConfig Optionschevron-left](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options) [NextExample Configschevron-right](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/example-configs) Last updated 1 year ago * [Config Path](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/config-location#config-path) * [](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/config-location#undefined) sun-brightdesktopmoon sun-brightdesktopmoon --- # Responsetype Placeholders | OF-Scraper This feature enables you to group downloads using the 'responsetype' placeholder. It allows combining various response types into a single folder or segregating downloads into separate folders based on their 'responsetype.' For example, you can merge 'stories' and 'highlights' into one folder or categorize 'purchased' items and 'messages' into a folder named 'Premium.' Another option is to organize 'timeline posts' into a separate folder labeled 'posts.' The initial value indicates the mapped response type, which should remain unchanged. The second value determines the remapped 'responsetype.' #### [hashtag](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/file-output-options/remapping-responsetype#example) Example Copy "timeline": "posts", "message": "premium", "archived": "archived", "paid": "premium", "stories": "stories", "highlights": "stories", "profile": "profile" Copy dir_format": "{model_username}/{responsetype}/{mediatype}/" Copy timeline -> maps to posts -> files save to "{model_username}/Posts/{mediatype}/" messages -> maps to premium -> files save to "{model_username}/Premium/{mediatype}/" archived -> maps to archived -> files save to "{model_username}/Archived/{mediatype}/" paid -> maps to premium -> files save to "{model_username}/Premium/{mediatype}/" stories -> maps to stories -> files save to "{model_username}/Stories/{mediatype}/" highlight -> maps to stories -> files save to "{model_username}/Stories/{mediatype}/" profile -> maps to archived -> files save to "{model_username}/Profile/{mediatype}/" These default settings are crafted to ensure maximum compatibility with Digitalcriminal's script. [PreviousPlaceholderschevron-left](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/file-output-options/customizing-save-path) [NextDownload Optionschevron-right](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/download-options) Last updated 2 years ago sun-brightdesktopmoon sun-brightdesktopmoon --- # Using the Scraper | OF-Scraper [Using Promptschevron-right](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/using-prompts) [Username selection or Fuzzy Searchchevron-right](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/username-selection-or-fuzzy-search) [Basic Automation with command-linechevron-right](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions) [Scriptschevron-right](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/scripts) [Recipeschevron-right](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/recipes) [PreviousAdvanced Customizationchevron-left](https://of-scraper.gitbook.io/of-scraper/getting-started/advanced-customization) [NextUsing Promptschevron-right](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/using-prompts) sun-brightdesktopmoon sun-brightdesktopmoon --- # Example Configs | OF-Scraper [hashtag](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/example-configs#example-1) Example 1 --------------------------------------------------------------------------------------------------------------------------- Copy { "config": { "main_profile": "main_profile", "metadata": "{configpath}/{profile}/.data/{model_username}_{model_id}", "discord": "", "file_options": { "save_location": "/home/james/Data/ofscraper", "dir_format": "/{model_username}/{responsetype}/{mediatype}/", "file_format": "{filename}.{ext}", "textlength": 0, "space-replacer": " ", "date": "MM-DD-YYYY", "text_type_default": "letter", "truncation_default": true }, "download_options": { "file_size_limit": 0, "file_size_min": 0, "filter": [\ "Images",\ "Audios",\ "Videos"\ ], "auto_resume": false, "system_free_min": 0, "number_retries": 10 }, "binary_options": { "mp4decrypt": "/home/james/.config/ofscraper/bin/mp4decrypt", "ffmpeg": "/home/james/.config/ofscraper/bin/ffmpeg" }, "cdm_options": { "private-key": "/home/james/.config/ofscraper/device/private_key.pem", "client-id": "/home/james/.config/ofscraper/device/client_id.bin", "key-mode-default": "manual", }, "performance_options": { "download-sems": 10, "threads": 10 }, "advanced_options": { "code-execution": true, "dynamic-mode-default": "dc", "backend": "aio", "downloadbars": false, "cache-mode": "sqlite", "appendlog": false, "custom_values":null "sanitize_text": false, "avatar": true, "temp_dir": null }, "responsetype": { "timeline": "Posts", "message": "Messages", "archived": "Archived", "paid": "Messages", "stories": "Stories", "highlights": "Stories", "profile": "Profile", "pinned": "Posts" } } } [hashtag](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/example-configs#digitialcriminals-example) Digitialcriminals Example ----------------------------------------------------------------------------------------------------------------------------------------------------------- [PreviousConfig Locationchevron-left](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/config-location) [NextSetting metadata pathchevron-right](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/setting-metadata-path) Last updated 9 months ago * [Example 1](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/example-configs#example-1) * [Digitialcriminals Example](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/example-configs#digitialcriminals-example) sun-brightdesktopmoon Copy { "config": { "main_profile": "main_profile", "metadata": "{save_location}/{model_username}/Metadata", "discord": "", "file_options": { "save_location": "//home/james/Data/ofscraper", "dir_format": "{model_username}/{responsetype}/{value}/{mediatype}/", "file_format": "{filename}.{ext}", "textlength": 0, "space-replacer": " ", "date": "MM-DD-YYYY", "text_type_default": "letter", "truncation_default": true }, "download_options": { "file_size_limit": 0, "file_size_min": 0, "filter": [\ "Images",\ "Audios",\ "Videos"\ ], "auto_resume": false, "system_free_min": 0, "number_retries": 10 }, "binary_options": { "mp4decrypt": "//home/james/.config/ofscraper/bin/mp4decrypt", "ffmpeg": "//home/james/.config/ofscraper/bin/ffmpeg" }, "cdm_options": { "private-key": "//home/james/.config/ofscraper/device/private_key.pem", "client-id": "//home/james/.config/ofscraper/device/client_id.bin", "key-mode-default": "manual", }, "performance_options": { "download-sems": 10, "threads": 10 }, "advanced_options": { "code-execution": true, "dynamic-mode-default": "dc", "logs_expire_time": 0.0 "backend": "aio", "downloadbars": false, "cache-mode": "sqlite", "appendlog": false, "custom_values": {"MAXFILE_SEMAPHORE":10,"SHOW_AVATAR":false, "import":"exec('import ofscraper.filters.models.selector as selector23')", "list":"exec('modelObjs=C)')", "model_price":"'fallback' if len(modelObjs)==0 else 'Paid' if modelObjs[0].final_current_price>0 else 'Free'" }, "sanitize_text": false, "avatar": true, "temp_dir": null }, "script_options": { "post_download_script": null, "post_script": null }, "responsetype": { "timeline": "Posts", "message": "Messages", "archived": "Archived", "paid": "Messages", "stories": "Stories", "highlights": "Stories", "profile": "Profile", "pinned": "Posts" } } } sun-brightdesktopmoon --- # Docker | OF-Scraper [hashtag](https://of-scraper.gitbook.io/of-scraper/installation/docker#volumes) Volumes -------------------------------------------------------------------------------------------- circle-exclamation **If manually downloading binaries, you'll need to mount the Linux-based binaries from your host system into the container. Refer to the 'Docker Compose' section for examples.** Mount Point Purpose Typical Default Location **APP\_HOME** The **home directory** for your application's user inside the container. This often serves as the base for other default paths. `/home/` (e.g., `/home/ofscraper`) **DATA\_DIR** Where the application stores its **persistent data files**, such as databases, downloaded content, or user-generated media. `$APP_HOME/data` (e.g., `/home/ofscraper/data`) **CONFIG\_DIR** Where the application stores its **configuration files** and settings. `$APP_HOME/.config` (e.g., `/home/ofscraper/.config`) ### [hashtag](https://of-scraper.gitbook.io/of-scraper/installation/docker#config_dir) CONFIG\_DIR The `CONFIG_DIR` is where OF-Scrapers configuration files will be stored. It will prioritizes any explicit setting by the user Scenario `CONFIG_DIR` Environment Variable `APP_HOME` Value (Example) `CONFIG_DIR` Final Path Explanation **1\. Explicitly Set** `CONFIG_DIR=/app/onfig/` `/home/ofscraper` `/app/config` If you explicitly provide the `CONFIG_DIR` environment variable, its value is used directly. This overrides any default behavior. **2\. Not Set / Empty** `CONFIG_DIR` is unset or `CONFIG_DIR=""` `/home/ofscraper` `/home/ofscraper/.config` If `CONFIG_DIR` is not provided (or provided as an empty string), it defaults to a hidden `.config` directory within the determined `APP_HOME`. or users `Home` ### [hashtag](https://of-scraper.gitbook.io/of-scraper/installation/docker#data_dir) DATA\_DIR The `DATA_DIR` is where your application will store its persistent data. Similar to `CONFIG_DIR`, it will respects user overrides. Scenario `DATA_DIR` Environment Variable `APP_HOME` Value (Example) `DATA_DIR` Final Path Explanation **1\. Explicitly Set** `DATA_DIR=/app/data` `/home/ofscraper` `/app/data` If you explicitly provide the `DATA_DIR` environment variable, its value is used directly, overriding any default. **2\. Not Set / Empty** `DATA_DIR` is unset or `DATA_DIR=""` `/home/ofscraper` `/home/ofscraper/data` If `DATA_DIR` is not provided (or provided as an empty string), it defaults to a `data` directory within the determined `APP_HOM` ### [hashtag](https://of-scraper.gitbook.io/of-scraper/installation/docker#home-folder) Home Folder triangle-exclamation **If you do** _**not**_ **explicitly set the** `**HOME_FOLDER**` **environment variable, the script's default behavior is to make the home directory name match the adapted** `**APP_USER**` **name. For instance, if** `**APP_USER**` **was initially** `**ofscraper**` **but gets adapted to an existing user like** `**nginx**` **(due to a UID conflict), the** `**APP_HOME**` **folder will dynamically change to** `**/home/nginx**`**. This keeps the user's name and home folder consistent within the container's** `**/etc/passwd**` **file.** Scenario `HOME_FOLDER` Environment Variable Status `APP_USER` Adaptation (e.g., from `ofscraper` to `nginx`) Resulting `APP_HOME` Directory Path in Container (`/etc/passwd`) Explanation **Default** **Not set** (or empty string) **Yes**, `APP_USER` changes `/home/nginx` (dynamically matches new `APP_USER`) When `HOME_FOLDER` isn't specified, the home directory name **automatically updates** to match the new `APP_USER` name if the user account has to adapt to an existing UID on the host. This keeps the user name and home folder consistent. **Not set** (or empty string) **No**, `APP_USER` remains `ofscraper` `/home/ofscraper` If no `HOME_FOLDER` is set and `APP_USER` doesn't need to change, the home directory defaults to `/home/ofscraper`. **Explicit** **Set** (e.g., `mydata`) **Yes**, `APP_USER` changes `/home/mydata` (remains as explicitly set) If you explicitly define `HOME_FOLDER`, the home directory path **stays fixed** at `/home/mydata`. It will not change, even if `APP_USER` adapts to a different name due to UID/GID conflicts. This provides a stable, predictable home path. **Set** (e.g., `mydata`) **No**, `APP_USER` remains `ofscraper` `/home/mydata` The explicitly set `HOME_FOLDER` always takes precedence, so the home directory will be `/home/mydata`. * * * [hashtag](https://of-scraper.gitbook.io/of-scraper/installation/docker#environment-variables) Environment Variables ------------------------------------------------------------------------------------------------------------------------ The container is managed by a entrypoint script that automatically creates a non-root user to run the application. You can control the user, group, paths, and script behavior using the environment variables below. ### [hashtag](https://of-scraper.gitbook.io/of-scraper/installation/docker#user-and-group-identity) User and Group Identity These variables control the identity of the user that runs the application inside the container. For the best experience with mounted volumes, it is **highly recommended** to set `UID` and `GID` to match your host system's user (e.g., `-e UID=$(id -u) -e GID=$(id -g)`). **Environment Variable** **Default Value (if not set)** **Purpose & Effect of Changing the Value** `UID` `1000` Sets the **numeric User ID (UID)** for the application user, which is critical for matching file ownership on mounted volumes. Setting `UID=$(id -u)` makes the container user have the _same UID as your host user_, ensuring files it creates are correctly owned by you on the host. if the UID already exists with a different username in the container, it will adapt and use that existing user. `GID` `1000` Sets the **numeric Group ID (GID)** for the application user's primary group, which works with `UID` to manage correct group ownership. Setting `GID=$(id -g)` ensures file permissions align with your host's primary group. Similar to `UID`, the script will adapt if this GID already belongs to an existing group. `USERNAME` `ofscraper` Defines the **name** of the user to be created or managed inside the container. If you set `USERNAME=youruser`, the script will attempt to create or modify a user named `youruser` with the specified `UID`. This name is mainly for logical identification. If the `UID` you provide is already taken by a different user, the script will use that existing user's name instead and print a log message. `GROUPNAME` The value of `USERNAME` Defines the **name** of the primary group for the application user. By default, the group name will match the username (e.g., `ofscraper`). You can set this explicitly if you have specific group naming conventions. Like `USERNAME`, this is secondary to `GID`. ### [hashtag](https://of-scraper.gitbook.io/of-scraper/installation/docker#path-and-directory-management) Path and Directory Management These variables allow you to control where the application stores its files. This is useful for mounting specific host directories. **Environment Variable** **Default Value (if not set)** **Purpose & Effect of Changing the Value** `HOME_FOLDER` The value of `USERNAME` Sets the **folder name** for the user's home directory inside the container's `/home/` directory. If you set `USERNAME=john` and leave this unset, the home directory will be `/home/john`. If you set `HOME_FOLDER=my_app`, the home directory becomes `/home/my_app`, regardless of the `USERNAME`. `DATA_DIR` `$APP_HOME/data` Overrides the path for the application's data directory. By default, data is stored in a `data` folder inside the user's home directory (e.g., `/home/ofscraper/data`). You can set this to any absolute path, such as `/data`, if you prefer to mount a volume directly to `/data`. `CONFIG_DIR` `$APP_HOME/.config` Overrides the path for the application's configuration directory. By default, configuration is stored in a hidden `.config` folder inside the user's home directory (e.g., `/home/ofscraper/.config`). You can set this to an absolute path like `/config` to mount a volume there instead. ### [hashtag](https://of-scraper.gitbook.io/of-scraper/installation/docker#script-behavior-flags) Script Behavior Flags These variables act as on/off switches to control specific actions within the entrypoint script. **Environment Variable** **Default Value (if not set)** **Purpose & Effect of Changing the Value** `KEEP_PERM` `false` Prevents the script from changing ownership of the home, data, and config directories. If you set `KEEP_PERM=true`, the script will **not** run `chown` on your mounted directories. This is useful for advanced setups like rootless Docker or when you are managing permissions manually on the host. `SKIP_FFMPEG` `false` Controls the installation of the `pyffmpeg` Python package. If you set `SKIP_FFMPEG=true`, the script will not attempt to install the `pyffmpeg` package. This can be used to speed up container startup if you do not need its functionality or if the installation is causing issues. * * * [hashtag](https://of-scraper.gitbook.io/of-scraper/installation/docker#docker-run) Docker Run -------------------------------------------------------------------------------------------------- This section provides the basic `docker run` commands to get OF-Scraper started. Remember to replace `/your/host/config/path/` with the actual path on your host machine where you want to store OF-Scraper's configuration, and `/your/host/data/path/` with where you want to store downloaded content. Replace `{args}` with your desired OF-Scraper commands (e.g., `ofscraper --username myonlyfans`) ### [hashtag](https://of-scraper.gitbook.io/of-scraper/installation/docker#minimal-docker-run-command) Minimal `docker run` Command This command uses the container's default user and group settings (`ofscraper` user with UID/GID `1000`). #### [hashtag](https://of-scraper.gitbook.io/of-scraper/installation/docker#using-optional-environment-variables) Using Optional Environment Variables To pass these optional variables, add them to your `docker run` command using the `-e` flag: Bash * * * [hashtag](https://of-scraper.gitbook.io/of-scraper/installation/docker#docker-compose) Docker Compose ---------------------------------------------------------------------------------------------------------- For more complex setups or for defining your service persistently, use Docker Compose. Remember to install `ffmpeg` and `mp4decrypt` on your local system if you choose to mount them from the host. * * * ### [hashtag](https://of-scraper.gitbook.io/of-scraper/installation/docker#interactive-use) Interactive Use If you've set up your `docker-compose.yml` for interactive use (by using `command: ["/bin/bash", "-c", "sleep infinity"]` or similar), you'll start the container in the background and then execute commands inside it. To run the scraper manually (after bringing the service up with `docker compose up -d` to start it in detached mode), use: Bash Replace `{args}` with your desired OF-Scraper commands, for example: `docker compose exec -it ofscraper ofscraper --username myuser --posts all`. * * * [hashtag](https://of-scraper.gitbook.io/of-scraper/installation/docker#building-custom-images) Building Custom Images -------------------------------------------------------------------------------------------------------------------------- circle-info **All officially released OF-Scraper Docker images already include** `**ffmpeg**` **built-in.** This section is **only relevant if you are building the OF-Scraper Docker image locally from source**, for instance, to include specific Python dependencies or to customize the build process. You can use `docker buildx` for this. ### [hashtag](https://of-scraper.gitbook.io/of-scraper/installation/docker#using-install_ffmpeg-build-argument) Using `INSTALL_FFMPEG` Build Argument The OF-Scraper `Dockerfile` includes an `ARG` (build argument) named `INSTALL_FFMPEG`. When set to `true` during a local build, this argument triggers the installation of the `pyffmpeg` Python package, which in turn includes and manages its own `ffmpeg` binary within the container. To build an image locally where `pyffmpeg` (and thus `ffmpeg`) is included, you would pass `INSTALL_FFMPEG=true` to your `docker buildx` command: circle-info **Benefit of built-in FFmpeg:** If your image was built with `INSTALL_FFMPEG=true` (or if you're using an official released image that already includes FFmpeg), the image is self-contained. This means you generally **do not need to install** `**ffmpeg**` **on your host system or mount it into your Docker container** * * * [hashtag](https://of-scraper.gitbook.io/of-scraper/installation/docker#releases) Releases ---------------------------------------------------------------------------------------------- [![Logo](https://of-scraper.gitbook.io/of-scraper/~gitbook/image?url=https%3A%2F%2Fhub.docker.com%2Ffavicon.ico&width=20&dpr=3&quality=100&sign=b678431&sv=2)datawhores/of-scraper - Docker Imagehub.docker.comchevron-right](https://hub.docker.com/r/datawhores/of-scraper) Images on Docker.com [![Logo](https://of-scraper.gitbook.io/of-scraper/~gitbook/image?url=https%3A%2F%2Fgithub.com%2Ffluidicon.png&width=20&dpr=3&quality=100&sign=dc891f14&sv=2)GitHubGitHubchevron-right](https://github.com/datawhores/OF-Scraper/pkgs/container/of-scraper/) Images on ghcr.io * * * [hashtag](https://of-scraper.gitbook.io/of-scraper/installation/docker#tags) Tags -------------------------------------------------------------------------------------- This table explains the different image tags you can use to pull specific versions or builds of the OF-Scraper Docker image. **Syntax** **Example** **What it is** `latest` `latest` Get the latest commit from any branch `stable` `stable` the latest stable release `dev` `dev` the latest development release `branch-commitshort` `main-9e54ed3` Container for a specific commit `branch` `main` Latest commits for a specific branch `version number` `2.4.3` Specific stable release [PreviousBinary Releaseschevron-left](https://of-scraper.gitbook.io/of-scraper/installation/binary-releases) [NextRelease Infochevron-right](https://of-scraper.gitbook.io/of-scraper/installation/release-info) Last updated 9 months ago * [Volumes](https://of-scraper.gitbook.io/of-scraper/installation/docker#volumes) * [CONFIG\_DIR](https://of-scraper.gitbook.io/of-scraper/installation/docker#config_dir) * [DATA\_DIR](https://of-scraper.gitbook.io/of-scraper/installation/docker#data_dir) * [Home Folder](https://of-scraper.gitbook.io/of-scraper/installation/docker#home-folder) * [Environment Variables](https://of-scraper.gitbook.io/of-scraper/installation/docker#environment-variables) * [User and Group Identity](https://of-scraper.gitbook.io/of-scraper/installation/docker#user-and-group-identity) * [Path and Directory Management](https://of-scraper.gitbook.io/of-scraper/installation/docker#path-and-directory-management) * [Script Behavior Flags](https://of-scraper.gitbook.io/of-scraper/installation/docker#script-behavior-flags) * [Docker Run](https://of-scraper.gitbook.io/of-scraper/installation/docker#docker-run) * [Minimal docker run Command](https://of-scraper.gitbook.io/of-scraper/installation/docker#minimal-docker-run-command) * [Docker Compose](https://of-scraper.gitbook.io/of-scraper/installation/docker#docker-compose) * [Interactive Use](https://of-scraper.gitbook.io/of-scraper/installation/docker#interactive-use) * [Building Custom Images](https://of-scraper.gitbook.io/of-scraper/installation/docker#building-custom-images) * [Using INSTALL\_FFMPEG Build Argument](https://of-scraper.gitbook.io/of-scraper/installation/docker#using-install_ffmpeg-build-argument) * [Releases](https://of-scraper.gitbook.io/of-scraper/installation/docker#releases) * [Tags](https://of-scraper.gitbook.io/of-scraper/installation/docker#tags) sun-brightdesktopmoon Copy docker run -it --rm --name=ofscraper \ -v /your/host/config/path/:/home/ofscraper/.config/ofscraper/ \ -v /your/host/data/path/:/home/ofscraper/data \ ghcr.io/datawhores/of-scraper:main ofscraper {args} Copy docker run -it --rm --name=ofscraper \ -v /your/host/config/path/:/home/ofscraper/.config/ofscraper/ \ -v /your/host/data/path/:/home/ofscraper/data \ -e USER_NAME=youruser \ -e USER_ID=$(id -u) \ -e GROUP_ID=$(id -g) \ -e GROUP_NAME=yourgroup \ # Optional: Only if you want a custom group name different from USER_NAME ghcr.io/datawhores/of-scraper:main ofscraper {args} Copy version: "3.8" # Recommended to use a recent version for new features services: of-scraper: stdin_open: true # Keeps STDIN open for interactive processes tty: true # Allocates a pseudo-TTY for a terminal-like interface container_name: ofscraper environment: # Optional environment variables # These are recommended for correct file permissions on mounted volumes. # Default UID/GID is 1000:1000 if not specified via environment variables in your shell. # - USER_NAME=ofscraper # Defaults to 'ofscraper' in the entrypoint script # - USER_ID=${USER_ID} # Host user's UID (e.g., set via 'export USER_ID=$(id -u)' on host) # - GROUP_ID=${GROUP_ID} # Host user's GID (e.g., set via 'export GROUP_ID=$(id -g)' on host) # - GROUP_NAME=mygroup # Optional: If you want a custom group name different from USER_NAME volumes: # Mount your configuration directory (replace ./config/ with your host path) - ./config/:/home/ofscraper/.config/ofscraper/ # Mount your data storage directory (replace ./data/ with your host path) - ./data/:/home/ofscraper/data/ # Optional: Mount pre-installed binaries from host (adjust paths as needed) # - /usr/bin/ffmpeg:/usr/bin/ffmpeg image: ghcr.io/datawhores/of-scraper:main # --- COMMAND OPTIONS --- # Choose one of the following 'command' configurations based on your use case. # Uncomment the desired option and ensure others are commented out. # Option 1: For interactive use (recommended if you frequently run commands manually) # This keeps the container running indefinitely in the background. command: ["/bin/bash", "-c", "sleep infinity"] # To bring the container up: `docker compose up -d` # Then, to run commands inside it: `docker compose exec -it ofscraper ofscraper {args}` # Example: `docker compose exec -it ofscraper ofscraper --username myuser` # Option 2: To run the scraper automatically with specific arguments when the container starts # Uncomment the line below and comment out Option 1 above. # command: "ofscraper --username ALL --posts all" # Optional: Configure restart policy. # restart: "unless-stopped" # Ensures the container restarts automatically unless explicitly stopped. Copy docker compose exec -it ofscraper ofscraper {args} Copy # Optional: Create a builder instance for multi-platform builds (recommended for cross-platform compatibility) # docker buildx create --name mybuilder --use # Navigate to the directory containing your Dockerfile (e.g., your cloned OF-Scraper repository) # cd /path/to/OF-Scraper/repository # Build the image, specifying the build-arg docker buildx build --platform linux/amd64,linux/arm64 \ --build-arg INSTALL_FFMPEG=true \ -t my-ofscraper-image:latest \ sun-brightdesktopmoon --- # Using Prompts | OF-Scraper Running the prompt menu allows you to to utilize the program while passing minimal arguments * * * [hashtag](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/using-prompts#getting-to-the-main-menu) Getting to the main menu ------------------------------------------------------------------------------------------------------------------------------------------ ![](https://of-scraper.gitbook.io/of-scraper/~gitbook/image?url=https%3A%2F%2F373772994-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FOlkVHnCqS3EnmDo4hGKm%252Fuploads%252FgKLqccN2p5MoThROTp1k%252Fimage.png%3Falt%3Dmedia%26token%3D4fe8c9eb-72fe-4e5c-be88-ef45cf66826f&width=768&dpr=3&quality=100&sign=7e6aa5b0&sv=2) The simplest method is to execute this command Basically, any command lacking the --action command will automatically go to this menu * * * circle-info **Some options may open a new menu with a Go to main menu options** ![](https://of-scraper.gitbook.io/of-scraper/~gitbook/image?url=https%3A%2F%2F373772994-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FOlkVHnCqS3EnmDo4hGKm%252Fuploads%252F62y5N4rgBHHjsOxbczlJ%252Fimage.png%3Falt%3Dmedia%26token%3D78e37658-4f3f-4875-98e4-4fd1cb12cdc2&width=768&dpr=3&quality=100&sign=5016d767&sv=2) * * * [hashtag](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/using-prompts#action-menu) Action Menu ---------------------------------------------------------------------------------------------------------------- circle-info **New in 3.7 all possible scraping combinations can be done via this menu** use this menu to perform scraping actions or combination ![](https://of-scraper.gitbook.io/of-scraper/~gitbook/image?url=https%3A%2F%2F373772994-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FOlkVHnCqS3EnmDo4hGKm%252Fuploads%252FDGJkG9QwncjmBfcZet9r%252Fimage.png%3Falt%3Dmedia%26token%3D3686218f-53eb-4551-bfed-19da6a6965ed&width=768&dpr=3&quality=100&sign=747680af&sv=2) * * * [hashtag](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/using-prompts#profile-menu) Profile Menu ------------------------------------------------------------------------------------------------------------------ ![](https://of-scraper.gitbook.io/of-scraper/~gitbook/image?url=https%3A%2F%2F373772994-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FOlkVHnCqS3EnmDo4hGKm%252Fuploads%252FnwW2Endo4sngQPdqZk3J%252Fimage.png%3Falt%3Dmedia%26token%3D970503e5-4934-4bb4-8866-f57b74300a74&width=768&dpr=3&quality=100&sign=f665b24&sv=2) Use this option to * add profiles * change the default profile * rename a profile * delete profile Each profile corresponds to a single account. So, if you aim to have multiple accounts, you'll require multiple profiles * * * [hashtag](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/using-prompts#edit-config.json) Edit config.json -------------------------------------------------------------------------------------------------------------------------- ![](https://of-scraper.gitbook.io/of-scraper/~gitbook/image?url=https%3A%2F%2F373772994-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FOlkVHnCqS3EnmDo4hGKm%252Fuploads%252FSrg2ETXivqjiXXhhZJvp%252Fimage.png%3Falt%3Dmedia%26token%3D122feda4-6cd2-41a1-86dc-6d90728f985d&width=768&dpr=3&quality=100&sign=e6860d86&sv=2) ![](https://of-scraper.gitbook.io/of-scraper/~gitbook/image?url=https%3A%2F%2F373772994-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FOlkVHnCqS3EnmDo4hGKm%252Fuploads%252Ft5pzgUmv7iOl7a1lRlQf%252Fimage.png%3Falt%3Dmedia%26token%3D7faf3723-a5ab-4dc9-86b5-37629a67c774&width=768&dpr=3&quality=100&sign=262e20e6&sv=2) To bypass the hassle of finding the config file's location, utilize this to modify settings directly from within the script. Your prior choices will be available, allowing you the chance to edit them conveniently. * * * [hashtag](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/using-prompts#edit-auth.json) Edit auth.json ---------------------------------------------------------------------------------------------------------------------- circle-info **if the authentication fails, the authentication menu will pop up, prompting you to enter new settings** ![](https://of-scraper.gitbook.io/of-scraper/~gitbook/image?url=https%3A%2F%2F373772994-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FOlkVHnCqS3EnmDo4hGKm%252Fuploads%252Fu71YzNVojJEm09cTofjV%252Fimage.png%3Falt%3Dmedia%26token%3D1cc2bc42-a97a-43d7-bffb-6d71d621bc3d&width=768&dpr=3&quality=100&sign=9f56ecb1&sv=2) Typically this is not a setting that needs to be access manually However, you have the option to directly modify the authentication JSON using this method. [PreviousUsing the Scraperchevron-left](https://of-scraper.gitbook.io/of-scraper/using-the-scraper) [NextOld Menuchevron-right](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/using-prompts/old-menu) Last updated 1 year ago * [Getting to the main menu](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/using-prompts#getting-to-the-main-menu) * [Action Menu](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/using-prompts#action-menu) * [Profile Menu](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/using-prompts#profile-menu) * [Edit config.json](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/using-prompts#edit-config.json) * [Edit auth.json](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/using-prompts#edit-auth.json) sun-brightdesktopmoon Copy ofscraper sun-brightdesktopmoon --- # Binaries Options | OF-Scraper [hashtag](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/binaries-options#ffmpeg) ffmpeg ------------------------------------------------------------------------------------------------------------------------------ This is necessary to combine audio and video parts of files utilized with mp4decrypt, resulting in the final output file ### [hashtag](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/binaries-options#download-sources) Download Sources [![Logo](https://of-scraper.gitbook.io/of-scraper/~gitbook/image?url=https%3A%2F%2Fgithub.com%2Ffluidicon.png&width=20&dpr=3&quality=100&sign=dc891f14&sv=2)Releases · BtbN/FFmpeg-BuildsGitHubchevron-right](https://github.com/BtbN/FFmpeg-Builds/releases) [![Logo](https://of-scraper.gitbook.io/of-scraper/~gitbook/image?url=https%3A%2F%2Fffmpeg.org%2Ffavicon.ico&width=20&dpr=3&quality=100&sign=c1e877ce&sv=2)Download FFmpegffmpeg.orgchevron-right](https://ffmpeg.org/download.html) ### [hashtag](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/binaries-options#releases) Releases #### [hashtag](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/binaries-options#windows) **Windows** [https://github.com/BtbN/FFmpeg-Builds/releases/download/latest/ffmpeg-master-latest-linux64-gpl-shared.tar.xzgithub.comchevron-right](https://github.com/BtbN/FFmpeg-Builds/releases/download/latest/ffmpeg-master-latest-linux64-gpl-shared.tar.xz) #### [hashtag](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/binaries-options#linux) **Linux** [https://github.com/BtbN/FFmpeg-Builds/releases/download/latest/ffmpeg-master-latest-linux64-gpl-shared.tar.xzgithub.comchevron-right](https://github.com/BtbN/FFmpeg-Builds/releases/download/latest/ffmpeg-master-latest-linux64-gpl-shared.tar.xz) #### [hashtag](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/binaries-options#mac) Mac circle-info **recommend latest snapshot** [https://evermeet.cx/ffmpeg/get/zipevermeet.cxchevron-right](https://evermeet.cx/ffmpeg/get/zip) [PreviousAdvanced Download Optionschevron-left](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/download-options/advanced-download-options) [NextCDM Optionschevron-right](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/key-option) Last updated 1 year ago * [ffmpeg](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/binaries-options#ffmpeg) * [Download Sources](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/binaries-options#download-sources) * [Releases](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/binaries-options#releases) sun-brightdesktopmoon sun-brightdesktopmoon --- # Auth | OF-Scraper * * * [hashtag](https://of-scraper.gitbook.io/of-scraper/getting-started/auth#undefined) -------------------------------------------------------------------------------------- circle-info **The best way to solve authentication issues is to join the discord, as this will allow you to confirm if may be a wide spread issue** [hashtag](https://of-scraper.gitbook.io/of-scraper/getting-started/auth#example) Example --------------------------------------------------------------------------------------------- circle-info **values are randomized, but should be somewhat similar in style to the example** An example of what an auth file should typically look like Copy { "auth": { "user_agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-bc": "fncx03r1ygvh26ezq4pe830l49xtj1a146e1x2av", "auth_id": "400000", "sess": "5pb18tyng144dqyzevbgfddnrz", "auth_uid_": "400000" } } * * * [hashtag](https://of-scraper.gitbook.io/of-scraper/getting-started/auth#auto-methods) Auto methods ------------------------------------------------------------------------------------------------------- You have various options for fetching authentication info. If possible, I'd suggest going for the cookie helper option—it demands the least effort once it's set up. ### [hashtag](https://of-scraper.gitbook.io/of-scraper/getting-started/auth#m-rcus-cookie-helper) M-rcus Cookie Helper Please follow the instructions provided here to install it in your browser [![Logo](https://of-scraper.gitbook.io/of-scraper/~gitbook/image?url=https%3A%2F%2Fgithub.com%2Ffluidicon.png&width=20&dpr=3&quality=100&sign=dc891f14&sv=2)GitHub - M-rcus/OnlyFans-Cookie-Helper: An extension made to make it easier to copy the correct \`auth.json\` values when using https://github.com/datawhores/OF-ScraperGitHubchevron-right](https://github.com/M-rcus/OnlyFans-Cookie-Helper) ![](https://of-scraper.gitbook.io/of-scraper/~gitbook/image?url=https%3A%2F%2Fuser-images.githubusercontent.com%2F67020411%2F230731183-26a43e62-4385-4fd9-aee8-f75a7c2d33cb.png&width=768&dpr=3&quality=100&sign=fdbdd79d&sv=2) image With the helper, all you need to do is copy and paste the output from the program. ### [hashtag](https://of-scraper.gitbook.io/of-scraper/getting-started/auth#browser-extraction) Browser Extraction This method is probably the second simplest. However, not all information can be automatically extracted. You'll still need to manually locate and provide the x-bc header and the User-Agent as demonstrated below. ![](https://of-scraper.gitbook.io/of-scraper/~gitbook/image?url=https%3A%2F%2Fraw.githubusercontent.com%2Ftaux1c%2Fonlyfans-scraper%2Fmain%2Fmedia%2Frequest_headers.png&width=768&dpr=3&quality=100&sign=95ff5763&sv=2) For more details, check out the manual section below. You won't need to worry about extracting any cookie information with this choice * * * [hashtag](https://of-scraper.gitbook.io/of-scraper/getting-started/auth#manual-methods) Manual methods ----------------------------------------------------------------------------------------------------------- circle-info **You can also manually edit auth information in script** With this option, you'll need to manually input all the required information It's not too terrible. I'll walk you through how to get this info in the next parts. #### [hashtag](https://of-scraper.gitbook.io/of-scraper/getting-started/auth#step-one-creating-the-auth.json-file) Step One: Creating the 'auth.json' File You first need to run the program in order for the `auth.json` file to be created. To run it, simply type `ofscraper` in your terminal and hit enter. Because you don't have an `auth.json` file, the program will create one for you and then ask you to enter some information. Now we need to get that information. #### [hashtag](https://of-scraper.gitbook.io/of-scraper/getting-started/auth#step-two-getting-your-auth-info) Step Two: Getting Your Auth Info _**If you've already used DIGITALCRIMINAL's OnlyFans script, you can simply copy and paste the auth information from there to here.**_ Go to your [notification areaarrow-up-right](https://onlyfans.com/my/notifications) on OnlyFans. Once you're there, open your browser's developer tools. If you don't know how to do that, consult the following chart: Operating System Keys macOS cmd + opt + I Windows ctrl+shift+I Linux ctrl+shift+I ### [hashtag](https://of-scraper.gitbook.io/of-scraper/getting-started/auth#id-1.-getting-a-valid-requests) **1\. Getting a valid requests** Once you have your browser's developer tools open, your screen should look like the following: ![](https://of-scraper.gitbook.io/of-scraper/~gitbook/image?url=https%3A%2F%2Fraw.githubusercontent.com%2Ftaux1c%2Fonlyfans-scraper%2Fmain%2Fmedia%2Fbrowser_tools_open.png&width=768&dpr=3&quality=100&sign=5f179e6a&sv=2) Click on the `Network` tab at the top of the browser tools: ![](https://of-scraper.gitbook.io/of-scraper/~gitbook/image?url=https%3A%2F%2Fraw.githubusercontent.com%2Ftaux1c%2Fonlyfans-scraper%2Fmain%2Fmedia%2Fnetwork_tab.png&width=768&dpr=3&quality=100&sign=1d3d1ed&sv=2) Then click on `XHR` sub-tab inside of the `Network` tab: ![](https://of-scraper.gitbook.io/of-scraper/~gitbook/image?url=https%3A%2F%2Fraw.githubusercontent.com%2Ftaux1c%2Fonlyfans-scraper%2Fmain%2Fmedia%2Fxhr_tab.png&width=768&dpr=3&quality=100&sign=9b84b8d5&sv=2) Once you're inside of the `XHR` sub-tab, refresh the page while you have your browser's developer tools open. After the page reloads, you should see a section titled `init` appear: ![](https://of-scraper.gitbook.io/of-scraper/~gitbook/image?url=https%3A%2F%2Fraw.githubusercontent.com%2Ftaux1c%2Fonlyfans-scraper%2Fmain%2Fmedia%2Finit.png&width=768&dpr=3&quality=100&sign=b741185b&sv=2) When you click on `init`, you should see a large sidebar appear. Make sure you're in the `Headers` section: ![](https://of-scraper.gitbook.io/of-scraper/~gitbook/image?url=https%3A%2F%2Fraw.githubusercontent.com%2Ftaux1c%2Fonlyfans-scraper%2Fmain%2Fmedia%2Fheaders.png&width=768&dpr=3&quality=100&sign=7a69fdd5&sv=2) Skip to step 2 if you have found init successfully otherwise read the next section * * * circle-info **If init does not appear use any entry with the domain onlyfans.com** #### [hashtag](https://of-scraper.gitbook.io/of-scraper/getting-started/auth#examples) **Examples** ![](https://of-scraper.gitbook.io/of-scraper/~gitbook/image?url=https%3A%2F%2F373772994-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FOlkVHnCqS3EnmDo4hGKm%252Fuploads%252FpHssUteJNS5PX5pQlXcg%252Fimage.png%3Falt%3Dmedia%26token%3Dc0b75566-b88e-4efd-b3c7-1d21c7392051&width=768&dpr=3&quality=100&sign=323de7e1&sv=2) onlyfans.com You may need to right click the header field to enable the domain column ![](https://of-scraper.gitbook.io/of-scraper/~gitbook/image?url=https%3A%2F%2F373772994-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FOlkVHnCqS3EnmDo4hGKm%252Fuploads%252F174ncW0jWrwYI9SeLEvR%252Fimage.png%3Falt%3Dmedia%26token%3D8ea78084-c444-451b-87e8-e3fdf69f420f&width=768&dpr=3&quality=100&sign=24ecffad&sv=2) * * * ### [hashtag](https://of-scraper.gitbook.io/of-scraper/getting-started/auth#id-2.-getting-data-from-requests) 2\. Getting data from requests ![](https://of-scraper.gitbook.io/of-scraper/~gitbook/image?url=https%3A%2F%2Fraw.githubusercontent.com%2Ftaux1c%2Fonlyfans-scraper%2Fmain%2Fmedia%2Finit.png&width=768&dpr=3&quality=100&sign=b741185b&sv=2) After that, scroll down until you see a subsection called `Request Headers`. You should then see three important fields inside of the `Request Headers` subsection: `Cookie`, `User-Agent`, and `x-bc` ![](https://of-scraper.gitbook.io/of-scraper/~gitbook/image?url=https%3A%2F%2Fraw.githubusercontent.com%2Ftaux1c%2Fonlyfans-scraper%2Fmain%2Fmedia%2Frequest_headers.png&width=768&dpr=3&quality=100&sign=95ff5763&sv=2) Inside of the `Cookie` field, you will see a couple of important bits: * `sess=` * `auth_id=` * `auth_uid_=` _Your_ `auth_uid_` _will only appear_ _**if you have 2FA (two-factor authentication) enabled**__. Also, keep in mind that your_ `auth_uid_` _will have numbers after the final underscore and before the equal sign (that's your auth\_id)._ You need everything _**after**_ the equal sign and everything _**before**_ the semi-colon for all of those bits. Once you've copied the value for your `sess` cookie, go back to the program, paste it in, and hit enter. Now go back to your browser, copy the `auth_id` value, and paste it into the program and hit enter. Then go back to your browser, copy the `auth_uid_` value, and paste it into the program and hit enter (**leave this blank if you don't use 2FA!!!**). Once you do that, the program will ask for your user agent. You should be able to find your user agent in a field called `User-Agent` below the `Cookie` field. Copy it and paste it into the program and hit enter. After it asks for your user agent, it will ask for your `x-bc` token. You should also be able to find this in the `Request Headers` section. You're all set and you can now use `ofscraper`. [PreviousAdvanced config optionschevron-left](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/advanced-config-options) [NextControlling Output/Logschevron-right](https://of-scraper.gitbook.io/of-scraper/getting-started/controlling-output) Last updated 1 year ago * [](https://of-scraper.gitbook.io/of-scraper/getting-started/auth#undefined) * [Example](https://of-scraper.gitbook.io/of-scraper/getting-started/auth#example) * [Auto methods](https://of-scraper.gitbook.io/of-scraper/getting-started/auth#auto-methods) * [M-rcus Cookie Helper](https://of-scraper.gitbook.io/of-scraper/getting-started/auth#m-rcus-cookie-helper) * [Browser Extraction](https://of-scraper.gitbook.io/of-scraper/getting-started/auth#browser-extraction) * [Manual methods](https://of-scraper.gitbook.io/of-scraper/getting-started/auth#manual-methods) * [1\. Getting a valid requests](https://of-scraper.gitbook.io/of-scraper/getting-started/auth#id-1.-getting-a-valid-requests) * [2\. Getting data from requests](https://of-scraper.gitbook.io/of-scraper/getting-started/auth#id-2.-getting-data-from-requests) sun-brightdesktopmoon Copy { "auth": { "sess": "", "auth_id": "", "auth_uniq_": "", "user_agent": "", "x-bc": "" } } sun-brightdesktopmoon --- # General Options | OF-Scraper * * * [hashtag](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/general-options#main_profile) main\_profile ------------------------------------------------------------------------------------------------------------------------------------------ circle-info **all profiles will share the same configuration, unless overridden with --config** circle-info **If you want to use multiple profiles** **use --profile** * In most cases, there's no need to modify this setup. Profiles are organized into directories within the config location, with the value being derived from the profile name. * Each directory can correspond to a distinct authentication file * * * [hashtag](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/general-options#discord) discord ------------------------------------------------------------------------------------------------------------------------------- Copy To send updates to Discord using webhooks, follow the setup guide at https://support.discord.com/hc/en-us/articles/228383668-Intro-to-Webhooks. You'll need to add the URL provided in the setup and include the --discord argument when executing the script [PreviousOptionschevron-left](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options) [NextFile Output Optionschevron-right](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/file-output-options) Last updated 9 months ago * [main\_profile](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/general-options#main_profile) * [discord](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/general-options#discord) sun-brightdesktopmoon sun-brightdesktopmoon --- # CDM Options | OF-Scraper [hashtag](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/key-option#key-mode-default) key-mode-default -------------------------------------------------------------------------------------------------------------------------------------------- The default Content Decryption Module (CDM) used for decrypting content. Certain CDMs might need additional configuration. [CDM Setupchevron-right](https://of-scraper.gitbook.io/of-scraper/cdm-options) The following command can overwrite this setting Copy --key-mode * * * [hashtag](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/key-option#private-key) private-key ---------------------------------------------------------------------------------------------------------------------------------- Utilized for manual cdm [hashtag](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/key-option#client-id) client-id ------------------------------------------------------------------------------------------------------------------------------ Utilized for manual cdm [PreviousBinaries Optionschevron-left](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/binaries-options) [NextPerformance Optionschevron-right](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/performance-options) Last updated 9 months ago * [key-mode-default](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/key-option#key-mode-default) * [private-key](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/key-option#private-key) * [client-id](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/key-option#client-id) sun-brightdesktopmoon sun-brightdesktopmoon --- # Options | OF-Scraper [General Optionschevron-right](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/general-options) [File Output Optionschevron-right](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/file-output-options) [Download Optionschevron-right](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/download-options) [Binaries Optionschevron-right](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/binaries-options) [CDM Optionschevron-right](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/key-option) [Performance Optionschevron-right](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/performance-options) [Script Optionschevron-right](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/script-options) [Advanced config optionschevron-right](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/advanced-config-options) [PreviousSetting metadata pathchevron-left](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/setting-metadata-path) [NextGeneral Optionschevron-right](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/general-options) sun-brightdesktopmoon sun-brightdesktopmoon --- # Download Options | OF-Scraper [hashtag](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/download-options#undefined) ------------------------------------------------------------------------------------------------------------------------- [Download Toggleschevron-right](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/download-options/download-toggles) [Advanced Download Optionschevron-right](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/download-options/advanced-download-options) [Media Filtering Optionschevron-right](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/download-options/media-filtering-options) [PreviousResponsetype Placeholderschevron-left](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/file-output-options/remapping-responsetype) [NextDownload Toggleschevron-right](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/download-options/download-toggles) Last updated 1 year ago sun-brightdesktopmoon sun-brightdesktopmoon --- # Advanced Customization | OF-Scraper Environment variables are a way for advanced users to have more control over certain aspects of the program **Default Values:** All environment variables keys are listed in the `ofscraper/utils/of_env/values` folder. This folder contains separate folders/files for different types of value #### [hashtag](https://of-scraper.gitbook.io/of-scraper/getting-started/advanced-customization#configuration-precedence) Configuration Precedence When determining the final value for any configuration setting, the program follows a specific order of precedence. Items higher on this list will **override** items lower on the list: * * * 1. Explicit `.env` File (`--env-file` option): Values loaded from the `.env` file(s) specified by the `--env-file` option. If this option is provided multiple times on the command line (e.g., `cli --env-file a.env --env-file b.env`), all specified files are loaded in the order they are declared in the command. Values from files loaded later will take precedence over those from files loaded earlier. These values also override any conflicting values from earlier source. 2. Automatic `.env` File (via `load_dotenv`): Values loaded from a default `.env` file. This is typically initiated by a function call within the application's source code (e.g., `load_dotenv()`). The function searches for the file starting in the current working directory, then moves up through parent directories until it is found. 3. System Environment Variables: Values already set in your operating system's environment (e.g., via `export VAR=VALUE` on Linux/macOS, or `set VAR=VALUE` on Windows Command Prompt). These are present before any `.env` files are loaded. 4. Hardcoded Defaults: Default values defined directly within the program's source code. These are used only if a setting is not found via any of the above methods. [PreviousMigrating from Digitalcriminal's scriptchevron-left](https://of-scraper.gitbook.io/of-scraper/getting-started/migrating-from-digitalcriminals-script) [NextUsing the Scraperchevron-right](https://of-scraper.gitbook.io/of-scraper/using-the-scraper) Last updated 9 months ago sun-brightdesktopmoon sun-brightdesktopmoon --- # Metadata | OF-Scraper Metadata is automatically created when you download data. The tables and their structure are determined by the API you're using and the version of the script you're running [PreviousScraping Individual Posts or Mediachevron-left](https://of-scraper.gitbook.io/of-scraper/scraping-individual-posts-or-media) [NextSchemachevron-right](https://of-scraper.gitbook.io/of-scraper/page/schema) Last updated 1 year ago sun-brightdesktopmoon sun-brightdesktopmoon --- # Media Filtering Options | OF-Scraper [hashtag](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/download-options/media-filtering-options#filter) filter ------------------------------------------------------------------------------------------------------------------------------------------------------ Determines the type of content you wish to download. Copy Options are Images,Audios,Videos case insensitive [hashtag](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/download-options/media-filtering-options#file_size_limit) file\_size\_limit -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Controls the maximum allowable file size for downloads * ignored if 0 or None * provided value should be in bytes or human readable string like '10MB' [hashtag](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/download-options/media-filtering-options#file_size_min) file\_size\_min ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- Controls the minimum allowable file size for downloads * ignored if 0 or None * provided value should be in bytes or human readable string like '10MB' [hashtag](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/download-options/media-filtering-options#length_max) length\_max --------------------------------------------------------------------------------------------------------------------------------------------------------------- Limits processed items to media as long or longer then the given length in seconds * ignored if 0 * only used to filter videos [hashtag](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/download-options/media-filtering-options#length_min) length\_min --------------------------------------------------------------------------------------------------------------------------------------------------------------- Limits processed items to media as short or shorter then the given length in seconds * ignored if 0 * only used to filter videos [hashtag](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/download-options/media-filtering-options#block_ads) block\_ads ------------------------------------------------------------------------------------------------------------------------------------------------------------- remove posts with based on built in AD regex [hashtag](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/download-options/media-filtering-options#max_post_count) max\_post\_count ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ The maximum number of items to process [PreviousDownload Toggleschevron-left](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/download-options/download-toggles) [NextAdvanced Download Optionschevron-right](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/download-options/advanced-download-options) Last updated 9 months ago * [filter](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/download-options/media-filtering-options#filter) * [file\_size\_limit](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/download-options/media-filtering-options#file_size_limit) * [file\_size\_min](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/download-options/media-filtering-options#file_size_min) * [length\_max](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/download-options/media-filtering-options#length_max) * [length\_min](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/download-options/media-filtering-options#length_min) * [block\_ads](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/download-options/media-filtering-options#block_ads) * [max\_post\_count](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/download-options/media-filtering-options#max_post_count) sun-brightdesktopmoon Copy r"(#(?:ad|ads|AD|advertising|sponsored|promotion)|trial|discount|exclusive\s+offer|giveaway|limited\s+time|\Buser\s+promo|shoutout|endorsement)" sun-brightdesktopmoon --- # Username selection or Fuzzy Search | OF-Scraper circle-info **Fuzzy search is built to mimic fzf** OF-Scraper applies a fuzzy search technique to simplify managing selected models. This approximate search aims to find strong matches for the string you input. However, the challenge lies in determining which models are being selected. * * * [hashtag](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/username-selection-or-fuzzy-search#selecting-a-model) Selecting a model ------------------------------------------------------------------------------------------------------------------------------------------------- For all models Copy Ctrl+R For a single model you can hit Copy END | HOME | PAGEUP | PAGEDOWN For all Models Copy Ctrl+A * * * [hashtag](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/username-selection-or-fuzzy-search#getting-model-detail) Getting Model Detail ------------------------------------------------------------------------------------------------------------------------------------------------------- only a limited amount of data can be shown be shown at a time As the prompt menu does not work well when the data goes past a single To view all details for a model * * * [hashtag](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/username-selection-or-fuzzy-search#sorting-filtering-list) Sorting/Filtering List ----------------------------------------------------------------------------------------------------------------------------------------------------------- You'll be able to adjust the filters which controls the appearance of models on the list and how they're sorted * * * [hashtag](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/username-selection-or-fuzzy-search#searching-the-list) Searching the list --------------------------------------------------------------------------------------------------------------------------------------------------- It's as simple as typing, for instance, 'example.' The outcome is based on your account and the filters you've implemented. ![](https://of-scraper.gitbook.io/of-scraper/~gitbook/image?url=https%3A%2F%2Fuser-images.githubusercontent.com%2F67020411%2F230736225-1b24a4b3-d56f-4297-88bd-63e2d4815990.png&width=768&dpr=3&quality=100&sign=41273d86&sv=2) image Entering '1' here filters out all other non-matching options, displaying only '1'. ![](https://of-scraper.gitbook.io/of-scraper/~gitbook/image?url=https%3A%2F%2Fuser-images.githubusercontent.com%2F67020411%2F230736203-c7e433f9-30a9-4c35-8615-8046b3d7d001.png&width=768&dpr=3&quality=100&sign=e434edcf&sv=2) image ### [hashtag](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/username-selection-or-fuzzy-search#how-does-searching-effect-my-currently-select-models) How does searching effect my currently select models? It doesn't it only effects which models appear in the list for example ![](https://of-scraper.gitbook.io/of-scraper/~gitbook/image?url=https%3A%2F%2Fuser-images.githubusercontent.com%2F67020411%2F230736111-3581cc77-bca0-491f-b86c-fdd3bd1d6551.png&width=768&dpr=3&quality=100&sign=af0c7175&sv=2) image ![](https://of-scraper.gitbook.io/of-scraper/~gitbook/image?url=https%3A%2F%2Fuser-images.githubusercontent.com%2F67020411%2F230736159-bdc9f4ec-87d7-48ac-9099-81743b52c785.png&width=768&dpr=3&quality=100&sign=660b0108&sv=2) image In the second image, although my previously chosen options aren't visible, they're still selected, As shown by the number in parentheses, denoting the count of selected options (3). * * * [hashtag](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/username-selection-or-fuzzy-search#unselecting) Unselecting ------------------------------------------------------------------------------------------------------------------------------------- To remove a model, either change the filter to an empty string or input a filter that displays the specific model you wish to remove. You can use the previously mentioned keys to toggle between selecting and unselecting models. * * * [hashtag](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/username-selection-or-fuzzy-search#more-controls) More Controls ----------------------------------------------------------------------------------------------------------------------------------------- These controls may change, and there may be additional keys not shown here Use one of the keys below during the model selection for up to date keys [PreviousPage 2chevron-left](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/using-prompts/page-2) [NextBasic Automation with command-linechevron-right](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions) Last updated 1 year ago * [Selecting a model](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/username-selection-or-fuzzy-search#selecting-a-model) * [Getting Model Detail](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/username-selection-or-fuzzy-search#getting-model-detail) * [Sorting/Filtering List](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/username-selection-or-fuzzy-search#sorting-filtering-list) * [Searching the list](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/username-selection-or-fuzzy-search#searching-the-list) * [How does searching effect my currently select models?](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/username-selection-or-fuzzy-search#how-does-searching-effect-my-currently-select-models) * [Unselecting](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/username-selection-or-fuzzy-search#unselecting) * [More Controls](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/username-selection-or-fuzzy-search#more-controls) sun-brightdesktopmoon Copy Alt+D Copy Alt+X or Ctrl+B Copy ALT+V | CTRL+V sun-brightdesktopmoon --- # CDM issues | OF-Scraper [hashtag](https://of-scraper.gitbook.io/of-scraper/cdm-options/cdm-issues#protobuff-issue) protobuff issue --------------------------------------------------------------------------------------------------------------- Copy TypeError: Descriptors cannot not be created directly. If this call came from a _pb2.py file, your generated code is out of date and must be regenerated with protoc >= 3.19.0. If you cannot immediately regenerate your protos, some other possible workarounds are: 1. Downgrade the protobuf package to 3.20.x or lower. 2. Set PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python (but this will use pure-Python parsing and will be much slower). [https://forum.videohelp.com/threads/408031-Dumping-Your-own-L3-CDM-with-Android-Studio/page9#post2697726arrow-up-right](https://forum.videohelp.com/threads/408031-Dumping-Your-own-L3-CDM-with-Android-Studio/page9#post2697726) [PreviousCDM Setupchevron-left](https://of-scraper.gitbook.io/of-scraper/cdm-options) [NextFAQ/Common Issueschevron-right](https://of-scraper.gitbook.io/of-scraper/faq) Last updated 2 years ago sun-brightdesktopmoon sun-brightdesktopmoon --- # Placeholders | OF-Scraper circle-exclamation **If you want to recheck files --metadata-update after updating the config** chevron-rightWindows path warning[hashtag](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/file-output-options/customizing-save-path#windows-path-warning) `**\ should be escaped or replaced with a \\ or /**` `**Not doing this could lead to an error**` `**Examples:**` Copy C:\Users\John.config\ofscraper\bin\ffmpeg.exe => Copy C:\Users\John.config\ofscraper\bin\ffmpeg.exe => C:/Users/John.config/ofscraper/bin/ffmpeg.exe [hashtag](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/file-output-options/customizing-save-path#example-of-generated-filenames) Example of generated filenames ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- The placeholders described below will substitute the {} values [Example Configschevron-right](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/example-configs) Copy "file_options": { "save_location": "/home/james/Data/ofscraper", "dir_format": "/{model_username}/{responsetype}/{mediatype}/", "file_format": "{filename}.{ext}", "textlength": 0, "space-replacer": " ", "date": "MM-DD-YYYY", "text_type_default": "letter", "truncation_default": true }, The generated filename based on the example config would be * * * circle-info **Placeholders are generally the same between options here** [hashtag](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/file-output-options/customizing-save-path#dir_path-and-filename) dir\_path and filename -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- circle-info **You may use placeholders without any underscores (\_)** ### [hashtag](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/file-output-options/customizing-save-path#dir_path) dir\_path The relative directory path within the save location where files are stored circle-info **No unique placeholders** ### [hashtag](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/file-output-options/customizing-save-path#filename) filename The file's name segment in the saved file circle-info **When configuring filenames, ensure a unique element such as text, media ID, post ID, or filename is added to avoid naming conflict** * * * [hashtag](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/file-output-options/customizing-save-path#text-placeholders) Text Placeholders ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- circle-info **Text mediatype will most likely need a overwrite to work properly** Text files are based on posts and have access to all the same placeholders as other media **except** Some placeholders will be changed [Downloading Text Fileschevron-right](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/basic-actions/selecting-posts/downloading-text-files) * * * [hashtag](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/file-output-options/customizing-save-path#metadata) metadata ----------------------------------------------------------------------------------------------------------------------------------------------------------- Controls where metadata is save [Setting metadata pathchevron-right](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/setting-metadata-path) * * * [hashtag](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/file-output-options/customizing-save-path#response_type-placeholder) response\_type placeholder ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- [Responsetype Placeholderschevron-right](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/file-output-options/remapping-responsetype) [PreviousFile Output Optionschevron-left](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/file-output-options) [NextResponsetype Placeholderschevron-right](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/file-output-options/remapping-responsetype) Last updated 9 months ago * [Example of generated filenames](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/file-output-options/customizing-save-path#example-of-generated-filenames) * [dir\_path and filename](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/file-output-options/customizing-save-path#dir_path-and-filename) * [dir\_path](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/file-output-options/customizing-save-path#dir_path) * [filename](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/file-output-options/customizing-save-path#filename) * [Text Placeholders](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/file-output-options/customizing-save-path#text-placeholders) * [metadata](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/file-output-options/customizing-save-path#metadata) * [response\_type placeholder](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/file-output-options/customizing-save-path#response_type-placeholder) sun-brightdesktopmoon Copy /home/James/Data/ofscraper/{model_username}/{responsetype}/ {mediatype}/{filename}.{ext} Copy {response_type}=Posts,Messages,Paid,etc {post_id}= ID of post {media_id} =ID of media {file_name} = the filename, videos wills include the quality i.e source,720 {only_file_name}= the filename,videos will not include quality {original_filename}= filename as sent by onlyfans, may or may not include source {media_type}=Images,Audios,Videos {quality} = quality of the media, none videos will always be source {value}=The content's value: Whether it's categorized as Paid or Free. {model_id}= Unique identification number for model {first_letter}= first letter of model's username {site_name} = Onlyfans {text} = The text within the media. Truncation of file names has been tested to fit within OS limits, still it's advisable to establish a text length limit. {date}= The date of the post, outputed in the config date format {model_username} = The model's username {username} = The model's username {profile} = The currently active profile {my_username}=The authorized account's username {my_id} = The identification number for the authorized account {label} = The label assigned to the post, if available {download_type}= Indication of whether it's protected or normal, determined by the necessity for decryption {current_price}= Free if current price is 0 dollars else paid {regular_price}=Free if regular price is 0 dollars else paid {promo_price}= Free if promo price is 0 dollars else paid {renewal_price}= Free if renewal price is 0 dollars else paid {args}= the passed arguments namespace, keys can be access with the dot (.) syntax {config}= the config arguments dictionary, keys can be access with the [] syntax {modelObj} = model data class via class folder, properties can be access via the dot (.) syntax {configPath} = path to current config directory Copy {ext} = The file extension of the media Copy - media_id - download type Copy - filename is replace with text - quality will always be Source - media_type will always be "Text" sun-brightdesktopmoon --- # Page 2 | OF-Scraper [PreviousOld Menuchevron-left](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/using-prompts/old-menu) [NextUsername selection or Fuzzy Searchchevron-right](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/username-selection-or-fuzzy-search) sun-brightdesktopmoon sun-brightdesktopmoon --- # Scraping Individual Posts or Media | OF-Scraper * * * [hashtag](https://of-scraper.gitbook.io/of-scraper/scraping-individual-posts-or-media#scraping-content-from-timeline-post) Scraping content from timeline post ------------------------------------------------------------------------------------------------------------------------------------------------------------------- **1\. click '...' and then copy link to post** ![](https://of-scraper.gitbook.io/of-scraper/~gitbook/image?url=https%3A%2F%2Fgithub.com%2Fdatawhores%2FOF-Scraper%2Fassets%2F67020411%2F84a87986-36ef-4d75-a9d9-10d7b572419a&width=768&dpr=3&quality=100&sign=a98bceb&sv=2) image Alternatively * * * [hashtag](https://of-scraper.gitbook.io/of-scraper/scraping-individual-posts-or-media#scraping-content-from-purchase-page) Scraping content from purchase page ------------------------------------------------------------------------------------------------------------------------------------------------------------------- **1\. Click '...' and copy link to message** ![](https://of-scraper.gitbook.io/of-scraper/~gitbook/image?url=https%3A%2F%2Fgithub.com%2Fdatawhores%2FOF-Scraper%2Fassets%2F67020411%2F74cebb3f-c0e4-4cbb-b2f7-18b52e2a98a6&width=768&dpr=3&quality=100&sign=d5b55630&sv=2) image * * * [hashtag](https://of-scraper.gitbook.io/of-scraper/scraping-individual-posts-or-media#advanced) Advanced ------------------------------------------------------------------------------------------------------------- To grasp this better, checking out the `**get_info**` function in `**manual.py**` is the ideal way as it accepts a wider range of URLs. * * * [hashtag](https://of-scraper.gitbook.io/of-scraper/scraping-individual-posts-or-media#scraping-individual-media) Scraping Individual Media ----------------------------------------------------------------------------------------------------------------------------------------------- **1\. Run a content scraper mode** [Content Check Modeschevron-right](https://of-scraper.gitbook.io/of-scraper/content-check-modes) **2\. Use the mouse to toggle the checkmark of the row you want to download** _Note you can also toggle with ";" or "',"_ Only unlocked media will have a checkmark * media marked for download will have 'added' in them ![](https://of-scraper.gitbook.io/of-scraper/~gitbook/image?url=https%3A%2F%2Fgithub.com%2Fdatawhores%2FOF-Scraper%2Fassets%2F67020411%2F48e3badd-5502-480b-aeaa-04d58c769dd1&width=768&dpr=3&quality=100&sign=fe68a998&sv=2) image **3\. Click Send to OF-Scraper** ![](https://of-scraper.gitbook.io/of-scraper/~gitbook/image?url=https%3A%2F%2Fgithub.com%2Fdatawhores%2FOF-Scraper%2Fassets%2F67020411%2F9727c122-73ea-4043-850a-4d4fe0ffbf33&width=768&dpr=3&quality=100&sign=8827ebcb&sv=2) image Downloads progress will be updated in console ![](https://of-scraper.gitbook.io/of-scraper/~gitbook/image?url=https%3A%2F%2Fgithub.com%2Fdatawhores%2FOF-Scraper%2Fassets%2F67020411%2F9d0748b2-c036-4b7f-91c0-499b78a808e1&width=768&dpr=3&quality=100&sign=f224b020&sv=2) image **4\. Finished Downloads will have the words download in them** ![](https://of-scraper.gitbook.io/of-scraper/~gitbook/image?url=https%3A%2F%2Fgithub.com%2Fdatawhores%2FOF-Scraper%2Fassets%2F67020411%2F7ae553c7-94d1-4a03-a44f-83fd056b80f9&width=768&dpr=3&quality=100&sign=2517cdaa&sv=2) image You can redownload by using ";" or "'" to untoggle and then retoggle with the added value Status Meaning added content is ready to be added to queue downloading content is added to queue, and will be downloaded downloaded content was downloaded and all post process were successful failed content was not downloaded and or post process failed ### [hashtag](https://of-scraper.gitbook.io/of-scraper/scraping-individual-posts-or-media#good-things-to-know) Good things to know * Downloads won't start off immediately because the program is designed to check the queue for new downloads every 10 seconds. * Since there isn't a progress bar, enabling debug mode could be helpful in this situation. * By clicking on the table, you can instantly add more downloads. Any entry marked as "downloading" will be inaccessible for modification * Sorting and filtering functionalities should also be operational [PreviousPre 3.10.7 filteringchevron-left](https://of-scraper.gitbook.io/of-scraper/content-check-modes/table-management/pre-3.10.7-filtering) [NextMetadatachevron-right](https://of-scraper.gitbook.io/of-scraper/page) Last updated 1 year ago * [Scraping content from timeline post](https://of-scraper.gitbook.io/of-scraper/scraping-individual-posts-or-media#scraping-content-from-timeline-post) * [Scraping content from purchase page](https://of-scraper.gitbook.io/of-scraper/scraping-individual-posts-or-media#scraping-content-from-purchase-page) * [Advanced](https://of-scraper.gitbook.io/of-scraper/scraping-individual-posts-or-media#advanced) * [Scraping Individual Media](https://of-scraper.gitbook.io/of-scraper/scraping-individual-posts-or-media#scraping-individual-media) * [Good things to know](https://of-scraper.gitbook.io/of-scraper/scraping-individual-posts-or-media#good-things-to-know) sun-brightdesktopmoon Copy ofscraper manual --url copied_link Copy ofscraper manual --url postid Copy ofscraper manual --url copied_link sun-brightdesktopmoon --- # Page 1 | OF-Scraper [PreviousFAQ/Common Issueschevron-left](https://of-scraper.gitbook.io/of-scraper/faq) [NextCommand Referencechevron-right](https://of-scraper.gitbook.io/of-scraper/command-reference) sun-brightdesktopmoon sun-brightdesktopmoon --- # File Output Options | OF-Scraper [hashtag](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/file-output-options#save-path-options) Save Path Options ------------------------------------------------------------------------------------------------------------------------------------------------------- [Placeholderschevron-right](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/file-output-options/customizing-save-path) ### [hashtag](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/file-output-options#save_location) save\_location root save folder ### [hashtag](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/file-output-options#dir_format) dir\_format format for directory ### [hashtag](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/file-output-options#file_format) file\_format format for files ### [hashtag](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/file-output-options#textlength) textlength Sets a cap on the text placeholder to a certain number of words, with 0 indicating an unrestricted text length to restrict by letter count pass `--letter-count` argument ### [hashtag](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/file-output-options#space-replacer) space-replacer circle-info **This change applies exclusively to the filename and doesn't affect other path components like parent directories.** This character will replace all spaces within the filename. It should be employed in conjunction with the text placeholder ### [hashtag](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/file-output-options#text_type_default) text\_type\_default Whether to count text based on words on letters ### [hashtag](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/file-output-options#truncation_default) truncation\_default * If set to true text that is calculated to be over system limit will be shorted * Files whose paths are over the limit may still fail ### [hashtag](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/file-output-options#date) date The date syntax doesn't use bracket notation; it adheres to the Arrow implementation. For more information, check the documentation at [![Logo](https://of-scraper.gitbook.io/of-scraper/~gitbook/image?url=https%3A%2F%2Farrow.readthedocs.io%2Ffavicon.ico&width=20&dpr=3&quality=100&sign=b5c08848&sv=2)User’s Guide — Arrow 🏹 1.4.0 documentationarrow.readthedocs.iochevron-right](https://arrow.readthedocs.io/en/latest/guide.html#supported-tokens) If you need additional help, feel free to open an issue in the repository for support. * * * [hashtag](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/file-output-options#other-related-options) Other Related Options --------------------------------------------------------------------------------------------------------------------------------------------------------------- These options also effect the final file name ### [hashtag](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/file-output-options#responsetype) responsetype [Responsetype Placeholderschevron-right](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/file-output-options/remapping-responsetype) * * * [hashtag](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/file-output-options#metadata) metadata ------------------------------------------------------------------------------------------------------------------------------------- [Setting metadata pathchevron-right](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/setting-metadata-path) Metadata is mainly used for * dupe check * To speed up scanning of profiles It can also be shared with other programs via the .db files created [PreviousGeneral Optionschevron-left](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/general-options) [NextPlaceholderschevron-right](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/file-output-options/customizing-save-path) Last updated 1 year ago * [Save Path Options](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/file-output-options#save-path-options) * [save\_location](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/file-output-options#save_location) * [dir\_format](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/file-output-options#dir_format) * [file\_format](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/file-output-options#file_format) * [textlength](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/file-output-options#textlength) * [space-replacer](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/file-output-options#space-replacer) * [text\_type\_default](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/file-output-options#text_type_default) * [truncation\_default](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/file-output-options#truncation_default) * [date](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/file-output-options#date) * [Other Related Options](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/file-output-options#other-related-options) * [responsetype](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/file-output-options#responsetype) * [metadata](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/file-output-options#metadata) sun-brightdesktopmoon sun-brightdesktopmoon --- # Adding Proxy | OF-Scraper The const value for proxy is **PROXY** For compatibility with httpx and aiohttp the proxy url must include credential if required [**http://username:password@localhost:8030**arrow-up-right](http://username:password@localhost:8030/) [PreviousRecipeschevron-left](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/recipes) [NextRedownload Deleted Downloadschevron-right](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/recipes/redownload-deleted-downloads) Last updated 1 year ago sun-brightdesktopmoon sun-brightdesktopmoon --- # Table Columns | OF-Scraper #### [hashtag](https://of-scraper.gitbook.io/of-scraper/content-check-modes/table-columns#download-cart) Download Cart Copy A cart for sending downloads to a queue #### [hashtag](https://of-scraper.gitbook.io/of-scraper/content-check-modes/table-columns#username) Username Copy model username #### [hashtag](https://of-scraper.gitbook.io/of-scraper/content-check-modes/table-columns#downloaded) Downloaded Copy Boolean for whether the media is marked by the db as downloaded #### [hashtag](https://of-scraper.gitbook.io/of-scraper/content-check-modes/table-columns#unlocked) Unlocked Copy Boolean for whether the post tied to the media is unlocked #### [hashtag](https://of-scraper.gitbook.io/of-scraper/content-check-modes/table-columns#length) Length Copy This is the length of videos/audio N/A is used for media like pictures without a length Formated in HH:MM:SS #### [hashtag](https://of-scraper.gitbook.io/of-scraper/content-check-modes/table-columns#other_posts_with_media) other\_posts\_with\_media Copy Identifies posts with the same media id #### [hashtag](https://of-scraper.gitbook.io/of-scraper/content-check-modes/table-columns#mediatype) Mediatype Copy Type of media #### [hashtag](https://of-scraper.gitbook.io/of-scraper/content-check-modes/table-columns#post-date) Post date #### [hashtag](https://of-scraper.gitbook.io/of-scraper/content-check-modes/table-columns#post-media-count) Post Media Count #### [hashtag](https://of-scraper.gitbook.io/of-scraper/content-check-modes/table-columns#responsetype) Responsetype #### [hashtag](https://of-scraper.gitbook.io/of-scraper/content-check-modes/table-columns#price) Price #### [hashtag](https://of-scraper.gitbook.io/of-scraper/content-check-modes/table-columns#post-id) Post ID #### [hashtag](https://of-scraper.gitbook.io/of-scraper/content-check-modes/table-columns#media-id) Media ID #### [hashtag](https://of-scraper.gitbook.io/of-scraper/content-check-modes/table-columns#text) Text [PreviousContent Check Modeschevron-left](https://of-scraper.gitbook.io/of-scraper/content-check-modes) [NextTable Managementchevron-right](https://of-scraper.gitbook.io/of-scraper/content-check-modes/table-management) Last updated 9 months ago sun-brightdesktopmoon Copy Date the post was created/updated Copy Number of media in the post this media item is in Copy Which API the media was retrieved from Copy Price of the post the media is tied to Copy ID for the post the media is tied Copy ID for the media Copy Text from the post sun-brightdesktopmoon --- # Migrating from Digitalcriminal's script | OF-Scraper * * * [hashtag](https://of-scraper.gitbook.io/of-scraper/getting-started/migrating-from-digitalcriminals-script#set-medatadata) Set Medatadata --------------------------------------------------------------------------------------------------------------------------------------------- circle-info **Your previous metadata files are compatible so only the path needs to match** [Setting metadata pathchevron-right](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/setting-metadata-path) * * * [hashtag](https://of-scraper.gitbook.io/of-scraper/getting-started/migrating-from-digitalcriminals-script#set-save-path) Set save path ------------------------------------------------------------------------------------------------------------------------------------------- circle-info **Most settings should be transferable Including the defaults** [File Output Optionschevron-right](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/file-output-options) [hashtag](https://of-scraper.gitbook.io/of-scraper/getting-started/migrating-from-digitalcriminals-script#example) Example ------------------------------------------------------------------------------------------------------------------------------- See the advanced DC config [Example Configschevron-right](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/example-configs) ### [hashtag](https://of-scraper.gitbook.io/of-scraper/getting-started/migrating-from-digitalcriminals-script#save_location) save\_location ### [hashtag](https://of-scraper.gitbook.io/of-scraper/getting-started/migrating-from-digitalcriminals-script#dir-format) dir format Means a full path like 1. /Onlyfans is the save\_location 2. /modelA/Messages/Free/Images/ is the dir\_format ### [hashtag](https://of-scraper.gitbook.io/of-scraper/getting-started/migrating-from-digitalcriminals-script#metadata) metadata This refers to a directory path designated for storing 'user\_data.db'. [PreviousControlling Output/Logschevron-left](https://of-scraper.gitbook.io/of-scraper/getting-started/controlling-output) [NextAdvanced Customizationchevron-right](https://of-scraper.gitbook.io/of-scraper/getting-started/advanced-customization) Last updated 9 months ago * [Set Medatadata](https://of-scraper.gitbook.io/of-scraper/getting-started/migrating-from-digitalcriminals-script#set-medatadata) * [Set save path](https://of-scraper.gitbook.io/of-scraper/getting-started/migrating-from-digitalcriminals-script#set-save-path) * [Example](https://of-scraper.gitbook.io/of-scraper/getting-started/migrating-from-digitalcriminals-script#example) * [save\_location](https://of-scraper.gitbook.io/of-scraper/getting-started/migrating-from-digitalcriminals-script#save_location) * [dir format](https://of-scraper.gitbook.io/of-scraper/getting-started/migrating-from-digitalcriminals-script#dir-format) * [metadata](https://of-scraper.gitbook.io/of-scraper/getting-started/migrating-from-digitalcriminals-script#metadata) sun-brightdesktopmoon Copy "save_location": "/Onlyfans", Copy "dir_format": "{model_username}/{responsetype}/{value}/{mediatype}/" Copy "/Onlyfans/modelA/Messages/Free/Images/" Copy "metadata": "{save_location}/{model_username}/Metadata" Copy "OnlyFans/ModelA/Metadata" sun-brightdesktopmoon --- # Recipes | OF-Scraper [Redownload Deleted Downloadschevron-right](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/recipes/redownload-deleted-downloads) [Adding Proxychevron-right](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/recipes/adding-proxy) [PreviousScriptschevron-left](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/scripts) [NextAdding Proxychevron-right](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/recipes/adding-proxy) Last updated 1 year ago sun-brightdesktopmoon sun-brightdesktopmoon --- # Controlling Output/Logs | OF-Scraper * * * [hashtag](https://of-scraper.gitbook.io/of-scraper/getting-started/controlling-output#log-streams) Log Streams ------------------------------------------------------------------------------------------------------------------- ### [hashtag](https://of-scraper.gitbook.io/of-scraper/getting-started/controlling-output#discord) Discord circle-info **Discord logs will solely contain the log message, whereas other logs will include additional details like function calls and line numbers.** circle-info **You can turn the const value 'DISCORD\_ASYNC' to true to spend up discord logs This could result in logs not being in order** circle-info **For optimal performance with Discord, it's recommended to use the Normal or below logging level. Levels like Debug generate a significant amount of data, requiring numerous requests to process and log** The output goes to the Discord channel #### [hashtag](https://of-scraper.gitbook.io/of-scraper/getting-started/controlling-output#levels) LEVELS _In ascending output order_ * OFF * LOW * NORMAL * DEBUG * TRACE * * * ### [hashtag](https://of-scraper.gitbook.io/of-scraper/getting-started/controlling-output#output) Output **output to the console** circle-info **For clear console output, it is recommended to set the logging level to Normal or below to avoid excessive messages** #### [hashtag](https://of-scraper.gitbook.io/of-scraper/getting-started/controlling-output#levels-1) LEVELS _In ascending output order_ * PROMPT * LOW * NORMAL * DEBUG * TRACE * * * ### [hashtag](https://of-scraper.gitbook.io/of-scraper/getting-started/controlling-output#log) Log **output to logfile within the config folder** _In ascending output order_ * OFF * LOW * NORMAL * DEBUG * TRACE Deprecated * STAT * * * [hashtag](https://of-scraper.gitbook.io/of-scraper/getting-started/controlling-output#log-levels-details) Log levels details --------------------------------------------------------------------------------------------------------------------------------- With the 1.9 release, you gain increased control over the output level. **OFF** **PROMPT** **LOW** **STATS** circle-info **Removed in 3.5** **NORMAL**. **DEBUG** **TRACE** [PreviousAuthchevron-left](https://of-scraper.gitbook.io/of-scraper/getting-started/auth) [NextMigrating from Digitalcriminal's scriptchevron-right](https://of-scraper.gitbook.io/of-scraper/getting-started/migrating-from-digitalcriminals-script) Last updated 1 year ago * [Log Streams](https://of-scraper.gitbook.io/of-scraper/getting-started/controlling-output#log-streams) * [Discord](https://of-scraper.gitbook.io/of-scraper/getting-started/controlling-output#discord) * [Output](https://of-scraper.gitbook.io/of-scraper/getting-started/controlling-output#output) * [Log](https://of-scraper.gitbook.io/of-scraper/getting-started/controlling-output#log) * [Log levels details](https://of-scraper.gitbook.io/of-scraper/getting-started/controlling-output#log-levels-details) sun-brightdesktopmoon Copy This feature allows you to deactivate Discord or log file logging. By default, these outputs are turned off. Copy The program needs prompts and specific console output for certain operations. It configures console output to only show necessary information. Providing a scraping action and usernames should largely disable most, if not all, additional output. Copy It disables all progress bars and displays essential program status while running. It also includes avatars and applies to all output destinations. Copy Slight modification to LOW no avatars will be shown Copy The default console output level, progress bars and general status messages are displayed. All output destinations, including Discord and log files, receive general status messages but exclude progress bars. Copy It includes debugger messages and tracebacks within the 'Normal' output level. This applies to all output destinations. Copy This mode provides the most detailed and extensive information compared to all other modes. sun-brightdesktopmoon --- # Pre 3.10.7 filtering | OF-Scraper circle-info **For <3.10.7** circle-info **In new versions the filtering is no longer applied automatically** circle-info **The top bar was also replaced with a scrollable sidebar** ![](https://of-scraper.gitbook.io/of-scraper/~gitbook/image?url=https%3A%2F%2Fgithub.com%2Fdatawhores%2FOF-Scraper%2Fassets%2F67020411%2F7aba01b5-e768-43aa-ba98-6d85aca4e37e&width=768&dpr=3&quality=100&sign=ca12a2d4&sv=2) image The form above contains all the filters. Clicking 'Submit' will apply the selected filters to the form ### [hashtag](https://of-scraper.gitbook.io/of-scraper/content-check-modes/table-management/pre-3.10.7-filtering#adding-filter-from-table) Adding filter from table Click on a cell to heighlight it enter semicolon: \[ ;\] or apostrophe: \[ ' \] the table will filter to rows matching that cell value #### [hashtag](https://of-scraper.gitbook.io/of-scraper/content-check-modes/table-management/pre-3.10.7-filtering#example) Example The word 'videos' is highlighted ![](https://of-scraper.gitbook.io/of-scraper/~gitbook/image?url=https%3A%2F%2F373772994-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FOlkVHnCqS3EnmDo4hGKm%252Fuploads%252FPSb4UwhixoFgKjTHyA0T%252Fimg1.png%3Falt%3Dmedia%26token%3D7c5e1d30-6632-4154-a605-3af513c50217&width=768&dpr=3&quality=100&sign=5b565baa&sv=2) Once enter semicolon: \[ ;\] or apostrophe: \[ ' \] is pressed only cell matching videos will appear ![](https://of-scraper.gitbook.io/of-scraper/~gitbook/image?url=https%3A%2F%2Fgithub.com%2Fdatawhores%2FOF-Scraper%2Fassets%2F67020411%2F11911f08-2e0c-4759-b033-1fcaf40a5e6f&width=768&dpr=3&quality=100&sign=f9ed7afa&sv=2) image Furthermore, the forum will also refresh. This cycle continues until you press the reset button. [PreviousTable Managementchevron-left](https://of-scraper.gitbook.io/of-scraper/content-check-modes/table-management) [NextScraping Individual Posts or Mediachevron-right](https://of-scraper.gitbook.io/of-scraper/scraping-individual-posts-or-media) Last updated 1 year ago sun-brightdesktopmoon sun-brightdesktopmoon --- # Old Menu | OF-Scraper Running the prompt menu allows you to to utilize the program while passing minimal arguments * * * [hashtag](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/using-prompts/old-menu#getting-to-the-main-menu) Getting to the main menu --------------------------------------------------------------------------------------------------------------------------------------------------- ![](https://of-scraper.gitbook.io/of-scraper/~gitbook/image?url=https%3A%2F%2Fuser-images.githubusercontent.com%2F67020411%2F230734717-e85b02ee-2e66-467a-abe0-2f479c1e6671.png&width=768&dpr=3&quality=100&sign=aacffb42&sv=2) image The simplest method is to execute this command Basically, any command lacking a scraping option will trigger the menu display * * * [hashtag](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/using-prompts/old-menu#edit-profile) Edit Profile --------------------------------------------------------------------------------------------------------------------------- ![](https://of-scraper.gitbook.io/of-scraper/~gitbook/image?url=https%3A%2F%2Fuser-images.githubusercontent.com%2F67020411%2F230734759-b16a49da-0b61-44fc-9013-be0b0ac56419.png&width=768&dpr=3&quality=100&sign=e37e480d&sv=2) image Use this option to * add profiles * change the default profile * rename a profile * delete profile Each profile corresponds to a single account. So, if you aim to have multiple accounts, you'll require multiple profiles * * * [hashtag](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/using-prompts/old-menu#edit-config.json) Edit config.json ----------------------------------------------------------------------------------------------------------------------------------- ![](https://of-scraper.gitbook.io/of-scraper/~gitbook/image?url=https%3A%2F%2Fuser-images.githubusercontent.com%2F67020411%2F230734909-5ad9c464-4984-4594-a0de-676344b84697.png&width=768&dpr=3&quality=100&sign=e262b022&sv=2) image To bypass the hassle of finding the config file's location, utilize this to modify settings directly from within the script. Your prior choices will be available, allowing you the chance to edit them conveniently. * * * [hashtag](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/using-prompts/old-menu#edit-auth.json) Edit auth.json ------------------------------------------------------------------------------------------------------------------------------- circle-info **if the authentication fails, the authentication menu will pop up, prompting you to enter new settings** ![](https://of-scraper.gitbook.io/of-scraper/~gitbook/image?url=https%3A%2F%2Fuser-images.githubusercontent.com%2F67020411%2F230735133-9bc6c48f-daed-40be-841c-0d84c3eb2bca.png&width=768&dpr=3&quality=100&sign=93c6272e&sv=2) image Typically this is not a setting that needs to be access manually However, you have the option to directly modify the authentication JSON using this method. [PreviousUsing Promptschevron-left](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/using-prompts) [NextPage 2chevron-right](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/using-prompts/page-2) Last updated 2 years ago * [Getting to the main menu](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/using-prompts/old-menu#getting-to-the-main-menu) * [Edit Profile](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/using-prompts/old-menu#edit-profile) * [Edit config.json](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/using-prompts/old-menu#edit-config.json) * [Edit auth.json](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/using-prompts/old-menu#edit-auth.json) sun-brightdesktopmoon Copy ofscraper sun-brightdesktopmoon --- # Scripts | OF-Scraper triangle-exclamation All files must end with a .py to be auto-detected by OF-Scraper as a python file [hashtag](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/scripts#naming-scripts) Naming Scripts ---------------------------------------------------------------------------------------------------------------- These scripts would be place into the naming\_script section of the config ### [hashtag](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/scripts#rename-jpeg-to-jpg) rename jpeg to jpg Copy import sys import json import pathlib def main(): input_json_str = sys.stdin.read() # 1. Parse the JSON string into a Python dictionary data = json.loads(input_json_str) #2 Fix name dir=data["dir"] file=data["file"].replace("jpeg","jpg").strip() filename=str(pathlib.Path(dir,file)) #2. Print to stdout for output print(filename, file=sys.stdout) #3. Print all information data to stderr print(filename, file=sys.stderr) if __name__=="__main__": main() [PreviousEnable label scanchevron-left](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/enable-label-scan) [NextRecipeschevron-right](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/recipes) Last updated 9 months ago * [Naming Scripts](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/scripts#naming-scripts) * [rename jpeg to jpg](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/scripts#rename-jpeg-to-jpg) sun-brightdesktopmoon sun-brightdesktopmoon --- # Command Reference | OF-Scraper [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference#syntax) Syntax ---------------------------------------------------------------------------------------- Copy ofscraper [global args][Logging] [main program args] [PreviousPage 1chevron-left](https://of-scraper.gitbook.io/of-scraper/faq/page-1) [NextShared Optionschevron-right](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options) Last updated 1 year ago sun-brightdesktopmoon sun-brightdesktopmoon --- # Redownload Deleted Downloads | OF-Scraper [hashtag](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/recipes/redownload-deleted-downloads#with-metadata-recommended) With metadata (recommended) --------------------------------------------------------------------------------------------------------------------------------------------------------------------- circle-exclamation **make sure to use the same exact settings for both steps to make sure the same posts are being effected** Recommended run 1. **use the 'metadata-update' argument** * This will update files on system based on config, if a file does not exist on system it will be marked as not downloaded in data * Much faster then --dupe, since no files are writing to disk, and the number of requests required is greatly reduced Copy ofscraper metadata --metadata-update * add additional args if needed for example --after 2000 1. **Download normally** * If any files are missing now they will be redownloaded [hashtag](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/recipes/redownload-deleted-downloads#force-all-downloads) Force all downloads ------------------------------------------------------------------------------------------------------------------------------------------------------- Copy ofscraper --force-all this will force all downloads to be processed [PreviousAdding Proxychevron-left](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/recipes/adding-proxy) [NextContent Check Modeschevron-right](https://of-scraper.gitbook.io/of-scraper/content-check-modes) Last updated 1 year ago * [With metadata (recommended)](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/recipes/redownload-deleted-downloads#with-metadata-recommended) * [Force all downloads](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/recipes/redownload-deleted-downloads#force-all-downloads) sun-brightdesktopmoon sun-brightdesktopmoon --- # Creating Metadata | OF-Scraper Metadata is automatically created when you download data. The tables and their structure are determined by the API you're using and the version of the script you're running [hashtag](https://of-scraper.gitbook.io/of-scraper/page/creating-metadata#metadata-mode) metadata mode ----------------------------------------------------------------------------------------------------------- circle-info **you can use the --anon option to gather metadata without logging in, however this means you lose access to most media data** metadata mode can be entered with the metadata subcommand Copy ofscraper metadata [args] This will update metadata without having to download files [Shared Scrape and Metadata Check Mode Optionschevron-right](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options) [Metadata Check Mode Optionschevron-right](https://of-scraper.gitbook.io/of-scraper/command-reference/metadata-check-mode-options) [PreviousSchemachevron-left](https://of-scraper.gitbook.io/of-scraper/page/schema) [NextMetadata locationchevron-right](https://of-scraper.gitbook.io/of-scraper/page/metadata-location) Last updated 1 year ago sun-brightdesktopmoon sun-brightdesktopmoon --- # Advanced config options | OF-Scraper * * * [hashtag](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/advanced-config-options#dynamic-mode-default) dynamic-mode-default ----------------------------------------------------------------------------------------------------------------------------------------------------------------- * This is utilized to sign a request, essential for its authorization. Without this, the request would lack proper authorization and fail. * Generally, the options remain mostly identical. However, in rare instances, modifying these options might resolve certain issues with authentication * * * [hashtag](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/advanced-config-options#skip-unavailable-content) skip unavailable content ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- * Completely bypasses the Timeline, Pinned, Archived, Labels, Stories, and Highlights API endpoints for expired users, within a specified grace period, defaults to 2 days * Continues to scan Messages, Purchased, and 'Profile' content * * * [hashtag](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/advanced-config-options#cache-mode) cache-mode --------------------------------------------------------------------------------------------------------------------------------------------- circle-info **You can use --no-cache** **or --no-cache-api** **If your having major issues with cache** circle-info **Options JSON SQLITE None (to disable)** The script uses DiskCache, which has different options like SQLite and JSON. For most folks, SQLite works fine, but if you're on a network drive, its performance might not be great. That's when switching to JSON could be a smart move, according to the author [![Logo](https://of-scraper.gitbook.io/of-scraper/~gitbook/image?url=https%3A%2F%2Fgrantjenks.com%2Ffavicon.ico&width=20&dpr=3&quality=100&sign=846b6e9f&sv=2)DiskCache Tutorial — DiskCache 5.6.1 documentationgrantjenks.comchevron-right](https://grantjenks.com/docs/diskcache/tutorial.html#caveats) * * * [hashtag](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/advanced-config-options#rotate_logs) rotate\_logs ------------------------------------------------------------------------------------------------------------------------------------------------ If set to True, each run will generate a new log. If set to False, each logs will be combined into one file per day. [hashtag](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/advanced-config-options#sanitize_text) sanitize\_text ---------------------------------------------------------------------------------------------------------------------------------------------------- If set to true, text content will be sanitized before to database insertion into database [hashtag](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/advanced-config-options#downloadbars) downloadbars ------------------------------------------------------------------------------------------------------------------------------------------------- whether to show download progress bars or not Disabling these can improve performance * * * [hashtag](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/advanced-config-options#temp_dir) temp\_dir ------------------------------------------------------------------------------------------------------------------------------------------ circle-info **If not set the the final download directory is used to hold temp files** This overrides the temporary directory used during download [hashtag](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/advanced-config-options#infinite_loop_action_mode) infinite\_loop\_action\_mode ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ circle-info **You can disable the prompt for continuing the script with any arguments by setting the const value CONTINUE\_BOOL = False** Sets the script to run in a infinite loop even when --action is used [hashtag](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/advanced-config-options#logs_expire_time) logs\_expire\_time ----------------------------------------------------------------------------------------------------------------------------------------------------------- Determines the maximum age for log files in hours. When log rotation is enabled, any log file older than this configured value will be automatically deleted from the system. For this feature to be active, the value must be set to a positive number greater than zero, and rotate\_logs must be enabled * * * [hashtag](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/advanced-config-options#ssl_verify) ssl\_verify ---------------------------------------------------------------------------------------------------------------------------------------------- Controls how the scraper handles SSL certificate validation and TLS fingerprinting **Available Options:** * `"custom"` **(Default & Recommended)** Uses a custom SSL context with TLS fingerprint hardening. * `"default"` Uses the standard Python SSL validation. This is the default behavior of the `aiohttp` * `"false"` Disables SSL certificate validation entirely * * * [hashtag](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/advanced-config-options#incremental_downloads) incremental\_downloads -------------------------------------------------------------------------------------------------------------------------------------------------------------------- circle-info **replaces auto\_after** * incrementally download content, by automatically setting --after based on successful completion of downloads in previous runs * Deleted content is automatically detected and flagged * ignored if --after was set by the user in the last run * * * [hashtag](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/advanced-config-options#remove_hash_match) remove\_hash\_match ------------------------------------------------------------------------------------------------------------------------------------------------------------- circle-info **Set value to None to disable calculating hash, False will calculate but not remove files** circle-info **hashes are 128 bit and matched with file sizes to ensure uniqueness** If at least two files with identical hashes exist on the system, remove duplicate files identified by those hashes, keeping only one copy on the file system * * * circle-info **ofscraper.main or main are the default built in key words for a list combining active and expired list** circle-info **ofscraper.active or active are the default built in key words for active list** circle-info **ofscraper.expired or expired are the default built in key words for expired list** [hashtag](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/advanced-config-options#default_user_list) default\_user\_list ------------------------------------------------------------------------------------------------------------------------------------------------------------- circle-info **If blank then ofscraper.main is used as setting** The default user list used during username scan [hashtag](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/advanced-config-options#default_black_list) default\_black\_list --------------------------------------------------------------------------------------------------------------------------------------------------------------- circle-info **If blank then the black list option is disabled** The default black list used during username scan * * * [hashtag](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/advanced-config-options#env_files) env\_files -------------------------------------------------------------------------------------------------------------------------------------------- list of files imported to set custom enviroment variables for the script [PreviousScript Optionschevron-left](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/script-options) [NextAuthchevron-right](https://of-scraper.gitbook.io/of-scraper/getting-started/auth) Last updated 12 days ago * [dynamic-mode-default](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/advanced-config-options#dynamic-mode-default) * [skip unavailable content](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/advanced-config-options#skip-unavailable-content) * [cache-mode](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/advanced-config-options#cache-mode) * [rotate\_logs](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/advanced-config-options#rotate_logs) * [sanitize\_text](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/advanced-config-options#sanitize_text) * [downloadbars](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/advanced-config-options#downloadbars) * [temp\_dir](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/advanced-config-options#temp_dir) * [infinite\_loop\_action\_mode](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/advanced-config-options#infinite_loop_action_mode) * [logs\_expire\_time](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/advanced-config-options#logs_expire_time) * [ssl\_verify](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/advanced-config-options#ssl_verify) * [incremental\_downloads](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/advanced-config-options#incremental_downloads) * [remove\_hash\_match](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/advanced-config-options#remove_hash_match) * [default\_user\_list](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/advanced-config-options#default_user_list) * [default\_black\_list](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/advanced-config-options#default_black_list) * [env\_files](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/advanced-config-options#env_files) sun-brightdesktopmoon sun-brightdesktopmoon --- # Metadata location | OF-Scraper [Metadata locationchevron-right](https://of-scraper.gitbook.io/of-scraper/page/metadata-location) [PreviousCreating Metadatachevron-left](https://of-scraper.gitbook.io/of-scraper/page/creating-metadata) [NextCDM Setupchevron-right](https://of-scraper.gitbook.io/of-scraper/cdm-options) Last updated 1 year ago sun-brightdesktopmoon sun-brightdesktopmoon --- # Content Check Modes | OF-Scraper [hashtag](https://of-scraper.gitbook.io/of-scraper/content-check-modes#what-is-this) What is this ------------------------------------------------------------------------------------------------------ ![](https://of-scraper.gitbook.io/of-scraper/~gitbook/image?url=https%3A%2F%2F373772994-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FOlkVHnCqS3EnmDo4hGKm%252Fuploads%252FZTDHos4WKp0uNHr2iHK7%252Fimage2.png%3Falt%3Dmedia%26token%3Da777f01c-e93e-4804-b5b0-6c6660864eeb&width=768&dpr=3&quality=100&sign=e22160b6&sv=2) It scrapes data from OnlyFans.com, parsing the database to showcase content information via a generated table. Each media item occupies its own row within the table, which is searchable and offers filtering options. The table is comprehensive, containing various details for each entry * price of content * Will try to show if media is in your library based on media id * If the media is unlocked * The post that a media is connected * Date the media was posted * text included with the media * Length of media It utilizes caching to expedite processes. The cache is established either during regular scraping or when running in content check mode, persisting for a day before the program updates with fresh data. Additionally, you can employ '--force' to fetch the most recent information. * * * [hashtag](https://of-scraper.gitbook.io/of-scraper/content-check-modes#cmdline-arguments) cmdline arguments ---------------------------------------------------------------------------------------------------------------- ### [hashtag](https://of-scraper.gitbook.io/of-scraper/content-check-modes#undefined) ### [hashtag](https://of-scraper.gitbook.io/of-scraper/content-check-modes#post-check-mode) Post Check Mode This functionality is for reviewing posts on the main timeline or for paid content accessed through the post URL 1. you must add the --url or --file argument 2. You can combine the previous args 3. \--url can be split by comma or passed multiple times 4. \--file can only be passed once, and does not spit string will be interpreted as single url #### [hashtag](https://of-scraper.gitbook.io/of-scraper/content-check-modes#examples) Examples `ofscraper post_check --url url,url,url` `ofscraper post_check --url url --url url` `ofscraper post_check --file file` `ofscraper post_check --file file --url url` #### [hashtag](https://of-scraper.gitbook.io/of-scraper/content-check-modes#file) File Should contain accepted urls line separated #### [hashtag](https://of-scraper.gitbook.io/of-scraper/content-check-modes#accepted-urls) Accepted urls **post page** **model page** **model name** **model number** ### [hashtag](https://of-scraper.gitbook.io/of-scraper/content-check-modes#undefined-1) ### [hashtag](https://of-scraper.gitbook.io/of-scraper/content-check-modes#message-check-mode) Message Check Mode To avoid redundancy, the "check mode" is equivalent to "post\_check," differing only in the accepted types of posts. When the cache expires all messages must be scraped again. #### [hashtag](https://of-scraper.gitbook.io/of-scraper/content-check-modes#examples-1) Examples Again all the previous examples will work `ofscraper msg_check --url url,url,url` #### [hashtag](https://of-scraper.gitbook.io/of-scraper/content-check-modes#accepted-urls-1) Accepted urls **chat page** **model name** **model number** ### [hashtag](https://of-scraper.gitbook.io/of-scraper/content-check-modes#undefined-2) ### [hashtag](https://of-scraper.gitbook.io/of-scraper/content-check-modes#paid-check-mode) Paid Check Mode It gathers paid content using the username provided 1. you must add the --username or --file argument 2. You can combine the previous args 3. \--username can be split by comma or passed multiple times 4. \--file can only be passed once, and does not spit string will be interpreted as single username #### [hashtag](https://of-scraper.gitbook.io/of-scraper/content-check-modes#examples-2) Examples #### [hashtag](https://of-scraper.gitbook.io/of-scraper/content-check-modes#file-1) File Should contain usernames line separated #### [hashtag](https://of-scraper.gitbook.io/of-scraper/content-check-modes#accepted-username) Accepted username **model name** **model number** ### [hashtag](https://of-scraper.gitbook.io/of-scraper/content-check-modes#undefined-3) ### [hashtag](https://of-scraper.gitbook.io/of-scraper/content-check-modes#story-check-mode) Story Check Mode It collects stories and highlights using the provided username > stories are temporary content and may change frequently 1. you must add the --username or --file argument 2. You can combine the previous args 3. \--username can be split by comma or passed multiple times 4. \--file can only be passed once, and does not spit string will be interpreted as single username #### [hashtag](https://of-scraper.gitbook.io/of-scraper/content-check-modes#examples-3) Examples `ofscraper story_check --username username,username` `ofscraper story_check --username username --username username` `ofscraper story_check --file file` `ofscraper story_check --file file --username username` #### [hashtag](https://of-scraper.gitbook.io/of-scraper/content-check-modes#file-2) File Should contain usernames line separated ### [hashtag](https://of-scraper.gitbook.io/of-scraper/content-check-modes#undefined-4) ### [hashtag](https://of-scraper.gitbook.io/of-scraper/content-check-modes#getting-latest-content) Getting latest content In each of these modes, details for each model are cached for 24 hours. To fetch the most recent content, append the "--force" argument to any of these modes. [PreviousRedownload Deleted Downloadschevron-left](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/recipes/redownload-deleted-downloads) [NextTable Columnschevron-right](https://of-scraper.gitbook.io/of-scraper/content-check-modes/table-columns) Last updated 1 year ago * [What is this](https://of-scraper.gitbook.io/of-scraper/content-check-modes#what-is-this) * [cmdline arguments](https://of-scraper.gitbook.io/of-scraper/content-check-modes#cmdline-arguments) * [](https://of-scraper.gitbook.io/of-scraper/content-check-modes#undefined) * [Post Check Mode](https://of-scraper.gitbook.io/of-scraper/content-check-modes#post-check-mode) * [](https://of-scraper.gitbook.io/of-scraper/content-check-modes#undefined-1) * [Message Check Mode](https://of-scraper.gitbook.io/of-scraper/content-check-modes#message-check-mode) * [](https://of-scraper.gitbook.io/of-scraper/content-check-modes#undefined-2) * [Paid Check Mode](https://of-scraper.gitbook.io/of-scraper/content-check-modes#paid-check-mode) * [](https://of-scraper.gitbook.io/of-scraper/content-check-modes#undefined-3) * [Story Check Mode](https://of-scraper.gitbook.io/of-scraper/content-check-modes#story-check-mode) * [](https://of-scraper.gitbook.io/of-scraper/content-check-modes#undefined-4) * [Getting latest content](https://of-scraper.gitbook.io/of-scraper/content-check-modes#getting-latest-content) sun-brightdesktopmoon Copy https://onlyfans.com/1113331313/model Copy https://onlyfans.com/model Copy model Copy 11131313 Copy https://onlyfans.com/my/chats/chat/11131313/ Copy model Copy 11131313 Copy ofscraper paid_check --username username,username Copy ofscraper paid_check --username username --username username Copy ofscraper paid_check --file file Copy ofscraper paid_check --file file --username username Copy model Copy 11131313 Copy ofscraper msg_check --url url --force sun-brightdesktopmoon --- # Downloading Purchases From Deleted Models | OF-Scraper ### [hashtag](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/basic-actions/selecting-posts/deleted-models#scrape-paid) \--scrape-paid This is intended for scraping paid content specifically from deleted models. The regular scraper already covers content from models with active accounts This is the only type of content that can be scraped in that case [PreviousDownloading Text Fileschevron-left](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/basic-actions/selecting-posts/downloading-text-files) [NextMultiple Actionschevron-right](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/basic-actions/multiple-actions) Last updated 1 year ago sun-brightdesktopmoon sun-brightdesktopmoon --- # CDM Setup | OF-Scraper To handle encrypted content, you'll require a CDM (Content Decryption Module). Indicators for this are the utilization of 'tempvideo' and 'tempaudio'.\\ ### [hashtag](https://of-scraper.gitbook.io/of-scraper/cdm-options#manual) Manual This method is recommended due to its reliability and independence from potential issues like loss of third-party access or service shutdowns. #### [hashtag](https://of-scraper.gitbook.io/of-scraper/cdm-options#setup) Setup * Follow this guide: [![Logo](https://of-scraper.gitbook.io/of-scraper/~gitbook/image?url=https%3A%2F%2Fforum.videohelp.com%2Ffavicon-196x196.png&width=20&dpr=3&quality=100&sign=d56626dc&sv=2)Dumping Your own L3 CDM with Android Studiowww.videohelp.comchevron-right](https://forum.videohelp.com/threads/408031-Dumping-Your-own-L3-CDM-with-Android-Studio/page26#post2766668) Guide * In the end you should have two files - private key file \-client id file * Save the files to a location that is easily accessible #### [hashtag](https://of-scraper.gitbook.io/of-scraper/cdm-options#changing-via-config-manually) Changing via config manually change key-mode-default change client-id and private-key Ensure you utilize the complete file path #### [hashtag](https://of-scraper.gitbook.io/of-scraper/cdm-options#changing-via-the-prompt-menu) Changing via the prompt menu * go to edit advance config settings menu in the prompt menu chevron-rightprompt menu[hashtag](https://of-scraper.gitbook.io/of-scraper/cdm-options#prompt-menu) [https://of-scraper.gitbook.io/of-scraper/using-promptsarrow-up-right](https://of-scraper.gitbook.io/of-scraper/using-prompts) * Switch to manual key-mode when prompted * When asked for the private-key, provide the complete path * When requested for the client-id, provide the complete path ### [hashtag](https://of-scraper.gitbook.io/of-scraper/cdm-options#cdrm) CDRM This is the initial automated option provided by [![Logo](https://of-scraper.gitbook.io/of-scraper/~gitbook/image?url=https%3A%2F%2Fcdrm-project.com%2Ffavico.png&width=20&dpr=3&quality=100&sign=428adeb2&sv=2)CDRM-Projectcdrm-project.comchevron-right](https://cdrm-project.com/) If you're unable to access the site, it's likely down, and you'll need to choose an alternative. #### [hashtag](https://of-scraper.gitbook.io/of-scraper/cdm-options#changing-via-config-manually-1) Changing via config manually change key-mode-default you could also pass --key-mode arg #### [hashtag](https://of-scraper.gitbook.io/of-scraper/cdm-options#changing-via-the-prompt-menu-1) Changing via the prompt menu * Navigate to the "Edit Config Settings" section * Navigate to the "Edit Advanced Options" section * When prompted to choose the key-mode, opt for "cdrm". [PreviousMetadata locationchevron-left](https://of-scraper.gitbook.io/of-scraper/page/metadata-location) [NextCDM issueschevron-right](https://of-scraper.gitbook.io/of-scraper/cdm-options/cdm-issues) Last updated 9 months ago * [Manual](https://of-scraper.gitbook.io/of-scraper/cdm-options#manual) * [CDRM](https://of-scraper.gitbook.io/of-scraper/cdm-options#cdrm) sun-brightdesktopmoon Copy key-mode-default:manual Copy private-key:...??privatekey.pem Copy client-id:...??client_id.bin Copy key-mode-default:cdrm Copy --key-mode cdrm sun-brightdesktopmoon --- # Testing | OF-Scraper The repository includes a set of various tests in its suite. [hashtag](https://of-scraper.gitbook.io/of-scraper/testing#install) Install -------------------------------------------------------------------------------- Tests have specific requirements and can be installed using 'poetry install --with tests' [hashtag](https://of-scraper.gitbook.io/of-scraper/testing#running) Running -------------------------------------------------------------------------------- Afterwards, you can execute the test suite using 'pytest' from the cloned repository [PreviousRequest Change to Docchevron-left](https://of-scraper.gitbook.io/of-scraper/request-change-to-doc) Last updated 2 years ago * [Install](https://of-scraper.gitbook.io/of-scraper/testing#install) * [Running](https://of-scraper.gitbook.io/of-scraper/testing#running) sun-brightdesktopmoon sun-brightdesktopmoon --- # Request Change to Doc | OF-Scraper The documents are synchronized with GitHub To propose a change, you can create a pull request at: [![Logo](https://of-scraper.gitbook.io/of-scraper/~gitbook/image?url=https%3A%2F%2Fgithub.com%2Ffluidicon.png&width=20&dpr=3&quality=100&sign=dc891f14&sv=2)GitHub - datawhores/OF-Scraper-DocsGitHubchevron-right](https://github.com/datawhores/OF-Scraper-Docs) [PreviousManual Mode Optionschevron-left](https://of-scraper.gitbook.io/of-scraper/command-reference/manual-mode-args) [NextTestingchevron-right](https://of-scraper.gitbook.io/of-scraper/testing) Last updated 2 years ago sun-brightdesktopmoon sun-brightdesktopmoon --- # Basic Actions | OF-Scraper [Liking/Unliking Postchevron-right](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/basic-actions/liking-unliking-post) [Downloading Contentchevron-right](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/basic-actions/selecting-posts) [Multiple Actionschevron-right](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/basic-actions/multiple-actions) [PreviousBasic Automation with command-linechevron-left](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions) [NextLiking/Unliking Postchevron-right](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/basic-actions/liking-unliking-post) sun-brightdesktopmoon sun-brightdesktopmoon --- # Multiple Actions | OF-Scraper circle-info **\--post is a short hand for selecting both --like-area and --download-area** circle-info **\--like-area and --download area have preference over --post** Copy ofscraper --action like,download --like-area pinned --download-area timeline [PreviousDownloading Purchases From Deleted Modelschevron-left](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/basic-actions/selecting-posts/deleted-models) [NextModel Filtering/Sortingchevron-right](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/model-selection-sorting) Last updated 1 year ago sun-brightdesktopmoon sun-brightdesktopmoon --- # Download Toggles | OF-Scraper [hashtag](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/download-options/download-toggles#auto_resume) auto\_resume ---------------------------------------------------------------------------------------------------------------------------------------------------------- circle-info **replaces partfileclean** If you set this to false, the script will delete .part files, and will not be able to auto resume * * * [hashtag](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/download-options/download-toggles#system_free_min) system\_free\_min ------------------------------------------------------------------------------------------------------------------------------------------------------------------- circle-info **set to 0 to disable** forces the script to crash if free space limit is bypassed checked * Before scraping * Before each download starts [PreviousDownload Optionschevron-left](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/download-options) [NextMedia Filtering Optionschevron-right](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/download-options/media-filtering-options) Last updated 1 year ago * [auto\_resume](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/download-options/download-toggles#auto_resume) * [system\_free\_min](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/download-options/download-toggles#system_free_min) sun-brightdesktopmoon sun-brightdesktopmoon --- # Enable label scan | OF-Scraper [hashtag](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/enable-label-scan#what-changed) **what changed?** ---------------------------------------------------------------------------------------------------------------------------------------------------------- **Version 3.9 introduces a performance optimization to the** `**--all**` **command by streamlining label utilization** * In previous versions, the `--all` command relied on labels primarily to extract data and populate the labels table * While this functionality remains valuable for specific workflows, it can introduce extend scan times if you don't require labels in your database * To address this, Version 3.9 the default is to disable label usage , resulting in a performance improvement for the `--all command` [hashtag](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/enable-label-scan#adding-labels-to-all) adding labels to all --------------------------------------------------------------------------------------------------------------------------------------------------------------------- Copy ofscraper --posts all,labels [hashtag](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/enable-label-scan#scraping-just-labels) scraping just labels --------------------------------------------------------------------------------------------------------------------------------------------------------------------- Copy ofscraper --posts labels [hashtag](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/enable-label-scan#shorthands-for-scraping-all-posts--labels) shorthands for scraping all posts + labels ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Copy ofscraper --posts labels* or Copy ofscraper --posts labels+ [hashtag](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/enable-label-scan#permanently-add-labels-to-all) permanently add labels to all --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- [PreviousScripting tipschevron-left](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/scripting-tips) [NextScriptschevron-right](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/scripts) Last updated 1 year ago * [what changed?](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/enable-label-scan#what-changed) * [adding labels to all](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/enable-label-scan#adding-labels-to-all) * [scraping just labels](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/enable-label-scan#scraping-just-labels) * [shorthands for scraping all posts + labels](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/enable-label-scan#shorthands-for-scraping-all-posts--labels) * [permanently add labels to all](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/enable-label-scan#permanently-add-labels-to-all) sun-brightdesktopmoon Copy override include_labels_all to True sun-brightdesktopmoon --- # Scripting tips | OF-Scraper * * * [hashtag](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/scripting-tips#windows) Windows ---------------------------------------------------------------------------------------------------------------------------------------- ### [hashtag](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/scripting-tips#creating-shortcut) creating shortcut If you want to modify for example the binaries with additional arguments, and have these applied everytime a binary is click 1. add arguments to the script you must first create a shortcut, \-this is because arguments can only be added to shortcuts and not the original .exe. 2. create a shortcut, copy the original .exe, right click wherever you would like the shortcut to be (can be same folder) and select 'Paste shortcut' like so: ![](https://of-scraper.gitbook.io/of-scraper/~gitbook/image?url=https%3A%2F%2F373772994-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FOlkVHnCqS3EnmDo4hGKm%252Fuploads%252FSFfBMXoFHsjdFB6rLFRK%252Fimage.png%3Falt%3Dmedia%26token%3Dc30a6604-a75b-4bfc-85ad-37e6ba100c6d&width=768&dpr=3&quality=100&sign=87d79db6&sv=2) 1. Right click on this new shortcut, select properties and add the arguments to the end of the target field like so: ![](https://of-scraper.gitbook.io/of-scraper/~gitbook/image?url=https%3A%2F%2F373772994-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FOlkVHnCqS3EnmDo4hGKm%252Fuploads%252F7cnRSx2MSmrPmdmUfRZ6%252Fimage.png%3Falt%3Dmedia%26token%3D7242db24-0b52-4736-822a-8681e05351fa&width=768&dpr=3&quality=100&sign=2a982705&sv=2) [PreviousAdvanced Argschevron-left](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/advanced-args) [NextEnable label scanchevron-right](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/enable-label-scan) Last updated 1 year ago * [Windows](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/scripting-tips#windows) * [creating shortcut](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/scripting-tips#creating-shortcut) sun-brightdesktopmoon sun-brightdesktopmoon --- # Shared Options | OF-Scraper [General Program Optionschevron-right](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/common-option-groups) [Shared Scrape and Metadata Check Mode Optionschevron-right](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options) [PreviousCommand Referencechevron-left](https://of-scraper.gitbook.io/of-scraper/command-reference) [NextGeneral Program Optionschevron-right](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/common-option-groups) sun-brightdesktopmoon sun-brightdesktopmoon --- # Liking/Unliking Post | OF-Scraper * * * [hashtag](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/basic-actions/liking-unliking-post#liking-unliking-content) Liking/Unliking content -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Copy ofscraper --action like Copy ofscraper --action unlike * * * [hashtag](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/basic-actions/liking-unliking-post#selecting-posts) Selecting Posts ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ### [hashtag](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/basic-actions/liking-unliking-post#by-post-type) By post type A comma-separated list indicating the posts from which you wish to download content. Copy ofscraper --action like --posts pinned,timeline multiple calls Copy ofscraper --action like --posts pinned --posts timeline ### [hashtag](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/basic-actions/liking-unliking-post#options) Options * timeline * archived * pinned * labels #### [hashtag](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/basic-actions/liking-unliking-post#special-options) Special Options * all (adding this option means scraping timeline,archived,,pinned) * labels\* or labels+ (This means scraping all+labels) #### [hashtag](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/basic-actions/liking-unliking-post#remove-post-type) remove post type You can add remove a post type by prepending the type with a hyphen (-). This will override any other selection, including those from 'all' [hashtag](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/basic-actions/liking-unliking-post#limits) Limits ---------------------------------------------------------------------------------------------------------------------------------------------------------- ### [hashtag](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/basic-actions/liking-unliking-post#onlyfans-rate-limit) Onlyfans rate limit estimated to be around 1000 per day ### [hashtag](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/basic-actions/liking-unliking-post#limit-in-program) Limit in program * Each like/unlike requests will have a delay * Which will prevent the program from just spamming likes to the onlyfans server, and prevent log outs * The limit is about a second, but is randomized [PreviousBasic Actionschevron-left](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/basic-actions) [NextDownloading Contentchevron-right](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/basic-actions/selecting-posts) Last updated 1 year ago * [Liking/Unliking content](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/basic-actions/liking-unliking-post#liking-unliking-content) * [Selecting Posts](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/basic-actions/liking-unliking-post#selecting-posts) * [By post type](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/basic-actions/liking-unliking-post#by-post-type) * [Options](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/basic-actions/liking-unliking-post#options) * [Limits](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/basic-actions/liking-unliking-post#limits) * [Onlyfans rate limit](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/basic-actions/liking-unliking-post#onlyfans-rate-limit) * [Limit in program](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/basic-actions/liking-unliking-post#limit-in-program) sun-brightdesktopmoon sun-brightdesktopmoon --- # Table Management | OF-Scraper [hashtag](https://of-scraper.gitbook.io/of-scraper/content-check-modes/table-management#sorting-the-table) Sorting the table --------------------------------------------------------------------------------------------------------------------------------- Click the column labels on the top ![image](https://of-scraper.gitbook.io/of-scraper/~gitbook/image?url=https%3A%2F%2Fgithub.com%2Fdatawhores%2FOF-Scraper%2Fassets%2F67020411%2F14ca5b89-c9c1-44bc-936e-db4683f81823&width=300&dpr=3&quality=100&sign=1ace064e&sv=2) * First click will be desc * second click will be asc * Alternates after * * * [hashtag](https://of-scraper.gitbook.io/of-scraper/content-check-modes/table-management#filtering-of-the-table) Filtering of the table ------------------------------------------------------------------------------------------------------------------------------------------- ![](https://of-scraper.gitbook.io/of-scraper/~gitbook/image?url=https%3A%2F%2F373772994-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FOlkVHnCqS3EnmDo4hGKm%252Fuploads%252FuARoi3HxLPRQLOtakPOD%252Fimage.png%3Falt%3Dmedia%26token%3Dfdbc411c-db14-4af4-889d-b371726cfd73&width=768&dpr=3&quality=100&sign=b02743c&sv=2) * Toggle the form with Ctrl+S * The filter form contains fields for all the columns in the table. * Clicking 'Filter' applies form values to filter the table. ### [hashtag](https://of-scraper.gitbook.io/of-scraper/content-check-modes/table-management#adding-value-from-table) Adding value from table * Click on a cell to heighlight it * enter semicolon: \[ ;\] or apostrophe: \[ ' \] * the matching field in the filter form, will use the value from the cell * To apply click 'Filter' #### [hashtag](https://of-scraper.gitbook.io/of-scraper/content-check-modes/table-management#example) Example The table a cell with the word 'videos' is highlighted in the mediatype column ![](https://of-scraper.gitbook.io/of-scraper/~gitbook/image?url=https%3A%2F%2F373772994-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FOlkVHnCqS3EnmDo4hGKm%252Fuploads%252FPSb4UwhixoFgKjTHyA0T%252Fimg1.png%3Falt%3Dmedia%26token%3D7c5e1d30-6632-4154-a605-3af513c50217&width=768&dpr=3&quality=100&sign=5b565baa&sv=2) Pressing semicolon (`;`) or apostrophe (\`) confirms your choice and updates the filter form ![](https://of-scraper.gitbook.io/of-scraper/~gitbook/image?url=https%3A%2F%2F373772994-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FOlkVHnCqS3EnmDo4hGKm%252Fuploads%252F5YdQCDXIxG1U7wNJKe7f%252Fimage.png%3Falt%3Dmedia%26token%3Dddf19d5e-e88b-45d2-9f38-bf256cb3ba9d&width=768&dpr=3&quality=100&sign=c22a44be&sv=2) Clicking "Filter" applies the changes, showing only videos in the table. ![](https://of-scraper.gitbook.io/of-scraper/~gitbook/image?url=https%3A%2F%2Fgithub.com%2Fdatawhores%2FOF-Scraper%2Fassets%2F67020411%2F11911f08-2e0c-4759-b033-1fcaf40a5e6f&width=768&dpr=3&quality=100&sign=f9ed7afa&sv=2) image ### [hashtag](https://of-scraper.gitbook.io/of-scraper/content-check-modes/table-management#undefined) ### [hashtag](https://of-scraper.gitbook.io/of-scraper/content-check-modes/table-management#reset-the-table) Reset the table Click on the reset button. Keep in mind, the program saves the current table information in memory, so it won't fetch new data until you restart it ### [hashtag](https://of-scraper.gitbook.io/of-scraper/content-check-modes/table-management#undefined-1) ### [hashtag](https://of-scraper.gitbook.io/of-scraper/content-check-modes/table-management#example-filter-by-all-content-with-the-text-dog) Example filter by all content with the text dog ![](https://of-scraper.gitbook.io/of-scraper/~gitbook/image?url=https%3A%2F%2Fgithub.com%2Fdatawhores%2FOF-Scraper%2Fassets%2F67020411%2F6f03fbe1-2ad9-4296-9b95-7a4cad874e36&width=768&dpr=3&quality=100&sign=6679e176&sv=2) image ### [hashtag](https://of-scraper.gitbook.io/of-scraper/content-check-modes/table-management#undefined-2) ### [hashtag](https://of-scraper.gitbook.io/of-scraper/content-check-modes/table-management#additional-info-about-text-filter) Additional info about text filter Searches uses python regex #### [hashtag](https://of-scraper.gitbook.io/of-scraper/content-check-modes/table-management#searching-case-senstive) Searching case-senstive Upper case trigger a case-sensitive search #### [hashtag](https://of-scraper.gitbook.io/of-scraper/content-check-modes/table-management#searching-for-full-string-match) Searching for full string match This will prompt the search to specifically match text that is exactly "dog," rather than text that contains "dog" within it ![](https://of-scraper.gitbook.io/of-scraper/~gitbook/image?url=https%3A%2F%2Fgithub.com%2Fdatawhores%2FOF-Scraper%2Fassets%2F67020411%2F010b2d9a-a841-4b96-85c2-220a1fbecafc&width=768&dpr=3&quality=100&sign=8d5d0ce8&sv=2) image [PreviousTable Columnschevron-left](https://of-scraper.gitbook.io/of-scraper/content-check-modes/table-columns) [NextPre 3.10.7 filteringchevron-right](https://of-scraper.gitbook.io/of-scraper/content-check-modes/table-management/pre-3.10.7-filtering) Last updated 1 year ago * [Sorting the table](https://of-scraper.gitbook.io/of-scraper/content-check-modes/table-management#sorting-the-table) * [Filtering of the table](https://of-scraper.gitbook.io/of-scraper/content-check-modes/table-management#filtering-of-the-table) * [Adding value from table](https://of-scraper.gitbook.io/of-scraper/content-check-modes/table-management#adding-value-from-table) * [](https://of-scraper.gitbook.io/of-scraper/content-check-modes/table-management#undefined) * [Reset the table](https://of-scraper.gitbook.io/of-scraper/content-check-modes/table-management#reset-the-table) * [](https://of-scraper.gitbook.io/of-scraper/content-check-modes/table-management#undefined-1) * [Example filter by all content with the text dog](https://of-scraper.gitbook.io/of-scraper/content-check-modes/table-management#example-filter-by-all-content-with-the-text-dog) * [](https://of-scraper.gitbook.io/of-scraper/content-check-modes/table-management#undefined-2) * [Additional info about text filter](https://of-scraper.gitbook.io/of-scraper/content-check-modes/table-management#additional-info-about-text-filter) sun-brightdesktopmoon Copy Dog sun-brightdesktopmoon --- # Basic Automation with command-line | OF-Scraper * * * [hashtag](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions#basic-run) Basic Run ----------------------------------------------------------------------------------------------------------------------------- This enables you to choose arguments using the prompt menus. Copy ofscraper [Downloading Contentchevron-right](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/basic-actions/selecting-posts) [Model Filtering/Sortingchevron-right](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/model-selection-sorting) [Liking/Unliking Postchevron-right](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/basic-actions/liking-unliking-post) * * * [hashtag](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions#performing-action-s) Performing action(s) -------------------------------------------------------------------------------------------------------------------------------------------------- circle-info **\--post is a short hand used for all actions unless an --like-area or --download-area command is passed** You can combine these actions together * likes or unlike (only 1 because liking and unliking all posts doesn't make sense) * combine the previous with download This command will download all wall posts for the selected model and simultaneously like all the posts Copy ofscraper --posts all --action like,download This command will only download ### [hashtag](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions#selecting-different-areas) Selecting different areas You can use * like-area specifically for like/unlike action * download-area specifically for the download action This command will download all post, but only like pinned or * * * [hashtag](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions#bypass-all-prompts) Bypass all prompts ----------------------------------------------------------------------------------------------------------------------------------------------- circle-info **You must pick timeline,pinned, or archived to bypass the like area prompt when doing action** **like or unlike** To bypass prompts * Select at least one scraping method * Provide a username(s) * Providing the areas to scan * * * [hashtag](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions#running-command-in-the-background) Running command in the background ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- For daemon mode to function, you must select at least one scraping method circle-info **In daemon mode, if the --username argument isn't provided, it will prompt you to pick a username only once** circle-info **In daemon mode, if the --post or --scrape-paid argument isn't provided, it will prompt you to them only once** The script will operate at least every 10 minutes. If a run extends beyond 10 minutes, the subsequent run begins immediately after the prior one concludes. * * * [hashtag](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions#modifications-to-filename) Modifications to Filename ------------------------------------------------------------------------------------------------------------------------------------------------------------- ### [hashtag](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions#toggle-letter-count-for-textlength) Toggle letter count for textlength By default, 'textlength' corresponds to the maximum number of words you desire. To modify this to represent the maximum number of letters, use the '--letter-count' argument. * * * ### [hashtag](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions#output-options) Output Options [Controlling Output/Logschevron-right](https://of-scraper.gitbook.io/of-scraper/getting-started/controlling-output) [PreviousUsername selection or Fuzzy Searchchevron-left](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/username-selection-or-fuzzy-search) [NextBasic Actionschevron-right](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/basic-actions) Last updated 1 year ago * [Basic Run](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions#basic-run) * [Performing action(s)](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions#performing-action-s) * [Selecting different areas](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions#selecting-different-areas) * [Bypass all prompts](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions#bypass-all-prompts) * [Running command in the background](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions#running-command-in-the-background) * [Modifications to Filename](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions#modifications-to-filename) * [Toggle letter count for textlength](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions#toggle-letter-count-for-textlength) * [Output Options](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions#output-options) sun-brightdesktopmoon Copy ofscraper --posts all --action download Copy ofscraper --download-area all --like-area pinned --action like,download Copy ofscraper --posts all --like-area pinned --action like,download Copy ofscraper --posts all --username ALL --action like,download Copy ofscraper --daemon 10 --posts all --action like,download Copy ofscraper --letter-count sun-brightdesktopmoon --- # Price Filtering/Sort | OF-Scraper circle-exclamation **Fallbacks are to utilized to enable easy sorting of list** circle-exclamation **Fallbacks can be eliminated with proper filtering** * * * [hashtag](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/model-selection-sorting/price-filtering-sort#current-price) Current Price ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- circle-info **Best used with --active-subscription** 1. If there is an active subscription and its subscription price is available, use that price. 2. If there is no active subscription or the subscription price is not available, check for active promotions with a "claimable" tag. Use the lowest subscription price among these promotions. 3. If no "claimable" promotions are available, use the regular subscription price. 4. If none of the above methods provide a valid price, then 0 is used as a fallback * * * [hashtag](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/model-selection-sorting/price-filtering-sort#renewal-price) _Renewal Price_ ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ circle-info **Best used with --active-subscription** 1. Primary Source is the lowest claimable promotional subscription price. 2. If no "claimable" promotions are available, use the regular subscription price. 3. If none of the above methods provide a valid price, then 0 is used as a fallback * * * [hashtag](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/model-selection-sorting/price-filtering-sort#regular-price) Regular Price ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 1. Primary Source is the regular subscription price. 2. If that is not available then, then 0 is used as a fallback * * * [hashtag](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/model-selection-sorting/price-filtering-sort#promo-price) Promo Price ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ circle-info **Best used with --promo-only or --all-promo-only** 1. Primary Source is the lowest promotional subscription price. 2. If no promotions are available, use the regular subscription price. 3. If none of the above methods provide a valid price, then 0 is used as a fallback [PreviousModel Filtering/Sortingchevron-left](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/model-selection-sorting) [NextAdvanced Argschevron-right](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/advanced-args) Last updated 2 years ago * [Current Price](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/model-selection-sorting/price-filtering-sort#current-price) * [Renewal Price](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/model-selection-sorting/price-filtering-sort#renewal-price) * [Regular Price](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/model-selection-sorting/price-filtering-sort#regular-price) * [Promo Price](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/model-selection-sorting/price-filtering-sort#promo-price) sun-brightdesktopmoon sun-brightdesktopmoon --- # Schema | OF-Scraper [hashtag](https://of-scraper.gitbook.io/of-scraper/page/schema#schemas) Schemas ------------------------------------------------------------------------------------ The schema may be extended in future versions, but existing columns will remain for backwards compatibility. ### [hashtag](https://of-scraper.gitbook.io/of-scraper/page/schema#labels) Labels * **id:** INTEGER NOT NULL PRIMARY KEY * **label\_id:** INTEGER * **name:** VARCHAR * **type:** VARCHAR * **post\_id:** INTEGER * **model\_id:** INTEGER * **UNIQUE (post\_id, label\_id, model\_id)** ### [hashtag](https://of-scraper.gitbook.io/of-scraper/page/schema#medias) Medias * **model\_id**: INTEGER * **hash**: VARCHAR * **unlocked**: BOOL * **duration**: VARCHAR * **posted\_at**: TIMESTAMP * **created\_at**: TIMESTAMP * **downloaded**: BOOL * **linked**: BOOL * **preview**: INTEGER * **media\_type**: VARCHAR * **api\_type**: VARCHAR * **size**: INTEGER * **filename**: VARCHAR * **directory**: VARCHAR * **link**: VARCHAR * **post\_id**: INTEGER NOT NULL * **media\_id**: INTEGER * **id**: INTEGER NOT NULL PRIMARY KEY * **UNIQUE (media\_id, model\_id, post\_id)** ### [hashtag](https://of-scraper.gitbook.io/of-scraper/page/schema#messages) Messages * **model\_id:** INTEGER * **user\_id:** INTEGER * **created\_at:** TIMESTAMP * **archived:** BOOLEAN * **paid:** BOOLEAN * **price:** INTEGER * **text:** VARCHAR * **post\_id:** INTEGER NOT NULL * **id:** INTEGER NOT NULL PRIMARY KEY * **UNIQUE (post\_id, model\_id)** ### [hashtag](https://of-scraper.gitbook.io/of-scraper/page/schema#posts) **Posts** * **model\_id:** INTEGER * **created\_at** :TIMESTAMP * **opened:** BOOLEAN * **stream:** BOOLEAN * **pinned:** BOOLEAN * **archived:** BOOLEAN * **paid:** INTEGER * **price:** INTEGER * **text:** VARCHAR * **post\_id:** INTEGER NOT NULL * **id:** INTEGER NOT NULL PRIMARY KEY * **UNIQUE** (**post\_id**, **model\_id**) ### [hashtag](https://of-scraper.gitbook.io/of-scraper/page/schema#stories) Stories * **model\_id:** INTEGER * **created\_at:** TIMESTAMP * **archived:** BOOLEAN * **paid:** INTEGER * **price:** INTEGER * **text:** VARCHAR * **post\_id:** INTEGER NOT NULL * **id:** INTEGER NOT NULL PRIMARY KEY * **UNIQUE (post\_id, model\_id)** ### [hashtag](https://of-scraper.gitbook.io/of-scraper/page/schema#models) Models * **id:** INTEGER NOT NULL PRIMARY KEY * **model\_id:** INTEGER NOT NULL * **UNIQUE model\_id** ### [hashtag](https://of-scraper.gitbook.io/of-scraper/page/schema#profiles) Profiles * **username**: VARCHAR NOT NULL * **user\_id**: INTEGER NOT NULL * **id**: INTEGER NOT NULL PRIMARY KEY * **UNIQUE (user\_id, username)** ### [hashtag](https://of-scraper.gitbook.io/of-scraper/page/schema#products) Products * **id**: INTEGER NOT NULL PRIMARY KEY * **post\_id**: INTEGER NOT NULL * **model\_id**: INTEGER * **title**: VARCHAR * **created\_at**: TIMESTAMP * **archived**: BOOLEAN * **paid**: INTEGER * **price**: INTEGER * **text**: VARCHAR * **UNIQUE (post\_id, model\_id)** ### [hashtag](https://of-scraper.gitbook.io/of-scraper/page/schema#others) Others * `**id**`: INTEGER, NOT NULL, PRIMARY KEY * `**post_id**`: INTEGER, NOT NULL * `**text**`**:** VARCHAR * `**price**`**:** INTEGER * `**paid**`**:** INTEGER * `**archived**`**:** BOOLEAN * `**created_at**`**:** TIMESTAMP * `**model_id**`**:** INTEGER * **UNIQUE (post\_id, model)** ### [hashtag](https://of-scraper.gitbook.io/of-scraper/page/schema#schema_flags) **Schema\_flags** * **flag\_name:** TEXT PRIMARY KEY * **flag\_value:** TEXT [PreviousMetadatachevron-left](https://of-scraper.gitbook.io/of-scraper/page) [NextCreating Metadatachevron-right](https://of-scraper.gitbook.io/of-scraper/page/creating-metadata) Last updated 1 year ago * [Schemas](https://of-scraper.gitbook.io/of-scraper/page/schema#schemas) * [Labels](https://of-scraper.gitbook.io/of-scraper/page/schema#labels) * [Medias](https://of-scraper.gitbook.io/of-scraper/page/schema#medias) * [Messages](https://of-scraper.gitbook.io/of-scraper/page/schema#messages) * [Posts](https://of-scraper.gitbook.io/of-scraper/page/schema#posts) * [Stories](https://of-scraper.gitbook.io/of-scraper/page/schema#stories) * [Models](https://of-scraper.gitbook.io/of-scraper/page/schema#models) * [Profiles](https://of-scraper.gitbook.io/of-scraper/page/schema#profiles) * [Products](https://of-scraper.gitbook.io/of-scraper/page/schema#products) * [Others](https://of-scraper.gitbook.io/of-scraper/page/schema#others) * [Schema\_flags](https://of-scraper.gitbook.io/of-scraper/page/schema#schema_flags) sun-brightdesktopmoon sun-brightdesktopmoon --- # Downloading Text Files | OF-Scraper circle-info **Text files must be handled differently since there are no text media uploads; instead, they are based on the posts and tied to multiple media** 1. **Download Text only** * Set the mediatype to only text via the --mediatypes arg or config file * This will work in download and manual,content check mode as well, It will not work in like/unlike mode 1. **Download Text with other media** * Set the mediatype to include text via the --mediatypes arg or config file * Again This will work in download and manual,content check mode as well, It will not work in like/unlike mode [PreviousDownloading Contentchevron-left](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/basic-actions/selecting-posts) [NextDownloading Purchases From Deleted Modelschevron-right](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/basic-actions/selecting-posts/deleted-models) Last updated 1 year ago sun-brightdesktopmoon sun-brightdesktopmoon --- # Values to Pick | OF-Scraper [hashtag](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/performance-options/values-to-pick#note-on-values-to-pick) Note on values to pick -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ### [hashtag](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/performance-options/values-to-pick#threads) Threads * It's recommended to use **0 to 3 threads** for downloads. * **0 threads** means downloads will occur on the main program thread. * Using a combination of console debug (or higher log levels) and download progress bars might benefit from more threads. * However, in newer versions, the performance difference between different thread counts is usually minimal or non-existent. * It is recommended to log trace level to log file instead of adding more threads with console output ### [hashtag](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/performance-options/values-to-pick#sems) Sems * It's recommended to limit total downloads across all threads to **around 15** * This translates to **5 sems** if using 3 threads. [PreviousPerformance Optionschevron-left](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/performance-options) [NextScript Optionschevron-right](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/script-options) Last updated 1 year ago * [Note on values to pick](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/performance-options/values-to-pick#note-on-values-to-pick) * [Threads](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/performance-options/values-to-pick#threads) * [Sems](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/performance-options/values-to-pick#sems) sun-brightdesktopmoon sun-brightdesktopmoon --- # Advanced Download Options | OF-Scraper [hashtag](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/download-options/advanced-download-options#backend) backend ---------------------------------------------------------------------------------------------------------------------------------------------------------- Both aio and httpx can handle downloads and requests. Normally aio is faster,so switching is only required if your having issues Historically, this has mostly been the case Mac users, and even then, only a small group among them [hashtag](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/download-options/advanced-download-options#downloadbars) downloadbars -------------------------------------------------------------------------------------------------------------------------------------------------------------------- whether to show download progress bars or not Disabling these can improve performance [hashtag](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/download-options/advanced-download-options#temp_dir) temp\_dir ------------------------------------------------------------------------------------------------------------------------------------------------------------- circle-info **If not set the the final download directory is used to hold temp files** This overrides the temporary directory used during download [PreviousMedia Filtering Optionschevron-left](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/download-options/media-filtering-options) [NextBinaries Optionschevron-right](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/binaries-options) Last updated 1 year ago * [backend](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/download-options/advanced-download-options#backend) * [downloadbars](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/download-options/advanced-download-options#downloadbars) * [temp\_dir](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/download-options/advanced-download-options#temp_dir) sun-brightdesktopmoon sun-brightdesktopmoon --- # Advanced Args | OF-Scraper * * * ### [hashtag](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/advanced-args#profile) \--profile You can combine this with **'--config'**. This option holds precedence over the currently active profile within the configuration file Copy Change location of profile * * * ### [hashtag](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/advanced-args#users-first) \--users-first This adjustment alters the download order to prioritize fetching links for all selected users initially. While this may lead to a longer wait for downloads to commence, it can prove beneficial in specific scenarios. Copy ofscraper --user-first * * * ### [hashtag](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/advanced-args#multiple-configs) multiple configs Copy ofscraper --config folder or file The program attempts to intelligently guess the location of your config folder. You can observe the locations it's scanning in the table. The checks will cease upon reaching a successful match (True) or reaching the failback check. Check config file if True config folder if True \--config is not passed $HOME/.config/ofscraper/config.json $HOME/.config/ofscraper/ config\_arg is an existing file config\_arg config\_arg parentdir config arg is an existing dir config\_arg/config.json config\_arg config arg has no extension config\_arg/config.json config\_arg config\_arg ends is just a single file i.e test.json $HOME/.config/ofscraper/config\_arg $HOME/.config/ofscraper Failback always true Note: The only option is for config\_arg to be something like /home/me/test.json config\_arg config\_arg parentdir #### [hashtag](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/advanced-args#shared-information) Shared information Two configs within the same folder can share * Profiles * log files * cache * authorization #### [hashtag](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/advanced-args#duplication-check) Duplication check This relies on your configuration settings. If two configurations share identical metadata settings, duplicates won't exist between those configurations. * * * ### [hashtag](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/advanced-args#multiple-profile-auth) multiple profile auth Authentication for various accounts is managed via profiles. You can modify the default profile either through the configuration or by using the '--profile' argument. #### [hashtag](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/advanced-args#example) Example The profile is consistently located within the parent folder of the configuration file and is always appended with '\_profile'. Hence, in this scenario, the profile would be * * * ### [hashtag](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/advanced-args#no-cache) \--no-cache Disables all caching mechanisms and removes retrieval of past data for all data As a result, synchronous processing is enforced for APIs to ensure each request is completed before the next one begins, since processing multiple API requests concurrently relies on past data This will also disable the use of cache to speed up decryption key retrieval ### [hashtag](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/advanced-args#no-api-cache) \-no-api-cache Similar to --no-cache, but only disables caching mechanisms and removes retrieval of past data for API use only As a result, synchronous processing is enforced for APIs to ensure each request is completed before the next one begins, since processing multiple API requests concurrently relies on past data. [PreviousPrice Filtering/Sortchevron-left](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/model-selection-sorting/price-filtering-sort) [NextScripting tipschevron-right](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/scripting-tips) Last updated 1 year ago * [\--profile](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/advanced-args#profile) * [\--users-first](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/advanced-args#users-first) * [multiple configs](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/advanced-args#multiple-configs) * [multiple profile auth](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/advanced-args#multiple-profile-auth) * [\--no-cache](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/advanced-args#no-cache) * [\-no-api-cache](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/advanced-args#no-api-cache) sun-brightdesktopmoon Copy ofscraper --profile test Copy config file location=/home/test/.config/ofscraper/config.json Copy profile location=/home/test/.config/ofscraper/test_profile Copy ofscraper --no-cache Copy ofscraper --no-api-cache sun-brightdesktopmoon --- # Performance Options | OF-Scraper [hashtag](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/performance-options#thread_count) thread\_count ---------------------------------------------------------------------------------------------------------------------------------------------- The count of threads or workers designated for downloading Copy min=0 max=system 0 threads: This is a special setting indicating that you want to use the main program thread for downloading as well ### [hashtag](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/performance-options#caveats) Caveats * It's important to note that if the thread count exceeds 0 but the number of downloads for a model doesn't equal or surpass 5 downloads per thread, only the main thread will handle the downloading process. * Additionally, the maximum number of usable threads is determined by your system, irrespective of the configuration file settings. * on Windows and Linux The number of unused threads is provided. * However, on Mac, the operating system lacks this specific OS API, so the maximum is established as the total number of threads on the system * * * [hashtag](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/performance-options#download-sems) download-sems ----------------------------------------------------------------------------------------------------------------------------------------------- Max concurrent number of downloads per thread If threads is the number of workers for downloading, then download-sems is the number of tasks each worker can process at a time * * * [hashtag](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/performance-options#download_limit) download\_limit -------------------------------------------------------------------------------------------------------------------------------------------------- Maximum download speed per second for each thread **Accepts** * human readable inputs * int representing the number of bytes per second [PreviousCDM Optionschevron-left](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/key-option) [NextValues to Pickchevron-right](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/performance-options/values-to-pick) Last updated 1 year ago * [thread\_count](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/performance-options#thread_count) * [Caveats](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/performance-options#caveats) * [download-sems](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/performance-options#download-sems) * [download\_limit](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/performance-options#download_limit) sun-brightdesktopmoon sun-brightdesktopmoon --- # FAQ/Common Issues | OF-Scraper [hashtag](https://of-scraper.gitbook.io/of-scraper/faq#id-1.-missing-post) 1\. Missing Post ------------------------------------------------------------------------------------------------ Certain models delete content, which restricts OF-Scraper from accessing this specific content. * * * [hashtag](https://of-scraper.gitbook.io/of-scraper/faq#id-2.-number-of-users-doesnt-match-account-number) 2. Number of users doesn't match account number -------------------------------------------------------------------------------------------------------------------------------------------------------------- [![Logo](https://of-scraper.gitbook.io/of-scraper/~gitbook/image?url=https%3A%2F%2Fgithub.com%2Ffluidicon.png&width=20&dpr=3&quality=100&sign=dc891f14&sv=2)429 and model missing · Issue #224 · datawhores/OF-ScraperGitHubchevron-right](https://github.com/datawhores/OF-Scraper/issues/224#issuecomment-1757367312) Every time you scroll down, the API requests 10 names, but frequently, fewer than 10 names are returned ### [hashtag](https://of-scraper.gitbook.io/of-scraper/faq#example) Example Account: 400 total subs **Active Accounts** This figure is expected to be more accurate, but it seems to update according to a schedule, so it might be slightly off until synchronization occurs. **Expired and ALL** The count here can be significantly impacted by expired subscriptions. For instance, an account may indicate it has 400 subscribers, but as OnlyFans iterates through each offset \[0, 10, 20, 30,...390\], some offsets won't return 10 numbers, ultimately reducing the final count. * * * [hashtag](https://of-scraper.gitbook.io/of-scraper/faq#id-3.-missing-models) 3\. Missing Models ---------------------------------------------------------------------------------------------------- Before creating an issue, ensure that you're using the latest version available. * * * [hashtag](https://of-scraper.gitbook.io/of-scraper/faq#id-4.-lots-of-tempvideo-or-tempaudio-files) 4. Lots of tempvideo or tempaudio files ----------------------------------------------------------------------------------------------------------------------------------------------- Ensure your CDM (Content Decryption Module) is set up correctly [![Logo](https://of-scraper.gitbook.io/of-scraper/~gitbook/image?url=https%3A%2F%2Fof-scraper.gitbook.io%2Fof-scraper%2F%7Egitbook%2Ficon%3Fsize%3Dsmall%26theme%3Dlight&width=20&dpr=3&quality=100&sign=ff8d559f&sv=2)CDM Setup | OF-Scraperof-scraper.gitbook.iochevron-right](https://of-scraper.gitbook.io/of-scraper/cdm-options) * * * [hashtag](https://of-scraper.gitbook.io/of-scraper/faq#id-5.-something-is-not-working) 5. Something is not working ----------------------------------------------------------------------------------------------------------------------- Run the command to display the output in the console Alternatively, run the command to output to your configuration folder. Send the logs to a Discord channel or create a GitHub issue * * * [hashtag](https://of-scraper.gitbook.io/of-scraper/faq#id-6.-mp4decrypt-and-ffmpeg) 6\. MP4Decrypt and FFMPEG ------------------------------------------------------------------------------------------------------------------ The mentioned programs below are necessary for downloading content, and they are compatible across various platforms. [![Logo](https://of-scraper.gitbook.io/of-scraper/~gitbook/image?url=https%3A%2F%2Fffmpeg.org%2Ffavicon.ico&width=20&dpr=3&quality=100&sign=c1e877ce&sv=2)Download FFmpegffmpeg.orgchevron-right](https://ffmpeg.org/download.html) [![Logo](https://of-scraper.gitbook.io/of-scraper/~gitbook/image?url=https%3A%2F%2Fwww.bento4.com%2Fimages%2Ffavicon.png&width=20&dpr=3&quality=100&sign=4529379a&sv=2)mp4decrypt - Bento4www.bento4.comchevron-right](https://www.bento4.com/documentation/mp4decrypt/) #### [hashtag](https://of-scraper.gitbook.io/of-scraper/faq#binaries) Binaries circle-info **If manually downloading simply provide OF-Scraper with the full path to the program in the configuration file** [Binaries Optionschevron-right](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/binaries-options) chevron-rightCopying path on windows [hashtag](https://of-scraper.gitbook.io/of-scraper/faq#copying-path-on-windows) You can use the following software if windows does not provide an easy way to do this [https://pathcopycopy.github.io/arrow-up-right](https://pathcopycopy.github.io/) * * * [hashtag](https://of-scraper.gitbook.io/of-scraper/faq#id-7.-ofscraper-not-found) 7. ofscraper not found ------------------------------------------------------------------------------------------------------------- This generally means that you need to update your PATH * * * [hashtag](https://of-scraper.gitbook.io/of-scraper/faq#id-8.-can-this-download-locked-content) 8\. Can this download locked content ---------------------------------------------------------------------------------------------------------------------------------------- Yes.....if it was unlocked before. * * * [hashtag](https://of-scraper.gitbook.io/of-scraper/faq#id-9.-status-down) 9. Status Down --------------------------------------------------------------------------------------------- This usually indicates that your authentication information is incorrect, or you've been signed out from OnlyFans * * * [hashtag](https://of-scraper.gitbook.io/of-scraper/faq#id-10.-404-response) 10. 404 Response ------------------------------------------------------------------------------------------------- This could imply that the content you're attempting to scrape is no longer available. It might also signal that the model has deleted her account, making it inaccessible on the platform. * * * [hashtag](https://of-scraper.gitbook.io/of-scraper/faq#id-11.-request-taking-a-long-time) 11. Request taking a long time ----------------------------------------------------------------------------------------------------------------------------- If a request fails, OF-Scraper will pause and make several retry attempts. Frequent retries could extend the duration of certain runs. circle-info **Version 3.7 has a built in timelimit on requests to prevent them for being stuck forever However you can change the const value to adjust these values to your need** * * * [hashtag](https://of-scraper.gitbook.io/of-scraper/faq#id-12.-429-response) 12\. 429 Response -------------------------------------------------------------------------------------------------- * This error may stem from excessive requests, particularly when auto-liking/unliking. * The maximum appears to be 1000 per day. * * * [hashtag](https://of-scraper.gitbook.io/of-scraper/faq#id-13.-409-response) 13\. 409 Response -------------------------------------------------------------------------------------------------- You might observe cases where content is unavailable on the OnlyFans site, often indicated by placeholders or non-loading media. VPN users might experience this based on the VPN server they're connected to. Consequently, this also affects the API and OF-Scraper's ability to scrape content. The most effective solution would be to switch VPN servers or allow some time for the situation to reset. * * * [hashtag](https://of-scraper.gitbook.io/of-scraper/faq#id-14.-scrape-entire-paid-page-or-scape-paid-should-i-do-it) 14. Scrape entire paid page or --scape-paid should I do it ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- The amount of content you've purchased largely determines this #### [hashtag](https://of-scraper.gitbook.io/of-scraper/faq#does-the-regular-scraper-get-purchased-content) Does the regular scraper get purchased content? Yes, if you've chosen "purchased," all purchased content for the selected models will be scraped. This is accomplished by using the models' usernames as input on the purchase page. #### [hashtag](https://of-scraper.gitbook.io/of-scraper/faq#then-why-the-prompt) Then why the prompt Certain models may have deleted accounts, making it necessary to scan the entire purchase page to access their purchases. Since they lack a name to use as input, a thorough scan becomes necessary. #### [hashtag](https://of-scraper.gitbook.io/of-scraper/faq#when-would-you-use-to-use-it) When would you use to use it Personally, I rarely use this setting. However, if your scans are infrequent, it might be a good idea to turn it on. I'd also recommend using it during your initial scan. #### [hashtag](https://of-scraper.gitbook.io/of-scraper/faq#when-would-you-not-use-it) When would you not use it If you're conducting frequent scans, such as one per day, it's alright to turn it off for most scans * * * [hashtag](https://of-scraper.gitbook.io/of-scraper/faq#id-15.-ffmpeg-shared-library-not-found-error) 15\. FFmpeg shared library not found Error ---------------------------------------------------------------------------------------------------------------------------------------------------- Example: : version \`GLIBCXX\_3.4.29' not found ### [hashtag](https://of-scraper.gitbook.io/of-scraper/faq#cause) Cause Missing shared libraries This issue appears to only affect Linux systems ### [hashtag](https://of-scraper.gitbook.io/of-scraper/faq#fix) Fix Obtain the GPL non-shared release version. [![Logo](https://of-scraper.gitbook.io/of-scraper/~gitbook/image?url=https%3A%2F%2Fgithub.com%2Ffluidicon.png&width=20&dpr=3&quality=100&sign=dc891f14&sv=2)Releases · BtbN/FFmpeg-BuildsGitHubchevron-right](https://github.com/BtbN/FFmpeg-Builds/releases) ### [hashtag](https://of-scraper.gitbook.io/of-scraper/faq#some-info) Some Info * [https://superuser.com/questions/1712179/which-version-of-ffmpeg-is-the-latestarrow-up-right](https://superuser.com/questions/1712179/which-version-of-ffmpeg-is-the-latest) * using the version in your Linux Repo may not work * * * [hashtag](https://of-scraper.gitbook.io/of-scraper/faq#id-16.-cdm-issues) 16\. CDM Issues ---------------------------------------------------------------------------------------------- [CDM issueschevron-right](https://of-scraper.gitbook.io/of-scraper/cdm-options/cdm-issues) [hashtag](https://of-scraper.gitbook.io/of-scraper/faq#id-17.-trouble-login-in) 17\. Trouble login in ---------------------------------------------------------------------------------------------------------- [Authchevron-right](https://of-scraper.gitbook.io/of-scraper/getting-started/auth) [Advanced config optionschevron-right](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/advanced-config-options) 1. Support For Network Drives [PreviousCDM issueschevron-left](https://of-scraper.gitbook.io/of-scraper/cdm-options/cdm-issues) [NextPage 1chevron-right](https://of-scraper.gitbook.io/of-scraper/faq/page-1) Last updated 10 months ago * [1\. Missing Post](https://of-scraper.gitbook.io/of-scraper/faq#id-1.-missing-post) * [2\. Number of users doesn't match account number](https://of-scraper.gitbook.io/of-scraper/faq#id-2.-number-of-users-doesnt-match-account-number) * [Example](https://of-scraper.gitbook.io/of-scraper/faq#example) * [3\. Missing Models](https://of-scraper.gitbook.io/of-scraper/faq#id-3.-missing-models) * [4\. Lots of tempvideo or tempaudio files](https://of-scraper.gitbook.io/of-scraper/faq#id-4.-lots-of-tempvideo-or-tempaudio-files) * [5\. Something is not working](https://of-scraper.gitbook.io/of-scraper/faq#id-5.-something-is-not-working) * [6\. MP4Decrypt and FFMPEG](https://of-scraper.gitbook.io/of-scraper/faq#id-6.-mp4decrypt-and-ffmpeg) * [7\. ofscraper not found](https://of-scraper.gitbook.io/of-scraper/faq#id-7.-ofscraper-not-found) * [8\. Can this download locked content](https://of-scraper.gitbook.io/of-scraper/faq#id-8.-can-this-download-locked-content) * [9\. Status Down](https://of-scraper.gitbook.io/of-scraper/faq#id-9.-status-down) * [10\. 404 Response](https://of-scraper.gitbook.io/of-scraper/faq#id-10.-404-response) * [11\. Request taking a long time](https://of-scraper.gitbook.io/of-scraper/faq#id-11.-request-taking-a-long-time) * [12\. 429 Response](https://of-scraper.gitbook.io/of-scraper/faq#id-12.-429-response) * [13\. 409 Response](https://of-scraper.gitbook.io/of-scraper/faq#id-13.-409-response) * [14\. Scrape entire paid page or --scape-paid should I do it](https://of-scraper.gitbook.io/of-scraper/faq#id-14.-scrape-entire-paid-page-or-scape-paid-should-i-do-it) * [15\. FFmpeg shared library not found Error](https://of-scraper.gitbook.io/of-scraper/faq#id-15.-ffmpeg-shared-library-not-found-error) * [Cause](https://of-scraper.gitbook.io/of-scraper/faq#cause) * [Fix](https://of-scraper.gitbook.io/of-scraper/faq#fix) * [Some Info](https://of-scraper.gitbook.io/of-scraper/faq#some-info) * [16\. CDM Issues](https://of-scraper.gitbook.io/of-scraper/faq#id-16.-cdm-issues) * [17\. Trouble login in](https://of-scraper.gitbook.io/of-scraper/faq#id-17.-trouble-login-in) sun-brightdesktopmoon Copy ofscraper --output debug Copy ofscraper --log debug Copy check formatting of auth file Copy change dynamic mode default Copy Network Drives are have limited support for storing Media, but are not supported at all for config files are db. Those should be stored on a local drive sun-brightdesktopmoon --- # Model Filtering/Sorting | OF-Scraper * * * [hashtag](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/model-selection-sorting#filter-sort-list-by-price) Filter/Sort List By Price ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- [Price Filtering/Sortchevron-right](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/model-selection-sorting/price-filtering-sort) * * * [hashtag](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/model-selection-sorting#selecting-specific-models-from-command-line) Selecting Specific models from command-line ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- You can provide a comma-separated list indicating the models you wish to scrape Copy ofscraper --username name1,name #### [hashtag](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/model-selection-sorting#selecting-all-users) Selecting all users Copy ofscraper --username ALL 'ALL' is influenced by filters, and it is case-sensitive. * * * [hashtag](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/model-selection-sorting#filtering-username-list) Filtering username list --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- The following settings can be dynamically modified if using prompts. [Using Promptschevron-right](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/using-prompts) Furthermore, this adjustment doesn't alter the retrieval of usernames; it solely impacts the subset of usernames that are displayed > If you wish to retrieve specific usernames, set up a collection on OnlyFans, then utilize the '--userlist' or '--blacklist' arguments accordingly ### [hashtag](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/model-selection-sorting#version-greater-than-2.1) Version >2.1 Now, '--username' takes precedence over any filters. Consequently, only the selected '--usernames' will be utilized, with the exception of 'ALL', which can still be filtered. ### [hashtag](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/model-selection-sorting#restrict-by-account-type) Restrict by account type This will limit the program to exclusively interact with and display free accounts ### [hashtag](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/model-selection-sorting#restrict-by-subscription-status) Restrict by subscription status This demonstrates scraping messages from subscriptions that have expired ### [hashtag](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/model-selection-sorting#restrict-by-renewal-status) Restrict by renewal status You can utilize this option to exclusively scrape active accounts, considering the renewal status of their subscriptions. * * * ### [hashtag](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/model-selection-sorting#combining-filters) Combining filters Filters are commonly employed to scrape accounts that are scheduled for expiration. Alternatively, you might choose to scrape only free accounts with active subscriptions ### [hashtag](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/model-selection-sorting#exclude-specific-models) Exclude specific models Please note that this takes precedence over '--username', including '--username ALL' ### [hashtag](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/model-selection-sorting#filter-by-regular-price) Filter by regular price [Price Filtering/Sortchevron-right](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/model-selection-sorting/price-filtering-sort) * * * ### [hashtag](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/model-selection-sorting#advanced-filtering) Advanced filtering [User List Filter Optionschevron-right](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/account-filter-args) * * * [hashtag](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/model-selection-sorting#sorting-username-list) Sorting username list ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- The default setting is to sort alphabetically by name in ascending order > Sorting effects the order of scraping, and not just the order that they appear in the prompt menu ### [hashtag](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/model-selection-sorting#sort-by-account-expiring-date) sort by account expiring date ### [hashtag](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/model-selection-sorting#sort-by-account-subscribed-date) sort by account subscribed date #### [hashtag](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/model-selection-sorting#sort-by-account-name) sort by account name ### [hashtag](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/model-selection-sorting#sort-by-promotional-prices) sort by promotional prices [Price Filtering/Sortchevron-right](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/model-selection-sorting/price-filtering-sort) ### [hashtag](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/model-selection-sorting#desc-option) desc option By default, the sorting is in ascending order. Utilizing this changes the sorting to descending order. * * * [hashtag](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/model-selection-sorting#retrieving-specific-list) Retrieving specific list ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- This option enables switching from the primary list of OnlyFans accounts to a previously designated collection of accounts. You have the ability to merge multiple lists * * * [hashtag](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/model-selection-sorting#blocking-list-of-names) Blocking list of Names ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Collections offer the functionality to block a list of names > Please note that this takes precedence over the '--userlist' option and also 'ALL' parameter [PreviousMultiple Actionschevron-left](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/basic-actions/multiple-actions) [NextPrice Filtering/Sortchevron-right](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/model-selection-sorting/price-filtering-sort) Last updated 1 year ago * [Filter/Sort List By Price](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/model-selection-sorting#filter-sort-list-by-price) * [Selecting Specific models from command-line](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/model-selection-sorting#selecting-specific-models-from-command-line) * [Filtering username list](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/model-selection-sorting#filtering-username-list) * [Version >2.1](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/model-selection-sorting#version-greater-than-2.1) * [Restrict by account type](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/model-selection-sorting#restrict-by-account-type) * [Restrict by subscription status](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/model-selection-sorting#restrict-by-subscription-status) * [Restrict by renewal status](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/model-selection-sorting#restrict-by-renewal-status) * [Combining filters](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/model-selection-sorting#combining-filters) * [Exclude specific models](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/model-selection-sorting#exclude-specific-models) * [Filter by regular price](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/model-selection-sorting#filter-by-regular-price) * [Advanced filtering](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/model-selection-sorting#advanced-filtering) * [Sorting username list](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/model-selection-sorting#sorting-username-list) * [sort by account expiring date](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/model-selection-sorting#sort-by-account-expiring-date) * [sort by account subscribed date](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/model-selection-sorting#sort-by-account-subscribed-date) * [sort by promotional prices](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/model-selection-sorting#sort-by-promotional-prices) * [desc option](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/model-selection-sorting#desc-option) * [Retrieving specific list](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/model-selection-sorting#retrieving-specific-list) * [Blocking list of Names](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/model-selection-sorting#blocking-list-of-names) sun-brightdesktopmoon Copy ofscraper --current-price free --username ALL Copy ofscraper --active-subscription --posts messages --username ALL --action download Copy ofscraper --renewal-off --username ALL Copy ofscraper --current-price paid --active-subscription --renewal-off --username ALL Copy ofscraper --current-price free --active-subscription --username ALL Copy ofscraper --excluded-username username Copy ofscraper --regular-price paid Copy ofscraper --sort expiring Copy ofscraper --sort subscribed Copy ofscraper --sort name Copy ofscraper --sort promo-price Copy ofscraper --sort price --desc Copy ofscraper --userlist "tiktok" Copy ofscraper --userlist "tiktok" --userlist "tiktok2" Copy ofscraper --blacklist "tiktok" sun-brightdesktopmoon --- # General Program Options | OF-Scraper These arguments provide functionalities that can be applied across different many different subcommands [PreviousShared Optionschevron-left](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options) [NextProgram Optionschevron-right](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/common-option-groups/global-args) Last updated 1 year ago sun-brightdesktopmoon sun-brightdesktopmoon --- # Downloading Content | OF-Scraper [hashtag](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/basic-actions/selecting-posts#selecting-posts) Selecting Posts ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- ### [hashtag](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/basic-actions/selecting-posts#by-post-type) By post type A comma-separated list indicating the posts from which you wish to download content. Copy ofscraper --action download --posts highlights,timeline multiple calls Copy ofscraper --action download --posts highlights --posts timeline Duplicates will be removed ### [hashtag](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/basic-actions/selecting-posts#options) Options * profile * highlights * timeline * archived * stories * messages * purchased * pinned * labels #### [hashtag](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/basic-actions/selecting-posts#special-options) Special Options * all (adding this option means scraping highlights,timeline,archived,stories,pinned,purchased and messages) * labels\* or labels+ (This means scraping all+labels) #### [hashtag](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/basic-actions/selecting-posts#remove-post-type) remove post type You can add remove a post type by prepending the type with a hyphen (-). This will remove any selection, including those from all * * * [hashtag](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/basic-actions/selecting-posts#bypass-dupe-check) Bypass dupe check --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- By default, content is stored in a database to prevent duplicate downloads. If you wish to download all available content for the current model, include the '--force-all' argument. * * * [hashtag](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/basic-actions/selecting-posts#filter-post-by-date) Filter Post by Date ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- circle-info **x should be a valid date** ### [hashtag](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/basic-actions/selecting-posts#before) Before Filters posts on or before the specified date. It functions for downloading, liking, and unliking posts. ### [hashtag](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/basic-actions/selecting-posts#after) After Filter posts on or after the specified date. It functions for downloading, liking, and unliking posts. ### [hashtag](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/basic-actions/selecting-posts#valid-inputs) **Valid Inputs** circle-info **Read arrow documentation/repo for all valid inputs** `YYYY-MM-DD, YYYY-M-DD, YYYY-M-D, YYYY/MM/DD, YYYY/M/DD, YYYY/M/D, YYYY.MM.DD, YYYY.M.DD, YYYY.M.D, YYYYMMDD, YYYY-DDDD, YYYYDDDD, YYYY-MM, YYYY/MM, YYYY.MM, YYYY` ### [hashtag](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/basic-actions/selecting-posts#dehumanize-strings) Dehumanize Strings We can convert certain strings into dates. The general rules seem to be (number) (timeframe) (ago) **timeframes** * week * month * year * second * day You can enhance granularity by including a comma. When utilizing debuggers, the output will display in UTC, offering greater detail. * * * [hashtag](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/basic-actions/selecting-posts#filtering-timed-post-promotional) Filtering Timed Post (Promotional) ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- skip all timed post ### [hashtag](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/basic-actions/selecting-posts#filtering-by-text-content) Filtering by text content This feature can accept regex patterns, but you might need to enclose the string in quotes to escape the input properly. Additionally, using a capital letter will initiate a case-sensitive search. #### [hashtag](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/basic-actions/selecting-posts#filter) Filter This will include only post that match the provided regex pattern #### [hashtag](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/basic-actions/selecting-posts#neg-filter) Neg Filter: This will exclude any posts that match the provided regex pattern. * * * [hashtag](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/basic-actions/selecting-posts#search-entire-paid-page) Search entire paid page --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- This option is designed to manage situations like when a model account has been deleted To exclusively scrape the paid page and skip other prompts [PreviousLiking/Unliking Postchevron-left](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/basic-actions/liking-unliking-post) [NextDownloading Text Fileschevron-right](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/basic-actions/selecting-posts/downloading-text-files) Last updated 15 days ago * [Selecting Posts](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/basic-actions/selecting-posts#selecting-posts) * [By post type](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/basic-actions/selecting-posts#by-post-type) * [Options](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/basic-actions/selecting-posts#options) * [Bypass dupe check](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/basic-actions/selecting-posts#bypass-dupe-check) * [Filter Post by Date](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/basic-actions/selecting-posts#filter-post-by-date) * [Before](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/basic-actions/selecting-posts#before) * [After](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/basic-actions/selecting-posts#after) * [Valid Inputs](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/basic-actions/selecting-posts#valid-inputs) * [Dehumanize Strings](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/basic-actions/selecting-posts#dehumanize-strings) * [Filtering Timed Post (Promotional)](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/basic-actions/selecting-posts#filtering-timed-post-promotional) * [Filtering by text content](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/basic-actions/selecting-posts#filtering-by-text-content) * [Search entire paid page](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/basic-actions/selecting-posts#search-entire-paid-page) sun-brightdesktopmoon Copy ofscraper --action download --force-all Copy ofscraper --action download --before X Copy ofscraper --action download --after X Copy 1 year ago, 1 month ago Copy ofscraper --action download --skip-timed Copy ofscraper --action download --filter X Copy ofscraper --action download --negfilter X Copy ofscraper --action download --scrape-paid Copy ofscraper --scrape-paid sun-brightdesktopmoon --- # Main Scraper Options | OF-Scraper [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/main-scraper-options#syntax) Syntax ------------------------------------------------------------------------------------------------------------- Copy ofscraper [options] ### [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/main-scraper-options#examples) examples Copy ofscraper or Copy ofscraper --username ALL [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/main-scraper-options#general-options) General Options ------------------------------------------------------------------------------------------------------------------------------- [General Optionschevron-right](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/general-options) [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/main-scraper-options#options) Options --------------------------------------------------------------------------------------------------------------- [Shared Scrape and Metadata Check Mode Optionschevron-right](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options) [PreviousAdvanced Search & Processing Optionschevron-left](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/advanced-search-and-processing-options) [NextMetadata Check Mode Optionschevron-right](https://of-scraper.gitbook.io/of-scraper/command-reference/metadata-check-mode-options) Last updated 1 year ago * [Syntax](https://of-scraper.gitbook.io/of-scraper/command-reference/main-scraper-options#syntax) * [examples](https://of-scraper.gitbook.io/of-scraper/command-reference/main-scraper-options#examples) * [General Options](https://of-scraper.gitbook.io/of-scraper/command-reference/main-scraper-options#general-options) * [Options](https://of-scraper.gitbook.io/of-scraper/command-reference/main-scraper-options#options) sun-brightdesktopmoon sun-brightdesktopmoon --- # Filename Modification Options | OF-Scraper [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/common-option-groups/filename-modification-options#filename-modification-parameters) Filename Modification Parameters -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ### [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/common-option-groups/filename-modification-options#g-original) \-g, --original * **Disables:** Truncation of long file paths. * **Default:** `None` (paths are truncated by default) * **Use case:** You might want to use this option if you need to preserve the entire original file path for organizational purposes. ### [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/common-option-groups/filename-modification-options#tt-text-type-argument) \-tt, --text-type \[argument\] * **Sets:** The type of unit used to determine the maximum length of the filename text placeholder * **Possible choices:** * `word`: (default) Splits the filename text placeholder into words and considers word count for truncation. * `letter`: Considers the total number of characters in the filename text placeholder for truncation. * **Example:** With `-tt letter` and `-tl 10`, text placeholder would be truncated to a maximum of 10 characters ### [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/common-option-groups/filename-modification-options#sr-space-replacer-argument-optional) \-sr, --space-replacer \[argument\] (optional) * **Replaces:** Spaces in the filename text with the specified character. * **Default:** `None` (spaces are left as spaces) * **Use case:** This can be helpful for creating filenames compatible with certain file systems or applications that disallow spaces. * **Example:** With `-sr _`, spaces would be replaced with underscores (e.g., "This File.txt" becomes "This\_File.txt"). ### [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/common-option-groups/filename-modification-options#tl-textlength-argument) \-tl, --textlength \[argument\] * **Sets:** The maximum length of the filename text placeholder * **Default:** `None` (no limit on text length) * **Effect:** Truncates text placeholders that exceed the specified length. * **Use case:** This is useful for ensuring filenames adhere to character limitations imposed by some file systems, as text placeholders can easily go over OS limits **Note:** * These options work together to modify the final filename. * If truncation occurs, it will be based on the chosen `-tt` type (word or letter) ,the provided `-tl` length, and the current OS [PreviousLogging Optionschevron-left](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/common-option-groups/logging) [NextMedia Filters Optionschevron-right](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/common-option-groups/media-filters-options) Last updated 1 year ago * [Filename Modification Parameters](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/common-option-groups/filename-modification-options#filename-modification-parameters) * [\-g, --original](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/common-option-groups/filename-modification-options#g-original) * [\-tt, --text-type \[argument\]](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/common-option-groups/filename-modification-options#tt-text-type-argument) * [\-sr, --space-replacer \[argument\] (optional)](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/common-option-groups/filename-modification-options#sr-space-replacer-argument-optional) * [\-tl, --textlength \[argument\]](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/common-option-groups/filename-modification-options#tl-textlength-argument) sun-brightdesktopmoon sun-brightdesktopmoon --- # Script Options | OF-Scraper [Scriptschevron-right](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/scripts) [hashtag](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/script-options#post-action-script-post_download_script) Post Action Script (`post_download_script`) -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- A script that runs after an action for a user has completed. This script can be configured via the `--after-action-script` command-line argument or the `after_action_script` setting in the program's configuration. ### [hashtag](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/script-options#trigger-conditions) **Trigger Conditions** * Runs after each model is downloaded in the main scraper * Including in daemon-mode * Runs after each model like/unlike process is finished * Including in daemon-mode * Runs after each model's metadata is processed in metadata mode. * Runs after each model is processed in manual mode * Runs for each unique model, after the current cart is downloaded in check mode * Runs for each model after scrape paid is process, * Note: modeldeleted or models without a active account would be ran together as one unit ### [hashtag](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/script-options#data-sent) **Data Sent** As a JSON dictionary, typically via standard input (stdin). * `username`: username (string) * `action` : action ran (string) * `model_id`: model\_id (integer). * `media`: media dictionary from API, with `final_path` added, and whether they were downloaded or not * `posts`: posts dictionary from API. * `userdata`: a dictionary from the users API. * * * [hashtag](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/script-options#post-script-post_script) Post Script (`post_script`) ------------------------------------------------------------------------------------------------------------------------------------------------------------------ A script that runs after all actions for all users have completed. This script can be configured via the `--post-script` command-line argument or the `post_script` setting in the program's configuration. ### [hashtag](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/script-options#trigger-conditions-1) **Trigger Conditions** * Once all models are downloaded or liked in scrape mode * After each cycle in daemon mode * Once all the posts from manual mode are completed * After the current cart downloads are processed in check mode, and after the download\_action\_script is processed for each user. * After all metadata for all users is processed in metadata mode. ### [hashtag](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/script-options#data-sent-1) **Data Sent** As a JSON dictionary, typically via standard input (stdin). * `like_processed`: A list of users who have successfully completed the 'like' action. * `like_unprocessed`: A list of users who are queued for the 'like' action but were not processed. * `unlike_processed`: A list of users who have successfully completed the 'unlike' action. * `unlike_unprocessed`: A list of users who are queued for the 'unlike' action but were not processed. * `download_processed`: A list of users whose content has been successfully downloaded. * `download_unprocessed`: A list of users whose content is queued for download but were not processed. * `scrape_paid_processed`: A list of users who were successfully processed during the 'scrape\_paid' action * `scrape_paid_unprocessed`: A list of users who are queued for the 'scrape\_paid' scrape action but but were not processed. * * * [hashtag](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/script-options#naming-script-naming_script) Naming Script (`naming_script`) -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- A script that dynamically generates the final filename or full path for a downloaded media item. This script can be configured via the `--naming-script` command-line argument or the `naming_script` setting in the program's configuration. ### [hashtag](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/script-options#trigger-conditions-2) **Trigger Conditions** * For each individual media item, this script runs while its temporary filename is being generated. * It is executed again after the temporary file has been downloaded, and before the file is renamed to its final destination. * **As a special case, the script also runs before generating filenames for text files when using the** `**--text**` **or** `**--text-only**` **option.** ### [hashtag](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/script-options#data-sent-2) **Data Sent** As a JSON dictionary, typically via standard input (stdin) * `media`: A dictionary representing the media item * `post`: The dictionary representing the post associated with the media item. * `dir`: The calculated directory path (string). * `file`: The calculated filename (string). * `dir_format`: The current directory format string (string from config). * `file_format`: The current file format string (string from config). * `metadata`: The current metadata format setting (string from config). * `username`: The model's username (string). * `model_id`: The model's ID (integer). * `post_id`: The ID of the post associated with the media (integer). * `media_id`: The ID of the media item (integer). * `media_type`: The type of media * `value`: The value associated with the media * `date`: The formatted date related to the media/post (string) * `response_type`: The response type of the media (string). * `label`: A string representing associated labels * `download_type`: The type of download ### [hashtag](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/script-options#expected-output) **Expected Output** The script is expected to print the desired the **full desired path** to standard output (stdout). The scraper will then use this output to rename or move the downloaded file * * * [hashtag](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/script-options#after-download-script-download_skip_script) After Download Script (`download_skip_script`) -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- A script that runs after a download has completed. This script can be configured via the `--after-download-script` command-line argument or the `after_download_script` setting in the program's configuration. ### [hashtag](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/script-options#trigger-conditions-3) **Trigger Conditions** * It executes after a download has successfully been downloaded ### [hashtag](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/script-options#data-sent-3) **Data Sent** a single string * The final filepath of the download * * * [hashtag](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/script-options#download-skip-script-download_skip_script) Download Skip Script (`download_skip_script`) ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ A script that determines whether to skip or continue a download. This script can be configured via the `--download-skip-script` command-line argument or the `download_skip_script` setting in the program's configuration. ### [hashtag](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/script-options#trigger-conditions-4) **Trigger Conditions** * It executes before the download process begins for each individual media item. ### [hashtag](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/script-options#data-sent-4) **Data Sent** As a JSON dictionary, typically via standard input (stdin). * `username`: The model's username (string). * `model_id`: The model's ID (integer). * `post_id`: The ID of the post associated with the media (integer). * `media_id`: The ID of the media item (integer). * `media`: dictionary representing the media item to be downloaded. * `post`: A dictionary representing the post associated with the media item. * `total_size`: The total size of the download in bytes (integer). ### [hashtag](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/script-options#expected-output-1) **Expected Output** The script is expected to return a string via standard output (stdout). * If the returned string is `"False"` (case-insensitive) or an empty string, the download will be **skipped**. * Any other non-empty string returned will allow the download to **proceed**. [PreviousValues to Pickchevron-left](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/performance-options/values-to-pick) [NextAdvanced config optionschevron-right](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/advanced-config-options) Last updated 8 months ago * [Post Action Script (post\_download\_script)](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/script-options#post-action-script-post_download_script) * [Trigger Conditions](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/script-options#trigger-conditions) * [Data Sent](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/script-options#data-sent) * [Post Script (post\_script)](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/script-options#post-script-post_script) * [Trigger Conditions](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/script-options#trigger-conditions-1) * [Data Sent](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/script-options#data-sent-1) * [Naming Script (naming\_script)](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/script-options#naming-script-naming_script) * [Trigger Conditions](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/script-options#trigger-conditions-2) * [Data Sent](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/script-options#data-sent-2) * [Expected Output](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/script-options#expected-output) * [After Download Script (download\_skip\_script)](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/script-options#after-download-script-download_skip_script) * [Trigger Conditions](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/script-options#trigger-conditions-3) * [Data Sent](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/script-options#data-sent-3) * [Download Skip Script (download\_skip\_script)](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/script-options#download-skip-script-download_skip_script) * [Trigger Conditions](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/script-options#trigger-conditions-4) * [Data Sent](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/script-options#data-sent-4) * [Expected Output](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/script-options#expected-output-1) sun-brightdesktopmoon sun-brightdesktopmoon --- # Manual Mode Options | OF-Scraper [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/manual-mode-args#syntax) Syntax --------------------------------------------------------------------------------------------------------- Copy ofscraper manual [options] ### [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/manual-mode-args#example) example Copy ofscraper manual --url test [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/manual-mode-args#general-options) General Options --------------------------------------------------------------------------------------------------------------------------- [General Program Optionschevron-right](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/common-option-groups) [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/manual-mode-args#text) Text ----------------------------------------------------------------------------------------------------- ### [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/manual-mode-args#tn-text-argument) **\-tn, --text** \[argument\] * Specify to download text with any media tied to that text ### [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/manual-mode-args#tp-text-only-argument) **\-tp, --text-only** \[argument\] * Specify to download only text, skipping any media [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/manual-mode-args#download-sources) Download Sources ----------------------------------------------------------------------------------------------------------------------------- ### [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/manual-mode-args#f-file-argument) **\-f, --file \[argument\]:** Download media from a file containing URLs or post IDs, separated by line breaks. ### [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/manual-mode-args#u-url-argument) **u, --url \[argument\]:** Download media directly from one or more URLs provided as arguments (separate URLs with spaces). * * * **Combining Options:** You can use both `-f` and `-u` in a single command. The program will prioritize URLs from the file first, followed by any URLs specified with `-u`. [PreviousContent Check Modes Optionschevron-left](https://of-scraper.gitbook.io/of-scraper/command-reference/content-check-mode-args) [NextRequest Change to Docchevron-right](https://of-scraper.gitbook.io/of-scraper/request-change-to-doc) Last updated 1 year ago * [Syntax](https://of-scraper.gitbook.io/of-scraper/command-reference/manual-mode-args#syntax) * [example](https://of-scraper.gitbook.io/of-scraper/command-reference/manual-mode-args#example) * [General Options](https://of-scraper.gitbook.io/of-scraper/command-reference/manual-mode-args#general-options) * [Text](https://of-scraper.gitbook.io/of-scraper/command-reference/manual-mode-args#text) * [\-tn, --text \[argument\]](https://of-scraper.gitbook.io/of-scraper/command-reference/manual-mode-args#tn-text-argument) * [\-tp, --text-only \[argument\]](https://of-scraper.gitbook.io/of-scraper/command-reference/manual-mode-args#tp-text-only-argument) * [Download Sources](https://of-scraper.gitbook.io/of-scraper/command-reference/manual-mode-args#download-sources) * [\-f, --file \[argument\]:](https://of-scraper.gitbook.io/of-scraper/command-reference/manual-mode-args#f-file-argument) * [u, --url \[argument\]:](https://of-scraper.gitbook.io/of-scraper/command-reference/manual-mode-args#u-url-argument) sun-brightdesktopmoon sun-brightdesktopmoon --- # Metadata Check Mode Options | OF-Scraper circle-info **Metadata Mode inherits mosts options from the main/scraper mode, with a few options removed because they don't make sense outside of downloading** * * * circle-info **without --force-all or --force-model-unique media will be filter to only those that are set as not downloaded in the database** [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/metadata-check-mode-options#syntax) Syntax -------------------------------------------------------------------------------------------------------------------- Copy ofscraper metadata [options] ### [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/metadata-check-mode-options#example) example Copy ofscraper metadata -metadata check [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/metadata-check-mode-options#general-options) General Options -------------------------------------------------------------------------------------------------------------------------------------- [General Program Optionschevron-right](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/common-option-groups) [Shared Scrape and Metadata Check Mode Optionschevron-right](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options) [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/metadata-check-mode-options#options) Options ---------------------------------------------------------------------------------------------------------------------- ### [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/metadata-check-mode-options#md-metadata-argument) \-md, --metadata \[argument\] The `--metadata` argument is used to specify how metadata mode updates the db **Available Modes:** * **check** - Updates metadata fields for the specified area via an API. This option does not check for new filenames. * **update** - This mode performs two actions: 1. Updates download status and filenames based on the presence of actual files. 2. Updates metadata fields for the specified area via an API. * **complete** - Marks the download as complete and updates metadata fields via an API. It also uses a new filename if one is available ### [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/metadata-check-mode-options#ms-mark-stray-locked-argument) \-ms, --mark-stray-locked \[argument\] Marks unmatched media items as locked. **Details:** * This flag is designed to identify and manage media items retrieved using the `--after` and `--before` options (date range filtering) that cannot be retrieved again through the API (potentially due to deletion). * Media items with labels are excluded from being marked as locked. * Locking is applied on a per-API type basis, Timeline, Archived Posts, and Messages * This has no effect if --scrape-paid is the only argument **Use Case:** Use this option to manage media items that aren't retrievable via the APIs. Marking them as locked prevents main scraper from using these items to set the minimum date * * * ### [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/metadata-check-mode-options#sp-scrape-paid-argument) \-sp, --scrape-paid \[argument\] The `--scrape-paid` argument is used to specify how metadata mode updates the db, for scrape paid content The options are the same as --metadata * **check** - Updates metadata fields for the specified area via an API. This option does not check for new filenames. * **update** - This mode performs two actions: 1. Updates download status and filenames based on the presence of actual files. 2. Updates metadata fields for the specified area via an API. * **complete** - Marks the download as complete and updates metadata fields via an API. It also uses a new filename if one is available **Available Modes:** * **check** - Updates metadata fields for the specified area via an API. This option does not check for new filenames. * **update** - This mode performs two actions: 1. Updates download status and filenames based on the presence of actual files. 2. Updates metadata fields for the specified area via an API. * **complete** - Marks the download as complete and updates metadata fields via an API. It also uses a new filename if one is available [PreviousMain Scraper Optionschevron-left](https://of-scraper.gitbook.io/of-scraper/command-reference/main-scraper-options) [NextContent Check Modes Optionschevron-right](https://of-scraper.gitbook.io/of-scraper/command-reference/content-check-mode-args) Last updated 1 year ago * [Syntax](https://of-scraper.gitbook.io/of-scraper/command-reference/metadata-check-mode-options#syntax) * [example](https://of-scraper.gitbook.io/of-scraper/command-reference/metadata-check-mode-options#example) * [General Options](https://of-scraper.gitbook.io/of-scraper/command-reference/metadata-check-mode-options#general-options) * [Options](https://of-scraper.gitbook.io/of-scraper/command-reference/metadata-check-mode-options#options) * [\-md, --metadata \[argument\]](https://of-scraper.gitbook.io/of-scraper/command-reference/metadata-check-mode-options#md-metadata-argument) * [\-ms, --mark-stray-locked \[argument\]](https://of-scraper.gitbook.io/of-scraper/command-reference/metadata-check-mode-options#ms-mark-stray-locked-argument) * [\-sp, --scrape-paid \[argument\]](https://of-scraper.gitbook.io/of-scraper/command-reference/metadata-check-mode-options#sp-scrape-paid-argument) sun-brightdesktopmoon sun-brightdesktopmoon --- # Model Sorting & Processing Options | OF-Scraper circle-info **When a model is set to renew, the "expired" option refers to the renewal date** [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/account-sorting-args#sorting-criteria) Sorting Criteria ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ ### [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/account-sorting-args#st-sort-argument) \-st, --sort \[argument\] * **Controls:** The order of the model list and processing order. * **Possible choices:** * `name`: Sorts by model name (default). * `subscribed`: Sorts by whether the model is currently subscribed * `expired`: Sorts by the renewal date * `current-price`: Sorts by the current price of the model. * `promo-price`: Sorts by the promotional price of the model (if available). * `regular-price`: Sorts by the regular price of the model (if available). * `renew-price`: Sorts by the renewal price of the model (if applicable). * `last-seen`: Sorts by the last time the model was seen * **Example:** With `-st expired`, models with expiring subscriptions will be processed first. ### [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/account-sorting-args#ds-desc) \-ds, --desc * **Arranges:** The model list in descending order. * **Default:** `False` (ascending order) * **Use case:** You might use this option to prioritize models at the bottom of the list (e.g., with `-st last-seen -ds`). [PreviousUser Selection Optionschevron-left](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/user-selection-options) [NextContent Optionschevron-right](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/post-filter-args) Last updated 1 year ago * [Sorting Criteria](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/account-sorting-args#sorting-criteria) * [\-st, --sort \[argument\]](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/account-sorting-args#st-sort-argument) * [\-ds, --desc](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/account-sorting-args#ds-desc) sun-brightdesktopmoon sun-brightdesktopmoon --- # Automation Options | OF-Scraper [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/general-scraper-args#background-execution) Background Execution -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ### [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/general-scraper-args#d-daemon-argument) \-d, --daemon \[argument\] * **Runs:** The program in the background as a daemon process. * **Argument:** (required) Specify the desired interval between program runs (e.g., `-d 60` for hourly runs). [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/general-scraper-args#automated-actions) Automated Actions -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ### [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/general-scraper-args#a-action-argument) \-a, --action \[argument\] * **Selects:** The automated action to perform on posts. * **Possible choices:** * `like`: Like each post encountered during processing. * `unlike`: Unlike each post encountered during processing. * `download`: Download media associated with each post encountered during processing. **Combined actions:** You can combine the `-a` option multiple times to specify multiple actions. For example, `-a like -a download` or `a like,download` would like and download media for each post. #### [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/general-scraper-args#action-descriptions) **Action Descriptions:** circle-info **Like and unlike are limited by rate limiting** * **Like:** Attempts to like each post processed by the program. * **Unlike:** Attempts to unlike each post processed by the program * **Download:** Downloads associated media (e.g., images, videos) from each post processed by the program [PreviousContent Optionschevron-left](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/post-filter-args) [NextAdvanced Search & Processing Optionschevron-right](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/advanced-search-and-processing-options) Last updated 6 days ago * [Background Execution](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/general-scraper-args#background-execution) * [\-d, --daemon \[argument\]](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/general-scraper-args#d-daemon-argument) * [Automated Actions](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/general-scraper-args#automated-actions) * [\-a, --action \[argument\]](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/general-scraper-args#a-action-argument) sun-brightdesktopmoon sun-brightdesktopmoon --- # Program Options | OF-Scraper [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/common-option-groups/global-args#general-options) General Options ---------------------------------------------------------------------------------------------------------------------------------------------------------- ### [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/common-option-groups/global-args#v-version) \-v, --version * **Displays:** The program's version number and then exits. * **Example output:** `2.4.5+main.8f998cd` (This might vary depending on the actual version). ### [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/common-option-groups/global-args#cg-config-argument) \-cg, --config \[argument\] * **Controls:** The location of the configuration folder or file. * **Default behavior:** The program uses the default configuration location * **Example:** With `-cg /custom/config/path`, the program will look for configuration files in the `/custom/config/path` directory [Advanced Argschevron-right](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/advanced-args) ### [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/common-option-groups/global-args#r-profile-argument-optional) \-r, --profile \[argument\] (optional) * **Specifies:** The name of the profile directory, which stores authentication information This is store in the config location * **Default behavior:** The program uses the default profile 'main' * **Example:** With `-r test`, the program will use a profile named test ### [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/common-option-groups/global-args#env-file-path) \--env-file \[path\] * **Specifies:** The path to an external `.env` file from which to load environment variables. * **Effect:** Variables defined in this file are loaded into the program's environment. Values from this file will **override** system environment variables that might be set. These values are then utilized by various configuration settings that are designed to read from environment variables. * **Default behavior:** If this option is not provided, the program automatically searches for a `.env` file in the current working directory and its parent directories. * **Example:** With `--env-file /home/user/my_app/prod.env`, the program will load environment variables from the specified `prod.env` file. [Advanced Customizationchevron-right](https://of-scraper.gitbook.io/of-scraper/getting-started/advanced-customization) [PreviousGeneral Program Optionschevron-left](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/common-option-groups) [NextLogging Optionschevron-right](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/common-option-groups/logging) Last updated 9 months ago * [General Options](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/common-option-groups/global-args#general-options) * [\-v, --version](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/common-option-groups/global-args#v-version) * [\-cg, --config \[argument\]](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/common-option-groups/global-args#cg-config-argument) * [\-r, --profile \[argument\] (optional)](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/common-option-groups/global-args#r-profile-argument-optional) * [\--env-file \[path\]](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/common-option-groups/global-args#env-file-path) sun-brightdesktopmoon sun-brightdesktopmoon --- # Shared Scrape and Metadata Check Mode Options | OF-Scraper Metadata mode and the main scraper serve distinct purposes, they share a foundation of common command-line arguments that govern their behavior The key difference lies in their goals: the main scraper focuses on downloading content, while Metadata mode leverages the API to gather and update information about user profiles and content within the program's internal tables [PreviousScript Optionschevron-left](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/common-option-groups/script-options) [NextUser List Filter Optionschevron-right](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/account-filter-args) Last updated 1 year ago sun-brightdesktopmoon sun-brightdesktopmoon --- # Content Check Modes Options | OF-Scraper circle-info **Cached information is generally stored for around 3 days to improve efficiency** * * * [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/content-check-mode-args#syntax) Syntax ---------------------------------------------------------------------------------------------------------------- Copy ofscraper [subcommand_name] [subcommand_options] ### [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/content-check-mode-args#example) example Copy ofscraper post_check --url test [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/content-check-mode-args#general-options) General Options ---------------------------------------------------------------------------------------------------------------------------------- [General Program Optionschevron-right](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/common-option-groups) [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/content-check-mode-args#subcommand-options) Subcommand Options ---------------------------------------------------------------------------------------------------------------------------------------- Each content check subcommand (`post_check`, `msg_check`, `paid_check`, `story_check`) accepts common arguments for specifying content sources and controlling update behavior. ### [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/content-check-mode-args#specifying-content-source) Specifying Content Source * **\-u, --url \[argument\]:** (all subcommands) * Scans content from one or more URLs provided as arguments (separate URLs with spaces). * **\-f, --file \[argument\]:** (all subcommands) * Scans content from a file containing entries (URLs or usernames) separated by lines. ### [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/content-check-mode-args#forcing-update) Forcing Update * **\-fo, --force \[argument\]:** (all subcommands) * **Default:** `False` (uses cached data if available). * Sets `True` to force the API to retrieve the latest information, bypassing the cache. ### [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/content-check-mode-args#text) Text ### [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/content-check-mode-args#tn-text-argument) **\-tn, --text** \[argument\] * Specify to download text with any media tied to that text ### [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/content-check-mode-args#tp-text-only-argument) **\-tp, --text-only** \[argument\] * Specify to download only text, skipping any media [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/content-check-mode-args#subcommand-descriptions) Subcommand Descriptions -------------------------------------------------------------------------------------------------------------------------------------------------- **Here's a summary of each content check subcommand:** * **post\_check:** Analyzes data associated with posts from specified URLs or a file. It generates a table displaying relevant information about the posts. * **msg\_check:** Analyzes data associated with messages from specified URLs or a file. It generates a table displaying relevant information about the messages. * **paid\_check:** Analyzes data associated with purchased content from specified usernames or a file. It generates a table displaying relevant information about the purchased content. * **story\_check:** Analyzes data associated with stories and highlights from specified usernames or a file. It generates a table displaying relevant information about the stories/highlights. [PreviousMetadata Check Mode Optionschevron-left](https://of-scraper.gitbook.io/of-scraper/command-reference/metadata-check-mode-options) [NextManual Mode Optionschevron-right](https://of-scraper.gitbook.io/of-scraper/command-reference/manual-mode-args) Last updated 1 year ago * [Syntax](https://of-scraper.gitbook.io/of-scraper/command-reference/content-check-mode-args#syntax) * [example](https://of-scraper.gitbook.io/of-scraper/command-reference/content-check-mode-args#example) * [General Options](https://of-scraper.gitbook.io/of-scraper/command-reference/content-check-mode-args#general-options) * [Subcommand Options](https://of-scraper.gitbook.io/of-scraper/command-reference/content-check-mode-args#subcommand-options) * [Specifying Content Source](https://of-scraper.gitbook.io/of-scraper/command-reference/content-check-mode-args#specifying-content-source) * [Forcing Update](https://of-scraper.gitbook.io/of-scraper/command-reference/content-check-mode-args#forcing-update) * [Text](https://of-scraper.gitbook.io/of-scraper/command-reference/content-check-mode-args#text) * [\-tn, --text \[argument\]](https://of-scraper.gitbook.io/of-scraper/command-reference/content-check-mode-args#tn-text-argument) * [\-tp, --text-only \[argument\]](https://of-scraper.gitbook.io/of-scraper/command-reference/content-check-mode-args#tp-text-only-argument) * [Subcommand Descriptions](https://of-scraper.gitbook.io/of-scraper/command-reference/content-check-mode-args#subcommand-descriptions) sun-brightdesktopmoon sun-brightdesktopmoon --- # User Selection Options | OF-Scraper [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/user-selection-options#specifying-usernames) Specifying Usernames ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ### [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/user-selection-options#u-username-argument) \-u, --username \[argument\] * **Selects:** Specific usernames to process, separated by commas (e.g., `name1,name2`). * **Case-sensitive:** Usernames are matched based on exact case. * **ALL (case-sensitive):** Use `ALL` to include all available usernames in the program's data. **Example:** With `-u user1,user2`, only users "user1" and "user2" will be processed. ### [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/user-selection-options#eu-excluded-username-argument) \-eu, --excluded-username \[argument\] * **Excludes:** Specific usernames from processing, separated by commas (e.g., `name1,name2`). * **Precedence:** Excluded usernames take priority over usernames specified with `-u`. **Example:** With `-u user1,user2` and `-eu user2`, only "user1" will be processed (excluding "user2"). * * * [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/user-selection-options#using-user-lists) Using User Lists -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ### [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/user-selection-options#ul-user-list-argument-optional) \-ul, --user-list \[argument\] (optional) * **Filters:** Users based on entries in a user list. * **Default list:** "ofscraper.main" (if no argument provided). * **Built-in lists:** The program also has built-in lists "ofscraper.active" and "ofscraper.disabled" corresponding to active and expired account respectively * **Argument behavior:** * If no argument is provided, the default list ("scrape") will be used. * If an argument is provided (e.g., "myuserList"), only the specified list will be processed. **Example:** With `-ul myUserList`, only users in the "myUserList" list will be processed. ### [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/user-selection-options#bl-black-list-argument-optional) \-bl, --black-list \[argument\] (optional) * **Excludes:** Users based on entries in a user list. * **Blacklist behavior:** Similar to user lists, but excludes all users from the specified list * **Default list:** None * **Argument behavior:** * If an argument is provided (e.g., "inactiveUsers"), only users from the specified blacklist will be excluded. **Example:** With `-bl inactiveUsers`, users in the "inactiveUsers" blacklist will be excluded from processing [PreviousAdvanced User Filterschevron-left](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/account-filter-args/advanced-user-filters) [NextModel Sorting & Processing Optionschevron-right](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/account-sorting-args) Last updated 1 year ago * [Specifying Usernames](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/user-selection-options#specifying-usernames) * [\-u, --username \[argument\]](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/user-selection-options#u-username-argument) * [\-eu, --excluded-username \[argument\]](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/user-selection-options#eu-excluded-username-argument) * [Using User Lists](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/user-selection-options#using-user-lists) * [\-ul, --user-list \[argument\] (optional)](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/user-selection-options#ul-user-list-argument-optional) * [\-bl, --black-list \[argument\] (optional)](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/user-selection-options#bl-black-list-argument-optional) sun-brightdesktopmoon sun-brightdesktopmoon --- # Advanced Search & Processing Options | OF-Scraper [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/advanced-search-and-processing-options#username-search-behavior) Username Search Behavior ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- These options control how usernames are searched for during program actions. ### [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/advanced-search-and-processing-options#uf-users-first) \-uf, --users-first * **Prioritizes:** Downloading posts by scraping all users at once instead of one at a time. * **Effect:** This allows for gathering all required data before downloading or processing metadata * **Default:** `False` (users are processed one by one) ### [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/advanced-search-and-processing-options#fi-force-individual) \-fi, --force-individual * **Enforces:** Searching each username provided with the `--username` argument as a separate request. * **Default:** This behavior depends on the number of --usernames and the number of subscriptions on account * **Use case:** This may be faster then retriving usernames in bulk ### [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/advanced-search-and-processing-options#fl-force-list) \-fl, --force-list * **Processes:** The entire user list based on the currently enabled configuration settings for `userlist` or the `--user-list` argument. * **Effect:** Separates usernames within the list * **Default:** This behavior depends on the number of --usernames and the number of subscriptions on account * **Use case:** This is useful if your retriving a large number of users **Note:** Using `-fi` might lead to a large number of individual requests, potentially overloading the target server or encountering rate limits. [PreviousAutomation Optionschevron-left](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/general-scraper-args) [NextMain Scraper Optionschevron-right](https://of-scraper.gitbook.io/of-scraper/command-reference/main-scraper-options) Last updated 1 year ago * [Username Search Behavior](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/advanced-search-and-processing-options#username-search-behavior) * [\-uf, --users-first](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/advanced-search-and-processing-options#uf-users-first) * [\-fi, --force-individual](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/advanced-search-and-processing-options#fi-force-individual) * [\-fl, --force-list](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/advanced-search-and-processing-options#fl-force-list) sun-brightdesktopmoon sun-brightdesktopmoon --- # Logging Options | OF-Scraper [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/common-option-groups/logging#log-levels) Log Levels -------------------------------------------------------------------------------------------------------------------------------------------- ### [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/common-option-groups/logging#l-log-argument) \-l, --log \[argument\] * **Possible choices:** * `OFF`: Disables log output to the log file. * `STATS`: Logs only high-level statistics and errors. * `LOW`: Logs basic program flow and non-critical errors. * `NORMAL` (default): Logs most program activity and errors. * `DEBUG`: Logs all program activity and detailed debugging information. * **Sets:** The verbosity level for the program's log file. ### [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/common-option-groups/logging#dc-discord-argument) \-dc, --discord \[argument\] * **Possible choices:** * `OFF`: Disables log output to Discord. * `STATS`: Logs only high-level statistics and errors to Discord. * `LOW`: Logs basic program flow and non-critical errors to Discord. * `NORMAL`: Logs most program activity and errors to Discord. * `DEBUG`: Logs all program activity and detailed debugging information to Discord. * **Sets:** The verbosity level for logs sent to the Discord channel (if configured). ### [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/common-option-groups/logging#p-output-argument) \-p, --output \[argument\] * **Possible choices:** * `PROMPT`: Logs only critical information displayed on the program prompt. * `STATS`: Logs only high-level statistics and errors to the console. * `LOW`: Logs basic program flow and non-critical errors to the console. * `NORMAL` (default): Logs most program activity and errors to the console. * `DEBUG`: Logs all program activity and detailed debugging information to the console. * **Sets:** The verbosity level for log messages displayed in the console window. [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/common-option-groups/logging#other-options) Other Options -------------------------------------------------------------------------------------------------------------------------------------------------- ### [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/common-option-groups/logging#nl-no-live) **\-nl,--no-live** * **Controls**: Live displays via rich, these are used for Panels, Spinners, and progress bars * **Defaults**: False [PreviousProgram Optionschevron-left](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/common-option-groups/global-args) [NextFilename Modification Optionschevron-right](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/common-option-groups/filename-modification-options) Last updated 1 year ago * [Log Levels](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/common-option-groups/logging#log-levels) * [\-l, --log \[argument\]](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/common-option-groups/logging#l-log-argument) * [\-dc, --discord \[argument\]](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/common-option-groups/logging#dc-discord-argument) * [\-p, --output \[argument\]](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/common-option-groups/logging#p-output-argument) * [Other Options](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/common-option-groups/logging#other-options) * [\-nl,--no-live](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/common-option-groups/logging#nl-no-live) sun-brightdesktopmoon sun-brightdesktopmoon --- # Media Filters Options | OF-Scraper [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/common-option-groups/media-filters-options#media-type-filter) Media Type Filter ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ ### [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/common-option-groups/media-filters-options#mt-mediatype-argument) \-mt, --mediatype \[argument\] * **Filters:** media by type * **Possible Choices:** * Audio * Videos * Images * Text (Downloads Post Text) * **Defaults:** Audio, Video , Images * **Example:** -mt Images, only images will be downloaded * * * [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/common-option-groups/media-filters-options#file-size-filters) File Size Filters ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ ### [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/common-option-groups/media-filters-options#sx-size-max-argument) \-sx, --size-max \[argument\] * **Filters:** Files exceeding the specified size. * **Accepts:** Human-readable size values like "10MB", "500GB", etc. * **Default:** `None` (no maximum size filter) * **Example:** With `-sx 1GB`, only files 1 gigabyte or smaller will be downloaded. ### [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/common-option-groups/media-filters-options#sm-size-min-argument) \-sm, --size-min \[argument\] * **Filters:** Files smaller than the specified size. * **Accepts:** Human-readable size values like "10MB", "500GB", etc. * **Default:** `None` (no minimum size filter) * **Example:** With `-sm 50MB`, only files 50 megabytes or larger will be downloaded. * * * [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/common-option-groups/media-filters-options#media-length-filters-video-only) Media Length Filters (Video Only) ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ These filters only apply to video files. ### [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/common-option-groups/media-filters-options#lx-length-max-argument) \-lx, --length-max \[argument\] * **Filters:** Videos longer than the specified duration. * **Accepts:** Values that will be interpreted as seconds * **Default:** `None` (no maximum length filter) * **Example:** With `-lx 30`, only videos shorter or equal to 30 seconds will be downloaded. ### [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/common-option-groups/media-filters-options#lm-length-min-argument) \-lm, --length-min \[argument\] * **Filters:** Videos shorter than the specified duration. * **Accepts:** Values that will be intepreted as seconds * **Default:** `None` (no minimum length filter) * **Example:** With `-lm 5`, only videos 5 seconds or longer will be downloaded. * * * [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/common-option-groups/media-filters-options#media-quality-filter) Media Quality Filter ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ ### [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/common-option-groups/media-filters-options#q-quality-argument) \-q, --quality \[argument\] * **Sets:** The minimum acceptable video quality * **Possible choices:** * `source`: Attempts to download the highest available quality (may not always be achievable). * `240`: Filters for videos with a resolution of at least 240p. * `720`: Filters for videos with a resolution of at least 720p. * **Default:** `source` (attempts to download highest quality) * **Note:** The program might download a higher quality version if the specified quality is unavailable * * * [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/common-option-groups/media-filters-options#media-id-filter) Media ID Filter -------------------------------------------------------------------------------------------------------------------------------------------------------------------- ### [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/common-option-groups/media-filters-options#md-media-id-argument) \-md,--media-id \[argument\] * **Filters:** filters based on mediaid * **Default:** None * **Note:** This will have no effect on search speed, as filtering must be done after all posts are found [PreviousFilename Modification Optionschevron-left](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/common-option-groups/filename-modification-options) [NextDownload Optionschevron-right](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/common-option-groups/download-options) Last updated 1 year ago * [Media Type Filter](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/common-option-groups/media-filters-options#media-type-filter) * [\-mt, --mediatype \[argument\]](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/common-option-groups/media-filters-options#mt-mediatype-argument) * [File Size Filters](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/common-option-groups/media-filters-options#file-size-filters) * [\-sx, --size-max \[argument\]](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/common-option-groups/media-filters-options#sx-size-max-argument) * [\-sm, --size-min \[argument\]](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/common-option-groups/media-filters-options#sm-size-min-argument) * [Media Length Filters (Video Only)](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/common-option-groups/media-filters-options#media-length-filters-video-only) * [\-lx, --length-max \[argument\]](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/common-option-groups/media-filters-options#lx-length-max-argument) * [\-lm, --length-min \[argument\]](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/common-option-groups/media-filters-options#lm-length-min-argument) * [Media Quality Filter](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/common-option-groups/media-filters-options#media-quality-filter) * [\-q, --quality \[argument\]](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/common-option-groups/media-filters-options#q-quality-argument) * [Media ID Filter](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/common-option-groups/media-filters-options#media-id-filter) * [\-md,--media-id \[argument\]](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/common-option-groups/media-filters-options#md-media-id-argument) sun-brightdesktopmoon sun-brightdesktopmoon --- # Script Options | OF-Scraper [Script Optionschevron-right](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/script-options) ### [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/common-option-groups/script-options#ds-after-action-script-argument) \-ds, --after-action-script \[argument\] **Executes:** A user-defined script after an action is completed on a model **Runs:** * rafter each model is downloaded in the main scraper * after each model's metadata is processed in metadata mode * after each model is processed in manual mode * for each unique model, after the current cart is downloaded in check mode ### [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/common-option-groups/script-options#ps-post-script-argument) \-ps, --post-script \[argument\] **Executes:** A user-defined script once the script finishes an action **Runs:** * once all models are downloaded or liked in scrape mode * once all the post from manual mode are completed * After the current cart downloads are processed in check mode, and after the download-script is processed for each user * after all metadata for all users is processed in metadata mode ### [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/common-option-groups/script-options#ns-naming-script-argument) \-ns, --naming-script \[argument\] **Executes:** A script that dynamically generates the final filename **Runs:** * when the temporary .part filename is generated for a download * when the final filename is being generated for a download * when the final filename is being generated for a text download * after all metadata for all users is processed in metadata mode ### [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/common-option-groups/script-options#sdl-skip-download-script-argument) \-sdl, --skip-download-script \[argument\] **Executes:** A script that determines whether to skip or continue a download **Runs:** * Just before a download starts ### [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/common-option-groups/script-options#adl-after-download-script-argument) \-adl, --after-download-script \[argument\] **Executes:** A script that runs after a download has completed **Runs:** * Just before a download starts [PreviousAdvanced Program Optionschevron-left](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/common-option-groups/advanced-args) [NextShared Scrape and Metadata Check Mode Optionschevron-right](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options) Last updated 9 months ago * [\-ds, --after-action-script \[argument\]](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/common-option-groups/script-options#ds-after-action-script-argument) * [\-ps, --post-script \[argument\]](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/common-option-groups/script-options#ps-post-script-argument) * [\-ns, --naming-script \[argument\]](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/common-option-groups/script-options#ns-naming-script-argument) * [\-sdl, --skip-download-script \[argument\]](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/common-option-groups/script-options#sdl-skip-download-script-argument) * [\-adl, --after-download-script \[argument\]](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/common-option-groups/script-options#adl-after-download-script-argument) sun-brightdesktopmoon sun-brightdesktopmoon --- # Advanced Program Options | OF-Scraper [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/common-option-groups/advanced-args#caching-and-api-calls) Caching and API Calls ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ ### [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/common-option-groups/advanced-args#nc-no-cache) \-nc, --no-cache * **Disables:** Reading from and writing to the program's cache. * **Effect:** Disables all uses of cache including For example cache is used to store keys and file sizes Also forces the program to make fresh sequential API calls for data, even if it's available in the cache. This can be useful for ensuring you have the latest information but can be slower than using the cache * **Default:** `False` (cache is enabled) ### [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/common-option-groups/advanced-args#nca-no-api-cache) \-nca, --no-api-cache * **Effect:** Forces the program to make sequential API calls for data, even if it's cached within the current program session. This is different from `--no-cache` which is for all uses of the cache library beyond just OF API request * **Default:** `False` (API cache is enabled for the current session) * * * [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/common-option-groups/advanced-args#configuration-overrides) Configuration Overrides ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ### [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/common-option-groups/advanced-args#k-key-mode-argument) \-k, --key-mode \[argument\] * **Overrides:** The key mode setting specified in the configuration file. * **Possible values:** * cdrm * manual * **Requires Argument:** You must specify the desired key mode after the option (e.g., `-k manual`). ### [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/common-option-groups/advanced-args#dr-dynamic-rules-argument) \-dr, --dynamic-rules \[argument\] * **Overrides:** The `dynamic-rules` setting in the configuration file. * **Used for:** Signing API requests. * **Default:** `false` (dynamic rules are disabled) * **Possible values:** * sneaky * digital * deviint * **Requires Argument:** You must specify a value for dynamic rules (e.g., `-dr sneaky`) * **Note:** Possible values may change based on removal of sources, frequency of updates of sources * * * [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/common-option-groups/advanced-args#additional-options) Additional Options ------------------------------------------------------------------------------------------------------------------------------------------------------------------ ### [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/common-option-groups/advanced-args#up-update-profile) \-up, --update-profile * **Retrieves:** Up-to-date profile information directly from the API, bypassing the cache. * **Cache Update:** Profile information is typically cached for about a day. Use this option if you need the absolute latest data. ### [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/common-option-groups/advanced-args#al-auth-fail) \-al, --auth-fail * quit on authentication failure rather then prompting * **Default:** False [PreviousDownload Optionschevron-left](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/common-option-groups/download-options) [NextScript Optionschevron-right](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/common-option-groups/script-options) Last updated 9 months ago * [Caching and API Calls](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/common-option-groups/advanced-args#caching-and-api-calls) * [\-nc, --no-cache](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/common-option-groups/advanced-args#nc-no-cache) * [\-nca, --no-api-cache](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/common-option-groups/advanced-args#nca-no-api-cache) * [Configuration Overrides](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/common-option-groups/advanced-args#configuration-overrides) * [\-k, --key-mode \[argument\]](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/common-option-groups/advanced-args#k-key-mode-argument) * [\-dr, --dynamic-rules \[argument\]](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/common-option-groups/advanced-args#dr-dynamic-rules-argument) * [Additional Options](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/common-option-groups/advanced-args#additional-options) * [\-up, --update-profile](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/common-option-groups/advanced-args#up-update-profile) * [\-al, --auth-fail](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/common-option-groups/advanced-args#al-auth-fail) sun-brightdesktopmoon sun-brightdesktopmoon --- # Advanced User Filters | OF-Scraper [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/account-filter-args/advanced-user-filters#advanced-pricing-filters) Advanced Pricing Filters ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- These filters allow you to target accounts based on specific price ranges for different pricing models (promotional, regular, current, and renewal ### [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/account-filter-args/advanced-user-filters#ppm-promo-price-max-argument) \-ppm, --promo-price-max \[argument\] * **Filters:** Accounts where the lowest available promotional price matches or falls below the specified value ### [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/account-filter-args/advanced-user-filters#ppn-promo-price-min-argument) \-ppn, --promo-price-min \[argument\] * **Filters:** Accounts where the lowest available promotional price matches or falls above the specified value ### [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/account-filter-args/advanced-user-filters#gpm-regular-price-max-argument) \-gpm, --regular-price-max \[argument\] * **Filters:** Accounts where the regular price (if available) matches or falls below the specified value ### [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/account-filter-args/advanced-user-filters#gpn-regular-price-min-argument) \-gpn, --regular-price-min \[argument\] * **Filters:** Accounts where the regular price (if available) matches or falls above the specified value ### [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/account-filter-args/advanced-user-filters#cpm-current-price-max-argument) \-cpm, --current-price-max \[argument\] * **Filters:** Accounts where the current price matches or falls below the specified value ### [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/account-filter-args/advanced-user-filters#cpn-current-price-min-argument) \-cpn, --current-price-min \[argument\] * **Filters:** Accounts where the current price matches or falls above the specified value ### [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/account-filter-args/advanced-user-filters#rpm-renewal-price-max-argument) \-rpm, --renewal-price-max \[argument\] * **Filters:** Accounts where the renewal price (if applicable) matches or falls below the specified value ### [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/account-filter-args/advanced-user-filters#rpn-renewal-price-min-argument) \-rpn, --renewal-price-min \[argument\] * **Filters:** Accounts where the renewal price (if applicable) matches or falls above the specified value * * * [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/account-filter-args/advanced-user-filters#advanced-account-attributes) Advanced Account Attributes ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- These filters allow you to target accounts based on specific dates related to their activity or subscription status [![Logo](https://of-scraper.gitbook.io/of-scraper/~gitbook/image?url=https%3A%2F%2Fof-scraper.gitbook.io%2Fof-scraper%2F%7Egitbook%2Ficon%3Fsize%3Dsmall%26theme%3Dlight&width=20&dpr=3&quality=100&sign=ff8d559f&sv=2)Downloading Content | OF-Scraperof-scraper.gitbook.iochevron-right](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/selecting-posts#valid-inputs) Valid Date Inputs ### [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/account-filter-args/advanced-user-filters#lsa-last-seen-after-argument) \-lsa, --last-seen-after \[argument\] * **Filters:** Accounts where the "last seen" date/time is at or after the provided date ### [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/account-filter-args/advanced-user-filters#lsb-last-seen-before-argument) \-lsb, --last-seen-before \[argument\] * **Filters:** Accounts where the "last seen" date/time is at or before the provided date **Note:** The "last seen" date/time might not be available for all accounts circle-info **When a model is set to renew, the expired date refers to the renewal date** ### [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/account-filter-args/advanced-user-filters#ea-expire-after-argument) \-ea, --expire-after \[argument\] * **Filters:** Accounts with an expiration or renewal date at or after the provided date ### [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/account-filter-args/advanced-user-filters#eb-expire-before-argument) \-eb, --expire-before \[argument\] * **Filters:** Accounts with an expiration or renewal date at or before the provided date circle-info **The subscription date might not always be the most accurate indicator for expired accounts. Consider using the** `**-ea**` **or** `**-eb**` **filters instead.** ### [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/account-filter-args/advanced-user-filters#sa-subscribed-after-argument) \-sa, --subscribed-after \[argument\] * **Filters:** Accounts with a subscription date at or after the provided date ### [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/account-filter-args/advanced-user-filters#sb-subscribed-before-argument) \-sb, --subscribed-before \[argument\] * **Filters:** Accounts with a subscription date at or before the provided date [PreviousUser List Filter Optionschevron-left](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/account-filter-args) [NextUser Selection Optionschevron-right](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/user-selection-options) Last updated 1 year ago * [Advanced Pricing Filters](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/account-filter-args/advanced-user-filters#advanced-pricing-filters) * [\-ppm, --promo-price-max \[argument\]](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/account-filter-args/advanced-user-filters#ppm-promo-price-max-argument) * [\-ppn, --promo-price-min \[argument\]](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/account-filter-args/advanced-user-filters#ppn-promo-price-min-argument) * [\-gpm, --regular-price-max \[argument\]](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/account-filter-args/advanced-user-filters#gpm-regular-price-max-argument) * [\-gpn, --regular-price-min \[argument\]](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/account-filter-args/advanced-user-filters#gpn-regular-price-min-argument) * [\-cpm, --current-price-max \[argument\]](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/account-filter-args/advanced-user-filters#cpm-current-price-max-argument) * [\-cpn, --current-price-min \[argument\]](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/account-filter-args/advanced-user-filters#cpn-current-price-min-argument) * [\-rpm, --renewal-price-max \[argument\]](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/account-filter-args/advanced-user-filters#rpm-renewal-price-max-argument) * [\-rpn, --renewal-price-min \[argument\]](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/account-filter-args/advanced-user-filters#rpn-renewal-price-min-argument) * [Advanced Account Attributes](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/account-filter-args/advanced-user-filters#advanced-account-attributes) * [\-lsa, --last-seen-after \[argument\]](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/account-filter-args/advanced-user-filters#lsa-last-seen-after-argument) * [\-lsb, --last-seen-before \[argument\]](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/account-filter-args/advanced-user-filters#lsb-last-seen-before-argument) * [\-ea, --expire-after \[argument\]](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/account-filter-args/advanced-user-filters#ea-expire-after-argument) * [\-eb, --expire-before \[argument\]](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/account-filter-args/advanced-user-filters#eb-expire-before-argument) * [\-sa, --subscribed-after \[argument\]](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/account-filter-args/advanced-user-filters#sa-subscribed-after-argument) * [\-sb, --subscribed-before \[argument\]](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/account-filter-args/advanced-user-filters#sb-subscribed-before-argument) sun-brightdesktopmoon sun-brightdesktopmoon --- # Download Options | OF-Scraper [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/common-option-groups/download-options#download-configuration-overrides) Download Configuration Overrides ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- circle-info **For threads and sems** [Values to Pickchevron-right](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options/performance-options/values-to-pick) ### [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/common-option-groups/download-options#db-download-bars) \-db, --download-bars * **Overrides:** The `downloadbars` setting in the configuration file * **Default:** `None` ### [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/common-option-groups/download-options#sd-download-sems-argument) \-sd, --download-sems \[argument\] * **Overrides:** The `download_sems` setting in the configuration file. This setting controls the number of concurrent download processes. * **Default:** `None` (uses default value from configuration file) ### [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/common-option-groups/download-options#dt-download-threads-argument) \-dt, --download-threads \[argument\] * **Overrides:** The `threads_count` setting in the configuration file. This setting controls the number of threads used within each download process. * **Special case:** Setting the value to zero forces the program to use the main thread for downloading. The main thread is also used if there aren't enough active downloads to fill the configured number of download threads. * **Default:** `None` (uses default value from configuration file) ### [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/common-option-groups/download-options#dl-download-limit-argument) \-dl, --download-limit\[argument\] * **Overrides:** The `download_limit` setting in the configuration file. * **Limits:** the maximum download speed per thread to the specified number of bytes per second * **Accepts:** Human-readable size values like "10MB" * **Default:** No default limit (unlimited download speed). * * * [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/common-option-groups/download-options#download-cleanup) Download Cleanup ----------------------------------------------------------------------------------------------------------------------------------------------------------------- [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/common-option-groups/download-options#ar-no-auto-resume) \-ar, --no-auto-resume ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ * **Disables:** Automatic cleanup of partially downloaded files (".part" files) upon program exit. This includes forced exits (e.g., Ctrl+C). * **Default:** `false` (automatic cleanup is enabled) * * * [PreviousMedia Filters Optionschevron-left](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/common-option-groups/media-filters-options) [NextAdvanced Program Optionschevron-right](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/common-option-groups/advanced-args) Last updated 1 year ago * [Download Configuration Overrides](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/common-option-groups/download-options#download-configuration-overrides) * [\-db, --download-bars](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/common-option-groups/download-options#db-download-bars) * [\-sd, --download-sems \[argument\]](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/common-option-groups/download-options#sd-download-sems-argument) * [\-dt, --download-threads \[argument\]](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/common-option-groups/download-options#dt-download-threads-argument) * [\-dl, --download-limit\[argument\]](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/common-option-groups/download-options#dl-download-limit-argument) * [Download Cleanup](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/common-option-groups/download-options#download-cleanup) * [\-ar, --no-auto-resume](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/common-option-groups/download-options#ar-no-auto-resume) sun-brightdesktopmoon sun-brightdesktopmoon --- # User List Filter Options | OF-Scraper [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/account-filter-args#pricing-filters) Pricing Filters --------------------------------------------------------------------------------------------------------------------------------------------------------------------- circle-info **Refer to the dedicated documentation for detailed information on price filtering and sorting** [Price Filtering/Sortchevron-right](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/model-selection-sorting/price-filtering-sort) These options allow you to filter accounts based on their current price, renewal price, promotional price (if available), and regular price (if available). ### [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/account-filter-args#cp-current-price-argument) \-cp, --current-price \[argument\] * **Possible choices:** * `paid`: Filters for accounts with a paid current price. * `free`: Filters for accounts with a free current price. ### [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/account-filter-args#rp-renewal-price-argument) \-rp, --renewal-price \[argument\] * **Possible choices:** * `paid`: Filters for accounts with a paid renewal price. * `free`: Filters for accounts with a free renewal price. ### [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/account-filter-args#pp-promo-price-argument) \-pp, --promo-price \[argument\] * **Possible choices:** * `paid`: Filters for accounts with a claimable promotional price. * `free`: Filters for accounts without a claimable promotional price. ### [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/account-filter-args#gp-regular-price-argument) \-gp, --regular-price \[argument\] * **Possible choices:** * `paid`: Filters for accounts with a regular price (if applicable). * `free`: Filters for accounts without a regular price (if applicable). * * * [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/account-filter-args#account-flags) Account Flags ----------------------------------------------------------------------------------------------------------------------------------------------------------------- These options filter accounts based on specific flags or properties. ### [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/account-filter-args#lo-last-seen-only) \-lo, --last-seen-only * **Filters:** Accounts where the "last seen" date/time is visible. ### [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/account-filter-args#ls-last-seen-skip) \-ls, --last-seen-skip * **Filters:** Accounts where the "last seen" date/time is hidden. ### [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/account-filter-args#po-promo-only) \-po, --promo-only * **Filters:** Accounts with any claimable promotional price. ### [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/account-filter-args#ps-promo-skip) \-ps, --promo-skip * **Filters:** Accounts without any claimable promotional price. ### [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/account-filter-args#ao-all-promo-only) \-ao, --all-promo-only * **Filters:** Accounts with any claimable promotional price, regardless of current or renewal status. ### [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/account-filter-args#as-all-promo-skip) \-as, --all-promo-skip * **Filters:** Accounts without any claimable promotional price, regardless of current or renewal status. * * * [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/account-filter-args#subscription-type) Subscription Type ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- These options filter accounts based on their subscription status. ### [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/account-filter-args#fo-free-trial-only) \-fo, --free-trial-only * **Filters:** Accounts currently in a free trial (normally paid accounts). ### [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/account-filter-args#fs-free-trial-skip) \-fs, --free-trial-skip * **Filters:** Accounts that are not currently in a free trial (normally paid accounts). ### [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/account-filter-args#ts-active-subscriptions) \-ts, --active-subscriptions * **Filters:** Accounts with active, non-expired subscriptions. ### [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/account-filter-args#es-expired-subscription) \-es, --expired-subscription * **Filters:** Accounts with expired subscriptions. ### [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/account-filter-args#ro-renew-on) \-ro, --renew-on * **Filters:** Accounts with the "renew" flag enabled. ### [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/account-filter-args#rf-renew-off) \-rf, --renew-off * **Filters:** Accounts with the "renew" flag disabled. [PreviousShared Scrape and Metadata Check Mode Optionschevron-left](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options) [NextAdvanced User Filterschevron-right](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/account-filter-args/advanced-user-filters) Last updated 1 year ago * [Pricing Filters](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/account-filter-args#pricing-filters) * [\-cp, --current-price \[argument\]](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/account-filter-args#cp-current-price-argument) * [\-rp, --renewal-price \[argument\]](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/account-filter-args#rp-renewal-price-argument) * [\-pp, --promo-price \[argument\]](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/account-filter-args#pp-promo-price-argument) * [\-gp, --regular-price \[argument\]](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/account-filter-args#gp-regular-price-argument) * [Account Flags](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/account-filter-args#account-flags) * [\-lo, --last-seen-only](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/account-filter-args#lo-last-seen-only) * [\-ls, --last-seen-skip](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/account-filter-args#ls-last-seen-skip) * [\-po, --promo-only](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/account-filter-args#po-promo-only) * [\-ps, --promo-skip](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/account-filter-args#ps-promo-skip) * [\-ao, --all-promo-only](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/account-filter-args#ao-all-promo-only) * [\-as, --all-promo-skip](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/account-filter-args#as-all-promo-skip) * [Subscription Type](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/account-filter-args#subscription-type) * [\-fo, --free-trial-only](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/account-filter-args#fo-free-trial-only) * [\-fs, --free-trial-skip](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/account-filter-args#fs-free-trial-skip) * [\-ts, --active-subscriptions](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/account-filter-args#ts-active-subscriptions) * [\-es, --expired-subscription](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/account-filter-args#es-expired-subscription) * [\-ro, --renew-on](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/account-filter-args#ro-renew-on) * [\-rf, --renew-off](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/account-filter-args#rf-renew-off) sun-brightdesktopmoon sun-brightdesktopmoon --- # Setting metadata path | OF-Scraper In the config.json file, you can modify the default metadata location or adjust where the script searches for database files Using your existing metadata files from DIGITALCRIMINALS' script enables immediate utilization of the dupe checker, with any new files added subsequently being appended to the existing ones * * * [hashtag](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/setting-metadata-path#config-file-location) Config File Location ------------------------------------------------------------------------------------------------------------------------------------------------------- [Config Locationchevron-right](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/config-location) [hashtag](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/setting-metadata-path#changing-metadata-location) Changing metadata location ------------------------------------------------------------------------------------------------------------------------------------------------------------------- Adjust the metadata section in the config.json file by inserting the appropriate locations or paths using the provided placeholders Copy {sitename} = Onlyfans {first_letter} = first letter of model's username {model_username} = The model's username. {model_id}= Unique identification number for model {config_path}= The directory containing the config.json file {profile} =The currently active profile {save_location} = This option retrieves the parsed path specified in the 'save_location' option {my_username}=The authorized account's username {my_id} = The identification number assigned to the authorized account {current_price}= Free if current price is 0 dollars else paid {regular_price}=Free if regular price is 0 dollars else paid {promo_price}= Free if promo price is 0 dollars else paid {renewal_price}= Free if renewal price is 0 dollars else paid [PreviousExample Configschevron-left](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/example-configs) [NextOptionschevron-right](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/options) Last updated 9 months ago * [Config File Location](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/setting-metadata-path#config-file-location) * [Changing metadata location](https://of-scraper.gitbook.io/of-scraper/getting-started/config-options/setting-metadata-path#changing-metadata-location) sun-brightdesktopmoon sun-brightdesktopmoon --- # Content Options | OF-Scraper [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/post-filter-args#targeting-content) Targeting Content ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- ### [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/post-filter-args#o-posts-argument) **\-o, --posts** \[argument\] * Specify the type of content to target for actions (like, unlike, download). * **Possible choices:** `highlights`, `all`, `archived`, `messages`, `timeline`, `pinned`, `stories`, `purchased`, `profile`, `labels`. * **Defaults:** to `None`. ### [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/post-filter-args#t-text-argument) **\-t, --text** \[argument\] * Specify the type of content to target for text download * **Note:** This only has an effect on action download * **Possible choices:** `highlights`, `all`, `archived`, `messages`, `timeline`, `pinned`, `stories`, `purchased`, `profile`, `labels`. * **Defaults:** to `None` ### [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/post-filter-args#la-like-area-argument) **\-la, --like-area** \[argument\] * Define the area for like/unlike actions (overrides `--posts`). * **Possible choices:** `all`, `archived`, `timeline`, `pinned`, `stories`, `labels`. * **Defaults**: to `None`. ### [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/post-filter-args#da-download-area-argument) **\-da, --download-area** \[argument\] * Specify the area for download actions (overrides `--posts`). * **Possible choices:** `highlights`, `all`, `archived`, `messages`, `timeline`, `pinned`, `stories`, `purchased`, `profile`, `labels`. * **Defaults** to `None`. * * * [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/post-filter-args#filtering-content) Filtering Content ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- ### [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/post-filter-args#sk-skip-timed) **\-sk, --skip-timed** * Skips temporary posts (commonly used for promotions). ### [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/post-filter-args#ms-mass-skip) **\-ms, --mass-skip** * Filters downloads to include only those labeled as mass messages. ### [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/post-filter-args#mm-mass-msg) **\-mm, --mass-msg** * Excludes downloads marked as mass messages. ### [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/post-filter-args#ok-only-timed) **\-ok, --only-timed** * Downloads only temporary posts (mostly used for promotions). ### [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/post-filter-args#ft-filter-argument) **\-ft, --filter** \[argument\] * Filter posts using a provided regular expression pattern. * Case-sensitive if uppercase characters are included. * Posts matching the pattern are included. * **Defaults:** to `".*"` (matches all posts). ### [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/post-filter-args#nf-neg-filter-argument) **\-nf, --neg-filter** \[argument\] * Filter posts to exclude based on a regular expression pattern. * Case-sensitive if uppercase characters are included. * Posts matching the pattern are excluded. * **Defaults:** to `None` (no exclusion) ### [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/post-filter-args#to-protected-only) **\-to, --protected-only** * Restricts downloads to content requiring decryption. ### [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/post-filter-args#no-normal-only) **\-no, --normal-only** * Restricts downloads to content that does not require decryption. ### [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/post-filter-args#lb-label) **\-lb, --label** * Scrape content with specific labels. * **Defaults:** to `None` (no specific label). ### [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/post-filter-args#pd-post-id-argument) **\-pd, --post-id \[argument\]** * Filters content based on post ID * **Arguments:** One or more comma-separated (",") post IDs. You can also provide URLs containing a valid post ID * **Defaults:** None * **Note:** In certain situation this will allow direct search of content, namely for timeline and message related posts and if the number is less then 10 * **Note:** you can also use manual if you want to process post for multiple users ### [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/post-filter-args#tls-timeline-strict) \-tls, --timeline-strict * Filters timeline to only include non-pinned and non-archived posts * **Default: False** * * * [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/post-filter-args#a-d-filter) AD Filter ------------------------------------------------------------------------------------------------------------------------------------------------------- ### [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/post-filter-args#ba-block-a-ds) **\-ba, --block-ads** * Filter posts with regex to block posts with common words for advertisements * **Regex :** **Note:** This is passed as a raw string when being used by python * **Defaults:** None ### [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/post-filter-args#nf-neg-filter-argument-1) **\-nf, --neg-filter** \[argument\] * Filter posts to exclude based on a regular expression pattern. * Case-sensitive if uppercase characters are included. * Posts matching the pattern are excluded. * **Defaults:** to `None` (no exclusion) * * * ### [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/post-filter-args#date-range) Date Range [![Logo](https://of-scraper.gitbook.io/of-scraper/~gitbook/image?url=https%3A%2F%2Fof-scraper.gitbook.io%2Fof-scraper%2F%7Egitbook%2Ficon%3Fsize%3Dsmall%26theme%3Dlight&width=20&dpr=3&quality=100&sign=ff8d559f&sv=2)Downloading Content | OF-Scraperof-scraper.gitbook.iochevron-right](https://of-scraper.gitbook.io/of-scraper/using-the-scraper/batch-scraping-and-bot-actions/selecting-posts#valid-inputs) Valid Date Inputs ### [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/post-filter-args#be-before-argument) **\-be, --before** \[argument\] * Process posts on or before a specified date (format: Month/Day/Year). ### [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/post-filter-args#af-after-argument) **\-af, --after** \[argument\] * Process posts on or after a specified date (format: Month/Day/Year). * * * [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/post-filter-args#other-options) Other Options -------------------------------------------------------------------------------------------------------------------------------------------------------------- ### [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/post-filter-args#e-force-all) **\-e, --force-all** * Downloads all files regardless of database presence. * **Defaults:** to `False` ### [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/post-filter-args#fl-force-like) **\-fl,--force-like** * Like posts regardless of status in cache * **Defaults:** to `False` ### [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/post-filter-args#eq-force-model-unique) **\-eq, --force-model-unique** * Downloads files only if not present for the current model * **Defaults:** to `False`. ### [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/post-filter-args#sp-scrape-paid) **\-sp, --scrape-paid** * Scrapes the entire paid page for content (can be time-consuming). * **Defaults:** to `False`. ### [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/post-filter-args#it-item-sort-argument) **\-it, --item-sort** \[argument\] * Defines the order for processing media sort order before actions. * Uses default action sorting if `None`. * **Defaults are:** * Date for likes/unlikes (always) * Date for normal downloader * Shuffled for batch downlooader * **Possible choices:** * `random`: Randomize order * `text-asc`: Sort by post text in ascending order * `text-desc`: Sort by post text in descending order * `date-asc`: Sort by media date in ascending order * `date-desc`: Sort by media date in descending order ### [hashtag](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/post-filter-args#xc-max-count-argument) **\-xc ,--max-count** \[argument\] * Sets the maximum number of posts to like or download. * **Defaults:** to `None` (no limit). [PreviousModel Sorting & Processing Optionschevron-left](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/account-sorting-args) [NextAutomation Optionschevron-right](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/general-scraper-args) Last updated 1 year ago * [Targeting Content](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/post-filter-args#targeting-content) * [\-o, --posts \[argument\]](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/post-filter-args#o-posts-argument) * [\-t, --text \[argument\]](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/post-filter-args#t-text-argument) * [\-la, --like-area \[argument\]](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/post-filter-args#la-like-area-argument) * [\-da, --download-area \[argument\]](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/post-filter-args#da-download-area-argument) * [Filtering Content](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/post-filter-args#filtering-content) * [\-sk, --skip-timed](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/post-filter-args#sk-skip-timed) * [\-ms, --mass-skip](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/post-filter-args#ms-mass-skip) * [\-mm, --mass-msg](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/post-filter-args#mm-mass-msg) * [\-ok, --only-timed](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/post-filter-args#ok-only-timed) * [\-ft, --filter \[argument\]](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/post-filter-args#ft-filter-argument) * [\-nf, --neg-filter \[argument\]](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/post-filter-args#nf-neg-filter-argument) * [\-to, --protected-only](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/post-filter-args#to-protected-only) * [\-no, --normal-only](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/post-filter-args#no-normal-only) * [\-lb, --label](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/post-filter-args#lb-label) * [\-pd, --post-id \[argument\]](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/post-filter-args#pd-post-id-argument) * [\-tls, --timeline-strict](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/post-filter-args#tls-timeline-strict) * [AD Filter](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/post-filter-args#a-d-filter) * [\-ba, --block-ads](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/post-filter-args#ba-block-a-ds) * [\-nf, --neg-filter \[argument\]](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/post-filter-args#nf-neg-filter-argument-1) * [Date Range](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/post-filter-args#date-range) * [\-be, --before \[argument\]](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/post-filter-args#be-before-argument) * [\-af, --after \[argument\]](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/post-filter-args#af-after-argument) * [Other Options](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/post-filter-args#other-options) * [\-e, --force-all](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/post-filter-args#e-force-all) * [\-fl,--force-like](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/post-filter-args#fl-force-like) * [\-eq, --force-model-unique](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/post-filter-args#eq-force-model-unique) * [\-sp, --scrape-paid](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/post-filter-args#sp-scrape-paid) * [\-it, --item-sort \[argument\]](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/post-filter-args#it-item-sort-argument) * [\-xc ,--max-count \[argument\]](https://of-scraper.gitbook.io/of-scraper/command-reference/shared-options/scrape-metadata-options/post-filter-args#xc-max-count-argument) sun-brightdesktopmoon Copy "(#(?:ad|ads|AD|advertising|sponsored|promotion)|trial|discount|exclusive\s+offer|giveaway|limited\s+time|\Buser\s+promo|shoutout|endorsement)" sun-brightdesktopmoon ---