prof79 / fansly-downloader-ng

Easy-to-use fansly.com content downloading tool. Written in Python and available as a standalone Windows Executable. Enjoy your Fansly content offline anytime, anywhere in the highest possible content resolution! Fully customizable to download in bulk or single: photos, videos & audio from timeline, messages, collection & single posts.
GNU General Public License v3.0
229 stars 13 forks source link

Fansly countermeasures - auth issues/no media/banning #34

Open lordoffools opened 4 months ago

lordoffools commented 4 months ago

Bug Description

Since being forced to upgrade today to v0.8.19, I am now getting the following error:

Info | 13:55 || Inspecting most recent Timeline cursor ... [CID: xxx]  [36]ERROR | 13:55 || Unexpected error during Timeline download: Traceback (most recent call last):   File "/fansly-ng/download/timeline.py", line 64, in download_timeline     all_media_ids = get_unique_media_ids(timeline)                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^   File "/fansly-ng/download/common.py", line 45, in get_unique_media_ids     account_media_ids = [                         ^   File "/fansly-ng/download/common.py", line 46, in     media['id']     ~^^^^^^ TypeError: 'NoneType' object is not subscriptable

Press to attempt to continue ...

Environment Information

User Research

I have done the following:

prof79 commented 4 months ago

@bigxd123 Thanks I had tried that 2 times but for whatever reason failed, now works ... take the maybe last scrape ^^

FishingSoup commented 3 months ago

on my side i found the this.checkKey_ tm only in this format

" this.checkKey_ = ["xxxxxx", "yyyyyy"].reverse().join("-") + "zzzzzz", "

this is yyyyyy-xxxxxx-zzzzz , or ?

and i guess post this keys here would be not a good idee i guess, is a key from your device and if some podt is easy to find and bann ?

prof79 commented 3 months ago

@FishingSoup

So please use as long as it works under this conditions as-is but, sorry the bluntness, I don't care anymore. I stopped my subscriptions and removed my credit card from Fansly.

And yes, also for those of other threads - they have changed the key again. Posting here will probably have it changed soon again.

image

bssoul commented 3 months ago

@FishingSoup

  • The "check key" is public code on the Fansly web app page, not device-related and thus - in isolation - harmless.
  • The key is now actively rotated (updated on the homepage) by Fansly.
  • The key was a static value (easy). Now it is dynamic/JavaScript which is nigh impossible to scrape automatically and has to be evaluated with a JavaScript interpreter --> easiest browser dev tools (<F12) -> Console).
  • Conceptually the "check key" is similar to an encryption key for generating a per-request unique value used for web requests/scraping. This computation factors device-/session-specific data in that has to be transmitted in the headers and is known to Fansly anyway.
  • However, as soon as Fansly changes the key this validation value (hash) will no longer match what their servers expect/compute - and they will detect illegitimate use and invalidate the current user token/force re-login/force renew the configuration.
  • Even worse if Fansly changed the way the value is computed/derived from the key all will break and detect you as illegitimate invisibly.

So please use as long as it works under this conditions as-is but, sorry the bluntness, I don't care anymore. I stopped my subscriptions and removed my credit card from Fansly.

And yes, also for those of other threads - they have changed the key again. Posting here will probably have it changed soon again.

image

It's a shame nothing could be done, I can't blame you for no longer doing this, it isn't doing anything for you so why bother. I see this is still working at least the free trial. https://fanslydownloader.com/ I'm tempted but not sure if I want to waste $19 monthly fee for access to test.. lol

bssoul commented 3 months ago

@FishingSoup

  • The "check key" is public code on the Fansly web app page, not device-related and thus - in isolation - harmless.
  • The key is now actively rotated (updated on the homepage) by Fansly.
  • The key was a static value (easy). Now it is dynamic/JavaScript which is nigh impossible to scrape automatically and has to be evaluated with a JavaScript interpreter --> easiest browser dev tools (<F12) -> Console).
  • Conceptually the "check key" is similar to an encryption key for generating a per-request unique value used for web requests/scraping. This computation factors device-/session-specific data in that has to be transmitted in the headers and is known to Fansly anyway.
  • However, as soon as Fansly changes the key this validation value (hash) will no longer match what their servers expect/compute - and they will detect illegitimate use and invalidate the current user token/force re-login/force renew the configuration.
  • Even worse if Fansly changed the way the value is computed/derived from the key all will break and detect you as illegitimate invisibly.

So please use as long as it works under this conditions as-is but, sorry the bluntness, I don't care anymore. I stopped my subscriptions and removed my credit card from Fansly.

