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

- **URL**: https://apify.com/how-to-download-videos/bipornfun-video-downloader-how-to-download-bipornfun-videos.md
- **Developed by:** [how-to-download-videos](https://apify.com/how-to-download-videos) (community)
- **Categories:** Videos, Automation, Social media
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN 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

## Bipornfun Video Downloader | How to Download Bipornfun Videos

> Download BiPornFun videos from date-based post pages, captured directly from your browser.

### Get it Here

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

![Bipornfun Downloader](https://apps.serp.co/media/optimized-products/bipornfun-downloader-homescreen-adult-ea6cf3b54a.webp)

Bipornfun Downloader is a browser extension built around BiPornFun's distinctive dated post-page workflow. Instead of generic adult-site downloading, this tool focuses on the specific pattern of `/YYYY/MM/DD/...` URLs paired with bkcdn-backed media delivery. Open a post, let the video load, and save detected media without digging through source code or third-party downloader sites.

- Built for BiPornFun's date-based post page pattern, not generic video sites
- Detects media from video elements, source tags, and metadata signals
- Adds a download button near the player for one-click saving
- Handles bkcdn-backed asset delivery without manual hunting
- Saves files as MP4 with descriptive filenames
### Table of Contents

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

### Why Bipornfun Downloader

Bipornfun posts use a blog-style date structure that can make them look like text entries rather than video pages. The media is often served from bkcdn hosts instead of the main domain, which means standard right-click save or browser download options frequently miss the real file. Users end up inspecting page source, hunting for direct links, or relying on generic downloader tools that don't understand the site's delivery pattern.

This extension is built around that exact workflow. It recognizes dated post URLs, watches for video elements and metadata, and follows the asset path from the page to bkcdn-backed delivery. The result is a straightforward browser-based workflow that saves you from manual hunting and third-party sites.

### Features

- Built around BiPornFun's date-based `/YYYY/MM/DD/...` post pattern
- Detects video sources from video elements, source tags, and Open Graph metadata
- Adds a download button near the player for quick access
- Covers bkcdn-backed media delivery hosts automatically
- Uses descriptive filenames based on page title and metadata
- Saves files as MP4 for broad compatibility
- Works within your browser without external tools or accounts
- Includes 3 free trial downloads to test the workflow

### How It Works

1. Install the extension from the latest release.
2. Open Bipornfun and go to a supported video post 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 Bipornfun

1. Visit a Bipornfun post page with a date-based URL like ``.
2. Allow the page to fully load and the video player to initialize.
3. Click the play button to start video playback.
4. Look for the download button that appears near the player.
5. Click the button to open the download options.
6. Select your preferred quality if multiple options are available.
7. Confirm the download and wait for the process to complete.
8. Save the MP4 file to your preferred location.

### Supported Formats

- Input: Video sources from Bipornfun post pages, including direct video elements, source tags, and Open Graph metadata, served from the main domain or bkcdn hosts
- 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

- Bipornfun viewers who want to save videos from dated post pages
- Users frustrated with manual source inspection for bkcdn-backed media
- Anyone looking for a browser-based download workflow instead of third-party tools
- Bipornfun fans who want a dedicated tool built for the site's specific page pattern

### Common Use Cases

- Saving a favorite video from a Bipornfun post for offline viewing
- Archiving content from dated blog-style post pages
- Downloading media when you don't have reliable internet access later
- Building a personal collection of Bipornfun content
- Avoiding third-party downloader sites with questionable security

### Troubleshooting

**The download button doesn't appear on the page.**
Make sure the video player has fully loaded and playback has started. Try refreshing the page and waiting a few seconds.

**The download fails or produces a broken file.**
Check that your internet connection is stable and that the video source is still accessible on Bipornfun. Try restarting the download process.

**The extension doesn't detect the video.**
Some older posts may use different media delivery methods. Try opening the post in a new tab and starting playback again.

**I see an error about permissions.**
Make sure the extension has the necessary permissions enabled in your browser settings. Reinstall if needed.

**The download is very slow.**
Large video files can take time to download depending on your connection speed and the source server. Be patient and avoid interrupting the process.

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

### Installation Instructions

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

### FAQ

**Does this work on all Bipornfun pages?**
It is designed for dated post pages with `/YYYY/MM/DD/...` URLs. Other page types may not be supported.

**Do I need an account to use the extension?**
You need an email sign-in for the trial, but no Bipornfun account is required.

**Can I choose the download quality?**
Quality options depend on what the page provides. The extension detects available sources and presents them for selection.

**Is this extension safe to use?**
The extension only interacts with Bipornfun pages and bkcdn hosts. It does not access other sites or collect personal data beyond what is required for authentication.

**What happens after the 3 free downloads?**
You can purchase a license for unlimited downloads from the product page.

### Notes

- Only download content you own or have explicit permission to save
- An internet connection is required for downloads
- Bipornfun uses dated post URLs that may change over time
- Media is served from bkcdn hosts, which may have access restrictions

### License

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

### About Bipornfun

Bipornfun is a niche adult content platform that organizes videos using blog-style dated post pages. Its combination of bi-specific branding and bkcdn-backed media delivery makes it a distinctive target for a dedicated browser-based downloader.

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

```

## MCP server setup

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

```

## OpenAPI specification

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