MCPcopy Index your code
hub / github.com/agnosto/fansly-scraper

github.com/agnosto/fansly-scraper @v0.9.11

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.9.11 ↗ · + Follow
373 symbols 1,158 edges 60 files 110 documented · 29%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Fansly Scraper

[!IMPORTANT] Project Status Update

Due to a recent health scare, this project is taking a very far backseat priority in my life. Updates and support will be very minimal for the foreseeable future. Thank you for your understanding.

If you're looking for a more actively maintained alternative with a full WebUI, live dashboard and VOD player, and automatic background monitoring and archiving, check out Accerso.

[!WARNING] ‼️ Windows Defender False Positive (literally no idea why or where this came from)

The Windows executable of this program is frequently being flagged as Trojan:Script/Wacatac.B!ml by Windows Defender and other AV. This is a false positive.

Why is this happening? The !ml in the detection name means it was flagged by a Machine Learning model, not a human. Because this is an unsigned, open-source scraper tool that makes many internet requests, the automated system incorrectly flags it as suspicious. This is a common issue for many Go and Rust-based command-line tools.

Recommended Solution - Install via Go (should hopefully bypass AV issues): bash go install github.com/agnosto/fansly-scraper/cmd/fansly-scraper@latest

What you can do: 1. Trust the program: You can temporarily disable Windows Defender to download and run the program, and then add it as an exception. 2. Build from source: If you have Go installed, you can build it yourself. The program is not flagged when you compile it locally or install via go.

The code is fully open-source for you to inspect. It is safe to use. but I understand if the AV warnings are concerning.

A simple all in one tool to download and monitor content from Fansly creators.

⚠️ Currently in development - Some features may not work perfectly. See known issues below.

Requirements

  • Optional but highly recommended: ffmpeg for livestream recording and saving higher quality videos. Follow this guide for installing to system path on windows.
  • Optional: mt for better contact sheets

Quick Start

1. Download

go install github.com/agnosto/fansly-scraper/cmd/fansly-scraper@latest

2. Run the Program

./fansly-scraper

On first run, the setup wizard helps you configure everything. Press 'a' to use auto login: it opens Fansly and provides a one‑line snippet to paste in DevTools Console. Your token and user‑agent are captured automatically and saved to the config.

Basic Usage

Interactive Mode (Recommended for beginners)

./fansly-scraper

From the main menu you can: - Run setup wizard (choose save location, auto login) - Reset configuration (restore defaults, re-run wizard)

Command Line Mode

# Download all content from a creator
./fansly-scraper -u {creator-name}

# Download specific content types
./fansly-scraper -u {creator-name} -d [all|timeline|messages|stories]

# Monitor for live streams
./fansly-scraper -m {creator-name}

# Start/stop monitoring
./fansly-scraper monitor [start|stop]

Note: Live monitoring requires keeping your terminal session active. To run monitoring in the background, consider using terminal multiplexers like tmux or zellij on Linux/WSL. Starting from v0.6.3, you can monitor additional creators by running -m creator in separate terminal instances without restarting the existing monitor process.

Update the Program

./fansly-scraper update

Project Roadmap & Advanced Setup

Our development is tracked publicly on our Project Roadmap. You can see what we're working on, what's planned for the future, and contribute to the discussion.

  • Configuration Guide: See the Official Wiki
  • Build from source: bash git clone https://github.com/agnosto/fansly-scraper && cd fansly-scraper go build -v -ldflags "-w -s" -o fansly-scraper ./cmd/fansly-scraper

Contributing

Contributions are welcome and greatly appreciated! Whether it's reporting a bug, proposing a feature, or submitting a pull request, your help is valued.

alt text

alt text

Please read our Contributing Guidelines before you start. Check the Issues tab to see if there's a task you'd like to take on.

Known Issues

  • Redownloading: As of v0.8.3, file naming convention was changed causing redownloading of media.
  • Chat recording: May occasionally miss messages during reconnections
  • MacOS users: May need to allow notifications in system settings
  • Live status: Press r in TUI to refresh live status
  • Duplicate files: Sometimes the same image may appear twice due to Fansly's API structure
  • Date formats for livestream filename: In the event a stream gets interrupted and reattempts to record, if the date format isn't specific enough (ie, no timestamp), it may fail to save the stream after as both vods will be the same name, for now use one of these: 2006-01-02_15:04:05 or 20060102_150405

Support the Project

If this tool helps you, consider sponsoring on github:

Sponsor agnosto on GitHub

Alternatively, you can make a one-time donation via cryptocurrency:

Bitcoin (BTC) Solana (SOL)
Bitcoin QR Code bc1q0e78wrtc9ezp6tqv000wfewgqf2ue4tpzdk7ee Solana QR Code Bv3kYZcwSTHXAQtnPddTF27D3F6Gc29v2MfFLqmGF6Gf

[!CAUTION] Disclaimer: This tool is not affiliated with Fansly or Select Media LLC. Use at your own risk. The developer of this script is not responsible for the end users' actions or any outcomes that may be taken upon the end users' account. Use at your own risk.

Extension points exported contracts — how you extend this code

ProcessedPostRepository (Interface)
ProcessedPostRepository defines the interface for post operations [1 implementers]
db/repository/processed_post_repository.go
FileRepository (Interface)
FileRepository defines the interface for file operations [1 implementers]
db/repository/file_repository.go

Core symbols most depended-on inside this repo

Close
called by 64
db/database.go
log
called by 44
cmd/diagnosis.go
GetConfigPath
called by 27
config/config.go
LoadConfig
called by 23
config/config.go
AddHeadersToRequest
called by 19
headers/headers.go
Close
called by 15
download/timeline.go
updateTable
called by 12
ui/followed_models.go
Create
called by 12
db/repository/file_repository.go

Shape

Method 162
Function 114
Struct 94
Interface 2
TypeAlias 1

Languages

Go100%

Modules by API surface

ui/model.go24 symbols
service/monitor.go23 symbols
config/config.go19 symbols
auth/auth.go19 symbols
service/chat_recorder.go16 symbols
ui/livestream_monitor.go15 symbols
download/timeline.go15 symbols
db/repository/file_repository.go15 symbols
headers/headers.go14 symbols
cmd/diagnosis.go14 symbols
ui/config_wizard.go11 symbols
posts/individual_post.go11 symbols

For agents

$ claude mcp add fansly-scraper \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page