And yes, also for those of other threads - they have changed the key again. Posting here will probably have it changed soon again.

image

A company called CleverGet says it works, I tried with free test downloaded but wouldn't let me save it to my pc so I emailed them and they asked me to try again and let them know what errors happen or what steps I complete. As I was doing that today to show them screenshot I noticed another option is to record the vid on fansly 🤔 It kept telling me to register & wouldn't let me register for free even though it claimed 100% with watermarked or pay to not watermark. I emailed them back and told them the issues but I'm thinking if you can do something with recording you could make a few bucks. Instead of doing it free charge a sm fee. I'd sure as hell be interested in that. I'd prefer paying you than someone else, you work hard for us to have this free & that makes me willing to pay if you can do record.😉

lordoffools commented 3 months ago

This sucks. So we're officially dead in the water. For good?

jet2579 commented 3 months ago

Wow, so they officially won? Scraping is defeated? I honestly didn't see that coming, but touché to them I guess, that doesn't happen often.

Anyway, thanks to @Avnsx for all the work you did on this, and to @prof79 for taking it over. Sorry to see it all end, but it was great while it lasted.

lordoffools commented 3 months ago

Wow, so they officially won? Scraping is defeated? I honestly didn't see that coming, but touché to them I guess, that doesn't happen often.

Anyway, thanks to @Avnsx for all the work you did on this, and to @prof79 for taking it over. Sorry to see it all end, but it was great while it lasted.

Indeed. I really hope we eventually find a workaround.

They're losing all my subscription money - been a subscriber for a while. Canceled all.

ImSoDan commented 3 months ago

@FishingSoup

  • The "check key" is public code on the Fansly web app page, not device-related and thus - in isolation - harmless.
  • The key is now actively rotated (updated on the homepage) by Fansly.
  • The key was a static value (easy). Now it is dynamic/JavaScript which is nigh impossible to scrape automatically and has to be evaluated with a JavaScript interpreter --> easiest browser dev tools (<F12) -> Console).
  • Conceptually the "check key" is similar to an encryption key for generating a per-request unique value used for web requests/scraping. This computation factors device-/session-specific data in that has to be transmitted in the headers and is known to Fansly anyway.
  • However, as soon as Fansly changes the key this validation value (hash) will no longer match what their servers expect/compute - and they will detect illegitimate use and invalidate the current user token/force re-login/force renew the configuration.
  • Even worse if Fansly changed the way the value is computed/derived from the key all will break and detect you as illegitimate invisibly.

So please use as long as it works under this conditions as-is but, sorry the bluntness, I don't care anymore. I stopped my subscriptions and removed my credit card from Fansly.

And yes, also for those of other threads - they have changed the key again. Posting here will probably have it changed soon again.

image

So I'm not at all a real programmer, but when looking at the function in main.js, it seems that after the first expression that defines the check key, there are more lines of code that seems to create and fill an array named 'k' and then takes the array and sets the checkkey to the concatenated values it stuffed in the array. Should we be using the final value of the checkkey after this is completed?

chrome_C6FSHHU4jp

lostandconfused commented 3 months ago

Such a pain, they know we can just download from off the site using js or just screen recording right?, although painful on a creator you have just followed. They also call it selling not renting in their tos so till they change that i'm taking what I brought.

jcg64 commented 3 months ago

So I somehow managed to get it working by fumbling around with stuff and editing the config.ini manually. Obtain the values as below:

1) authorization_token - Open the debug console (F12), go to the 'Network' tab, use the search box to search for 'authorize?ngsw'. One of the entries contains an 'Authorization' field in the 'Request Headers' section. 2) 'check_key' - I got the key via this method: https://github.com/prof79/fansly-downloader-ng/issues/48#issuecomment-2039334676 3) user_agent: Use the method detailed here: https://github.com/prof79/fansly-downloader-ng/wiki/Getting-Started

bssoul commented 3 months ago

@jcg64 That worked for me & I was accidentally using version 9.3 I stopped it after it got a few downloads & went into single mode. Since I have all of the content from the person I follow I can just do it single daily and stay safe hopefully. I will try with newest version later

'check_key' was created with config file I didn't have to go find it. Authorization_token I found using your instructions Also found the user agent the same way.

bssoul commented 3 months ago

I've downloaded about 60 files no issue. I was downloading 1 at a time. My last reply said I was using v0.9.3 I switched after about 50 files to v0.9.7 working just as good. Thank you @jcg64 for playing around.. lol

prof79 commented 3 months ago

