Metadata-Version: 2.4
Name: Fansly-DL
Version: 0.2.2
Summary: A Fansly subscription downloader.
Requires-Python: >=3.14
Requires-Dist: requests>=2.34.2
Description-Content-Type: text/markdown

<div align="center">

# Fansly-DL

*A fast, high-quality Fansly media downloader.*

![Fansly-DL Demo](assets/preview.gif)

<p>
  <a href="https://www.python.org/">
    <img src="https://img.shields.io/badge/Python-3.11+-3776AB?logo=python&logoColor=white" alt="Python">
  </a>
  <a href="LICENSE">
    <img src="https://img.shields.io/badge/License-MIT-green.svg" alt="License">
  </a>
</p>

</div>

<div align="right">
  <img src="https://count.getloli.com/@Mogrul?name=Mogrul&theme=rule34&padding=7&offset=0&align=top&scale=1&pixelated=1&darkmode=1">
</div>

> [!WARNING]
> This project may violate Fansly's Terms of Service. Use it at your own risk and ensure you comply with any applicable terms and laws.

---

## 📖 About

I originally wrote this project because the downloaders I tried weren't consistently downloading the highest-quality media available.

**Fansly-DL** retrieves a creator's timeline and chats, downloading the highest quality media your account is authorized to access.

It **does not bypass subscriptions or paid content**—your account must already have permission to view the media.

---

## ✨ Features

* 📷 Downloads the highest available image quality
* 🎥 Downloads videos
* 📁 Organises downloads by year/month
* 📅 Preserves upload dates in filenames
* 📊 Progress bars with download statistics
* 🔄 Resume partially downloaded files
* 🧹 Simple command-line interface

---

## 📑 Table of Contents

* [Requirements](#-requirements)
* [Installation](#-installation)
* [Usage](#-usage)
* [Arguments](#-arguments)
* [Limitations](#-limitations)
* [FAQ](#-faq)
* [Disclaimer](#-disclaimer)

---

## 📦 Requirements

* Python 3.11+
* A Fansly account
* An active subscription to the creator whose content you want to download

---

## 🚀 Installation

Download using pip:

```bash
pip install Fansly-DL
```

---

## 🛠 Usage

### 1. Obtain your session token

Log into Fansly using your browser.

Open **Developer Tools → Console** and run:

```javascript
localStorage.getItem("session_active_session")
```

Example:

```json
{
    "id": "...",
    "accountId": "...",
    "token": "YOUR_TOKEN"
}
```

Copy the value of **`token`**.

---

### 2. Run the downloader

```bash
fansly-dl --session-token YOUR_TOKEN
```

---

## ⚙ Arguments

### Required

| Argument          | Description                                                                  |
| ----------------- | ---------------------------------------------------------------------------- |
| `--session-token TOKEN`    | Session token obtained from `localStorage.getItem("session_active_session")` |

### Optional

| Argument             | Description                                 |
| -------------------- | ------------------------------------------- |
| `--destination PATH` | Download directory (default: `./Downloads`) |
| `--debug`            | Enable debug logging                        |
| `--concurrent` | Amount of simultaneous downloads (default: 5) |
| `--timeout` | Requests timeout in seconds (default: 10) |
| `--chunk-size` | Amount of chunks to download in a request stream. (default: 1024 * 1024) |
| `--my-messages` | Downloads messages you sent in chats. (default: False) |
| `--no-chats` | Skips downloading media from chats. (default: False) |

---

## 📂 Example Output

```text
Downloads/
└── Creator/
    ├── 2026/
    │   ├── 07 - July/
    │   │   ├── [2026-07-29] d600a1e88eff.jpeg
    │   │   ├── [2026-07-29] 50db93fc1110.mp4
    │   │   └── ...
```

---

## ⚠ Limitations

* You **must** have permission to access the creator's content.

---

## ❓ FAQ

<details>
<summary><b>Can I download paid content?</b></summary>

Only if your account has already purchased or subscribed to it.

</details>

<details>
<summary><b>Does this bypass subscriptions?</b></summary>

No.

</details>

---

## 🐞 Issues

Found a bug?

Please open an issue:

**https://github.com/Mogrul/Fansly-DL/issues**

Feature requests and pull requests are welcome.

---

## ⚖ Disclaimer

This project is provided for educational purposes.

The author is **not responsible** for how this software is used, including any account restrictions or other consequences that may result from its use. Users are responsible for ensuring they comply with Fansly's Terms of Service and all applicable laws.

---

<div align="center">

Made with ☕, Python and way too much reverse engineering.

⭐ If this project helped you, consider starring the repository.

</div>
