# Iceporncasting Video Downloader (`how-to-download-videos/iceporncasting-video-downloader`) Actor

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

## Iceporncasting Video Downloader | How to Download Iceporncasting Videos

> Capture IcePornCasting videos from /video/ pages with iframe-handoff messaging and m3u8 or mp4 discovery.

### Get it Here

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

![Iceporncasting Downloader](https://apps.serp.co/media/optimized-products/iceporncasting-downloader-homescreen-adult-5d76b58776.webp)

Downloader for Iceporncasting is a browser extension built specifically for Iceporncasting's video pages. Instead of treating every adult site the same, this extension focuses on the unique page structure and player setup that Iceporncasting uses. The result is a tool that understands where to look for media on casting, couch, and backroom-branded watch pages.

- Built specifically for Iceporncasting's /video/ page structure and iframe-based player handoff
- Detects both m3u8 segmented streams and direct mp4 files when the player exposes them
- Verified target status with careful extraction behavior grounded in real site signals
- Fast, private, one-click download workflow from the browser popup
- No account or subscription required to use the download features
### Table of Contents

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

### Why Iceporncasting Downloader

Most video downloaders try to work on every site in the same way, which often means they miss the specific player handoff that Iceporncasting uses. When you open a video page on Iceporncasting, the actual media often loads inside an embedded iframe player rather than directly in the page. Generic downloaders may not follow that handoff, leaving you with nothing to save.

Iceporncasting Downloader was built with this exact pattern in mind. It understands the /video/ page structure and knows to watch for the iframe player handoff that exposes the real media stream. Whether the page serves a segmented m3u8 playlist or a direct mp4 file, the extension positions itself to detect and surface what is available so you can save it locally.

### Features

- Iceporncasting-specific extension identity and product URL
- Verified target row for Iceporncasting as a supported site
- Current URL pattern support under 
- Detection tied to iframe player handoff on watch pages
- Stream hints include both m3u8 and mp4 formats
- Messaging focused on casting, couch, and backroom-branded video pages
- Shared-core factory candidate framing for reliable behavior
- Clear generated-stub caveat for release messaging transparency
- Clear stale or mismatched identity-config caveat for release messaging transparency

### How It Works

1. Install the extension from the latest release.
2. Open Iceporncasting and go to a supported /video/ page.
3. Start playback so the iframe player handoff can resolve.
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 Iceporncasting

1. Open your browser and navigate to Iceporncasting.
2. Find a video you want to download and click into its page. Make sure the URL shows /video/ in the path.
3. Let the page fully load and start the video playing. This allows the iframe player handoff to happen.
4. Click the extension icon in your browser toolbar to open the popup.
5. Wait for the extension to detect the media source. It will look for m3u8 or mp4 streams.
6. If multiple quality options appear, select the one you prefer.
7. Click the download button and wait for the export to complete.
8. Save the final MP4 file to your computer.

### Supported Formats

- Input: m3u8 segmented streams and direct mp4 files exposed through iframe player handoff on Iceporncasting /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

- Visitors to Iceporncasting who want to save videos from casting, couch, and backroom-branded pages
- Users who prefer a site-specific downloader rather than a generic tool that claims to work everywhere
- People who need both m3u8 and mp4 stream support depending on what the page delivers
- Anyone looking for a verified-target candidate with clear communication about its current stage of development

### Common Use Cases

- Downloading a casting couch video from an Iceporncasting /video/ page for offline viewing
- Archiving backroom-style content that you have permission to save
- Testing whether an iframe player handoff exposes m3u8 or mp4 media on a specific watch page
- Using a target-verified Iceporncasting candidate instead of a generic works-everywhere claim
- Evaluating a verified-target candidate that still carries generated-stub and stale-identity caveats

### Troubleshooting

**The extension does not detect any media on the video page.**
Make sure the video page URL starts with /video/ and that you have started playback. The iframe handoff may not happen until the player begins loading the stream.

**The popup shows no available sources.**
Some Iceporncasting pages may use a player handoff that does not expose the stream in a detectable way. Try refreshing the page and starting playback again.

**The download fails partway through.**
Your internet connection may have dropped or the stream source may have expired. Restart the download from the beginning.

**I see a message about generated stub behavior.**
This extension is a verified-target candidate that still carries notes about generated stub behavior. The extraction logic may not be fully proven on every page yet.

**The extension icon is grayed out on Iceporncasting.**
Make sure you are on a supported /video/ page. The extension only activates on Iceporncasting pages that match the expected URL pattern.

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

### Installation Instructions

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

### FAQ

**Is this extension officially affiliated with Iceporncasting?**
No. This is an independent browser extension built by SERP Apps. It is not endorsed by or affiliated with Iceporncasting.

**What formats can the extension detect?**
The packet points to m3u8 and mp4 as stream hints. Actual resolution and file variants depend on what the Iceporncasting page and its iframe handoff expose.

**Is Iceporncasting a verified target?**
Yes. The target is marked as ready and verified in the development pipeline.

**Is this a fully proven release adapter?**
No. Marketing and messaging should stay restrained because factory candidate notes still mention generated stub behavior and identity config appears stale or mismatched.

**Do I need an account to use the download features?**
No account or subscription is required to use the download features on Iceporncasting.

**Can I download multiple videos at once?**
The extension is designed for single-video downloads from individual /video/ pages. Bulk download support is not provided.

### Notes

- Only download content you own or have explicit permission to save
- An internet connection is required for downloads
- This extension is a verified-target candidate with generated-stub notes still present
- Identity config appears stale or mismatched, so extraction scope should be described carefully

### License

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

### About Iceporncasting

Iceporncasting is an adult entertainment platform that features casting couch, backroom, and studio-style video content. This extension helps users save videos from the platform's /video/ pages by following the iframe player handoff and detecting m3u8 or mp4 streams when the page exposes them.

# 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/iceporncasting-video-downloader").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/iceporncasting-video-downloader").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/iceporncasting-video-downloader --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

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