Interestingly, though I expected Fansly to do even more/be more aggressive, as of now it still works - I did a download of images and videos very recently before the subscriptions finally expire.

Maybe autoconfiguration is broken, didn't check and don't fancy to, but as others said - logging in, copying authorization token, user agent and "checkKey_" after JS evaluation (all using <F12> dev tools) carefully into config.ini works.

@ImSoDan :

image

... that's the part that matters, before the next ,this. It can be pasted into a dev tools Console and will spit out the key string in the clear but omit the double quotes (they are the string identifier, content is within).

Thanks also @jcg64 for supporting the people!

prof79 commented 3 months ago

@bssoul what's that with CleverGet about? I was on their homepage - regular video software stuff, how is this any helpful/different? If you have to save or record each item manually by whatever means from the Fansly page nothing is really won. Btw for the most cumbersome (time-intensive) task like screen recording, there is open source stuff for that - https://obsproject.com/ :D

Btw I don't think a company will actively help you with what could be seen as copyright infringement getting stuff that was deliberately protected by another party.

There is stuff that might more likely be working - browser extensions that may help you download stuff. But some seem broken and others are also trying money with it like StreamFork (THIS IS NO ENDORSEMENT/DIDN'T TEST).

bssoul commented 3 months ago

@prof79 They advertise as fansly downloader https://cleverget.tv/fansly-downloader/ Onlyfans too. It isn't working in trial & when I contacted them they wanted me to do their work for them figuring out what is wrong then they'd fix it & sell it to me. 🤣🤣 I never replied. I did find other screen recorders so no problem with that. Also I'm able to download now. I only follow 1 person, I have all her stuff older than today so I only need to download new daily or a little at a time if not daily.

prof79 commented 3 months ago

@bssoul lol Ah! I went to https://cleverget.org/ , that's why ... I guess another company that copied early open source scraping code from the web till wheat from chaff separated.

Also seems to still work with v0.9.7, my token as well as the check key have not changed from my last posting.

bssoul commented 3 months ago

@bssoul lol Ah! I went to https://cleverget.org/ , that's why ... I guess another company that copied early open source scraping code from the web till wheat from chaff separated.

Also seems to still work with v0.9.7, my token as well as the check key have not changed from my last posting.

Both v0.9.3 and v0.9.7 are working for me. I've only been using it on single mode & that's actually all I need. check key has not changed for me either. I'm happy we still have this to work with. Easier then screen capture.. lol

Thank you for all you've done too 👍

melithine commented 3 months ago

Is there a write up of the current steps required with regards to the check key situation? I'm having a difficult time determining what I need to do from this thread with all the back and forth troubleshooting. I've started moving back to OnlyFans in general, but I do have a couple of models that are Fansly-specific still, and I have a couple of PPVs that I want to grab copies of.

lostandconfused commented 2 months ago

Is there a write up of the current steps required with regards to the check key situation? I'm having a difficult time determining what I need to do from this thread with all the back and forth troubleshooting. I've started moving back to OnlyFans in general, but I do have a couple of models that are Fansly-specific still, and I have a couple of PPVs that I want to grab copies of.

  1. Browse to fansly
  2. Right click and inspect to open dev tools
  3. Go to the sources tab
  4. Find a js file that includes "main" in the filename under "top > fansly.com" and click it
  5. ctrl+f and paste in "checkKey_ = [" (no qoutes)
  6. Copy the part after the equals sign up to (not including) the comma and paste it in to the dev tools console
  7. Check the result against what is shown by this script
lostandconfused commented 2 months ago

Has been no issues so far and the key hasn't changed once

bssoul commented 1 month ago

@lostandconfused, have you been using it in single mode or multiple?

lostandconfused commented 1 month ago

@bssoul multi v0.1.4 from 22/03

TheMissingPort commented 1 month ago

Is there a write up of the current steps required with regards to the check key situation? I'm having a difficult time determining what I need to do from this thread with all the back and forth troubleshooting. I've started moving back to OnlyFans in general, but I do have a couple of models that are Fansly-specific still, and I have a couple of PPVs that I want to grab copies of.

  1. Browse to fansly
  2. Right click and inspect to open dev tools
  3. Go to the sources tab
  4. Find a js file that includes "main" in the filename under "top > fansly.com" and click it
  5. ctrl+f and paste in "checkKey_ = [" (no qoutes)
  6. Copy the part after the equals sign up to (not including) the comma and paste it in to the dev tools console
  7. Check the result against what is shown by this script

I got the checkkey but it doesnt look like the example, it looks like "ffege4", "dsfhg4"