# Patreon Downloader (`serpdownloaders/patreon-downloader`) Actor

Patreon Downloader gives creators and teams a dependable way to save Patreon content instantly to your device. Instead of juggling manual captures or questionable browser extensions, it pulls content directly from Patreon with consistent quality and predictable results.

It supports Patreon creator

- **URL**: https://apify.com/serpdownloaders/patreon-downloader.md
- **Developed by:** [SERP Downloaders](https://apify.com/serpdownloaders) (community)
- **Categories:** Videos, Automation, Social media
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 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

## Patreon Downloader — Coming Soon (Browser Extension)

> Download exclusive content from Patreon creators you subscribe to — videos, podcasts, images, posts, and digital files — straight to your local machine. **This extension is currently in development and has not been released yet.**

![Patreon Downloader](https://raw.githubusercontent.com/serpdownloaders/patreon-downloader/main/assets/workflow-preview.webp)

Patreon Downloader is an upcoming browser extension that will let paying subscribers save the content they already have access to through their Patreon memberships. Instead of relying on the Patreon web interface for every viewing session, users will be able to export creator content directly from the browser for offline access, personal archiving, and convenient local playback.

- Download videos, audio, images, and attached files from Patreon creator pages
- Save entire post collections or individual pieces of content from subscribed creators
- Export media in its original quality without re-encoding or compression
- Work entirely within the browser with no external desktop applications required
- Designed for Chrome, Edge, Brave, Opera, Firefox, and other Chromium browsers

### Status

**This extension is not yet available for download.** Development is in progress and a release date has not been announced. Sign up below to get notified when it launches.

:bell: **Get notified when this launches:** [Join the waitlist](https://serp.ly/patreon-downloader)

### Get it Here

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

### Table of Contents

- [Why Patreon Downloader](#why-patreon-downloader)
- [Planned Features](#planned-features)
- [How It Will Work](#how-it-will-work)
- [Expected Formats](#expected-formats)
- [Who It's For](#who-its-for)
- [Use Cases We're Building For](#use-cases-were-building-for)
- [FAQ](#faq)
- [License](#license)
- [Notes](#notes)
- [About Patreon](#about-patreon)

### Why Patreon Downloader

Patreon hosts a wide range of exclusive content behind membership tiers, but the platform itself offers limited options for saving that content locally. Videos play inside an embedded player with no download button. Audio and podcast episodes stream in the browser without an export option. Images are displayed inline within posts, and while some creators attach downloadable files, navigating post by post to collect them is tedious and time-consuming.

Patreon Downloader is being designed to solve this by operating directly inside the browser tab where you browse your creator feeds. The extension will detect downloadable media on the current page, let you select what to save, and pull files down to your hard drive in their original format. The goal is to make saving content you already pay for as simple as clicking a button, without needing screen recorders, download managers, or workarounds involving developer tools.

### Planned Features

- Video capture from Patreon's embedded player including full-length exclusive uploads
- Audio and podcast episode downloads from creator feeds and dedicated audio posts
- Batch image saving from posts that contain galleries or multiple inline images
- Attached file downloads for PDFs, PSDs, ZIPs, and other digital deliverables
- Post-level and bulk collection export across a creator's content library
- Filename organization using creator name, post title, and publish date
- Quality selection for video content when multiple resolutions are available
- Cross-browser compatibility targeting Chrome, Edge, Brave, and Firefox

### How It Will Work

1. Install the extension once it is released from the browser extension store.
2. Open Patreon in your browser and log in to your account.
3. Navigate to a creator page or specific post that contains content you want to save.
4. Open the extension popup to see all detected media on the current page.
5. Select individual items or use the batch selector to grab everything at once.
6. Choose your preferred quality setting for video files if multiple options exist.
7. Click download and the files will be saved to your designated local folder.
8. Repeat across different posts or creators to build your offline collection.

### Expected Formats

- Video: MP4 sourced from the Patreon player stream, maintaining original resolution
- Audio: MP3 or M4A depending on how the creator uploaded the content
- Images: PNG, JPG, or WEBP in the original resolution provided by the creator
- Attachments: Original file format as uploaded by the creator (PDF, ZIP, PSD, etc.)

All exported files will retain their native format and quality, ensuring compatibility with standard media players, image viewers, and editing software.

### Who It's For

- Patreon subscribers who want offline access to video content from their favorite creators
- Podcast listeners who prefer local episode files over streaming through the Patreon feed
- Digital art collectors saving high-resolution images and process files from artists they support
- Students and learners downloading educational material from tutorial-based creator pages
- Fans who want a personal archive of exclusive content they have paid to access

### Use Cases We're Building For

- Save an entire video series from a creator for offline viewing during travel
- Archive podcast episodes before a creator restructures their tier offerings
- Download high-resolution artwork and reference images from illustrators and designers
- Collect tutorial PDFs and project files from educational creators into a local library
- Build an organized offline backup of content across multiple creator subscriptions

### FAQ

**When will Patreon Downloader be released?**
A release date has not been set. Sign up at the waitlist link above to be notified as soon as it is available.

**Does it work with all Patreon tiers?**
The extension will work with whatever content your current membership tier grants you access to. It cannot bypass tier restrictions or access content you have not paid for.

**What types of content can it download?**
The plan covers videos, audio posts, images, and creator-uploaded file attachments. Support for each media type will depend on how Patreon delivers that content to the browser.

**Will it preserve the original file quality?**
Yes. The goal is to capture media in the same quality that Patreon serves to your browser, without additional compression or re-encoding.

**Is it free?**
Pricing details will be announced closer to launch. SERP extensions typically include a free trial period.

**Can I download content from multiple creators at once?**
Bulk downloading across different creator pages is a planned feature, though the initial release may focus on single-page content detection first.

### License

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

### Notes

- This extension is in development and is not available for download yet
- Only download content you have an active paid subscription to access
- Media quality and availability will depend on how each creator uploads their content
- Patreon platform changes may affect functionality once the extension is released
- An active Patreon account with valid memberships and internet connection will be required

### About Patreon

Patreon is a membership platform that allows creators to earn recurring revenue by offering exclusive content to paying subscribers. Creators across categories including video, podcasting, music, visual art, writing, and education use Patreon to distribute work that is not available on public channels. The platform streams and displays this content through its web interface but provides limited built-in tools for subscribers to save or export media locally. Patreon Downloader is being built to give subscribers a convenient way to keep offline copies of the content they already support through their memberships.

# Actor input Schema

## `listingNotice` (type: `string`):

Optional informational field only. This actor currently serves as the public listing surface for the browser extension and does not yet expose a finalized runtime API contract.

## Actor input object example

```json
{
  "listingNotice": "No runtime input is required yet. See the README and product page for the current extension workflow."
}
````

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {};

// Run the Actor and wait for it to finish
const run = await client.actor("serpdownloaders/patreon-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("serpdownloaders/patreon-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 serpdownloaders/patreon-downloader --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Patreon Downloader",
        "description": "Patreon Downloader gives creators and teams a dependable way to save Patreon content instantly to your device. Instead of juggling manual captures or questionable browser extensions, it pulls content directly from Patreon with consistent quality and predictable results.\n\nIt supports Patreon creator",
        "version": "0.0",
        "x-build-id": "JJl7winanWyZ2nIFd"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/serpdownloaders~patreon-downloader/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-serpdownloaders-patreon-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/serpdownloaders~patreon-downloader/runs": {
            "post": {
                "operationId": "runs-sync-serpdownloaders-patreon-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/serpdownloaders~patreon-downloader/run-sync": {
            "post": {
                "operationId": "run-sync-serpdownloaders-patreon-downloader",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "listingNotice": {
                        "title": "Listing notice",
                        "type": "string",
                        "description": "Optional informational field only. This actor currently serves as the public listing surface for the browser extension and does not yet expose a finalized runtime API contract.",
                        "default": "No runtime input is required yet. See the README and product page for the current extension workflow."
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
