# Cumlouder Video Downloader | How to Download Cumlouder Videos (`serpdownloaders/cumlouder-video-downloader-how-to-download-cumlouder-videos`) Actor

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

## Cumlouder Video Downloader | How to Download Cumlouder Videos

> Download videos from Cumlouder with a browser extension. Detects page media, adds a player button, and includes 3 free downloads.

### Get it Here

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

![Cumlouder Downloader](https://apps.serp.co/media/optimized-products/cumlouder-downloader-homescreen-adult-3f6e504fe4.webp)

Cumlouder Downloader provides a browser-based workflow for saving videos from supported Cumlouder pages. Open a video page, start playback if needed, and use the in-page download button, extension popup, or right-click context menu to detect available media and save it directly through your browser.

- Player-level download button on supported Cumlouder video pages
- Detects direct MP4 and HLS-style media candidates from the page
- Filters out ads, previews, thumbnails, and other non-video content
- Right-click context menu for quick page and video access
- In-page download manager with progress tracking
### Table of Contents

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

### Why Cumlouder Downloader

Cumlouder videos are embedded in player pages that often require user interaction before the actual video stream becomes available. Right-click saving rarely reveals the final media URL, and generic web download tools frequently mix ads, previews, and thumbnails with actual video content, making it hard to find what you actually want to save.

Cumlouder Downloader works directly on the page you are viewing. It inspects the player area, checks page metadata and scripts, and filters out non-video content so you see only real download candidates. The extension adds a download button near the player, works from the popup, and includes a context menu option for quick access.

### Features

- Cumlouder-specific app identity and host permissions for cumlouder.com and subdomains
- In-page player download button targeting the configured video player wrapper
- Media detection from video tags, source tags, Open Graph metadata, Twitter player streams, and script content
- Filters common ad banners, VAST ads, thumbnails, previews, sprites, timeline images, and known ad hosts
- Right-click context menu for page and video contexts
- Quality labeling from detected resolution where available
- In-page download manager with progress UI
- Shared offscreen processing for stream and file download work
- OTP email activation with 3 free trial downloads

### How It Works

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

1. Install Cumlouder Downloader from the latest GitHub release for your browser.
2. Navigate to a Cumlouder video page you want to save.
3. Press play on the video player to let the page expose the media stream.
4. Look for the download button that appears near the player area.
5. Click the download button or open the extension popup from the toolbar.
6. Review the detected format options and select the quality you prefer.
7. Click the download button next to your chosen option.
8. Wait for the download to complete and find the file in your browser's download folder.

### Supported Formats

- Input: Direct MP4 URLs and HLS/M3U8-style streams exposed by the page, player, or related scripts
- 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

- Cumlouder viewers who want a simple browser-based way to save videos
- Users who prefer click-based tools over digging through page source or using command-line downloaders
- People who want to build a local archive of Cumlouder content they own or have permission to save
- Anyone who finds generic web downloaders confusing because they mix ads and previews with real video URLs

### Common Use Cases

- Save a Cumlouder video for offline viewing when you do not have an internet connection
- Use the player download button instead of searching network requests manually
- Choose among detected quality options when the source exposes multiple streams
- Use the right-click context menu for a quicker download workflow on video pages
- Keep a personal library of Cumlouder content you have rights to

### Troubleshooting

**No download options appear**
Refresh the page, start video playback, and make sure the extension has permission to run on Cumlouder pages.

**The download button does not show on the player**
Try opening the extension popup from the toolbar instead. Some pages may need a page reload after the player loads.

**Downloads fail or stop midway**
Check your internet connection and try again. If the problem continues, reload the video page and restart playback before attempting the download again.

**Only low quality options are shown**
The available quality depends on what the page and player expose. Try different video pages to see if higher quality streams are available.

**The extension does not appear to work on a specific Cumlouder page**
Some video pages may use different player configurations. Report the URL through GitHub Issues so the team can investigate.

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

### Installation Instructions

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

### FAQ

**How do I download a Cumlouder video?**
Open a supported Cumlouder video page, press play if needed, then use the in-page download button, the extension icon, or the right-click menu.

**Do I need to press play first?**
Often yes. Many video pages expose the final media request only after playback starts or player logic runs.

**What formats can it detect?**
The extension normalizes direct MP4 and HLS/M3U8-style media URLs when they are exposed by the page, scripts, or related player flows.

**What quality options are available?**
Quality depends on what the source exposes. The extension attempts to infer resolution from labels or URLs and sorts detected formats by height where possible.

**Where are downloads saved?**
The extension uses an organized Cumlouder download folder in your browser's default download location.

### Notes

- Only download content you own or have explicit permission to save
- An internet connection is required for downloads
- Start video playback before using the download controls for best results
- Available quality options depend on what the Cumlouder page and player expose

### License

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

### About Cumlouder

Cumlouder is an adult video platform featuring a wide variety of content from studios and creators. Cumlouder Downloader helps viewers save videos directly from the browser without needing external tools or manual URL extraction.

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

```

## MCP server setup

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

```

## OpenAPI specification

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