# Saintporn Video Downloader | How to Download Saintporn Videos (`serpxxx/saintporn-video-downloader-how-to-download-saintporn-videos`) Actor

Saintporn Video Downloader | How to Download Saintporn Videos Apify actor.

- **URL**: https://apify.com/serpxxx/saintporn-video-downloader-how-to-download-saintporn-videos.md
- **Developed by:** [SERP XXX](https://apify.com/serpxxx) (community)
- **Categories:** Videos
- **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/docs.md):

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

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python/docs.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/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

## Saintporn Video Downloader | How to Download Saintporn Videos

> A browser extension downloader for SaintPorn video pages that saves media as MP4 files.

### Get it Here

👉 Get it here: https://serp.ly/saintporn-downloader?via=apify

![Saintporn Downloader](https://apps.serp.co/media/optimized-products/saintporn-downloader-homescreen-adult-58e638b06c.webp)

Saintporn Downloader is a browser extension designed to capture and save videos from SaintPorn video pages. It works by observing network activity during playback to detect and download the media stream, giving you a local MP4 file you can keep, move, or play offline. The extension targets SaintPorn's video page URLs directly, with verified coverage for the main domain, www subdomain, and wildcard subdomains.

- Target-verified coverage for SaintPorn video pages
- Browser-network handoff detection for reliable media capture
- Direct MP4 output for easy playback and archiving
- 3 free downloads to test the workflow before committing
- Works on Chrome, Edge, Brave, and Firefox
### Table of Contents

- [Why Saintporn Downloader](#why-saintporn-downloader)
- [Features](#features)
- [How It Works](#how-it-works)
- [Step-by-Step Tutorial: How to Download Videos from SaintPorn](#step-by-step-tutorial-how-to-download-videos-from-saintporn)
- [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 SaintPorn](#about-saintporn)

### Why Saintporn Downloader

SaintPorn hosts a large library of adult video content, but the platform does not provide a native download option for its video pages. If you want to save a video for offline viewing, you are left with no built-in way to do it. Screen recording is clunky, reduces quality, and takes up more space than necessary.

Saintporn Downloader solves this by detecting the media stream directly from the page during playback. Instead of recording your screen or relying on third-party sites, you get a clean MP4 file captured from the network layer. The extension is built specifically around SaintPorn video page URLs, with a target-verified handoff profile that has been tested against the site's structure.

### Features

- Direct detection of media streams from SaintPorn video pages
- Browser-network handoff for reliable capture during playback
- MP4 output format for broad device and player compatibility
- Simple popup interface to control downloads
- Support for Chrome, Edge, Brave, and Firefox browsers
- 3 free trial downloads with no credit card required
- Secure email sign-in using one-time password verification
- Unlimited downloads available with a paid license

### How It Works

1. Install the extension from the latest release.
2. Open SaintPorn 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 SaintPorn

1. Install the Saintporn Downloader extension from the GitHub Releases page.
2. Navigate to SaintPorn.com and find a video you want to save.
3. Open the video page and start playback.
4. Click the extension icon in your browser toolbar to open the popup.
5. Wait for the extension to detect the available media stream.
6. Select your preferred quality from the options shown.
7. Click the download button to begin capturing the video.
8. When the download completes, save the MP4 file to your chosen location.

### Supported Formats

- Input: Media streams detected from SaintPorn video pages during playback
- 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

- SaintPorn users who want to save videos for offline viewing
- Collectors who build personal libraries of adult content
- Users with limited or unreliable internet who need offline access
- Anyone who wants to avoid streaming the same video multiple times

### Common Use Cases

- Saving a favorite video to watch later without an internet connection
- Archiving content you have permission to keep for personal use
- Reducing data usage by downloading once instead of streaming repeatedly
- Building a curated offline collection of adult videos
- Transferring videos to devices that do not support streaming

### Troubleshooting

**The extension does not detect any media on the page**
Make sure the video is playing before you open the popup. The extension needs to see network activity from the stream to detect it.

**The download starts but fails partway through**
Check your internet connection and try again. A stable connection is required for the entire download process.

**The popup does not open when I click the icon**
Try refreshing the SaintPorn page and clicking the icon again. If the issue persists, reinstall the extension from the latest release.

**I see an error about unsupported video format**
Only videos played directly on SaintPorn video pages are supported. Embedded or external players may not work.

**The download is very slow**
Large video files can take time to download. Make sure you have a fast internet connection and close other bandwidth-heavy applications.

### 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/saintporn-downloader?via=apify](https://serp.ly/saintporn-downloader?via=apify)

### Installation Instructions

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

### FAQ

**What browsers are supported?**
The extension works on Chrome, Edge, Brave, and Firefox. Download the correct build for your browser from the releases page.

**Do I need an account to use the extension?**
Yes, you need to sign in with your email using a one-time password. This enables the trial and license system.

**How many videos can I download for free?**
You get 3 free downloads to test the extension. After that, a paid license is required for unlimited downloads.

**Is my download history tracked?**
The extension does not track or store information about which videos you download. Your activity remains private.

**Can I download videos in 4K quality?**
The available quality options depend on what SaintPorn serves during playback. The extension detects whatever streams are present on the page.

### Notes

- Only download content you own or have explicit permission to save
- An internet connection is required for downloads
- SaintPorn may change its site structure, which could affect detection
- This extension is not affiliated with or endorsed by SaintPorn

### License

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

### About SaintPorn

SaintPorn is an adult video hosting platform featuring a wide variety of user-uploaded and curated content. Saintporn Downloader helps users save videos from SaintPorn video pages for offline access and personal archiving.

# 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("serpxxx/saintporn-video-downloader-how-to-download-saintporn-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("serpxxx/saintporn-video-downloader-how-to-download-saintporn-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 serpxxx/saintporn-video-downloader-how-to-download-saintporn-videos --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Saintporn Video Downloader | How to Download Saintporn Videos",
        "description": "Saintporn Video Downloader | How to Download Saintporn Videos Apify actor.",
        "version": "0.0",
        "x-build-id": "wakPennFxsZhUesFN"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/serpxxx~saintporn-video-downloader-how-to-download-saintporn-videos/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-serpxxx-saintporn-video-downloader-how-to-download-saintporn-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/serpxxx~saintporn-video-downloader-how-to-download-saintporn-videos/runs": {
            "post": {
                "operationId": "runs-sync-serpxxx-saintporn-video-downloader-how-to-download-saintporn-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/serpxxx~saintporn-video-downloader-how-to-download-saintporn-videos/run-sync": {
            "post": {
                "operationId": "run-sync-serpxxx-saintporn-video-downloader-how-to-download-saintporn-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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
