### Example: Basic Metadata Check Source: https://github.com/datawhores/of-scraper-docs/blob/main/command-reference/metadata-check-mode-options.md An example of how to initiate a basic metadata check using the 'check' mode. ```bash ofscraper metadata -metadata check ``` -------------------------------- ### Manual Mode URL Example Source: https://github.com/datawhores/of-scraper-docs/blob/main/command-reference/manual-mode-args.md An example of using the manual mode with a URL. ```bash ofscraper manual --url test ``` -------------------------------- ### Install Project Dependencies with uv Source: https://github.com/datawhores/of-scraper-docs/blob/main/installation/install-from-source.md Install all project dependencies and reinstall existing ones using uv sync to ensure a clean state. ```bash uv sync --reinstall ``` -------------------------------- ### Install Latest Pre-release OF-Scraper Source: https://github.com/datawhores/of-scraper-docs/blob/main/installation/uv-install.md Install the latest pre-release version of OF-Scraper. The --prerelease allow flag is necessary for pre-release installations. ```bash uv tool install --prerelease allow ofscraper --force ``` -------------------------------- ### Install OF-Scraper via UV Source: https://context7.com/datawhores/of-scraper-docs/llms.txt Use UV to install the stable release, a version with bundled ffmpeg, pre-releases, or directly from GitHub. Uninstall first to upgrade. ```bash uv tool install ofscraper --force ``` ```bash uv tool install ofscraper[ffmpeg] --force ``` ```bash uv tool install --prerelease allow ofscraper --force ``` ```bash uv tool install git+https://github.com/datawhores/OF-Scraper.git --force ``` ```bash uv tool install --prerelease allow ofscraper==2.4.3 --python 3.12 ``` ```bash uv tool uninstall ofscraper uv tool install ofscraper --force ``` -------------------------------- ### Paid Check Mode Examples Source: https://github.com/datawhores/of-scraper-docs/blob/main/content-check-modes/README.md Use these examples to gather paid content using usernames. Usernames can be comma-separated or passed multiple times. Files should contain line-separated usernames. ```bash ofscraper paid_check --username username,username ``` ```bash ofscraper paid_check --username username --username username ``` ```bash ofscraper paid_check --file file ``` ```bash ofscraper paid_check --file file --username username ``` -------------------------------- ### Story Check Mode Examples Source: https://github.com/datawhores/of-scraper-docs/blob/main/content-check-modes/README.md Use these examples to collect stories and highlights using usernames. Usernames can be comma-separated or passed multiple times. Files should contain line-separated usernames. ```bash ofscraper story_check --username username,username ``` ```bash ofscraper story_check --username username --username username ``` ```bash ofscraper story_check --file file ``` ```bash ofscraper story_check --file file --username username ``` -------------------------------- ### Basic ofscraper Usage Source: https://github.com/datawhores/of-scraper-docs/blob/main/command-reference/main-scraper-options.md Run the scraper with default settings. This is the simplest way to start scraping. ```bash ofscraper ``` -------------------------------- ### Post Check Mode Examples Source: https://github.com/datawhores/of-scraper-docs/blob/main/content-check-modes/README.md Use these examples to check posts from the main timeline or paid content via URLs. URLs can be comma-separated or passed multiple times. Files should contain line-separated URLs. ```bash ofscraper post_check --url url,url,url ``` ```bash ofscraper post_check --url url --url url ``` ```bash ofscraper post_check --file file ``` ```bash ofscraper post_check --file file --url url ``` -------------------------------- ### Install Development Version of OF-Scraper from GitHub Source: https://github.com/datawhores/of-scraper-docs/blob/main/installation/uv-install.md Install the very latest development version directly from the OF-Scraper GitHub repository. ```bash uv tool install git+https://github.com/datawhores/OF-Scraper.git --force ``` -------------------------------- ### Install OF-Scraper with pyffmpeg Source: https://github.com/datawhores/of-scraper-docs/blob/main/installation/uv-install.md Install OF-Scraper including pyffmpeg capabilities by appending [ffmpeg] to the install name. This automatically installs pyffmpeg and its bundled ffmpeg binaries. ```bash uv tool install ofscraper[ffmpeg] --force ``` -------------------------------- ### Example: Checking Post URL Source: https://github.com/datawhores/of-scraper-docs/blob/main/command-reference/content-check-mode-args.md Demonstrates how to use the 'post_check' subcommand with a URL to scan content. ```bash ofscraper post_check --url test ``` -------------------------------- ### Upgrade OF-Scraper to Latest Stable Source: https://github.com/datawhores/of-scraper-docs/blob/main/installation/uv-install.md Recommended upgrade process: first uninstall the current version to avoid conflicts, then install the latest stable release. The --force flag is used for a clean installation. ```bash uv tool uninstall ofscraper # Recommended first step uv tool install ofscraper --force ``` -------------------------------- ### Install Latest Stable OF-Scraper Source: https://github.com/datawhores/of-scraper-docs/blob/main/installation/uv-install.md Use this command to install the most recent stable release of OF-Scraper. The --force flag ensures a clean installation. ```bash uv tool install ofscraper --force ``` -------------------------------- ### Example Auth File Configuration Source: https://github.com/datawhores/of-scraper-docs/blob/main/getting-started/auth.md This JSON structure represents a typical authentication file. Ensure all values are correctly populated for the scraper to function. ```json { "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" } } ``` -------------------------------- ### Install OF-Scraper with Specific Python Version Source: https://github.com/datawhores/of-scraper-docs/blob/main/installation/uv-install.md Specify the Python version UV should use for the tool installation by appending --python . This example installs a specific script version with Python 3.12. ```bash # Example: Install a specific script version with Python 3.12 uv tool install --prerelease allow ofscraper== --python 3.12 ``` -------------------------------- ### Specify Private Key Path Source: https://github.com/datawhores/of-scraper-docs/blob/main/cdm-options/README.md Set the path to the private key file for manual CDM setup. Ensure the complete file path is used. ```json private-key:...??privatekey.pem ``` -------------------------------- ### Create Python Virtual Environment with uv Source: https://github.com/datawhores/of-scraper-docs/blob/main/installation/install-from-source.md Create a new Python virtual environment named .venv using the uv package installer. ```bash uv venv ``` -------------------------------- ### Minimal Docker Run Command Source: https://github.com/datawhores/of-scraper-docs/blob/main/installation/docker.md This command starts OF-Scraper with default user and group settings. It mounts host directories for configuration and data. Replace `/your/host/config/path/` and `/your/host/data/path/` with your actual host paths. Replace `{args}` with OF-Scraper commands. ```bash 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} ``` -------------------------------- ### Upgrade OF-Scraper to Latest Pre-release/Development Source: https://github.com/datawhores/of-scraper-docs/blob/main/installation/uv-install.md Upgrade to the latest pre-release or development version. It's recommended to uninstall first, then install using the --prerelease allow flag. ```bash uv tool uninstall ofscraper # Recommended first step uv tool install --prerelease allow ofscraper --force ``` -------------------------------- ### Install Specific Version of OF-Scraper Source: https://github.com/datawhores/of-scraper-docs/blob/main/installation/uv-install.md Install a specific stable or pre-release version of OF-Scraper by specifying the version number. Replace with the desired version, e.g., ofscraper==2.4.3. ```bash uv tool install --prerelease allow ofscraper== ``` -------------------------------- ### Build Custom OF-Scraper Docker Image with FFmpeg Source: https://github.com/datawhores/of-scraper-docs/blob/main/installation/docker.md Builds a custom OF-Scraper Docker image locally using `docker buildx`, enabling the installation of FFmpeg via the `INSTALL_FFMPEG=true` build argument. Supports multi-platform builds. ```bash # 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 \ ``` -------------------------------- ### Specify Client ID Path Source: https://github.com/datawhores/of-scraper-docs/blob/main/cdm-options/README.md Set the path to the client ID file for manual CDM setup. Ensure the complete file path is used. ```json client-id:...??client_id.bin ``` -------------------------------- ### Message Check Mode Example Source: https://github.com/datawhores/of-scraper-docs/blob/main/content-check-modes/README.md This mode is similar to post check but specifically for messages. It uses the same command-line arguments and URL formats. ```bash ofscraper msg_check --url url,url,url ``` -------------------------------- ### Manual Auth File Structure Source: https://github.com/datawhores/of-scraper-docs/blob/main/getting-started/auth.md Use this JSON structure when manually inputting authentication details. Leave fields blank if the information is not available or not required for your setup. ```json { "auth": { "sess": "", "auth_id": "", "auth_uniq_": "", "user_agent": "", "x-bc": "" } } ``` -------------------------------- ### Mark Stray Locked Media Source: https://github.com/datawhores/of-scraper-docs/blob/main/command-reference/metadata-check-mode-options.md Example of using the --mark-stray-locked option to manage unmatched media items. ```bash ofscraper metadata -md "check" -ms "locked" ``` -------------------------------- ### Python Naming Script Example Source: https://context7.com/datawhores/of-scraper-docs/llms.txt A Python script that renames .jpeg files to .jpg. It receives JSON data via stdin and prints the new path to stdout. ```python import sys import json import pathlib def main(): # Receive JSON with keys: "dir", "file", and media metadata data = json.loads(sys.stdin.read()) dir_path = data["dir"] filename = data["file"].replace("jpeg", "jpg").strip() full_path = str(pathlib.Path(dir_path, filename)) # Print final path to stdout (consumed by OF-Scraper) print(full_path, file=sys.stdout) # Optionally log to stderr print(full_path, file=sys.stderr) if __name__ == "__main__": main() ``` -------------------------------- ### Select All Models Shortcut Source: https://github.com/datawhores/of-scraper-docs/blob/main/using-the-scraper/username-selection-or-fuzzy-search.md Use this shortcut to select all available models in the list. ```text Ctrl+R ``` -------------------------------- ### Select All Models Shortcut (Alternative) Source: https://github.com/datawhores/of-scraper-docs/blob/main/using-the-scraper/username-selection-or-fuzzy-search.md An alternative shortcut to select all available models. ```text Ctrl+A ``` -------------------------------- ### Download from URLs and Files Source: https://context7.com/datawhores/of-scraper-docs/llms.txt Specify download sources using direct URLs or a file containing a list of URLs. Can combine both methods. ```bash ofscraper manual --url url1 --url url2 ``` ```bash ofscraper manual --url url1,url2 ``` ```bash ofscraper manual --file /path/to/urls.txt ``` ```bash ofscraper manual --file /path/to/urls.txt --url https://onlyfans.com/1113331313/model ``` -------------------------------- ### Select Single Model Shortcuts Source: https://github.com/datawhores/of-scraper-docs/blob/main/using-the-scraper/username-selection-or-fuzzy-search.md Use these shortcuts to navigate and select individual models. ```text END | HOME | PAGEUP | PAGEDOWN ``` -------------------------------- ### Use Custom Configuration and Profile Source: https://context7.com/datawhores/of-scraper-docs/llms.txt Specify a custom directory for configuration files and a specific profile name for the scraper's operation. ```bash ofscraper --config /custom/config/path --profile myprofile --username ALL --posts all --action download ``` -------------------------------- ### Show Download Progress Bars Source: https://context7.com/datawhores/of-scraper-docs/llms.txt Enable the display of download progress bars using the `--download-bars` flag. ```bash ofscraper --username ALL --posts all --action download --download-bars ``` -------------------------------- ### Force Fresh Data Check Source: https://context7.com/datawhores/of-scraper-docs/llms.txt Bypass the 24-hour cache and force a fresh data check for messages. This ensures you get the most up-to-date information. ```bash ofscraper msg_check --url model --force ``` -------------------------------- ### Case-Sensitive Search Example Source: https://github.com/datawhores/of-scraper-docs/blob/main/content-check-modes/table-management/README.md To perform a case-sensitive search, use uppercase characters in your search term. This ensures that the search only matches the exact casing provided. ```text Dog ``` -------------------------------- ### Activate Python Virtual Environment Source: https://github.com/datawhores/of-scraper-docs/blob/main/installation/install-from-source.md Activate the created virtual environment. On Windows, use a different command. ```bash source .venv/bin/activate ``` ```powershell .\.venv\Scripts\activate ``` -------------------------------- ### Filter by Free Trial Source: https://context7.com/datawhores/of-scraper-docs/llms.txt Download content only from models currently in a free trial using the `--free-trial-only` flag. ```bash ofscraper --username ALL --posts all --action download --free-trial-only ``` -------------------------------- ### Clone Repository Source: https://github.com/datawhores/of-scraper-docs/blob/main/installation/install-from-source.md Clone the project repository using Git and navigate into the project directory. ```bash git clone https://github.com/datawhores/OF-Scraper/ cd OF-Scraper ``` -------------------------------- ### Use Alternate Profile Source: https://context7.com/datawhores/of-scraper-docs/llms.txt Use a specific profile for authentication, allowing separate auth.json files per profile. ```bash ofscraper --profile workaccount --username ALL --posts all --action download ``` -------------------------------- ### Docker Compose Configuration for OF-Scraper Source: https://github.com/datawhores/of-scraper-docs/blob/main/installation/docker.md Defines the OF-Scraper service for Docker Compose. Includes volume mounts for configuration and data, environment variables for permissions, and options for interactive or automated command execution. Recommended for complex setups. ```yaml 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. ``` -------------------------------- ### Redownload Workflow with Metadata Source: https://context7.com/datawhores/of-scraper-docs/llms.txt A workflow to handle redownloads by first updating metadata based on existing files and then performing a full download action. ```bash ofscraper metadata --metadata update --username ALL --posts all ofscraper --username ALL --posts all --action download ``` -------------------------------- ### Enter metadata mode Source: https://github.com/datawhores/of-scraper-docs/blob/main/page/creating-metadata.md Use the `metadata` subcommand to enter metadata mode. This allows updating metadata without downloading files. Consider using the `--anon` option to gather metadata without logging in, though this limits access to most media data. ```bash ofscraper metadata [args] ``` -------------------------------- ### Download Videos and Images Source: https://context7.com/datawhores/of-scraper-docs/llms.txt Download both videos and images by specifying multiple `--mediatype` options. ```bash ofscraper --username ALL --posts all --action download --mediatype Videos --mediatype Images ``` -------------------------------- ### Create Posts Table Source: https://context7.com/datawhores/of-scraper-docs/llms.txt SQL statement to create the 'posts' table for storing post details. ```sql CREATE TABLE posts ( id INTEGER NOT NULL PRIMARY KEY, post_id INTEGER NOT NULL, model_id INTEGER, text VARCHAR, price INTEGER, paid INTEGER, pinned BOOLEAN, archived BOOLEAN, stream BOOLEAN, created_at TIMESTAMP, UNIQUE (post_id, model_id) ); ``` -------------------------------- ### Set Proxy via .env File Source: https://context7.com/datawhores/of-scraper-docs/llms.txt Configure the proxy server by adding it to a .env file. This method is useful for persistent configuration. ```bash echo "PROXY=http://username:password@proxy.example.com:8080" >> .env ofscraper --username ALL --posts all --action download ``` -------------------------------- ### Use Non-Default Config Directory Source: https://context7.com/datawhores/of-scraper-docs/llms.txt Specify a custom directory for configuration files. ```bash ofscraper --config /custom/config/path --username ALL --posts all --action download ``` -------------------------------- ### Run Script After Each Model Source: https://context7.com/datawhores/of-scraper-docs/llms.txt Execute a custom Python script after each model's download process completes using --after-action-script. ```bash ofscraper --username ALL --posts all --action download \ --after-action-script /path/to/after_model.py ``` -------------------------------- ### Download All Media from Subscribed Models Source: https://context7.com/datawhores/of-scraper-docs/llms.txt Download all media types from all subscribed models. Use 'ALL' for usernames and 'all' for posts. ```bash ofscraper --username ALL --posts all --action download ``` -------------------------------- ### Set Threads Per Download Process Source: https://context7.com/datawhores/of-scraper-docs/llms.txt Configure the number of threads used per download process with `--download-threads`. Set to 0 to use only the main thread. ```bash ofscraper --username ALL --posts all --action download --download-threads 4 ``` -------------------------------- ### Filter by Free Subscription Price Source: https://context7.com/datawhores/of-scraper-docs/llms.txt Download content only from free models using `--current-price free`. ```bash ofscraper --username ALL --posts all --action download --current-price free ``` -------------------------------- ### Redownload Missing Files - Step 1 Source: https://context7.com/datawhores/of-scraper-docs/llms.txt Mark files not present on disk as 'not downloaded' using the metadata update command. ```bash ofscraper metadata --metadata update --username ALL --posts all ``` -------------------------------- ### View Model Detail Shortcut Source: https://github.com/datawhores/of-scraper-docs/blob/main/using-the-scraper/username-selection-or-fuzzy-search.md Use this shortcut to view all details for a selected model. This is useful when the prompt menu limits displayed data. ```text Alt+D ``` -------------------------------- ### Run Script After All Downloads Source: https://context7.com/datawhores/of-scraper-docs/llms.txt Use --post-script to run a Python script once all downloads for the session are finished. ```bash ofscraper --username ALL --posts all --action download \ --post-script /path/to/finalize.py ``` -------------------------------- ### Process Specific Models Source: https://context7.com/datawhores/of-scraper-docs/llms.txt Download content only from specified models. Provide a comma-separated list of usernames. ```bash ofscraper --username model1,model2 --posts timeline --action download ``` -------------------------------- ### Load Specific .env File Source: https://context7.com/datawhores/of-scraper-docs/llms.txt Load configuration from a specific .env file, overriding system environment variables. ```bash ofscraper --env-file /home/user/my_app/prod.env --username ALL --posts all --action download ``` -------------------------------- ### Set Video Quality Source: https://context7.com/datawhores/of-scraper-docs/llms.txt Specify the desired video quality using the `--quality` option. Options include 'source', '240', '720'. ```bash ofscraper --username ALL --posts all --action download --quality source ``` -------------------------------- ### Filter by Promo Price Source: https://context7.com/datawhores/of-scraper-docs/llms.txt Download content only from models with a claimable promo price using the `--promo-only` flag. ```bash ofscraper --username ALL --posts all --action download --promo-only ``` -------------------------------- ### Create Medias Table Source: https://context7.com/datawhores/of-scraper-docs/llms.txt SQL statement to create the 'medias' table for storing downloaded media information. ```sql CREATE TABLE medias ( id INTEGER NOT NULL PRIMARY KEY, media_id INTEGER, post_id INTEGER NOT NULL, model_id INTEGER, media_type VARCHAR, -- 'Images', 'Videos', 'Audios' api_type VARCHAR, -- which API endpoint filename VARCHAR, directory VARCHAR, downloaded BOOL, unlocked BOOL, size INTEGER, duration VARCHAR, posted_at TIMESTAMP, created_at TIMESTAMP, hash VARCHAR, link VARCHAR, UNIQUE (media_id, model_id, post_id) ); ``` -------------------------------- ### Set UID and GID for Mounted Volumes Source: https://github.com/datawhores/of-scraper-docs/blob/main/installation/docker.md Set UID and GID environment variables to match your host system's user for optimal performance with mounted volumes. This ensures correct file ownership. ```bash -e UID=$(id -u) -e GID=$(id -g) ``` -------------------------------- ### Minimal Docker Run Source: https://context7.com/datawhores/of-scraper-docs/llms.txt Basic Docker run command. Mounts configuration and data directories. Uses default UID/GID 1000. ```bash 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 --username ALL --posts all --action download ``` -------------------------------- ### Download from Specific URL or Post ID Source: https://context7.com/datawhores/of-scraper-docs/llms.txt Use the manual mode to download media directly from a given OnlyFans URL or a post ID. ```bash ofscraper manual --url https://onlyfans.com/1113331313/model ``` ```bash ofscraper manual --url 1113331313 ``` -------------------------------- ### Use Named User Lists Source: https://context7.com/datawhores/of-scraper-docs/llms.txt Process models based on predefined or custom user lists. Built-in lists include 'ofscraper.main', 'ofscraper.active', and 'ofscraper.disabled'. ```bash ofscraper --user-list ofscraper.active --posts all --action download ``` -------------------------------- ### Docker Run with Optional Environment Variables Source: https://github.com/datawhores/of-scraper-docs/blob/main/installation/docker.md This command demonstrates how to pass optional environment variables to customize the container's user and group. Use the `-e` flag for each variable. This is useful for managing permissions, especially in rootless Docker environments. Replace placeholders as needed. ```bash 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 \ ghcr.io/datawhores/of-scraper:main ofscraper {args} ``` -------------------------------- ### Docker Run with Matching Host Permissions Source: https://context7.com/datawhores/of-scraper-docs/llms.txt Ensures container file ownership matches host permissions by passing UID and GID environment variables. ```bash docker run -it --rm --name=ofscraper \ -v /your/host/config/path/:/home/ofscraper/.config/ofscraper/ \ -v /your/host/data/path/:/home/ofscraper/data \ -e UID=$(id -u) -e GID=$(id -g) \ ghcr.io/datawhores/of-scraper:main ofscraper --username ALL --posts all --action download ``` -------------------------------- ### Scrape Paid Content Metadata Modes Source: https://github.com/datawhores/of-scraper-docs/blob/main/command-reference/metadata-check-mode-options.md Demonstrates using the --scrape-paid option with different metadata update modes for paid content. ```bash ofscraper metadata -sp check ``` ```bash ofscraper metadata -sp update ``` ```bash ofscraper metadata -sp complete ``` -------------------------------- ### Set Proxy via Environment Variable Source: https://context7.com/datawhores/of-scraper-docs/llms.txt Configure the proxy server using the PROXY environment variable. Supports credentials. ```bash export PROXY="http://username:password@localhost:8030" ofscraper --username ALL --posts all --action download ``` -------------------------------- ### More Controls Shortcut Source: https://github.com/datawhores/of-scraper-docs/blob/main/using-the-scraper/username-selection-or-fuzzy-search.md Use these shortcuts to access up-to-date controls during model selection. These controls may change over time. ```text ALT+V | CTRL+V ``` -------------------------------- ### Prepare Environment Variables for Custom Versioning Source: https://github.com/datawhores/of-scraper-docs/blob/main/installation/install-from-source.md Source the commit_version.sh script to set environment variables for custom versioning during local development. ```bash source scripts/commit_version.sh ``` -------------------------------- ### Simultaneous Like and Download Source: https://context7.com/datawhores/of-scraper-docs/llms.txt Perform both liking and downloading actions concurrently. Actions can be specified individually or comma-separated. ```bash ofscraper --username ALL --posts all --action like --action download ``` ```bash ofscraper --username ALL --posts all --action like,download ``` -------------------------------- ### Minimal Console Output Source: https://context7.com/datawhores/of-scraper-docs/llms.txt Use `--output PROMPT` for minimal console output, suitable for automation and scripting. ```bash ofscraper --username ALL --posts all --action download --output PROMPT ``` -------------------------------- ### Download Text Content Source: https://context7.com/datawhores/of-scraper-docs/llms.txt Options to download text along with media or text only, skipping media. ```bash ofscraper manual --url https://onlyfans.com/1113331313/model --text ``` ```bash ofscraper manual --url https://onlyfans.com/1113331313/model --text-only ``` -------------------------------- ### Metadata Update Modes Source: https://github.com/datawhores/of-scraper-docs/blob/main/command-reference/metadata-check-mode-options.md Illustrates the different modes for updating metadata, including 'check', 'update', and 'complete'. ```bash ofscraper metadata -metadata check ``` ```bash ofscraper metadata -metadata update ``` ```bash ofscraper metadata -metadata complete ``` -------------------------------- ### Basic Syntax for Content Check Source: https://github.com/datawhores/of-scraper-docs/blob/main/command-reference/content-check-mode-args.md Illustrates the general syntax for using the ofscraper command with a content check subcommand. ```bash ofscraper [subcommand_name] [subcommand_options] ``` -------------------------------- ### Quit Immediately on Auth Failure Source: https://context7.com/datawhores/of-scraper-docs/llms.txt Configure OF-Scraper to quit immediately upon authentication failure instead of prompting. ```bash ofscraper --username ALL --posts all --action download --auth-fail ``` -------------------------------- ### Force Redownload of All Files Source: https://github.com/datawhores/of-scraper-docs/blob/main/using-the-scraper/recipes/redownload-deleted-downloads.md Use the '--force-all' argument to ensure all downloads are processed, which will redownload any missing files. ```bash ofscraper --force-all ``` -------------------------------- ### Enable Debug Logging Source: https://github.com/datawhores/of-scraper-docs/blob/main/faq/README.md Run this command to display detailed output in the console for debugging purposes. This helps in identifying issues by showing the scraper's internal processes. ```bash ofscraper --output debug ``` -------------------------------- ### Metadata Management Modes Source: https://context7.com/datawhores/of-scraper-docs/llms.txt Manage the local database by updating metadata without re-downloading content. Use 'check' to update API metadata, 'update' to sync with local files, and 'complete' to mark downloads as complete. ```bash ofscraper metadata --metadata check ``` ```bash ofscraper metadata --metadata update ``` ```bash ofscraper metadata --metadata complete ``` -------------------------------- ### Download Selected Items from Check Table Source: https://context7.com/datawhores/of-scraper-docs/llms.txt After running a check mode, you can select items in the displayed table by clicking or using specific keys (';' / "'") and then send them to OF-Scraper to queue for download. ```bash # 1. Run any check mode # 2. Toggle rows with mouse click or ";" / "'" # 3. Click "Send to OF-Scraper" to queue downloads ``` -------------------------------- ### Set Save Location Source: https://github.com/datawhores/of-scraper-docs/blob/main/getting-started/migrating-from-digitalcriminals-script.md Configure the base directory where all downloaded content will be saved. This setting is directly transferable. ```json "save_location": "/Onlyfans", ``` -------------------------------- ### Download Minimum Video Length Source: https://context7.com/datawhores/of-scraper-docs/llms.txt Only download videos that are at least a specified length in seconds using `--length-min`. ```bash ofscraper --username ALL --posts all --action download --length-min 5 ``` -------------------------------- ### Check Posts from File Source: https://context7.com/datawhores/of-scraper-docs/llms.txt Check posts by providing a file containing a list of URLs, one per line. This is useful for checking a large number of models or pages. ```bash ofscraper post_check --file /path/to/urls.txt ``` -------------------------------- ### Download Specific Media Types with Filters Source: https://context7.com/datawhores/of-scraper-docs/llms.txt Download only images from purchased content, excluding specific users and filtering by media type. Use `--mediatype` to specify. ```bash ofscraper --username ALL --excluded-username spammodel --posts purchased \ --action download --mediatype Images ``` -------------------------------- ### Manual Mode Syntax Source: https://github.com/datawhores/of-scraper-docs/blob/main/command-reference/manual-mode-args.md The basic syntax for using the ofscraper in manual mode. ```bash ofscraper manual [options] ``` -------------------------------- ### Check Stories and Highlights Source: https://context7.com/datawhores/of-scraper-docs/llms.txt Check stories and highlights for one or more specified usernames. Use multiple --username flags for multiple users. ```bash ofscraper story_check --username username1 --username username2 ``` -------------------------------- ### Use Naming Script Source: https://context7.com/datawhores/of-scraper-docs/llms.txt Integrate a custom Python script for filename manipulation using the --naming-script option. ```bash ofscraper --username ALL --posts all --action download \ --naming-script /path/to/naming_script.py ``` -------------------------------- ### Like All Timeline Posts Source: https://context7.com/datawhores/of-scraper-docs/llms.txt Perform a bulk like action on all timeline posts for all subscribed models. ```bash ofscraper --username ALL --posts timeline --action like ``` -------------------------------- ### Force Re-download Everything Source: https://context7.com/datawhores/of-scraper-docs/llms.txt Use the --force-all flag to force a re-download of all files, regardless of their current status. ```bash ofscraper --username ALL --posts all --action download --force-all ``` -------------------------------- ### Interactive UI Keyboard Shortcuts Source: https://context7.com/datawhores/of-scraper-docs/llms.txt List of keyboard shortcuts for navigating and managing model selections in the interactive UI. ```text Ctrl+R — Select/deselect all models matching current search Ctrl+A — Select all models END/HOME/PGUP/PGDN — Select a single model Alt+D — View full details for highlighted model Alt+X / Ctrl+B — Open filter/sort adjustment menu Alt+V / Ctrl+V — View all available keyboard shortcuts (type text) — Fuzzy-filter the model list; selections persist across filter changes ``` -------------------------------- ### Filter Posts by Date Range Source: https://context7.com/datawhores/of-scraper-docs/llms.txt Download posts within a specific date range. Use --after and --before flags with Month/Day/Year format. ```bash ofscraper --username ALL --posts timeline --action download \ --after 06/01/2024 --before 12/31/2024 ``` -------------------------------- ### Download Normal Content Only Source: https://context7.com/datawhores/of-scraper-docs/llms.txt Use `--normal-only` to download only non-encrypted or normal content. ```bash ofscraper --username ALL --posts all --action download --normal-only ``` -------------------------------- ### Download Protected Content Only Source: https://context7.com/datawhores/of-scraper-docs/llms.txt Use `--protected-only` to download only encrypted or protected content. ```bash ofscraper --username ALL --posts all --action download --protected-only ``` -------------------------------- ### Update Metadata to Identify Missing Files Source: https://github.com/datawhores/of-scraper-docs/blob/main/using-the-scraper/recipes/redownload-deleted-downloads.md Use the 'metadata-update' argument to update local files based on configuration. If a file is not found locally, it will be marked as not downloaded. This is faster than '--dupe' as it avoids writing files to disk and reduces the number of requests. ```bash ofscraper metadata --metadata-update ``` -------------------------------- ### Check Purchased Content Source: https://context7.com/datawhores/of-scraper-docs/llms.txt Check purchased content by specifying usernames or a file containing usernames. Supports single usernames, comma-separated lists, or a file. ```bash ofscraper paid_check --username username1,username2 ``` ```bash ofscraper paid_check --file /path/to/usernames.txt ``` -------------------------------- ### Download Specific Media Types from Specific Models Source: https://context7.com/datawhores/of-scraper-docs/llms.txt Download only timeline posts and stories from specified models. Multiple models and post types can be comma-separated. ```bash ofscraper --username model1,model2 --posts timeline,stories --action download ``` -------------------------------- ### Filter by Paid Subscription Price Source: https://context7.com/datawhores/of-scraper-docs/llms.txt Download content only from models with a paid current subscription price using `--current-price paid`. ```bash ofscraper --username ALL --posts all --action download --current-price paid ``` -------------------------------- ### Scrape Individual Media Source: https://github.com/datawhores/of-scraper-docs/blob/main/scraping-individual-posts-or-media.md Initiate a content scraper mode to select and download individual media items. Media marked for download will have 'added' status. ```bash ofscraper manual ``` -------------------------------- ### Define Directory Format Source: https://github.com/datawhores/of-scraper-docs/blob/main/getting-started/migrating-from-digitalcriminals-script.md Specify the structure for organizing downloaded files within the save location. This format allows for dynamic subdirectories based on model, response type, value, and media type. ```markup "dir_format": "{model_username}/{responsetype}/{value}/{mediatype}/" ``` -------------------------------- ### Create Messages Table Source: https://context7.com/datawhores/of-scraper-docs/llms.txt SQL statement to create the 'messages' table for storing message details. ```sql CREATE TABLE messages ( id INTEGER NOT NULL PRIMARY KEY, post_id INTEGER NOT NULL, model_id INTEGER, user_id INTEGER, text VARCHAR, price INTEGER, paid BOOLEAN, archived BOOLEAN, created_at TIMESTAMP, UNIQUE (post_id, model_id) ); ``` -------------------------------- ### Set Log File Level Source: https://context7.com/datawhores/of-scraper-docs/llms.txt Configure the logging level for the output file using the `--log` option. Accepts levels like DEBUG. ```bash ofscraper --log DEBUG --username ALL --posts all --action download ``` -------------------------------- ### Download Minimum File Size Source: https://context7.com/datawhores/of-scraper-docs/llms.txt Only download files that meet or exceed a minimum size using the `--size-min` option. Accepts units like MB. ```bash ofscraper --username ALL --posts all --action download --size-min 50MB ``` -------------------------------- ### Use Blacklist for Exclusions Source: https://context7.com/datawhores/of-scraper-docs/llms.txt Use a blacklist to exclude users from a specified user list. This allows for granular control over processing. ```bash ofscraper --user-list ofscraper.main --black-list inactiveUsers --posts all --action download ```