From 584ce09644f7b98a187a9b9ae6e5005b7ab20448 Mon Sep 17 00:00:00 2001 From: whimsical-c4lic0 Date: Sun, 1 Mar 2026 05:04:52 -0600 Subject: [PATCH] Update documentation for GUI version --- .gitea/workflows/publish-release.yml | 2 +- AGENTS.md | 2 +- docs/config/all-configuration-options.md | 20 +++---- docs/config/auth.md | 21 +++---- docs/config/cdm.md | 34 ++++++++---- docs/config/configuration.md | 6 +- docs/installation/docker.md | 23 +++++--- docs/installation/linux.md | 17 ++++-- docs/installation/windows.md | 36 ++++++------ .../classic-version.md} | 13 +++-- docs/operation/modern-version.md | 55 +++++++++++++++++++ mkdocs.yml | 4 +- 12 files changed, 162 insertions(+), 71 deletions(-) rename docs/{running-the-program.md => operation/classic-version.md} (86%) create mode 100644 docs/operation/modern-version.md diff --git a/.gitea/workflows/publish-release.yml b/.gitea/workflows/publish-release.yml index 8986c9c..bd8b249 100644 --- a/.gitea/workflows/publish-release.yml +++ b/.gitea/workflows/publish-release.yml @@ -58,7 +58,7 @@ jobs: mv ../outlin-cli/config.conf . rm *.pdb mv "OF DL.Gui.exe" "OF DL.exe" - mv "OF DL.Cli.exe" "OF DL - Legacy.exe" + mv "OF DL.Cli.exe" "OF DL - Classic.exe" echo "➤ Remove unneeded playwright binaries" rm -rf .playwright/node/darwin* diff --git a/AGENTS.md b/AGENTS.md index 8aec47f..d5b79c7 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -251,5 +251,5 @@ cookies/user-agent. Output is written to `{filename}_source.mp4`, then moved and full spec), `docs/config/configuration.md` (organized list), and `docs/config/custom-filename-formats.md` if filename tokens or formats are affected. - Authentication flow changes (browser login, legacy methods, required fields): update `docs/config/auth.md`. -- CLI/menu flow or download workflow changes: update `docs/running-the-program.md`. +- CLI/menu flow or download workflow changes: update `docs/operation/classic-version.md`. - Docker runtime or container flags/paths change: update `docs/installation/docker.md`. diff --git a/docs/config/all-configuration-options.md b/docs/config/all-configuration-options.md index 800712d..a8782c0 100644 --- a/docs/config/all-configuration-options.md +++ b/docs/config/all-configuration-options.md @@ -394,9 +394,9 @@ Default: `false` Allowed values: `true`, `false` -Description: If set to `false`, OF-DL will show a warning and ask for confirmation before starting downloads when -`device_client_id_blob` and/or `device_private_key` is missing. -If set to `true`, this warning is hidden and downloads start immediately. +Description: This configuration option has no effect in classic (text-based) versions of OF DL. If set to `false`, OF DL +will show a warning and ask for confirmation before starting downloads when `device_client_id_blob` and/or +`device_private_key` is missing. If set to `true`, this warning is hidden and downloads start immediately. ## HideShowScrapeSizeWarning @@ -406,9 +406,9 @@ Default: `false` Allowed values: `true`, `false` -Description: If set to `false`, OF-DL will show a warning and ask for confirmation before starting downloads when -[ShowScrapeSize](#showscrapesize) is enabled. -If set to `true`, this warning is hidden and downloads start immediately. +Description: This configuration option has no effect in classic (text-based) versions of OF DL. If set to `false`, OF-DL +will show a warning and ask for confirmation before starting downloads when +[ShowScrapeSize](#showscrapesize) is enabled. If set to `true`, this warning is hidden and downloads start immediately. ## IgnoreOwnMessages @@ -418,8 +418,8 @@ Default: `false` Allowed values: `true`, `false` -Description: By default (or when set to `false`), messages that were sent by yourself will be added to the metadata DB -and any media which has been sent by yourself will be downloaded. If set to `true`, the program will not add messages +Description: By default (or when set to `false`), messages sent by yourself will be added to the metadata DB +and any media that has been sent by yourself will be downloaded. If set to `true`, the program will not add messages sent by yourself to the metadata DB and will not download any media which has been sent by yourself. ## IgnoredUsersListName @@ -612,8 +612,8 @@ Default: `"dark"` Allowed values: `"light"`, `"dark"` -Description: Controls the OF-DL GUI theme. -Set to `"light"` for light mode or `"dark"` for dark mode. +Description: This configuration option has no effect in classic (text-based) versions of OF DL. Controls the OF DL +theme. Set to `"light"` for light mode or `"dark"` for dark mode. ## Timeout diff --git a/docs/config/auth.md b/docs/config/auth.md index 2f93841..e416867 100644 --- a/docs/config/auth.md +++ b/docs/config/auth.md @@ -3,14 +3,10 @@ ## Current Method (versions >= 1.9.0) OF DL allows you to log in to your OnlyFans account directly. This simplifies the authentication process significantly. -When prompted by the application, log into your OnlyFans account. Do not close the opened window, tab, or navigate away to another webpage. +When prompted by the application, log into your OnlyFans account. Do not close the opened window, tab, or navigate away +to another webpage. The new window will close automatically when the authentication process has finished. -!!! warning - - Some users have reported that "Sign in with Google" has not been working with this authentication method. - If you use the Google sign-in option to log into your OnlyFans account, use one of the [legacy authentication methods](#legacy-methods) described below. - !!! info If you are using docker, follow the special [authentication instructions documented](/installation/docker) to authenticate OF-DL @@ -21,11 +17,14 @@ Legacy authentication methods involve creating/editing `auth.json` file yourself ### Browser Extension -You can use a browser extension to help get the required info for the `auth.json` file. The extension supports Google Chrome and Firefox and can be found [here](https://github.com/whimsical-c4lic0/OF-DL-Auth-Helper/) (https://github.com/whimsical-c4lic0/OF-DL-Auth-Helper/). +You can use a browser extension to help get the required info for the `auth.json` file. The extension supports Google +Chrome and Firefox and can be +found [here](https://github.com/whimsical-c4lic0/OF-DL-Auth-Helper/) (https://github.com/whimsical-c4lic0/OF-DL-Auth-Helper/). ### Manual Method -Open `auth.json` in a text editor of your choice. The default windows notepad is sufficient. When you open `auth.json` for the first time you should see something like this: +Open `auth.json` in a text editor of your choice. The default windows notepad is sufficient. When you open `auth.json` +for the first time you should see something like this: ```json { @@ -36,7 +35,8 @@ Open `auth.json` in a text editor of your choice. The default windows notepad is } ``` -Next, log into OnlyFans, and press F12 to open the dev tools. In the filter box, type `api`, and open any page on OnlyFans (e.g. Messages). You should see some requests appear in the list within the network tab: +Next, log into OnlyFans, and press F12 to open the dev tools. In the filter box, type `api`, and open any page on +OnlyFans (e.g. Messages). You should see some requests appear in the list within the network tab: ![Image of dev tools panel showing network tab](/img/network_tab.png) @@ -56,7 +56,8 @@ The value of `USER_AGENT` will be set to what the `User-Agent` is set to in the The value of `X_BC` will be set to what the `X-Bc` is set to in the Request Headers. -The value of `COOKIE` will be set to `auth_id=YOUR AUTH_ID HERE; sess=YOUR SESS HERE;`, please make sure you copy the values from within the Cookie field found in the Request Headers section. +The value of `COOKIE` will be set to `auth_id=YOUR AUTH_ID HERE; sess=YOUR SESS HERE;`, please make sure you copy the +values from within the Cookie field found in the Request Headers section. If you have done everything correct you should end up with something like this (this is all dummy info): diff --git a/docs/config/cdm.md b/docs/config/cdm.md index 8915aab..aa16284 100644 --- a/docs/config/cdm.md +++ b/docs/config/cdm.md @@ -1,24 +1,36 @@ # CDM (optional, but recommended) -Without Widevine/CDM keys, OF DL uses the 3rd party website cdrm-project.org for decrypting DRM videos. With keys, OF DL directly communicates with OnlyFans. It is highly recommended to use keys, both in case the cdrm-project site is having issues (which occur frequently, in our experience) and it will result in faster download speeds, too. However, this is optional, as things will work as long as cdrm-project is functional. +Without Widevine/CDM keys, OF DL uses ofdl.tools for decrypting DRM videos. With keys, OF DL directly communicates with +OnlyFans. It is highly recommended to use keys, both in case ofdl.tools has issues (which occur rarely) and for faster +download speeds. -Two files need to be generated, called `device_client_id_blob` and `device_private_key`. In your main OF DL folder (where you have `config.json` and `auth.json`), create a folder called `cdm` (if it does not already exist). Inside it, create a folder called `devices` and inside that, create a folder called `chrome_1610`. Finally, inside this last folder (`chrome_1610`), place the two key files. (Note that this folder name is a legacy name and OFDL does not actually use Chrome itself.) - -## Manual Generation Method - -You can find a tutorial on how to do this [here](https://forum.videohelp.com/threads/408031-Dumping-Your-own-L3-CDM-with-Android-Studio). - -I have also made some [batch scripts](https://github.com/sim0n00ps/L3-Dumping) to run the commands included in the guide linked above that can save you some time and makes the process a little simpler. +Two files need to be generated, called `device_client_id_blob` and `device_private_key`. In your main OF DL folder ( +where you have `config.json` and `auth.json`), create a folder called `cdm` (if it does not already exist). Inside it, +create a folder called `devices` and inside that, create a folder called `chrome_1610`. Finally, inside this last +folder (`chrome_1610`), place the two key files. (Note that this folder name is a legacy name and OFDL does not actually +use Chrome itself for decryption.) ## Discord Method -Generating these keys can be complicated, so the team (shout out to Masaki here) have set up a bot on the Discord server to help securely deliver these keys to users who need them. You can join the discord sever [here](https://discord.com/invite/6bUW8EJ53j) +Generating these keys can be complicated, so the team (shout out to Masaki here) have set up a bot on the Discord server +to help securely deliver these keys to users who need them. You can join the discord +sever [here](https://discord.com/invite/6bUW8EJ53j) -After joining, visit the bot [here](https://discord.com/channels/1198332760947966094/1333835216313122887) (the pinned post in the `#ofdl` support forum) +After joining, visit the bot [here](https://discord.com/channels/1198332760947966094/1333835216313122887) (the pinned +post in the `#ofdl` support forum) + +## Manual Generation Method + +You can find a tutorial on how to do +this [here](https://forum.videohelp.com/threads/408031-Dumping-Your-own-L3-CDM-with-Android-Studio). + +I have also made some [batch scripts](https://github.com/sim0n00ps/L3-Dumping) to run the commands included in the guide +linked above that can save you some time and makes the process a little simpler. ## After install -Restart OF DL, and you should no longer see the yellow warning message about cdrm-project and instead see two green messages like so: +Restart OF DL, and you should no longer see the yellow warning message about cdrm-project and instead see two green +messages like so: ``` device_client_id_blob located successfully! diff --git a/docs/config/configuration.md b/docs/config/configuration.md index d1f4592..545acd0 100644 --- a/docs/config/configuration.md +++ b/docs/config/configuration.md @@ -68,10 +68,10 @@ information about what it does, its default value, and the allowed values. - [LimitDownloadRate](/config/all-configuration-options#limitdownloadrate) - [DownloadLimitInMbPerSec](/config/all-configuration-options#downloadlimitinmbpersec) +- Logging + - [LoggingLevel](/config/all-configuration-options#logginglevel) + - Appearance - [Theme](/config/all-configuration-options#theme) - [HideMissingCdmKeysWarning](/config/all-configuration-options#hidemissingcdmkeyswarning) - [HideShowScrapeSizeWarning](/config/all-configuration-options#hideshowscrapesizewarning) - -- Logging - - [LoggingLevel](/config/all-configuration-options#logginglevel) diff --git a/docs/installation/docker.md b/docs/installation/docker.md index df0df6a..24a304e 100644 --- a/docs/installation/docker.md +++ b/docs/installation/docker.md @@ -11,14 +11,20 @@ To run OF-DL in a docker container, follow these steps: ```bash mkdir -p $HOME/ofdl/config $HOME/ofdl/data ``` - Adjust `$HOME/ofdl` as desired (including in the commands below) if you want the files stored elsewhere. + Adjust `$HOME/ofdl` as desired (including in the commands below) if you want the files stored elsewhere. 4. Run the following command to start the docker container: ```bash docker run --rm -it -v $HOME/ofdl/data/:/data -v $HOME/ofdl/config/:/config -p 8080:8080 git.ofdl.tools/sim0n00ps/of-dl:latest ``` - If `config.json` and/or `rules.json` don't exist in the `config` directory, files with default values will be created when you run the docker container. - If you have your own Widevine keys, those files should be placed under `$HOME/ofdl/config/cdm/devices/chrome_1610/`. -5. OF-DL needs to be authenticated with your OnlyFans account. When prompted, open [http://localhost:8080](http://localhost:8080) in a web browser to log in to your OnlyFans account. + If `config.json` and/or `rules.json` don't exist in the `config` directory, files with default values will be created + when you run the docker container. + If you have your own Widevine keys, those files should be placed under `$HOME/ofdl/config/cdm/devices/chrome_1610/`. +5. Open [http://localhost:8080](http://localhost:8080) in a web browser, and click the "Connect" button on the webpage. + +!!! info + + If you wish to use the classic text-based version of OF-DL, append `--cli` to the end of your `docker run` command. + For instance, `docker run --rm -it -v $HOME/ofdl/data/:/data -v $HOME/ofdl/config/:/config -p 8080:8080 git.ofdl.tools/sim0n00ps/of-dl:latest --cli` ## Updating OF-DL @@ -28,12 +34,15 @@ When a new version of OF-DL is released, you can download the latest docker imag docker pull git.ofdl.tools/sim0n00ps/of-dl:latest ``` -You can then run the new version of OF-DL by executing the `docker run` command in the [Running OF-DL](#running-of-dl) section above. +You can then run the new version of OF-DL by executing the `docker run` command in the [Running OF-DL](#running-of-dl) +section above. ## Building the Docker Image (Optional) -Since official docker images are provided for OF-DL through Gitea (git.ofdl.tools), you do not need to build the docker image yourself. -If you would like to build the docker image yourself, however, start by cloning the OF-DL repository and opening a terminal in the root directory of the repository. +Since official docker images are provided for OF-DL through Gitea (git.ofdl.tools), you do not need to build the docker +image yourself. +If you would like to build the docker image yourself, however, start by cloning the OF-DL repository and opening a +terminal in the root directory of the repository. Then, execute the following command while replacing `x.x.x` with the current version of OF-DL: ```bash diff --git a/docs/installation/linux.md b/docs/installation/linux.md index 9f5836c..d958625 100644 --- a/docs/installation/linux.md +++ b/docs/installation/linux.md @@ -32,15 +32,20 @@ cd 'OF-DL' - Build the project. Replace `%VERSION%` with the current version number of OF-DL (e.g. `1.9.20`). -```bash -dotnet publish "OF DL/OF DL.Cli.csproj" -p:Version=%VERSION% -p:PackageVersion=%VERSION% -c Release -cd 'OF DL/bin/Release/net10.0' -``` + - Modern graphical version (recommended) + ```bash + dotnet publish "OF DL.Cli/OF DL.Cli.csproj" -p:Version=%VERSION% -p:PackageVersion=%VERSION% -c Release + cd 'OF DL.Cli/bin/Release/net10.0' + ``` + + - Classic text-based version + ```bash + dotnet publish "OF DL.Cli/OF DL.Cli.csproj" -p:Version=%VERSION% -p:PackageVersion=%VERSION% -c Release + cd 'OF DL.Cli/bin/Release/net10.0' + ``` - Download the windows release as described on [here](/installation/windows#installation). -- Add the `config.conf` and `rules.json` files as well as the `cdm` folder to the `OF DL/bin/Release/net10.0` folder. - - Run the application ```bash diff --git a/docs/installation/windows.md b/docs/installation/windows.md index 40d7a3f..fd6718b 100644 --- a/docs/installation/windows.md +++ b/docs/installation/windows.md @@ -2,22 +2,24 @@ ## Requirements -### FFmpeg - -You will need to download FFmpeg. You can download it from [here](https://www.gyan.dev/ffmpeg/builds/). -Make sure you download `ffmpeg-release-essentials.zip`. Unzip it anywhere on your computer. You need both `ffmpeg.exe` and `ffprobe.exe`. -Move `ffmpeg.exe` and `ffprobe.exe` to the same folder as `OF DL.exe` (downloaded in the installation steps below). If you choose to move them to a different folder, -you will need to specify the paths in the config file (see the `FFmpegPath` and `FFprobePath` [config options](/config/configuration)). - ## Installation -1. Navigate to the OF-DL [releases page](https://git.ofdl.tools/sim0n00ps/OF-DL/releases), and download the latest release zip file. The zip file will be named `OFDLVx.x.x.zip` where `x.x.x` is the version number. -2. Unzip the downloaded file. The destination folder can be anywhere on your computer, preferably somewhere where you want to download content to/already have content downloaded. -3. Your folder should contain a folder named `cdm` as well as the following files: - - OF DL.exe - - config.json - - rules.json - - e_sqlite3.dll - - ffmpeg.exe - - ffprobe.exe -4. Once you have done this, run OF DL.exe +1. Navigate to the OF-DL [releases page](https://git.ofdl.tools/sim0n00ps/OF-DL/releases), and download the latest + release zip file. The zip file will be named `OFDLVx.x.x.zip` where `x.x.x` is the version number. +2. Unzip the downloaded file. The destination folder can be anywhere on your computer, preferably somewhere where you + want to download content to/already have content downloaded. +3. Your folder should contain 3 folders named `.playwright`, `cdm`, and `chromium-scripts` as well as the following + files: + - OF DL.exe + - OF DL - Legacy.exe + - config.json + - rules.json + - ffmpeg.exe + - ffprobe.exe + - LICENSE.ffmpeg + - playwright.ps1 + - av_libglesv2.dll + - e_sqlite3.dll + - libHarfBuzzSharp.dll + - libSkiaSharp.dll +4. Once you have done this, run OF DL.exe (or OF DL - Classic.exe for the legacy text-based version) diff --git a/docs/running-the-program.md b/docs/operation/classic-version.md similarity index 86% rename from docs/running-the-program.md rename to docs/operation/classic-version.md index cc19a5b..15cc971 100644 --- a/docs/running-the-program.md +++ b/docs/operation/classic-version.md @@ -1,7 +1,12 @@ -# Running the Program +!!! info -Once you are happy you have filled everything in [auth.json](/config/auth) correctly, you can double click OF-DL.exe and -you should see a command prompt window appear, it should look something like this: + These instructions are for the Classic version of OF DL. For instructions relating to the modern graphical version, + see [here](/operation/modern-version). + +# Running the Program + +Once you are happy you have filled everything in [auth.json](/config/auth) correctly, you can double-click "OF DL - +Classic.exe", and you should see a command prompt window appear, it should look something like this: ![CLI welcome banner](/img/welcome_banner.png) @@ -52,7 +57,7 @@ files in the `logs` folder. The `Logout and Exit` option allows you to remove your authentication from OF-DL. This is useful if you use multiple OnlyFans accounts. -After you have made your selection the content should start downloading. Content is downloaded in this order: +After you have made your selection, the content should start downloading. Content is downloaded in this order: 1. Paid Posts 2. Posts diff --git a/docs/operation/modern-version.md b/docs/operation/modern-version.md new file mode 100644 index 0000000..3157230 --- /dev/null +++ b/docs/operation/modern-version.md @@ -0,0 +1,55 @@ +!!! info + + These instructions are for the modern graphical version of OF DL. For the classic command-line version, see + [here](/operation/classic-version). + +# Using OF DL (GUI) + +## Open and sign in + +Double-click on `OF DL.exe` to open the app. + +If you are not signed in yet, you will see **Authentication Required**. + +1. Click **Login with Browser** (recommended). +2. Sign in to your OnlyFans account in the browser window that opens. +3. Wait for OF DL to return to the main screen. + +If browser login does not work for or you prefer to use another method, use **Manual Authentication** and read about +[Legacy Auth Methods](/config/auth/#legacy-methods). + +## Choose what to download + +From the menubar at the top of the OF DL window, open **Edit -> Configuration**. + +In the **Download Media Types and Sources** section, choose what you want to download: + +- Media types: videos, images, audio +- Sources: posts, messages, archived, stories, highlights, and more + +In the **Download Behavior** section, you can choose where files are saved. There are many other options available to +configure on this page. Hover your mouse over the question mark icons for more information about each option or check +out the [configuration documentation](/config/all-configuration-options/) for additional details. + +Click **Save Configuration** at the bottom of the page to save your changes and return to the main screen. + +## Download content + +On the main screen: + +- Click on creators' names one by one to select them, or use the top checkbox to select all +- Use the list dropdown to quickly select creators from an OnlyFans list +- From the menubar at the top of the window, click **File -> Refresh** if your subscriptions or lists changed + +Use the download buttons at the top: + +- **Download Selected**: downloads media for the creators you selected +- **Download Purchased Tab**: downloads media from your Purchased tab +- **Download Single Post/Message**: downloads a single post or paid message URL + +While any download is running: + +- The **Activity Log** on the right half of the window shows progress and messages +- The progress bar at the bottom of the window shows current download status +- The **Stop** button in the top right corner of the window cancels the current download + diff --git a/mkdocs.yml b/mkdocs.yml index 37a98d2..d0488f2 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -7,7 +7,9 @@ nav: - macOS: installation/macos.md - Linux: installation/linux.md - Docker: installation/docker.md - - Running the Program: running-the-program.md + - Running the Program: + - Modern Version: operation/modern-version.md + - Classic Version: operation/classic-version.md - Config: - Authentication: config/auth.md - CDM (optional, but recommended): config/cdm.md