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

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

## Boysfood Video Downloader | How to Download Boysfood Videos

> Download videos from BoysFood detail pages with a focused browser workflow and player-level button.

### Get it Here

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

![Boysfood Downloader](https://apps.serp.co/media/optimized-products/boysfood-downloader-homescreen-adult-1a29839c5b.webp)

Boysfood Downloader is a browser extension candidate designed for saving videos from BoysFood's clean `/videos/<id>/<slug>/` detail pages. It uses a narrow single-domain match scope and a brand-specific player-button setup so you can download media directly from supported BoysFood pages. Instead of promising broad unsupported extraction, this extension focuses on standard video sources and metadata fields for honest, straightforward detection.

- Purpose-built for BoysFood video detail pages
- Single-domain match scope for `boysfood.com`, subdomains, and `www`
- Player button attached to the BoysFood video player surface
- Clean detection from video tags, source elements, and page metadata
- Offscreen download workflow with a dedicated `BoysFood/` folder
### Table of Contents

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

### Why Boysfood Downloader

Downloading videos from Boysfood detail pages can be frustrating when you rely on generic tools that promise everything but deliver nothing. Most multi-site downloaders fail to detect media on Boysfood because they aren't tuned to its specific page structure or player setup. You end up with broken links, unsupported formats, or no download option at all.

Boysfood Downloader solves this by staying focused on one platform. It matches Boysfood's `/videos/<id>/<slug>/` page pattern and uses a player button designed for the Boysfood video wrapper. The extension checks standard video sources, Open Graph metadata, and Twitter stream fields so you get a straightforward download flow without inflated claims or unreliable extraction methods.

### Features

- Purpose-built Boysfood identity with clean single-domain matching
- Player button attached to the `#fluid_video_wrapper_bravoplayer` container
- Detection from video tags, source elements, and page metadata
- Support for root `boysfood.com`, wildcard subdomains, and `www.boysfood.com`
- Offscreen download workflow with a dedicated `BoysFood/` folder
- Metadata extraction from Open Graph and Twitter stream fields
- In-page download controls when the player button is available
- Transparent readiness language with honest status updates

### How It Works

1. Install the extension from the latest release.
2. Open Boysfood and go to a supported video detail page.
3. Start playback so the extension can detect the media.
4. Open the popup or use the on-page player button.
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 Boysfood

1. Navigate to a Boysfood video detail page with a URL like `/videos/<id>/<slug>/`.
2. Let the page load completely so the video player appears.
3. Start playback if the page only exposes media after player activity.
4. Locate the download button attached to the player surface.
5. Click the button to trigger media detection.
6. Review the available quality options in the popup.
7. Select your preferred quality and start the download.
8. Wait for the MP4 file to save to your `Boysfood/` folder.

### Supported Formats

- Input: Standard video sources from Boysfood detail pages, including video tags, source elements, Open Graph video fields, and Twitter stream metadata
- 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

- Boysfood viewers who want a straightforward browser-based save flow for supported video pages
- Users who prefer a site-specific downloader over broad multi-site tools
- Anyone who wants an in-page player button for quick downloads
- Users who value honest readiness language and transparent status updates

### Common Use Cases

- Save a Boysfood detail page for offline viewing
- Use an in-page player button on supported Boysfood video pages
- Work across root, wildcard, and `www` Boysfood matches
- Pull from direct media candidates exposed in video tags or page metadata
- Archive favorite videos for personal backup

### Troubleshooting

**The download button does not appear on the page.**
Make sure you are on a supported Boysfood video detail page with the `/videos/<id>/<slug>/` structure. Start playback first so the extension can detect the media.

**The extension says no media found.**
Refresh the page and try again. Some Boysfood pages only expose video sources after the player initializes and playback begins.

**Downloads fail or produce broken files.**
Check your internet connection and make sure the video is still available on Boysfood. If the issue persists, try restarting your browser.

**The popup does not open.**
Verify the extension is installed correctly from the latest release. You may need to reload the Boysfood tab after installation.

**I see an error about permissions.**
Make sure you have granted the required permissions during installation. The extension needs access to Boysfood pages and download functionality.

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

### Installation Instructions

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

### FAQ

**Is Boysfood Downloader released?**
No. The current status indicates missing repo or not released. The handoff facts are strong, but real extraction review on live Boysfood pages is still pending.

**What pages does it target?**
Boysfood video detail pages with the `/videos/<id>/<slug>/` structure. This includes the supplied sample URL and similar patterns.

**What media does it look for?**
The extension uses a generic static-media preset that checks video and source URLs, Open Graph video fields, Twitter stream metadata, and poster or thumbnail metadata.

**What still needs to happen before release?**
Real extraction QA on live Boysfood pages. The generated direct-video stubs should not be treated as proof of reliable downloads yet.

**Can I use it on other websites?**
No. Boysfood Downloader is scoped to `boysfood.com`, its subdomains, and `www.boysfood.com` only. It will not work on other platforms.

### Notes

- Only download content you own or have explicit permission to save
- An internet connection is required for downloads
- Boysfood Downloader is a candidate pending extraction review and is not yet released
- The extension uses a single-domain match scope and will not work outside Boysfood

### License

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

### About Boysfood

Boysfood is a video platform that hosts adult content organized by categories and detail pages. Boysfood Downloader helps users save videos from supported detail pages directly through their browser, providing a focused alternative to generic download tools.

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

```

## MCP server setup

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

```

## OpenAPI specification

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