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

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

- **URL**: https://apify.com/serpxxx/xxxshut-video-downloader-how-to-download-xxxshut-videos.md
- **Developed by:** [SERP XXX](https://apify.com/serpxxx) (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 web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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

## Xxxshut Video Downloader | How to Download Xxxshut Videos

> Download XXX Shut videos directly from your browser and save them as MP4 files.

### Get it Here

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

Xxxshut Downloader is a browser extension that detects video media on Xxxshut pages and lets you save it with a few clicks. The extension works inside the active page, so there is no need to copy links or switch between tabs. It is designed for users who want a straightforward way to keep local copies of content they are allowed to download.

- Detects video media directly from Xxxshut video pages
- Saves files in MP4 format for easy playback
- Works with Chrome, Edge, Brave, and Firefox
- Includes a download manager and context menu support
- Offers 3 free downloads to test the workflow before committing
### Table of Contents

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

### Why Xxxshut Downloader

Xxxshut video pages do not always expose a simple download button. The embedded player may hide the direct media URL, and right-click saving often does not work. Many users end up searching for external tools or screen recorders, which add complexity and reduce quality.

This extension stays inside the Xxxshut page and looks for media signals that the player or page metadata exposes. When it finds a detectable video, it presents a clean download option with quality choices when available. The result is a faster, more reliable way to save content you have permission to download.

### Features

- Scoped to Xxxshut pages including root, www, and subdomains
- Detects video media from common player and metadata signals
- Attaches a download button to the video player when supported
- Offers quality selection when the page exposes multiple variants
- Includes a built-in download manager for tracking progress
- Supports context menu for quick access on detected media
- Sends desktop notifications when downloads complete
- Provides offscreen handling for complex media streams

### How It Works

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

1. Install the Xxxshut Downloader extension from the GitHub Releases page.
2. Open your browser and navigate to Xxxshut.
3. Find a video page you want to download from.
4. Let the video player load and start playing briefly.
5. Click the extension icon in your browser toolbar.
6. Review the detected media options in the popup.
7. Select your preferred quality if multiple options appear.
8. Click download and save the MP4 file to your computer.

### Supported Formats

- Input: Video sources exposed by Xxxshut pages including direct MP4 URLs and HLS streams
- 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

- Adult content viewers who want to save videos from Xxxshut
- Users who prefer browser-based tools over standalone downloaders
- People testing whether a generated extension candidate works for their needs
- Technical reviewers evaluating extraction quality on Xxxshut pages

### Common Use Cases

- Saving a video for offline viewing when you have a slow or unreliable connection
- Archiving content you own or have permission to keep
- Testing the extension on the verified seed URL to check detection behavior
- Comparing detected quality options across different Xxxshut video pages
- Evaluating the extension as a candidate before deciding on further development

### Troubleshooting

**No video detected on the page**
Make sure the video player has fully loaded and playback has started. Some pages require user interaction before media signals become available.

**Download fails or stalls**
Check your internet connection and try again. If the issue persists, the video source may use a format the extension cannot handle.

**Quality options are missing**
The extension only shows quality choices when the page exposes multiple variants. Some Xxxshut videos may only offer a single source.

**Extension icon is greyed out**
The extension activates on supported Xxxshut pages. Make sure you are on a page that matches the extension scope.

**Download manager shows no progress**
Close the popup and reopen it. The download manager refreshes its state when the popup is reopened.

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

### Installation Instructions

1. Open the latest release page: GitHub Releases
2. Download the correct build for your browser.
3. Install the extension.
4. Open a supported Xxxshut page.
5. Use the popup to detect and download the media.

### FAQ

**Is Xxxshut Downloader officially released?**
The extension is available as a generated candidate. Real extraction review is still needed before claiming full production support.

**What pages does the extension work on?**
It works on Xxxshut pages matching the root domain, www host, and subdomains as defined in the extension configuration.

**Does it download every Xxxshut video?**
Not necessarily. Detection depends on what media signals the page exposes. Some videos may not be detectable with the current approach.

**Can I use this extension on other sites?**
No. The extension is scoped specifically to Xxxshut and its subdomains.

**How do I report a problem?**
Open an issue on the GitHub repository with details about the page URL and what happened.

### Notes

- Only download content you own or have explicit permission to save
- An internet connection is required for downloads
- Xxxshut video pages may use different player configurations that affect detection
- This extension is a generated candidate and may need further technical review

### License

This repository is distributed under the proprietary SERP Apps license in the LICENSE file. Review that file before copying, modifying, or redistributing any part of this project.

### About Xxxshut

Xxxshut is an adult video platform that hosts a wide range of content. This extension helps users save videos they have permission to download directly from their browser.

# 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/xxxshut-video-downloader-how-to-download-xxxshut-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/xxxshut-video-downloader-how-to-download-xxxshut-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/xxxshut-video-downloader-how-to-download-xxxshut-videos --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

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