# Deflr Video Downloader | How to Download Deflr Videos (`serpdownloaders/deflr-video-downloader-how-to-download-deflr-videos`) Actor

- **URL**: https://apify.com/serpdownloaders/deflr-video-downloader-how-to-download-deflr-videos.md
- **Developed by:** [SERP Downloaders](https://apify.com/serpdownloaders) (community)
- **Categories:** Videos, Automation, Social media
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per usage

This Actor is paid per platform usage. The Actor is free to use, and you only pay for the Apify platform usage, which gets cheaper the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-usage

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## Deflr Video Downloader | How to Download Deflr Videos

> Download DEFLR Videos — Private, Browser-Based, One Click

### Get it Here

Get it here: https://serp.ly/deflr-downloader

![Deflr Downloader](https://apps.serp.co/media/optimized-products/deflr-downloader-homescreen-adult-429.webp)

Downloader for DEFLR gives users a simple browser-based way to save videos from deflr.com. Open a supported DEFLR video page, start playback if the stream needs to load, then use the download button on the player, the extension popup, or the right-click context menu. The extension checks the page for playable media candidates, filters obvious ad and preview assets, and presents downloadable options.

- In-page download button configured for the DEFLR player wrapper
- Media detection from video/source tags, metadata, scripts, performance entries, iframe/embed documents, and encoded media payloads
- KVS-style API fallback for direct MP4 records on compatible DEFLR URLs
- HLS and direct MP4 candidate handling through the shared offscreen pipeline
- Quality labels inferred from source labels and detected heights where available
### Table of Contents

- [Why Deflr Downloader](#why-deflr-downloader)
- [Features](#features)
- [How It Works](#how-it-works)
- [Step-by-Step Tutorial: How to Download Videos from Deflr](#step-by-step-tutorial-how-to-download-videos-from-deflr)
- [Supported Formats](#supported-formats)
- [Who It's For](#who-its-for)
- [Common Use Cases](#common-use-cases)
- [Troubleshooting](#troubleshooting)
- [Trial & Access](#trial--access)
- [Installation Instructions](#installation-instructions)
- [FAQ](#faq)
- [Notes](#notes)
- [License](#license)
- [About Deflr](#about-deflr)

### Why Deflr Downloader

DEFLR pages often hide the final video URL behind player scripts, encoded payloads, or API responses. Browser right-click save typically does not reveal the actual media file or quality variants, and manual network inspection is tedious for casual users. Generic web downloaders may miss DEFLR-specific API or embedded player paths entirely.

Deflr Downloader solves this by working directly on the active DEFLR page. It checks live media candidates from multiple sources, filters out noise like ads and thumbnails, and presents only the playable options. The extension adds a download button to the player interface, supports the right-click context menu, and handles both direct MP4 and HLS streams through an in-browser pipeline. No remote servers, no copy-paste workflows, and no digging through page source.

### Features

- DEFLR-specific app identity, product URL, entitlement, and update-check repo configuration
- Host permissions for deflr.com, subdomains, and www.deflr.com
- In-page player button targeting the DEFLR Fluid Player wrapper
- Generic static-media extraction plus DEFLR-compatible MP4 fallback
- Filters common ad, banner, VAST, thumbnail, sprite, preview, and timeline URLs
- Right-click context menu for page and video contexts
- Shared download manager with progress UI
- Shared offscreen processing for stream and file download work
- OTP activation through auth.serp.co
- 3 free downloads included before paid license flow

### How It Works

1. Install the extension from the latest release.
2. Open Deflr and go to a supported video page.
3. Start playback so the extension can detect the media.
4. Open the popup or use the on-page controls.
5. Choose the quality option you want.
6. Start the download and wait for the MP4 export to finish.
7. Save the final file locally.

### Step-by-Step Tutorial: How to Download Videos from Deflr

1. Install the Deflr Downloader extension build for your browser.
2. Open a supported DEFLR video URL in your browser.
3. Press play on the video player so the page exposes the media stream or API-backed variants.
4. Look for the download button that appears on the player interface.
5. Alternatively, click the extension icon in your toolbar to open the popup.
6. Right-click anywhere on the page or on the video element and select "Download DEFLR Video" from the context menu.
7. Choose a detected format from the available options.
8. Wait for the download to complete and save the file to your DEFLR folder.

### Supported Formats

- Input: Direct MP4 URLs, KVS-style API MP4 variants, and HLS/M3U8 streams when exposed by the page or player
- Output: MP4

Saved files use MP4 so they are easier to replay on standard media players, move between devices, or archive locally.

### Who It's For

- DEFLR viewers who want a simple browser workflow for saving videos for offline viewing
- Non-technical users who prefer an extension workflow over page-source digging or network-tab hunting
- Users who want to choose between different quality options where available
- Anyone looking for a browser-native way to detect formats and save files without external tools

### Common Use Cases

- Save a DEFLR video for offline viewing when internet access is limited
- Capture media exposed on DEFLR defloration-porn pages
- Choose between direct MP4 variants and HLS candidates where available
- Use the in-page player download button instead of digging through scripts or requests
- Use the right-click context menu for quick access without opening the popup

### Troubleshooting

**No download button appears on the player**
Refresh the page, make sure the video is playing, and check that the extension has permission to run on deflr.com.

**Only one quality option is available**
The extension shows what the source exposes. Some pages may only provide a single stream.

**Download does not start**
Check your browser download settings and make sure the extension has the downloads permission enabled.

**The extension does not detect any media**
Press play on the video first. Many pages only expose the stream after playback starts or after player scripts finish loading.

**The context menu option is missing**
Right-click on the page or directly on the video element. The option appears only on supported DEFLR URLs.

### Trial & Access

- Includes **3 free downloads** so you can test the workflow first
- Email sign-in uses secure one-time password verification
- No credit card required for the trial
- Unlimited downloads are available with a paid license

Start here: [https://serp.ly/deflr-downloader](https://serp.ly/deflr-downloader)

### Installation Instructions

1. Open the latest release page: [GitHub Releases](https://github.com/serpcompany/deflr-downloader/releases/latest)
2. Download the correct build for your browser.
3. Install the extension.
4. Open a supported Deflr page.
5. Use the popup to detect and download the media.

### FAQ

**How do I download a DEFLR video?**
Open a supported DEFLR video page, press play, then use the player download button, the extension icon, or the right-click menu.

**What formats can it detect?**
The extension normalizes direct MP4 and HLS/M3U8-style media URLs when they are exposed by the page, its scripts, embed documents, or the site-compatible videofile API.

**What quality options are available?**
Quality depends on what the source exposes. The extension attempts to infer resolution from labels or URLs and sorts available formats by height where possible.

**Where are downloads saved?**
The offscreen configuration uses an organized DEFLR download folder.

**Do I need to press play first?**
Usually yes. Many pages only expose the final stream after playback starts or after player scripts finish wiring up the media source.

**Does it use a remote downloader server?**
No. The extension is designed around in-browser detection and local download processing. Authentication and update checks call SERP and GitHub services, and the site-compatible videofile API call stays on the DEFLR origin when used.

### Notes

- Only download content you own or have explicit permission to save
- An internet connection is required for downloads
- Always press play on the video before using the download features
- Available quality depends on what the source page exposes

### License

This repository is distributed under the proprietary SERP Apps license in the [LICENSE](https://github.com/serpcompany/deflr-downloader/blob/main/LICENSE) file. Review that file before copying, modifying, or redistributing any part of this project.

### About Deflr

Deflr is an adult entertainment platform featuring defloration-themed content with a focus on first-time and fantasy scenarios. Deflr Downloader helps users save videos from the platform directly through their browser without needing external tools or manual inspection of page source code.

# Actor input Schema



## Actor input object example

```json
{}
````

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {};

// Run the Actor and wait for it to finish
const run = await client.actor("serpdownloaders/deflr-video-downloader-how-to-download-deflr-videos").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {}

# Run the Actor and wait for it to finish
run = client.actor("serpdownloaders/deflr-video-downloader-how-to-download-deflr-videos").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{}' |
apify call serpdownloaders/deflr-video-downloader-how-to-download-deflr-videos --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=serpdownloaders/deflr-video-downloader-how-to-download-deflr-videos",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Deflr Video Downloader | How to Download Deflr Videos",
        "description": null,
        "version": "0.0",
        "x-build-id": "SuUyYaCGsBpSctu1C"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/serpdownloaders~deflr-video-downloader-how-to-download-deflr-videos/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-serpdownloaders-deflr-video-downloader-how-to-download-deflr-videos",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/serpdownloaders~deflr-video-downloader-how-to-download-deflr-videos/runs": {
            "post": {
                "operationId": "runs-sync-serpdownloaders-deflr-video-downloader-how-to-download-deflr-videos",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/serpdownloaders~deflr-video-downloader-how-to-download-deflr-videos/run-sync": {
            "post": {
                "operationId": "run-sync-serpdownloaders-deflr-video-downloader-how-to-download-deflr-videos",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {}
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
