-
Notifications
You must be signed in to change notification settings - Fork 627
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
DeviantArt can now be ripped #1548
Comments
Greetings rautamiekka, Pretty awesome you found a way to rip DA again! I'm not to savvy with programming and especially anything to do with editing ripme. Could you please explain how to implement these changes to ripme? Cheers |
The best I can do is publish my Python code cuz I dunno Java too much; it'll be fairly simple to follow the code and google for the imports and functions, they've simple official documentation. |
Can you post the code somewhere? Gist maybe? |
I suppose I could this one that works, but it only works with usernames and manually asking the program to acquire either full gallery, all favs, or all scraps. It doesn't support folders and URLs yet. |
The code has a problem now: for some reason it can't fetch the webpage where it reads the gallery size, and even if it can there's another problem with the upload count: if one has uploaded more than 999 pieces, the counter will change to Xk where X is the floating point number of the uploads and k is short for thousand. I assume it'd change to XM where M is short for million if someone actually uploaded that many. That, is worse than it sounds: the app won't be able to accurately tell the ripping progress, so I figured the ripping progress reporting has to be dropped altogether, and the JSONs need to be fetched incrementally, since each JSON will explicitly tell if there's another batch of uploads. That, however, has its own problems I've already forgotten. |
"A bit" late, but I gave up on my own downloader idea even before I found out about gallery-dl. Even if grossly simplified, my code wouldn't be nearly as simple as the then-working one I had, and writing the framework for using the Eclipse API would be too much for me. |
[Mega-Thread] DeviantArt ripper is broken; yes we know -- de-duping all other DeviantArt issues to this one. #2063 |
I've made a "simple" Python 3.7+ script which successfully rips non-mature content from the whole DeviantArt gallery. The way DA is made now it's impossible without logging in to get the mature content, but note I haven't tested cookies for their difficulty.
Also due to the way DA is made now, using the download button on the deviation pages is impossible without logging in.
Ripping is a pretty simple thing to do, surprisingly:
"https://www.deviantart.com/search/deviations?page=1&q=by%3A" + username
.<span class="_4pI41">([0-9]+) results</span>
on the 1st search page. So far the random-looking class name is identical across separate attempts I've done.ceil(RESULTS / 24)
whereceil(...)
rounds up to the even number;61 / 24
=2.541666667
, which must become3
. 24 is the number of items on the search pages."data-hook=\"deviation_link\"[\\t ]+href=\"(https?://(?:www\.)?deviantart\.[^/]+/" + username + "/art/[^"]+)\""
on all of the search pages you downloaded."<link[\\t ]+data-rh=\"true\"[\\t ]+rel=\"preload\"[\\t ]+href=\"([^\"]+)\"[\\t ]+as=\"image\"[\\t ]*/>"
on the deviation pages you downloaded.link.split('/')[-1].split("?")[0]
.The text was updated successfully, but these errors were encountered: