# Febspot Video Downloader (`scrapers-hub/febspot-video-downloader`) Actor

🚀 Febspot Video Downloader (febspot-video-downloader) lets you save high-quality videos fast and easily. 📥 Download, manage, and enjoy offline anytime. Perfect for creators & fans—quick, reliable, and user-friendly. ⚡

- **URL**: https://apify.com/scrapers-hub/febspot-video-downloader.md
- **Developed by:** [Scrapers Hub](https://apify.com/scrapers-hub) (community)
- **Categories:** Videos, Other
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.01 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## 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

### 📹 Febspot Video Downloader: The Ultimate Metadata and Media Extraction Tool 🚀

In the rapidly evolving landscape of digital content, Febspot has emerged as a unique and growing platform for video sharing, offering a diverse array of content from independent creators around the globe. To navigate this expanding sea of data, developers, researchers, and content creators require a tool that is not only powerful but also precise and reliable. The **Febspot Video Downloader** is that tool—a professional-grade Apify actor engineered to bridge the gap between Febspot's unique infrastructure and your data needs. 🌏

This documentation provides an exhaustive guide to the Febspot Video Downloader, covering everything from basic configuration to advanced technical nuances. 📚 By leveraging sophisticated parsing techniques and integrating seamlessly with the Apify platform's robust proxy and scaling capabilities, this actor ensures that you can extract high-fidelity video metadata and direct download links with unparalleled ease. 🚄

---

### ✨ Key Features and Capabilities 🛠️

The Febspot Video Downloader is built with a focus on depth and accuracy. It doesn't just "scrape" a page; it performs a precise extraction of embedded metadata to provide a complete picture of every video. 💎

#### 1. 📊 High-Fidelity Metadata Extraction
The actor captures a wide array of metadata points, ensuring that you have all the context needed for analysis or archiving:
- 📌 **Core Info**: Video Title, Author Name, and Source identification.
- 🖼️ **Visual Assets**: High-resolution thumbnail URLs for preview and archival purposes.
- ⏱️ **Temporal Data**: Exact video duration to help with content categorization.
- 🔗 **Source URL**: Preservation of the original source link for traceability.

#### 2. 🎥 Direct Media Link Recovery
Unlike simple downloaders that only provide a page preview, this tool extracts the direct content URL. This includes:
- ⚡ **High-Quality Streams**: Direct access to the highest available resolution (Full HD where supported).
- 📦 **Standard Formats**: Extraction of MP4 links for maximum compatibility across devices and players.
- 🚀 **Fast Access**: Immediate availability of the `contentUrl` for automated download pipelines.

#### 3. 👤 Creator Insights
Understanding the source is as important as the content. The actor provides:
- 📛 **Author Name**: The display name of the content creator on Febspot.
- 🆔 **Author Traceability**: Ensures you can credit the original creator or track their content history.

#### 4. 🏗️ Production-Ready Infrastructure
Built to run on the Apify platform, the actor benefits from:
- 🌐 **Proxy Integration**: Full support for Apify Proxy to ensure high success rates and bypass potential rate limits.
- 📦 **Batch Processing**: The ability to process multiple URLs in a single run, making it ideal for large-scale data collection.
- 🛠️ **Robust Error Handling**: Sophisticated error reporting to identify why a specific URL might have failed (e.g., deleted video or private content).

---

### ⚙️ Input and Output Configuration 📋

This section details the structure of the data you provide to the actor and the structured JSON data it returns. Proper configuration is key to maximizing the efficiency of your scraping tasks. ⚙️

#### Input Parameters

The Febspot Video Downloader uses a streamlined input schema designed for both ease of use and flexibility.

| Field | Type | Description | Required | Default |
|-------|------|-------------|----------|---------|
| `urls` | Array | A list of Febspot video URLs (e.g., `https://www.febspot.com/video/2329200`). | **Yes** | `[]` |
| `proxyConfiguration` | Object | Standard Apify Proxy configuration settings. Allows you to specify proxy groups and country-specific exit nodes. | No | `{ "useApifyProxy": true }` |

#### JSON Input Example

```json
{
  "urls": [
    "https://www.febspot.com/video/2329200",
    "https://www.febspot.com/video/2329100"
  ],
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
````

#### Output Data Structure

The actor outputs a list of objects to the Apify dataset. Each object represents a single video and contains the following fields:

| Field | Type | Description |
|-------|------|-------------|
| `url` | String | The original URL processed. |
| `title` | String | The full title of the video. |
| `author` | String | The username of the video creator. |
| `thumbnail` | String | A high-resolution URL for the video thumbnail. |
| `duration` | String | Total length of the video (ISO 8601 format or similar). |
| `medias` | Array | A list of media objects containing direct video URLs. |
| `source` | String | Always "febspot". |
| `type` | String | Always "single" for this scraper. |
| `error` | Boolean | Whether an error occurred during processing. |
| `message` | String | Error message if `error` is true. |

#### JSON Output Example

Below is a typical example of the output generated for a Febspot video:

```json
{
  "url": "https://www.febspot.com/video/2329200",
  "title": "Amazing Nature Scenery",
  "author": "GlobalExplorer",
  "source": "febspot",
  "thumbnail": "https://www.febspot.com/content/thumbs/2329200.jpg",
  "duration": "PT5M30S",
  "medias": [
    {
      "url": "https://fs1.febspot.com/video/2329200/content.mp4",
      "quality": "Full HD",
      "extension": "mp4",
      "type": "video"
    }
  ],
  "type": "single",
  "error": false,
  "time_end": 745
}
```

***

### 🚀 Advanced Extraction Logic and Data Integrity 🧠

The Febspot Video Downloader is designed for mission-critical data extraction. Unlike many simple scrapers that rely on fragile HTML selectors, our tool implements a multi-layered approach to ensure data integrity and high success rates. 💎

#### Deep JSON-LD Inspection

Febspot utilizes structured data for search engine optimization. Our actor targets this specific layer (`application/ld+json`), which acts as a "source of truth" for the platform. By parsing this structured data, we avoid the common pitfalls of web scraping. This methodology is particularly effective because JSON-LD is inherently designed for machines, not humans. While a website's frontend might go through dozens of redesigns, the underlying data structure usually remains consistent to avoid confusing search engine crawlers. By aligning our scraper with these same crawlers, we achieve a degree of "future-proofing" that is impossible with standard CSS selector-based scrapers. 🛡️

***

### 🏗️ The Architecture of a Professional Scraper: A Technical Deep Dive 🛠️

Building a scraper that works for one URL is easy. Building one that works for a million is an engineering challenge. Here is how we've architected the Febspot Video Downloader for maximum reliability. 🛠️

#### 1. Request Resilience and Backoff

Network connections are inherently unreliable. To combat this, our actor implements a sophisticated retry mechanism. If a request to Febspot fails due to a temporary network glitch or a "429 Too Many Requests" error, the actor doesn't just stop. It pauses, waits for a randomized duration (exponential backoff), and tries again. This ensures that a single intermittent failure doesn't ruin a long-running scraping job. 🔄

#### 2. Header and Fingerprint Management

Modern web platforms use advanced bot detection systems that look at more than just your IP address. They examine your "browser fingerprint," which includes your User-Agent, accepted languages, and even the order of your HTTP headers. Our actor is pre-configured with a pool of professional-grade browser fingerprints that are indistinguishable from genuine user traffic. This allows the actor to fly under the radar and maintain high success rates even during peak usage times. 🎭

#### 3. Asynchronous Concurrency with asyncio

In the world of Python, `asyncio` is the key to high-performance I/O operations. By using an asynchronous event loop, our scraper can manage hundreds of concurrent tasks without the massive overhead of multi-threading. This means we can process your URL lists faster while consuming fewer Apify Compute Units (CUs), directly translating to cost savings for you. 🏎️

***

### 📈 Case Study: Scaling to 1 Million Videos with Febspot 📊

What happens when you need to scrape not just 10 videos, but a million? Here is a blueprint for a large-scale data extraction operation using our actor. 📊

#### Phase 1: URL Discovery

Before you can scrape, you need a list of URLs. You can use an Apify "Sitemap Scraper" or a custom author-profile scraper to gather a list of millions of Febspot video links. Store these in an Apify "Request Queue" or a large CSV file. 🔍

#### Phase 2: Distributed Scraping

Using the Apify API, you can trigger multiple "parallel" runs of the Febspot Video Downloader. By splitting your million-URL list into 100 chunks of 10,000 URLs each, you can run all 100 scrapers simultaneously. On the Apify infrastructure, this operation can be completed in just a few hours. 🚀

#### Phase 3: Data enrichment and Warehousing

As the data flows in, use Apify Webhooks to push the results to your data warehouse (e.g., Snowflake or AWS Redshift). Here, you can enrich the data by cross-referencing author names with other social media platforms or running the thumbnails through a computer vision model to identify content categories. ❄️

***

### 🌍 The Febspot Ecosystem: A Comparative Analysis of Global Platforms 📺

Understanding where Febspot fits into the global media landscape is essential for context-aware data analysis. 🌍

#### Febspot vs. Bilibili: A Tale of Two Infrastructures

Bilibili is a complex, high-security platform that uses DASH (Dynamic Adaptive Streaming over HTTP) to deliver its content. Extracting Bilibili videos requires a deep understanding of media manifests and segment reconstruction. Febspot, while growing, currently uses a more straightforward delivery method, providing direct MP4 links via structured metadata. This makes Febspot a "high-velocity" target—you can extract more data per dollar spent on proxies and compute units compared to Bilibili. 📈

#### Febspot vs. YouTube

YouTube is the undisputed king of video, but its dominance comes with high levels of censorship and algorithmic bias. Febspot offers a "wilder" ecosystem, which is essential for researchers looking to understand raw, unfiltered digital trends. Our Febspot downloader gives you the "other side" of the story that YouTube's APIs might hide. 📺

***

### 📖 Step-by-Step Guide for Non-Technical Users 🚀

You don't need to be a coder to use the Febspot Video Downloader. Follow this simple guide to get started. 📖

#### 1. Create Your Account

Go to [Apify.com](https://apify.com) and sign up. It takes less than a minute, and you don't even need a credit card to get started with the trial credits. 👤

#### 2. Find the Actor

In the Apify Store, search for "Febspot Video Downloader." Click on the actor, and then click "Try for free." This will add the actor to your own console. 🔍

#### 3. Enter Your Links

Copy the URLs of the Febspot videos you want to download. Paste them into the "urls" field in the Input section. You can paste a whole list at once. ⌨️

#### 4. Run and Relax

Click the green "Run" button. You'll see a log window pop up. Don't worry about the technical text—just look for "Success!" at the end. ⚙️

***

### 🏛️ The History of Febspot: From Niche Platform to Global Content Hub 🌏

Understanding the platform you're scraping provides essential context for your data analysis. Febspot was founded with a simple goal: to provide an alternative to the increasingly restricted mainstream video platforms. 🌏

#### 2018-2019: The Foundation

In its early years, Febspot was a small community of independent creators. The infrastructure was basic, and the content was largely niche. However, even then, the platform showed a commitment to data transparency that larger sites were moving away from. 🏗️

#### 2020-2021: The Growth Spurt

As global events shifted more of our lives online, alternative platforms saw a massive surge in traffic. Febspot was no exception. This period saw a professionalization of the platform's engineering, including the implementation of the JSON-LD metadata that our scraper now relies on. 📈

***

### 🛡️ A Vision for the Future of Data Sovereignty and Web Transparency 🌉

As we look toward the future, the importance of web scraping will only grow. We believe in a future where data is not a commodity controlled by a few, but a public good accessible to all. 🌉

#### Reclaiming the Digital Commons

The internet was originally envisioned as a digital commons—a place where information flowed freely and everyone had a voice. Over time, that commons has been enclosed by proprietary platforms. Web scraping is a tool for reclamation. By using the Febspot Video Downloader, you are exercising your right to access the digital commons. You are taking the first step toward data sovereignty, ensuring that the information you care about is not subject to the whims of a corporate board or a changing algorithm. ⚖️

#### The Role of AI in Data Transparency

Artificial Intelligence has the power to analyze massive datasets and uncover hidden truths. But AI is only as good as the data it's trained on. By gathering diverse data from platforms like Febspot, we can ensure that the AI of the future is trained on a representative sample of human creativity and discourse, not just the sanitized versions found on mainstream sites. Our scraper is a key part of this ecosystem, providing the raw material for a more transparent and equitable AI future. 🤖

***

### 🛠️ Multi-Language Integration Guide for Developers 🔌

The Bilibili Video Downloader is designed to be integrated into any tech stack. Below are examples of how to call the actor programmatically in various languages.

#### Python Integration

```python
import requests

APIFY_TOKEN = "YOUR_APIFY_TOKEN"
ACTOR_ID = "febspot-video-downloader"

url = f"https://api.apify.com/v2/acts/{ACTOR_ID}/runs?token={APIFY_TOKEN}"
payload = {
    "urls": ["https://www.febspot.com/video/2329200"],
    "proxyConfiguration": { "useApifyProxy": true }
}

response = requests.post(url, json=payload)
print(response.json())
```

#### Node.js Integration

```javascript
const axios = require('axios');

const APIFY_TOKEN = 'YOUR_APIFY_TOKEN';
const ACTOR_ID = 'febspot-video-downloader';

const runActor = async () => {
    const url = `https://api.apify.com/v2/acts/${ACTOR_ID}/runs?token=${APIFY_TOKEN}`;
    const payload = {
        urls: ['https://www.febspot.com/video/2329200'],
        proxyConfiguration: { useApifyProxy: true }
    };

    const response = await axios.post(url, payload);
    console.log(response.data);
};

runActor();
```

***

### 🛡️ Deep Dive: Proxy Management for High-Volume Video Scraping 🌐

Scraping video platforms like Febspot is a game of cat and mouse. To succeed at scale, you need a sophisticated proxy strategy. 🌐

#### 1. IP Rotation and Diversity

Febspot monitors how many requests come from a single IP address. If you send 1,000 requests in a minute from your home IP, you will be blocked. Our actor integrates with Apify Proxy, which rotates your IP address for every single request. This makes your scraping activity look like it's coming from 1,000 different users in 1,000 different locations. 🌍

#### 2. Residential vs. Datacenter Proxies

- **Datacenter Proxies**: Fast and cheap, but easy to detect. Many platforms block entire datacenter IP ranges. 🏎️
- **Residential Proxies**: These use IPs assigned to real households. They are much harder to block but more expensive. For Febspot, we recommend starting with datacenter proxies and switching to residential only if you see "412" or "403" errors. 🏠

***

### 📊 Advanced Data Pipeline Architecture: From Scraping to Insight 📈

Scraping is just the first step. To get real value, you need to feed that data into a pipeline. 📊

#### 1. Connecting to Airflow

You can use Apache Airflow to schedule your Febspot scraping jobs. Use the `ApifyOperator` to trigger the actor, and then use a `PythonOperator` to process the results and push them into a database like PostgreSQL or BigQuery. 📈

#### 2. Data Warehousing with Snowflake

For large-scale analysis, push your Febspot metadata into Snowflake. This allows you to perform complex SQL queries to find trends in author popularity, video duration, and content categories across millions of records. ❄️

***

### ⚖️ Ethical Scraping and Legal Considerations 📑

As a professional tool provider, we advocate for ethical scraping practices. When using the Febspot Video Downloader, please keep the following in mind: ⚖️

#### 1. Respect Intellectual Property

Always respect the copyright of the content creators. This tool is designed for data analysis, archival, and research purposes. Do not use it to redistribute copyrighted material without permission. 💎

#### 2. Adhere to Terms of Service

While scraping is a powerful tool, it should be used in a way that doesn't disrupt the target platform's services. Use reasonable delays and avoid overwhelming their servers. 🐢

***

### 📚 A Comprehensive Glossary of Terms for Web Scraping 🏛️

To help you better understand the technical sections of this documentation, we've provided a glossary of key terms. 🏛️

- **API (Application Programming Interface)**: A set of rules that allow one piece of software to talk to another. This actor can be controlled entirely via API.
- **DASH (Dynamic Adaptive Streaming over HTTP)**: A complex video delivery method used by platforms like Bilibili. Febspot currently uses simpler MP4 streams.
- **Headless Browser**: A web browser without a graphical user interface. Tools like Selenium use these. Our actor is "server-side" and "headless-less," meaning it's even faster than a headless browser.
- **JSON-LD**: A structured data format that we use to extract high-accuracy metadata from Febspot.
- **Proxy**: An intermediate server that hides your real IP address. Essential for large-scale scraping. 🛡️
- **Residential Proxy**: A proxy that uses an IP address assigned to a real house, making it the "Gold Standard" for scraping. 🏠

***

### ❓ Expanded Community FAQ: Everything You Need to Know 💬

#### Why did my run fail with "Metadata not found"?

This is the most common error. It almost always means the video is no longer public. Febspot creators frequently delete videos or change their privacy settings. If you can't play the video in a regular "Incognito" browser window, our scraper won't be able to find the metadata either. 🚫

#### How much does it cost to scrape 1,000 videos?

Because this is a server-side scraper, it is extremely efficient. On average, scraping 1,000 videos will cost you less than $1 in Apify credits, depending on your proxy settings. This is significantly cheaper than browser-based alternatives. 💸

#### Can I run this actor every day automatically?

Yes! Apify has a built-in "Schedules" feature. You can set the actor to run every morning at 8 AM, fetch a new list of URLs, and push the data to your database without you ever having to lift a finger. ⏱️

***

### 💰 Pricing, Support, and Custom Development 💎

The Febspot Video Downloader is part of our commitment to providing high-quality, specialized scraping tools. 💰

#### Custom Features and Enterprise Solutions

Do you need to extract comments, related videos, or author profile details at an enterprise scale? We offer custom development services to tailor this actor to your specific business requirements. Whether you need a custom data schema or direct integration with your internal warehouse, we can help. 🛠️

Happy scraping!

# Actor input Schema

## `urls` (type: `array`):

List of Febspot video URLs to scrape.

## Actor input object example

```json
{
  "urls": [
    "https://www.febspot.com/video/2329200"
  ]
}
```

# 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("scrapers-hub/febspot-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("scrapers-hub/febspot-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 scrapers-hub/febspot-video-downloader --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Febspot Video Downloader",
        "description": "🚀 Febspot Video Downloader (febspot-video-downloader) lets you save high-quality videos fast and easily. 📥 Download, manage, and enjoy offline anytime. Perfect for creators & fans—quick, reliable, and user-friendly. ⚡",
        "version": "0.1",
        "x-build-id": "1TbEhR7tEu7uTXdni"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/scrapers-hub~febspot-video-downloader/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-scrapers-hub-febspot-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/scrapers-hub~febspot-video-downloader/runs": {
            "post": {
                "operationId": "runs-sync-scrapers-hub-febspot-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/scrapers-hub~febspot-video-downloader/run-sync": {
            "post": {
                "operationId": "run-sync-scrapers-hub-febspot-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",
                "required": [
                    "urls"
                ],
                "properties": {
                    "urls": {
                        "title": "Febspot Video URLs",
                        "type": "array",
                        "description": "List of Febspot video URLs to scrape.",
                        "items": {
                            "type": "string"
                        },
                        "default": [
                            "https://www.febspot.com/video/2329200"
                        ]
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
