# Pornsy Video Downloader | How to Download Pornsy Videos (`pornvidsdownload/pornsy-video-downloader-how-to-download-pornsy-videos`) Actor

- **URL**: https://apify.com/pornvidsdownload/pornsy-video-downloader-how-to-download-pornsy-videos.md
- **Developed by:** [pornvidsdownload](https://apify.com/pornvidsdownload) (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

## Pornsy Video Downloader | How to Download Pornsy Videos

> Download Pornsy videos from the active page using a dedicated browser extension workflow.

### Get it Here

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

![Pornsy Downloader](https://apps.serp.co/media/optimized-products/pornsy-downloader-homescreen-adult-1ae395f741.webp)

Pornsy Downloader is a browser extension that detects and saves media from Pornsy video pages. Open a supported Pornsy URL, let the player load, then use the player button, popup, or right-click menu to choose an available MP4 or HLS candidate. The extension checks page video tags, source tags, Open Graph and Twitter media metadata, observed media resources, and static media URLs found in page scripts.

- Purpose-built URL matching for pornsy.cc and www.pornsy.cc
- In-player download button configured for the shared BravoPlayer-style wrapper
- Detects video and source tags, metadata streams, performance resources, packed scripts, and static media URLs
- Handles direct MP4 and HLS candidates through the shared offscreen pipeline
- Right-click menu labeled "Download Pornsy Video"
- Download manager with visible in-page progress
- Saves to a Pornsy download folder
- GitHub release update checks for the extension repository
- OTP activation through the auth service with 3 free trial downloads
### Table of Contents

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

### Why Pornsy Downloader

Pornsy video pages often hide media URLs behind player initialization, script data, or lazy-loading streams. Browser save controls rarely see the final video, and generic download pages can confuse ads, thumbnails, or previews with the actual content you want to save. Copying URLs into external paste-in services adds friction and privacy concerns.

Pornsy Downloader works inside your browser to detect available media candidates directly from the page. It checks video tags, metadata, runtime network resources, and embedded script data to surface MP4 or HLS options. Instead of digging through developer tools or relying on third-party sites, you get a player button, popup controls, and a context menu that keep the entire workflow in the tab you are already viewing.

### Features

- Purpose-built URL matching for pornsy.cc and www.pornsy.cc
- In-player download button attached near the video surface
- Detects video and source tags, Open Graph and Twitter metadata streams, performance resources, and static media URLs
- Handles direct MP4 candidates and HLS or M3U8 streams through the shared offscreen pipeline
- Right-click context menu with a dedicated "Download Pornsy Video" option
- In-page download manager showing progress for active downloads
- Organized file saving under a dedicated Pornsy download folder
- GitHub release update checks that notify you when a new build is available
- Email OTP activation with secure one-time password verification
- 3 free trial downloads so you can test the workflow before committing
- No external media processing servers — detection and saving happen in the browser

### How It Works

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

1. Open your browser and navigate to a Pornsy video page such as a standard pornsy.cc URL.
2. Wait for the page to load fully and for the video player to render on screen.
3. Press the play button on the player so the stream begins loading.
4. Look for the download button that appears near the player controls.
5. Click the download button to scan the page for available media candidates.
6. Review the detected options in the popup that appears.
7. Select the quality or format you prefer from the available list.
8. Confirm the download and wait for the file to process and save to your Pornsy folder.

### Supported Formats

- Input: Direct MP4 URLs and HLS or M3U8 streams when the page exposes them through video tags, metadata, or script data
- 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

- Pornsy viewers who want a cleaner personal offline-viewing workflow
- Users who prefer browser-based controls over third-party paste-in services
- Anyone who wants a visible in-player download button instead of digging through developer tools
- Viewers who need to save content for offline access when an internet connection is not available

### Common Use Cases

- Save a Pornsy video page for offline personal viewing
- Check whether a Pornsy page exposes MP4 or HLS media after playback starts
- Use a visible in-player control instead of searching through browser developer tools
- Start detection from the extension popup or right-click menu
- Capture media from pages where the player hides stream URLs behind initialization

### Troubleshooting

**No download button appears on the page.**
Make sure the video player has fully loaded and playback has started. Some Pornsy pages expose media only after the user presses play.

**The extension shows no media candidates.**
Refresh the page, start playback again, and try the popup or context menu. The page may use a pattern outside the current detection scope.

**Downloads fail or stall during processing.**
Check your internet connection and ensure the browser has permission to save files. Try a different quality option if one is available.

**The context menu option is grayed out.**
Right-click only on a video element or on the page itself. The context menu activates on supported Pornsy URLs.

**I see ads or thumbnails instead of the actual video.**
The extension filters common ad, preview, and thumbnail URLs. If a real video candidate is missing, report the page URL for review.

### 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/pornsy-downloader](https://serp.ly/pornsy-downloader)

### Installation Instructions

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

### FAQ

**How do I download a Pornsy video?**
Open a Pornsy video page, press play if needed, then use the player download button, popup, or right-click menu to scan for available media options.

**Does this work on every Pornsy page?**
Not guaranteed. The extension is designed for pornsy.cc and www.pornsy.cc URLs, but some page types may use patterns outside the current detection scope.

**What file types can it detect?**
The extension normalizes direct MP4 URLs and HLS or M3U8 media candidates when the page exposes them.

**Why might no video appear?**
The player may not have loaded yet, the page may use an unsupported pattern, or the detected URL may be filtered as an ad, preview, thumbnail, or non-content media asset.

**Where do downloads go?**
The extension saves files under a dedicated Pornsy download folder configured during installation.

**Does it send videos to a remote server?**
No. Media detection and saving happen in the browser. Auth and update checks call external services, but video data is not sent to any remote server.

### Notes

- Only download content you own or have explicit permission to save
- An internet connection is required for downloads
- Some Pornsy pages may expose no downloadable candidate or only a single stream
- Press play first if detection appears empty after page load

### License

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

### About Pornsy

Pornsy is a video hosting platform that offers a wide range of adult content across multiple categories. Pornsy Downloader gives viewers a browser-native way to detect and save media from supported video pages without relying on external tools or services.

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

```

## MCP server setup

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

```

## OpenAPI specification

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