# Hutporner Video Downloader | How to Download Hutporner Videos (`how-to-download-videos/hutporner-video-downloader-how-to-download-hutporner-videos`) Actor

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

## Hutporner Video Downloader | How to Download Hutporner Videos

> Download HutPorner videos with verified relay-aware detection for iframe playback that shifts from hutporner.com to hornysimp.com.lv.

### Get it Here

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

![Hutporner Downloader](https://apps.serp.co/media/optimized-products/hutporner-downloader-homescreen-adult-0fa33b3215.webp)

Hutporner Downloader is a browser extension built around the way HutPorner hands video playback away from the landing page to an external player host. Instead of assuming media stays on the source domain, this extension follows the real playback chain from hutporner.com to w11.hornysimp.com.lv, where embedded player signals may expose downloadable media through iframe, m3u8, and mp4 detection.

- Verified target status with relay-aware playback discovery
- Cross-domain detection that follows hutporner.com to hornysimp.com.lv handoffs
- Stream detection for m3u8 and mp4 media candidates
- Iframe-based player recognition for off-site playback flows
- Privacy-focused workflow without unnecessary permissions
### Table of Contents

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

### Why Hutporner Downloader

Most video downloader extensions assume the media stays on the same page where you start browsing. Hutporner does not work that way. When you open a video on hutporner.com, playback often shifts to an external player hosted on w11.hornysimp.com.lv. Generic downloaders miss this handoff entirely, leaving you to dig through network traffic or give up on saving the content.

Hutporner Downloader was designed around this exact relay pattern. Instead of only scanning the source page, the extension follows the playback chain to the external host where the iframe player loads. This relay-aware approach means you can detect and download supported media even when the visible page and the streaming host are different domains.

### Features

- Relay-aware detection that follows playback from hutporner.com to hornysimp.com.lv
- Iframe-based player discovery for off-site media hosting
- Stream detection for m3u8 and mp4 media candidates
- Verified target status with target-ready bucket placement
- Cross-domain handoff recognition for aggregator-to-host playback flows
- Privacy-focused design with minimal permission surface
- No account or sign-in required for basic detection
- Lightweight extension that does not slow down your browsing

### How It Works

1. Install the extension from the latest release.
2. Open Hutporner and go to a supported video page.
3. Let the embedded player or iframe load if playback moves to w11.hornysimp.com.lv.
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 Hutporner

1. Install Hutporner Downloader from the GitHub Releases page.
2. Navigate to a video page on hutporner.com.
3. Allow the page to load fully, including any embedded iframe players.
4. If playback shifts to w11.hornysimp.com.lv, let the external player initialize.
5. Click the extension icon in your browser toolbar to open the popup.
6. Wait for the extension to detect available media from the playback chain.
7. Select the desired quality option from the list of detected streams.
8. Click the download button and save the MP4 file to your device.

### Supported Formats

- Input: Streams detected through iframe players and external hosts, including m3u8 and mp4 candidates from the hutporner.com to hornysimp.com.lv relay chain.
- 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

- Hutporner users who want to save videos for offline viewing
- Users who encounter playback shifting from hutporner.com to external player hosts
- People looking for a relay-aware downloader that follows the real playback chain
- Users who prefer lightweight extensions without unnecessary permissions

### Common Use Cases

- Downloading videos from Hutporner for offline access
- Saving content when playback moves from hutporner.com to hornysimp.com.lv
- Archiving favorite videos without relying on streaming availability
- Avoiding manual network inspection when iframe players load on external hosts
- Catching m3u8 or mp4 media surfaced through cross-domain playback relays

### Troubleshooting

**No media detected**
Make sure the video player has fully loaded, especially if playback shifts to w11.hornysimp.com.lv. Try refreshing the page and waiting for the iframe to initialize.

**Download fails or stops mid-way**
Check your internet connection and try again. Some external player hosts may have rate limits or temporary access restrictions.

**Extension icon is grayed out**
The extension may not be active on the current page. Confirm you are on a supported Hutporner video page and that the page has finished loading.

**Cannot find the download button**
Open the extension popup by clicking the icon in your browser toolbar. The download controls appear there after media is detected.

**Video plays but no media is detected**
The playback relay may use a format or protocol that is not yet supported. Try a different video page to confirm the extension is working.

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

### Installation Instructions

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

### FAQ

**How do I download a Hutporner video?**
Open a supported Hutporner page, let the player handoff complete if playback moves off-site, and use the extension when supported media appears in the page or embedded host flow.

**What is unusual about the Hutporner flow?**
The important fact is the cross-domain handoff. The browsing session may start on hutporner.com, but the playback path can continue on w11.hornysimp.com.lv through an iframe or embedded player chain.

**Why is this positioned as a verified target?**
The facts mark Hutporner as target-ready and place it in the target-verified bucket, meaning the site behavior has been reviewed and confirmed.

**Which media types are grounded by the current evidence?**
The current evidence supports mentioning m3u8 and mp4 stream hints detected through the playback relay chain.

**Is the extension already fully proven in production?**
The target is verified, but factory notes still mention generated stub behavior, so stronger release claims would be premature.

### Notes

- Only download content you own or have explicit permission to save
- An internet connection is required for downloads
- The cross-domain relay behavior and iframe-based players can change what media is exposed
- Factory notes mention generated stub behavior, so readiness should remain cautiously described

### License

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

### About Hutporner

Hutporner is an adult video aggregator that curates content from various sources. Because its playback often shifts from hutporner.com to external hosts like hornysimp.com.lv, a relay-aware downloader like Hutporner Downloader helps users save media that generic tools miss.

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

```

## MCP server setup

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

```

## OpenAPI specification

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