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

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

- **URL**: https://apify.com/serpxxx/mygoodporn-video-downloader-how-to-download-mygoodporn-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

## Mygoodporn Video Downloader | How to Download Mygoodporn Videos

> Save MyGoodPorn.tv videos from `/video/<id>/<slug>/` pages with likely iframe handoff and MP4/M3U8 stream discovery.

### Get it Here

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

![Mygoodporn Downloader](https://apps.serp.co/media/optimized-products/mygoodporn-downloader-homescreen-adult-25f4860aeb.webp)

Downloader for MyGoodPorn is a browser extension built specifically for MyGoodPorn.tv video pages. It focuses on the branded `.tv` route pattern where media may sit behind an embedded player or iframe rather than being exposed directly. The extension is positioned to detect stream candidates after the page shell and any player handoff have loaded.

- MyGoodPorn.tv-specific branding and product URL
- Positioned around `/video/<id>/<slug>/` route pages
- Prepared for likely iframe or embedded-player handoff
- Stream hints include MP4 and M3U8 formats
- Target-verified with target-ready status
### Table of Contents

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

### Why Mygoodporn Downloader

MyGoodPorn.tv video pages follow a specific route pattern: `/video/<id>/<slug>/`. This structure can hide the actual player surface behind the page shell, making manual media discovery difficult. Generic downloaders often fail because they expect direct file links rather than the embedded-player handoff that these pages may use.

This extension is built around that exact page pattern. It watches the branded `.tv` page shell, then looks for exposed stream candidates after any iframe or player handoff occurs. Instead of pretending every page offers a simple download button, it acknowledges the real flow: let the page and its embedded layers load, then detect the media when it becomes available.

### Features

- MyGoodPorn.tv-specific page targeting for `/video/<id>/<slug>/` routes
- Likely iframe and embedded-player handoff awareness
- MP4 and M3U8 stream detection when available
- Clean popup interface for download initiation
- Stream-quality selection when multiple options are present
- No external dependencies or third-party servers
- Privacy-focused operation with no tracking
- Regular updates aligned with site changes

### How It Works

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

1. Open your browser and navigate to a MyGoodPorn.tv video page that follows the `/video/<id>/<slug>/` pattern.
2. Let the page fully load, including any embedded player or iframe layers.
3. Click the extension icon in your browser toolbar to open the popup.
4. The extension will scan the page for available stream sources.
5. If multiple quality options are detected, select your preferred resolution.
6. Click the download button to begin the transfer.
7. Wait for the file to complete processing and saving.
8. Access your downloaded video from the browser downloads folder.

### Supported Formats

- Input: MP4 and M3U8/HLS streams detected on MyGoodPorn.tv video pages
- 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

- Users who regularly visit MyGoodPorn.tv and want to save videos locally
- People who prefer offline access to their favorite content
- Users who want a dedicated tool for the MyGoodPorn.tv platform
- Anyone who needs to archive videos from `/video/<id>/<slug>/` pages

### Common Use Cases

- Saving videos from MyGoodPorn.tv for offline viewing
- Archiving content that may be removed from the platform
- Building a personal media library from your favorite creators
- Avoiding repeated streaming for frequently watched content
- Capturing videos that appear behind iframe or embedded players

### Troubleshooting

**The extension does not detect any video on the page**
Make sure the video player has fully loaded and playback has started. Some pages require the iframe or embedded layer to initialize before the stream becomes detectable.

**The download starts but fails partway through**
Check your internet connection and ensure you have enough storage space. Try refreshing the page and starting the download again.

**The extension icon is grayed out on MyGoodPorn.tv**
This usually means you are not on a supported `/video/<id>/<slug>/` page. Navigate to a video page that matches the expected route pattern.

**Multiple quality options are not showing**
Not all videos offer multiple resolutions. The extension will display whatever streams are available on the page.

**The download appears as an M3U8 file instead of MP4**
The extension may need to process the stream before converting it. Wait for the conversion to complete before saving the final file.

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

### Installation Instructions

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

### FAQ

**What page pattern does this extension support?**
It is built for MyGoodPorn.tv pages that follow the `/video/<id>/<slug>/` route, such as `/video/82649/rose-hart-sex-tape-video-leaked/`.

**Does the extension work on every MyGoodPorn.tv page?**
It is designed specifically for video pages with the `/video/<id>/<slug>/` pattern. Other page types may not be supported.

**Why does the extension need the page to load fully first?**
MyGoodPorn.tv may use iframe or embedded-player handoff before the actual media stream appears. The extension waits for these layers to initialize so it can detect the real source.

**What video formats can I expect?**
The extension looks for MP4 and M3U8/HLS stream candidates that become available after the player loads.

**Is this extension fully release-ready?**
The target is verified and ready, but the project is still in candidate stage. Stale configuration surfaces and generated stub behavior may limit full release confidence.

### Notes

- Only download content you own or have explicit permission to save
- An internet connection is required for downloads
- MyGoodPorn.tv video pages may use leak-tape-style slug wording in their URLs
- The extension is positioned for candidate-stage use and may not be fully validated on every page

### License

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

### About Mygoodporn

MyGoodPorn.tv is a video platform that hosts content on branded `.tv` domains. Video pages follow a `/video/<id>/<slug>/` route pattern where the media may be delivered through embedded players or iframe handoff rather than direct file links.

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

```

## MCP server setup

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

```

## OpenAPI specification

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