Back to Projects

Fansly Scraper

Overview

An all-in-one scraper for Fansly content with multiple platform support.

Go TUI CLI Multi-platform

Fansly Scraper is a powerful command-line tool designed to efficiently download and archive content from Fansly. Built with performance and reliability in mind, it supports multiple platforms including Windows, macOS, and Linux.

The tool is regularly updated to ensure compatibility with the latest Fansly website changes and to add new features based on user feedback.

Features

  • Cross-platform compatibility
  • Efficient parallel downloading
  • Organized file structure
  • Configurable download options
  • Support for authenticated content

Downloads

Usage Instructions

Interactive TUI

./fansly-scraper

or simply double-click the executable

Non-Interactive CLI Mode

# Default to selecting all
./fansly-scraper --username creator_name

# Or using short flag
./fansly-scraper -u creator_name

# With Download Option
./fansly-scraper --username creator_name --download [all|timeline|messages|stories]

# Or using short flags
./fansly-scraper -u creator_name -d [all|timeline|messages|stories]

Live Monitoring

# Add Models to Live Monitoring
./fansly-scraper --monitor creator_name

# Or with short flags
./fansly-scraper -m creator_name

# Live Monitoring Control
./fansly-scraper monitor [start|stop]

Changelog

v0.8.8 - January 8, 2026

  • 81fcfcc1c6cc3775a037310a8a3a9d0bf63ad4c3 fix: prevent nil pointer dereference in MonitoringService (#54)
  • 9c2ef0151e3956c6e7eb4300d8562bffc15dca11 update: v0.8.8

v0.8.7 - December 30, 2025

  • f692574513394c05d08da2d8e299bd7f85f99b4c fix: prevent corrupted downloads by validating HTTP status codes
  • 54fb212da867e34aa3b913c2602e71dda0daef23 update: v0.8.7

v0.8.6 - December 30, 2025

  • af24d7d675b6c046c6c6a42454358b0b3f2de478 feat(db): implement post metadata library and file-post linking
  • ae089b2cfd0d8a2cc82286d642cd9f6c08520c45 fix(posts): enforce post limit during timeline pagination
  • c0ad00b721138e8fd6bd11657edc7a68a5ad504c update: v0.8.5
  • d52dc6a138d1a8bf7bb56063ca3345fdc699429d update: v0.8.6

v0.8.4 - December 14, 2025

  • f30916c87c5794f98029256ba943aa8fac758e40 feat(monitor): decouple post processing and configurable interval
  • 2e904129c54424407e5c0ba5005b4b18507d350d feat(monitor): implement stale lock file detection and auto-healing
  • 4af0741afcac229b96d4630f60bf9ad28ea506ed fix(monitor): prevent file overwrites and db errors on reconnect
  • dec3286699bc2587ca5ec470ee61f13188d6d259 update: 0.8.4-preview
  • 67155f4a9ced0c1146814bee481b4bd5da33a1e6 update: v0.8.4
  • 911046b5eac900b264ca4e7a77bbd209cffd892b v0.8.4-preview-2

v0.8.3 - December 13, 2025

  • This update changes the default naming convention for Timeline posts and Messages to preserve the order of images/videos (e.g., for striptease posts).
  • If you have previously downloaded content, the scraper will see the *new* filenames as "missing" and will download them again, resulting in duplicates on your hard drive (e.g., you will have both `123_456.jpg` and `123_01_456.jpg`). You may need to run a duplicate file cleaner or delete the specific folders to clean up.
  • 1d533c13026a2679bb29f8cf4caeb4deb17fe30f Merge pull request #50 from agnosto/feature/naming-revamp
  • d5516ed75aacf4b1347b01dc9633c9f6f8f33acd feat(download): add limit options for recent items
  • 701cfc4fc8f8cac94161080a5018ea20344b570a feat(ui): sort monitoring list by status and username
  • a755cf4584aeefb4f8082198eefb76f3234300a1 update: readme
  • 92088a4ea3f39d355d8540c7493a2aa2a30d454a update: readme
  • 2e9f7ffe63adc6443c16f4756d6d0d62475390e0 update: v0.8.3

v0.8.3-preview - November 21, 2025

  • This update changes the default naming convention for Timeline posts and Messages to preserve the order of images/videos (e.g., for striptease posts).
  • If you have previously downloaded content, the scraper will see the *new* filenames as "missing" and will download them again, resulting in duplicates on your hard drive (e.g., you will have both `123_456.jpg` and `123_01_456.jpg`). You may need to run a duplicate file cleaner or delete the specific folders to clean up.
  • 337771e6d5392a7944d9b0aef9fa3c6c27999a03 feat(download): add support for downloading profile avatars and banners
  • 3b1520a8c18df6d357cffb98dba3a494a2bfd6ca feat: Revamp naming convention to support narrative order (indexes)
  • 71295f099ad423331ac563c16d0e9885cf7ed4a0 fix(db): suppress unique constraint errors on file insertion
  • 64356d2946a5429a335a9fb68fca992943b6aba5 fix(ui): decouple progress bar from file bytes and improve smoothness
  • 55dc61b1d6704abec405bef22e9cf8962ab88219 update: v0.8.3-preview

v0.8.2 - November 20, 2025

  • d9ef4c78157f969757a4551ca0901e8ee6b794d0 feat: add support for downloading specific walls via CLI and TUI
  • 3b9d5c021e9c502fc6e0f7fd39ac7d0c7289fee2 update: v0.8.2

v0.8.1 - November 20, 2025

  • 40e52fcb09fc0ac5a261ccefb8758970dca6a39d feat: add chat log export functionality
  • 33d57efe30e7a83cf8541bd37814a87d37fcb6ea update: v0.8.1

v0.8.0 - November 20, 2025

  • dd4f2d238dadb4e375e51b694b01b33cc1d9651a feat(config): Add date format and caption length options
  • 9a20b115f69e0cf00e17def93e39937afee26074 update: v0.8.0

v0.7.9 - November 20, 2025

  • 4ced86fdab8c04a55f0b533ad43a1cfee437b669 fix(api): Resolve context timeouts on posts with massive bundles
  • bde18655b50ac2768d1b87829794d69ddf80b54c update: v0.7.9

v0.7.8 - November 19, 2025

  • f35767ddf210839bb6cb6cef3e8340ed854ea9b8 feat: Introduce diagnosis suite for user-side debugging
  • 8558617b695f0d57f98331fc2734bb7476ddf6da update: v0.7.8

v0.7.8-preview - October 6, 2025

  • 692d2252265c9b16b6110e9e1efc80304d1b9a72 fix(api): Increase post media fetch timeout to 300s
  • c5de1c2957043410feb1261ae5beb3a44b2b9e48 update(preview): v0.7.8-preview

v0.7.7 - October 6, 2025

  • 1d080f6cec3232394a6f2e3be9fbe9dfa754be4e feat: Implement single post download via CLI
  • 1a22da478f3f148c8cd7b99c74c931ff2011b88a update: v0.7.7

v0.7.7-preview - October 3, 2025

  • c67eff3932b41c066d07f9ec45d40f305374b37a fix(downloader): Remove premature media filtering

v0.7.6 - October 1, 2025

  • a2d2c00c781b8247d8e2fbeac0c5cf0cdd368532 Merge pull request #39 from agnosto/fix/m3u8-high-quality
  • f54c9ea7e6e850103f93d2b641332fb630f6d89d feat: Implement potential fix for M3U8 highest quality selection
  • 40c040ac625a26b17219a8a6ff508103210029ae fix: Correct M3U8 audio sync by re-encoding segments
  • 6c66522a56b758b13667b31a17a2b2e5dcd6b643 fix: Regenerate timestamps during M3U8 concat to fix sync
  • 2f34fc77c21c7525e09922c5596d77d36bafa69d fix: Use aac_adtstoasc filter to fix M3U8 sync issues
  • 9345d4898792e4a6c4993b482dfdba5ac9e9b63e update(preview): v0.7.6-preview2
  • 6604ba6f123c9293bdfc49f8a739f94b2da6d558 update(preview): v0.7.6-preview3
  • 9b94a2793a6354e4913736b8658039424a6532ed update: v0.7.6

v0.7.6-preview3 - October 1, 2025

  • 6c66522a56b758b13667b31a17a2b2e5dcd6b643 fix: Regenerate timestamps during M3U8 concat to fix sync
  • 6604ba6f123c9293bdfc49f8a739f94b2da6d558 update(preview): v0.7.6-preview3

v0.7.5 - September 24, 2025

  • a866c1b4029d94819f9d58c98f1073aac2ca67de feat(notifications): Send contact sheet thumbnail on stream end
  • ed1a513d15846db06fa152b439d49a2e247527b0 fix(cli): Ensure user is authenticated in CLI mode
  • e7f65e0ef4f6b297b0e6f9a7c5a1970f5cc74504 update: contributing md
  • 6ee7e9d69f5f0e010d5bd13dd7ac07df7319b0bf update: v0.7.5

v0.7.4 - September 17, 2025

  • fcf570e84ebc7e2ff667289996c4b0435f005b91 refactor(messages): Optimize message group ID fetching
  • f4f8a72d48d75efc35bafee3b596cc56aa33887d update: v0.7.4

v0.7.3 - September 14, 2025

  • 9859662f255f411a640874be381027bb26d87acc Create FUNDING.yml
  • 5cabe19eef058ee4af3df8d056fc35292e289c32 choer(repo): revert lint workflow
  • 900a750e0e241baf13452d70a7101aa09cf1b256 chore(repo): Add contribution guidelines and CI workflow
  • ec192c4e7e5721afe3528329d27f00a823fa1679 fix(messages): Implement pagination for message group fetching
  • eecb6814bd0c30fd691d58ed1f2acef3bb11bea1 last test
  • e393c749029e0daaa2a36dfa93779cafdfa43121 once more
  • adc2f3110026e6451e6b8fd570b82d8bbb08c0e2 update(golangci-lint): workflow version
  • 304418c816f448f8bcc67b20ae57ecc5b48fe8b0 update: formatting
  • e1876c74414dfa34e7cc0fb0e2ce88dbb99a0306 update: readme
  • 617214106f8ea134227d8530dfbda196985049b1 update: readme
  • f83049e40f3f0221e7013cd41d219d5fd7784e9f update: v0.7.3
  • 2c58fef17d56ed747d550e08f94bef4a4852aab6 workflow(golangci-lint): revert version

v0.7.2 - September 10, 2025

  • aabed1199e799a2e2843f6e22a393e41b3e3aa5f Merge pull request #32 from LongSimple/feat/auto-auth-wizard
  • 50239352fa1898be372c60904e4cc41b9b270146 config: add ResetConfig and ensure default creation
  • b18896899f5d38e8bd5f4ff10608aeb2c3046291 feat(auth): Overhaul auto-capture to avoid Mixed Content errors
  • f8fa7d2352f8c6767813de2acaf55adccf600b54 feat: Implemented Motivation-as-a-Service
  • 1dfad9c5f5e86f65ee2ed5f18d34ccc9888e65ad feat: automated auth capture + setup wizard
  • e6e205beac0c704dd37ecccc706be3b1ece0b0a6 fix: model table and bar on purchase content saving
  • 11910c4a0c37781fcb5cdd33b26602d844233717 update: v0.7.2

v0.7.1 - August 3, 2025

  • ccd4e75034ad0240ad839f9ae6ae16c778c4a40f feat(tui): add first-run config setup wizard and defer config update until valid
  • 765c04b913d4aadf03f10c5dc438b933ccd66bbc update: deps and gitignore
  • 98cb83742808c5f0ff25022b7b60cff05e03d2a8 update: v0.7.1

v0.7.0 - August 2, 2025

  • 8b05e14985f78ee660b916800581166e4aaafbf2 feat: return config file path in error on load
  • c150fcbf71a4d903212bd231e36365d3b577d105 update: v0.7.0

v0.6.9 - July 17, 2025

  • 8de6b8a3ac49e28f553727f395894ba138da3f92 fix(monitor): Correctly terminate monitoring for removed users
  • ec0efbdc7ffaaaacc67ab61f47714f86caed11b6 update: v0.6.9

v0.6.8 - July 12, 2025

  • 1722870240653679d45ee6cd4241b62bc955517f fix: decrease batch size in getting followed creators
  • 8615067eb06cde2d2aa400c7ba20253f3628d5c0 update: config docs
  • 09553bd88bf3d2f4f193b3d8da4173dbb77ea7e9 update: config docs
  • fb924a125f1b3ffb70759541dcf8a44df4e93ebd update: readme
  • 560d380deb64ff16db8359edccbcd94c6caf4a0b update: v0.6.8

v0.6.7 - July 4, 2025

  • 28abb15abf1af40b62d89af4a075dd5403e6c98c feat: download filters and skip downlaoded post
  • 7b2ec60ebf7d1ba4a216437a03c5035fb96bbf19 update example config
  • d91e49dfbfc298dc319c7aa5a428a8666f0995ea update(docs): live settings
  • fc597a9eaefec266c8d5b59829b8c2b3ca6b98bf update: v0.6.7

v0.6.6 - July 1, 2025

  • 5f23a20b1d680917a2f27fe77446c27938afe961 feat: Implement user-configurable FFmpeg arguments
  • 1eb63c61026795502e02d9e8f0cb058854d9bc15 fix(monitor): Prevent VOD self-overwrite on ffmpeg conversion
  • 455298ed697cdbe7f75db90f9380aff4368eb04b update: v0.6.6

v0.6.5 - June 30, 2025

  • abb2c3b486c16020580c9dd47e3ea4eed01387f3 feat: isolate background monitor from other app instances
  • b5d1b80b16523cb5580ca4ebc34c9ccef368fff8 update: v0.6.5

v0.6.4 - June 28, 2025

  • e658d59955156930b4903dbb53417800cf99b542 fix: improve windows path handling for multi-drive setups
  • 9224b85ab3e60216961e6f8eb7379763bd704392 update: readme
  • 95a96a31a374f6ec31230b2f9b892a4c4b7eed47 update: v0.6.4

v0.6.3 - June 20, 2025

  • 63427183b70d0541dc23753c8feed317ddfb7971 feat: use post content as filename
  • 6dca26ad0e0a149a69176769d8fe8d4ec2d784e4 fix(monitor): Reload state to detect changes from CLI
  • 70b7d642cac4228e58ec4693f389b3a6440f5fa2 fix: bundle content acquisition for downloading
  • 40748ffb7f256f1bb58fd49d93a73e57ddce6b6e fix: content filename for purchased content
  • 177957b96588512cff8d3b01b5333edc833002af update: config docs
  • c20e7315067f2cab320f53515075cdb9bc13efd7 update: v0.6.3

v0.6.2 - June 8, 2025

  • d50b6776a994a1b1c76b128c91293f373a383665 Merge pull request #16 from RaCTRayu/refactor/download_process
  • 00b6672bd85a595febd62e636f0a9fffbfc83b19 feat(config): add option to skip downloading preview media
  • cad722522c0975dd9a66978733a31a69b8f5ff2f fix: download only highest quality media variant instead of all variants
  • e4599d74c905e9f2d33b9faa2c8e44a3a2345050 refactor(download): improve media selection
  • 0e08e188e661620138bb2cffb00eef6bcfb228ec refactor: config and config udpating
  • 503c283d4964384ea88bbccf8acc92eae0fb60fb update: v0.6.2