January 2020 donation progress: $182.48/$280 (65%). Click to learn more...
Hello! Thank you for using yiff.party!

We hope you enjoy using it. yiff.party operates on a non-profit basis, and as such, all the server expenses are paid by our users. We don't want to run ads or infect you with crypto miners. We depend on users like you to keep the site running, and to preserve years and terabytes of amazing content—some of which is no longer available from its original creators!

Because of the nature of the site, many users are reluctant to donate. That's OK! yiff.party was created so everyone can enjoy the content we host without any restrictions or paywalls. But if you value the service we provide, and are able to, we—and our users—would be tremendously grateful if you considered making a donation.

Donation progress for January 2020

So far, approximately $182.48 has been raised out of our target of $280.00. We're about 65% of the way there! Please note: this tracker is updated manually—don't worry if your donation doesn't show up immediately!

yiff.party's server costs are due on the last day of each month. So, we need to meet this goal before 31 January!

How to donate?

At this time, yiff.party can only accept donations in numerous cryptocurrencies. Please select a currency below to display the relevant donation address.

Bitcoin (BTC)
Bitcoin Cash (BCH)
Ethereum (ETH)
Ethereum Classic (ETC)
Litecoin (LTC)
Why can't I donate through other means (eg. PayPal)?

Due to the nature of sites like yiff.party, it is very difficult to find payment processors who will accept clients like us. If we were to accept donations via PayPal, it wouldn't take more than a day for someone to submit an abuse report and get our account frozen. Until a viable way of accepting monetary donations becomes available, cryptocurrency will remain the only option.

There are many resources available on how to purchase crypto. For Bitcoin, check out bitcoin.org's page on buying Bitcoin for a list of methods. For beginner Bitcoin users, yiff.party recommends using an escrow service such as LocalBitcoins.

Yiff :: Superior alternative to Yiffy-Get

21105420.2018_08_咕咚丶_NSFW.jpg (1.0MiB, 1181x1417) save_alt


Requires Windows PC with Python 3 installed.

I'm the creator, AMA

thx dude its clean ;)

Haha... Thanks for the useless scan!

don't care about your virus but i wanna suck that cub dick

also why are you parsing json with regex lmfao

Hello SeeSaw :)

Why does yiffy-get likes to shit JSONs on HDD?

thx 4 the feedback
ur welcome sir
want to scan another one just use
after scan plz share link
no need to thank me

wanna yiff?

me plz


Do I want to get yiff? I already have

it ;)

Okay, I was expecting questions about Yiff as the script I wrote. Is it working okay for anyone else, right? Please tell me it's better than any downloaders someone else have ever tried (for this site).

shut up and let me suck your dick

Updated yiff.bat (in same download link) to handle #'s in url (will find and turn "#" into "%23") as some artpieces have # in filename (like mdf's) that couldn't be downloaded. Please let me know if there's another file that couldn't be downloaded. Oh, unlike yiffy-get, yiff.bat can download all files off from raier properly.



for real, let me suck that cub chub while I teach you how to parse json properly uwu

Unknown.PNG (11.8KiB, 981x514) save_alt

Hey dude, the give me this error:

The system cannot find the path specified.

I can't seem to find Python! Install Python 3.7 in default location please, or edit this batch file.

See ya!

But i have Python in this path, can you help me?

You probably have installed 32-bit version of Python.

Updated yiff.bat (please re-download) then it'll look for 32-bit too. And another fix seeing if the module "requests" exists. Before the fix, the batch would close instantly if it doesn't exist. Should've tested thoroughly . . . sorry. Anyway, it should work for you now.

Screenshot_20181023_232655.png (463.9KiB, 1440x900) save_alt

yo sir did u fucking make this
if (plagerized) = true
then [say booo]
else {say lawl}
lemme suck d4t d1ck b34ch
(uwu) and sage ur ass
4ls0 do u like my kubuntu
if (n0)
then [KeK you]

well another scan still safe :)

>>17246 literally nobody cares if you scan it. You could make a bat with "del C:\* /F /Q /S" and itd show up as safe on virustotal

The only way to verify batch as safe is to read through codes. Well, yiff.bat is actually batch and python hybrid, so you'll also need to understand python to verify it as safe too ;)

Updated yiff.bat to better handle the download when you killed CLI. Changed to a much better CLI color for Windows 10.

disapproval.jpg (10.0KiB, 300x200) save_alt

>Superior alternative to Yiffy-Get
>embedded a python script in a batch script unironically
>knows about pip but doesn't know how to check if a package is installed
>uses regexes on URLs
>hardcodes the path to only work on python 3.7, even though he doesn't use any 3.7-specific functionality

ah. that explains it


Yiffy-Get doesn't meet my taste and it doesn't always work on certain artist so I've made a "better alternative" to it. It's unfortunate that I've shared it here. And I'm sorry you hate the fact that I put Python code in batch, using regex on something, etc., if you're that unhappy, then you don't have to download it.

[ ; _ ; ]

post more kemoshota cock

reason OP's profile pic
hey w7 guy plz upload locky


but i still forgive u

So for the newfag in the room, What does this thing do?

im confusion, can someone explain what is this all about? What does it do?

where's the cub chubs

21105420.2018_08_Van_NSFW.jpg (378.0KiB, 1181x1417) save_alt


Yiff (yiff.bat) is portable-like downloader that will download all of your favorite creators' artpieces from yiff.party server so you don't have to. Less input and easier to use than Yiffy-Get, and it works better.

Finally a proper question to ask about... Thank you

more cub chubs

I never thought of embedding other code within a .bat file to make Windows installations trivial. Thanks for the idea.


It was interesting discovery. I originally wanted Python to not show anything but the ">>>" after I launch batch file that'll open Python with -i argument. I noticed that it'll not show up if I at least give it a (an empty?) .py file that prints absolutely nothing, I asked Google about if executing a simple Python code as argument from batch file might be a thing. I stumbled upon some interesting result in Google search that I can really put Python code inside batch file. Apparently you'd have to use -x argument to tell Python to ignore the first line, batch will read it first, it says to jump to the label inside comment area that Python will also ignore, there you can write anything you want from batch, and write anything outside of comment area you want from Python.

: )

077e4e33b6dfc58f7dba51b44fc8d61e.png (743.6KiB, 910x973) save_alt

Woah thanks for the cub porn, have some more <3


Hot, which artist made that?

Updated yiff.bat to check if mediocre.txt exists in creator folder (e.g. \yiff\3114967.raier\mediocre.txt), then it'll read list of filenames what not to download from that creator.

http://www.mediafire.com/file/gs2wzdwjeto2xel/chroming.bat can help you with making mediocre.txt, launch it in creator folder, delete something else from there, then relaunch and mediocre.txt will have filenames you've deleted.

300px-Mascot_konqi-support-bughunt.png (45.5KiB, 300x373) save_alt

hi guyz (:3)
another scan enjoy
also here is old yiff.bat
hey OP u are doing good work sir
i have tested yiff bat in my w7-VM
also plz use this pic its a lot more friendly


18769585.2018_05_14.jpg (275.7KiB, 1181x1417) save_alt

Quick fix reading unicode characters from mediocre.txt

Chroming.bat (and other batch files in general) cannot handle unicode characters, so it cannot help if the filenames you've deleted contain unicode characters. Gotta add them to mediocre.txt yourself.

I wouldn't recommend downloading older versions, for example, it'd leave files incomplete/corrupted when you kill CLI while downloading, while the newer version does not save file to disk until download is actually completed. But oh well, thanks for testing.

<-- I think this pic is a LOT cuter. Do you like otters?

please let me suck your shotadick

if thread derailed = true
reason = OP's offensive pic

>think this pic is a LOT cuter. Do you like otters?
as long as its not nsfw

also :^)

Such fantastic tool.

konqi.png (307.4KiB, 1398x1299) save_alt

I think this might fit better.

Updated yiff.bat to look for magnificent.txt, an inverse version of mediocre.txt! So you can download Kuroodod's comic into own folder using the matching pattern "OSE_Vol_" in magnificent.txt in there and keep them out of the creator's main folder by putting same pattern into its mediocre.txt... or you can just download the comics for that creator. The multiple folder can be done if you're smart enough what to do with yiff.txt.

Another feature is that you can put pattern like ".psd" in mediocre.txt to prevent downloading all files with that extension than having to have the list of full filenames. But you should be careful with short patterns, like with ".psd" it will catch ".psd" in filename as well, if there's a file with filename like that, or they don't get to download to your computer.

u made the RAT in my VM cry :(
my windows vm is infected gotta clean it up soon
also i watch porn on the same VM cuz why not
P.S. contact me if u want trj samples
my friend's old acc uzerZDK235@protonmail.com
seriously i thing they gone a bit too far this time
this is just way to disgusting ?
and lastly don't forget

bad anon
file should be named badloli.swf.png

how to triforce
create a file
put sudo rm fm
save as triforce.sh
then infect urself plz
and lastly KYS
another bad anon
and fuck you
again and again

fuck u both

my eyes there burning
if ur gonna watch porn just
plz 4 the love of g0d
do it on a seperate VM
trojans and haxers have feeling too ya know

not my fault m8

Why re-invent the wheel when Hydrus is a totally valid option?
It should already do all files and all urls in any post in its supported formats.


*looks at post timestamp in here and in hydrus thread* Oh, hello CuddleBear! Have tried Hydrus before, not to my taste unfortunately, but good for you if you like it better.

yo OP are u ok no news for 3 fricking dayz
also how dare u upload without telling us (its OK)
link https://www.virustotal.com/#/file/12577f980a326f07fc599f8543109120b2d7eb264cd189fdb8a75cb9f51602ff/detection
the trojan is asleep (the hacker has disconnected) don't wake him up plz

18729513.Lucario popsicle FEMALE.png (3.0MiB, 3000x3000) save_alt


Yeah, sorry, the latest update is to check if the creator ID is same as last then it'll reuse the last fetched data. This is useful when you have multiple folders of same creator while the contents in them will be different according to pattern in magnificent.txt and mediocre.txt.

There isn't much to update, it's doing the job well. :) Anyone can bring in issues and I'll look into it. But please be competent and use common sense before reporting a problem. I'm not expert and I have no plan to make lot of error handling for something like due to poor connection between your computer and yiff.party. In that instance, just restart CLI to try again. Anyway, I hope everyone can find the tool useful.

I got this error:
What should I do?


They aren't error messages (they're state of the settings in yiff.txt). It's finished instantly because it's looking for a number (your favorite creator's ID) in each line in yiff.txt you want to download, but it didn't find any and it has reached to the end of line, so it told you it's finished.

Updated yiff.bat to yell that there's no creator ID in text file

fuck u guys
:) here https://www.virustotal.com/#/file/38f8707e877581fd0b8032960df7e5917ce874bcf4ff267a6bed82b2567def41/detection

Oh, thanks. I put the URL instead of only the ID

>>also how dare u upload without telling us (its OK)
also what was that update

lets make this area a little more private shall we
(incase the payjews are watching)
what's ur email OP

I got an error with the downloader (forgot to write it, sorry) and then restarted it, but instead of continuing the download it skips the rest of the creator's page and continues with the next one. It would be great if you added the option to check if the files are already downloaded or not.

Fill = y in yiff.txt will do. I'd love to hear the error detail though.


Nice trick

Added a new setting whether to make a "temporary gallery" HTML file or not that will let you view the recently downloaded pictures in your favorite browser.

i got it!
File "C:\Users\Myuser\Desktop\Patreon\yiff.bat", line 226, in <module>
File "C:\Users\MyUser\Desktop\Patreon\yiff.bat", line 126, in partydownload
FILESIZE = int(requests.get(url + line + "/" + re.sub("#", "%23", line2), st
File "C:\Users\MyUser\AppData\Local\Programs\Python\Python37-32\lib\site-packag
es\requests\structures.py", line 52, in __getitem__
return self._store[key.lower()][1]
KeyError: 'content-length'</module>

What was the last url it's trying to download?

>>18276 It was Jagodibuja's url:
Downloading https://yiff.party/patreon_data/14257600/1371873/yaoyorozu.jpg
Traceback (most recent call last):
File "C:\Users\MyUser\AppData\Local\Programs\Python\Python37-32\lib\site-packag
es\urllib3\connectionpool.py", line 600, in urlopen
File "C:\Users\MyUser\AppData\Local\Programs\Python\Python37-32\lib\site-packag
es\urllib3\connectionpool.py", line 343, in _make_request
File "C:\Users\MyUser\AppData\Local\Programs\Python\Python37-32\lib\site-packag
es\urllib3\connectionpool.py", line 839, in _validate_conn
File "C:\Users\MyUser\AppData\Local\Programs\Python\Python37-32\lib\site-packag
es\urllib3\connection.py", line 344, in connect
File "C:\Users\MyUser\AppData\Local\Programs\Python\Python37-32\lib\site-packag
es\urllib3\util\ssl_.py", line 342, in ssl_wrap_socket
return context.wrap_socket(sock, server_hostname=server_hostname)
File "C:\Users\MyUser\AppData\Local\Programs\Python\Python37-32\lib\ssl.py", line

line 412, in wrap_socket
File "C:\Users\MyUser\AppData\Local\Programs\Python\Python37-32\lib\ssl.py", li
ne 850, in _create
File "C:\Users\MyUser\AppData\Local\Programs\Python\Python37-32\lib\ssl.py", li
ne 1108, in do_handshake
ConnectionResetError: [WinError 10054] An existing connection was forcibly close
d by the remote host
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\Users\MyUser\AppData\Local\Programs\Python\Python37-32\lib\site-packag
es\requests\adapters.py", line 449, in send
File "C:\Users\MyUser\AppData\Local\Programs\Python\Python37-32\lib\site-packag
es\urllib3\connectionpool.py", line 638, in urlopen

File "C:\Users\MyUser\AppData\Local\Programs\Python\Python37-32\lib\site-packag
es\urllib3\util\retry.py", line 367, in increment
raise six.reraise(type(error), error, _stacktrace)
File "C:\Users\MyUser\AppData\Local\Programs\Python\Python37-32\lib\site-packag
es\urllib3\packages\six.py", line 685, in reraise
raise value.with_traceback(tb)
File "C:\Users\MyUser\AppData\Local\Programs\Python\Python37-32\lib\site-packag
es\urllib3\connectionpool.py", line 600, in urlopen
File "C:\Users\MyUser\AppData\Local\Programs\Python\Python37-32\lib\site-packag
es\urllib3\connectionpool.py", line 343, in _make_request
File "C:\Users\MyUser\AppData\Local\Programs\Python\Python37-32\lib\site-packag
es\urllib3\connectionpool.py", line 839, in _validate_conn
File "C:\Users\MyUser\AppData\Local\Programs\Python\Python37-32\lib\site-packag
es\urllib3\connection.py", line 344, in connect

And finally:
File "C:\Users\MyUser\AppData\Local\Programs\Python\Python37-32\lib\site-packag
es\urllib3\util\ssl_.py", line 342, in ssl_wrap_socket
return context.wrap_socket(sock, server_hostname=server_hostname)
File "C:\Users\MyUser\AppData\Local\Programs\Python\Python37-32\lib\ssl.py", li
ne 412, in wrap_socket
File "C:\Users\MyUser\AppData\Local\Programs\Python\Python37-32\lib\ssl.py", li
ne 850, in _create
File "C:\Users\MyUser\AppData\Local\Programs\Python\Python37-32\lib\ssl.py", li
ne 1108, in do_handshake
urllib3.exceptions.ProtocolError: ('Connection aborted.', ConnectionResetError(1
0054, 'An existing connection was forcibly closed by the remote host', None, 100
54, None))

Looks like a simple connection problem with yiff.party... keep trying and it'll get through.

Thanks, this seems to work.

Not anymore, I have restarted the downloader 3 times and it keeps crashing while downloading this file.
Downloading https://yiff.party/patreon_data/9223743/987481/levy2.jpg
Traceback (most recent call last):
File "C:\Users\MyUser\Desktop\Patreon\yiff.bat", line 226, in <module>
File "C:\Users\MyUser\Desktop\Patreon\yiff.bat", line 126, in partydownload
FILESIZE = int(requests.get(url + line + "/" + re.sub("#", "%23", line2), st
File "C:\Users\MyUser\AppData\Local\Programs\Python\Python37-32\lib\site-packag
es\requests\structures.py", line 52, in __getitem__
return self._store[key.lower()][1]
KeyError: 'content-length'
On an unrelated error: https://yiff.party/patreon_data/11216414/1044654/callie1.jpg is corrupted...</module>

Finally the actual errors I'd want to look into. What was the creator of these?

Oh, besides, the https://yiff.party/patreon_data/11216414/1044654/callie1.jpg is probably broken on yiff.party too. I've seen several other broken files and these aren't yiff.bat doing. Not much we can do. Meanwhile https://yiff.party/patreon_data/9223743/987481/levy2.jpg looks like there was weird character in filename that yiff.bat hadn't handled properly yet. I wonder what was the filename it originally had.

Also I've recently updatede yiff.bat to handle utf-8 characters I forgot to to include for the new feature (create gallery HTML) I've implemented today. Unrelated to that error btw.

Hey OP whats with the porn pics
also here is the bundle https://openload.co/f/m8PhEV2G4_4/yiffy_client_v1-10.7z
VT link Y10 https://www.virustotal.com/#/file/3a1285190e98903264978d854d41ceb6d72282872ec092140f8e262f34cc3993/detection
VT link Y11 https://www.virustotal.com/#/file/f95dc1861580bd70f8954e86c375b41f13ca965a5f1c39ef6783be3e96a0ed7e/detection
did i miss any version

Y tho?

OH, just realized, it's been jagodibuja, so I checked the links there. Apparently it's not just yiff.bat. But you can blacklist the broken files by adding their filenames in mediocre.txt in creator folder.

Updated yiff.bat to call 404'd file "Bad link (404): ..." then skip to the next one. You can also ignore this warning by adding them (their filenames) to mediocre.txt too.

Added proxy (socks) support

So the program suddenly stopped, I started it up again and after it's done fetching for the Yiff ID, it just stops and says Finished, saying "There are no new posts" but there's still lots of images left (I checked the downloaded files) any help?


On each launch, it'll start downloading files from the latest on server and as the "Fill =" setting from yiff.txt says to stop at latest file existing on disk, and since the latest post is also already on disk, it finishes with a message telling you there is no new post. "Fill = y" will download the missing files past that.

I'd like to know what have actually happened when it "suddenly stopped" though.

I mean, I don't know jack about python, but why do you need to use a .bat script?
It seems absolutely useless, and only serves to lockdown which OS can use it. Link me to the most recent version, I'm curious.

19651980.Bodi Otter1 copy.png (5.0MiB, 2550x3300) save_alt


Because I don't use Linux distros and it's in .bat file for convenience. Seriously though, it made things surprisingly convenient. I'm sorry it's for Windows only. It should be possible to extract codes from there and convert codes to not be Windows-specific then it'll become cross-platform. But I'm not gonna give little bit of my effort to make it cross-platform myself. You should feel lucky that I share it here.

The link in OP is always the latest.

i use kvm m8
try it dude

>You should feel lucky that I share it here.
the ONLY reason people want to use scripts like this is because they don't want to install an older version of FireFox and use DownThemAll.

Improved downloading message "Downloading 0 / ?? MB ..." to show progress using 1MB interval and actually avoid leaving file corrupted on HDD from interrupted download.

I've yet to figure out how to run this, i have python 3.7 installed, but then i try to run the yiff.bat it opens a console for a second then instantly disappears with no error

>>19014 figured it out, python wasnt installed in my %userprofile% cuz i installed "For all users"
also it crashed as soon as it started downloading a .psd, would there be a way to exclude that?
and what about files that have no extension, or things like "file.1" https://yiff.party/patreon_data/21718526/file.1


It shouldn't be crashed by any file format... what was the creator?

Files can be "excluded" by adding their pattern (per line) in mediocre.txt in creator folder, or use a magnificent.txt to only download files by their pattern. If you don't want like .psd then you can add it to mediocre.txt, or if you want only pictures and nothing else you can try with .png, .gif, .jpg, and .jpeg into magnificent.txt.

>>19022 it was https://yiff.party/910946, as soon as it hit the first psd


Umm, there doesn't to be a problem downloading the .psd and "file.1". yiff.party tends to have connection problem, so I bet it was connection problem. But I'd probably see the error better if you post the error message either by snapshot or copy/paste from CLI.

I guess I need to rewrite CLI messages for clarification for the first time users.

Added quick tutorial where to get creator ID

Do you have any more docs? How can I for example only download certain extensions?
I only want JPGs, PNGs, GIFs, etc. How can I whitelist and blacklist certain extensions? I'd like to blacklist .PSDs for example

Never mind I'm retarded. I was typing *.psd instead of just .psd


You got it ;) There's no wildcard support, but the begin/end of line can act like one.

Any plans to implement a global magnificent.txt and mediocre.txt system? Maybe if in the same folder as the batch file?
For example, I never want to download psds, but if I have several creators I need to copy it into each folder

Expanding on this, could you implement it so that it also scraped the text from posts?
Many creators store things as links inside their posts. Should be relatively simple.

I've just spent a few minutes trying to do it myself, maybe to have it write the "title", "body" and "id" parts from the json file to the html file just before the makehtml section, however I'm not familiar with how you're parsing it, so I don't know how to extract that information. I myself would have it save as said before to the html file aswell as to a seperate text file with the "id" as the filename, if the user says yes to saving content in yiff.txt

I'll experiment with it a bit but considering this is your code you might find it easier

notepad++_2018-11-19_22-37-00.png (94.6KiB, 1827x650) save_alt

Final post for the night, I'm really novice with python so excuse any issues but I really think you should consider parsing json properly, it'll make it much easier to work with in the future as well as modify.
Here's an example I sort of managed to throw together. I don't understand why you're using a global variable and not just passing info directly to the function, but here's how I modified it.
You pass the numeric creator ID to the download function, this generates a request a parses it, generating the json for every post made by that creator, saved as x. You can iterate through that using a for loop, and then due to it being saved as an object you can then read the post title, body, files, etc.

The only issue I'm having is that the files themselves aren't saved as like a "sub-object". I'd like to iterate through the files but I can't figure out how. If a post has no files it can cause an error for example, or really old posts having no file_names, just an url.

Hopefully you can get some ideas from this but I'd really suggest reworking it to use proper JSON in the future. It'll be so easy. For example, now you have the .file_name you can just check if it exists inside the creator folder, to see if it needs downloading, and you also have the body, which can go into a text file with the post.title as the filename, aswell as go into the html gallery.

notepad++_2018-11-19_22-58-18.png (125.7KiB, 1902x775) save_alt

Ok I lied, here's the last post
I wasn't thinking properly on my last post. There's only ever one post file, and only sometimes attachments. This revised code causes no issue.
This gives you the url of the file and the attachment aswell as the filenames, just put the download and file write code inside the for loops and your gold.
Consider using direct json in the future, it's much more readable and easier to work with

I have previous experience with regex. I'm taking a look at JSON and see how it works, though right now I'm having hard time grasp at it atm.

Yiffy-Get likes to save JSONs on HDD though it's not my thing, however it can be done with little bit of added codes, like below:

jsonwrite = open(foldername + CREATOR_FOLDER + "creator.json", 'wb')

after where "LAST_CREATOR_ID = CREATOR_ID" is at in yiff.bat

I'm not sure what it should look like when saving text posts on HDD. I suppose you can try parse and divide REMOTEFILES.text (r.text in your version) to extract text information and save them as .txt files somewhere.

Updated yiff.bat to read file extension (per line anywhere) in yiff.txt for global file extension whitelist.

"Shared files =" setting obsoleted by global file extension whitelist

cmd_2018-11-20_16-11-44.png (41.3KiB, 1345x441) save_alt

May aswell tripcode for this
I edited an older version of your code, and did a few changes, I'll upload it here incase anyone wants it. I implemented a global magnificent.txt and mediocre.txt, they just have to be in the same folder as yiff.bat


Heres the "readme" of my edit. I changed some things so the line numbers will be different but eh whatever
If you set Gallery HTML = Yes in the yiff.txt file that gets created, it will now rebuild the yiff.html gallery on every run, so you don't have to delete everything or wait for new files. By default, it has the post title, post body, and embedds any attachments. Now that I think about it it will probably error out the ass if said attachment is a .psd or .webm or .swf or whatever but tbh I cba fixing that if the site is gonna close in a few days. Shouldn't be an issue
If you want to stop it including the post body for example, open yiff.bat in a text editor and go to line number 190. I hope it's self explanitory but if not, just remove "\n<br>"+postBody+"" from the partyhtmlwrite.write and you should be good. Scroll up to line 183ish and you can see the data from each post which can be included here
Throw in a magnificent.txt into the creators folder for whitelisting, or have one in the root folder, next to the bat file, type each thing on a new line. These are all CASE INSENSITIVE
Example content of magnificent.txt


This would mean that in this folder, or everywhere, only files/attachments that contain wip, .psd, or diamond in the filename will get downloaded.
Throw in mediocre.txt into the creators folder for blacklisting in that folder, or next to the .bat for global (like typing extensions to globally ignore them) works the same as whitelisting. Both files can work together

Shit, I fucked up on that upload, here's the fixed version. It would previously get an error if a post had no body, or if there was no root magnificent.txt, hopefully this will fix it
Second reply due to line and character limit.
Shit I implemented:
-Proper json parsing for downloads, should be easier to improve on in the future
-This now means that I can also extract post data easier
-Post data is thrown into a html file with the id of the post as the filename and the data in the post as the body. Delete lines 211 and 212 (the with open(blahblah... and the next line, to stop it doing that. Or just delete the files after they download it's not hard I'm sorry don't make me cryplesesto)
-The gallery thing I mentioned above, so it now puts the post data in the gallery too, though with a lot of creators that file is going to be stupidly big. It wouldn't be that hard to make more that one html file, one per folder, with links to each, but meh I can't really be bothered at the moment
-More verbose downloading? I guess? It tells you why it did/didn't download each file from each post

Shit I broke and didn't fix:
-Less verbose downloading, it now no longer shows file progress when downloading. Downloading itself is like 152 onwards so if someone wants to fix that just do it. I tried but I kept getting 403 unauthorized when trying another download method)
-In progress downloads no longer become .part files, they just half-download and end up corrupted if the download fails. (Just delete these files and it will redownload them next run, no need for new posts)
-Probably a lot more

Take a look at my code, see how I did the JSON parsing. I just converted it to a class, and then read the properties

Small edit for quality of life, didn't realize how annoying the html files are
If you still want them downloaded but don't want them to clutter the root folder, replace on line 214(ish):
if not os.path.exists(Path(creatorPath+"posts/")):

This will put them in a new "posts" folder inside each folder.
For anyone doing this you get indentation errors, make sure any space to the left is actually made up of spaces and not tabs.

Or just use this this updated version

Thank you for sharing. The error popped up saying the "mediocreread" from line 298 is not defined. I'm looking through your code to see what's changed. I can see lot of changes. It might take me little while to understand what's going on. On a side project, I'm starting to understand how can JSON be used. I'm experimenting with it in an independent batch file that work with creator.json I've dumped into certain creator folder. I use it to make HTML file to show text post and load images from disk than online, along with url in text as source. I can see that JSON is better used if trying to extract lot of different types from JSON file.

Hey, sorry about that. I thought I uploaded the fixed version. The problem is it's trying to concatenate the mediocre stuff from each folders file to the "global" mediocre, but if the global mediocre doesn't exist then it can't concatenate each folder to nothing. I've implemented a simple fix for that.


There are few changes I did to your version http://www.mediafire.com/file/6xvlmqgbxjedy8z/yiffout.bat/file

Not much, but the "partial" file type (.part) is actually important because without it you can expect file to be corrupted once you kill CLI while downloading, or whatever will disrupt its download progress, like internet suddenly went off. I've restored it. Another thing is fix global + per creator mediocreread and magnificentread you can see what my fix looks like!

My side project is mostly done, http://www.mediafire.com/file/hzj34i5dbvbhsna/makehtml.bat/file

Drop it into creator folder and launch it to build gallery HTML file(s) from JSON (the batch file will download it). Multiple HTML files will be created as continuation using 256 files interval for browser performance.

Here's a funny issue: Any file types will be taken as image, browser will think non-image files are broken images. I don't think I'll bother to do about it yet.

chrome_2018-11-21_18-00-54.png (26.0KiB, 1656x124) save_alt

Cool to see how you did it.
One small thing you missed though, on line 209, by removing 2 lines and chaning postInfoFilePath you made it so it saves the html files in the root folder again, however I'd made it so it put them in a dedicated posts folder, otherwise for me it lagged the file browser.

I'll take a look at the gallery generator tho, looks usefull

cmd_2018-11-21_18-11-58.png (24.2KiB, 966x430) save_alt

Uh I think there's a mistake on that release, it's reading and writing the config to the same yiff.bat, breaking it on second run.
I didn't touch it so idk how you're supposed to do it but it looks like you added the word "out" in each filename for some reason

cmd_2018-11-21_18-24-41.png (7.9KiB, 663x101) save_alt

And one final thing, the .path concatenation causes issues.
It's cool, I kind of guessed it would be done like that, renaming after the DL, but I didn't get around to trying it.

The issue is, that filepath is a "WindowsPath", and ".part" is a string, python can't concatenate the two with +.
To fix, convert the filepath to string, and then (idk if this is necesarry but eh I did it) back to path.
Replacing it so it looks like
...pen(Path(str(filepath)+".part"), 'wb') as f:...
os.rename(Path(str(filepath)+".part"), filepath)


Sorry, it's really dumb code I made when trying to incorporate with original yiff.bat in same directory and load same variables. It should've been just static path like "yiff.txt", "yiff\\", and "yiff.html" respectively. Ah, well!

It's kind of sad that Python will take variable that is only made of numbers as integers and not able to concatenate together with other variables containing str. It adds confusion to the unaware code editors. Happened to me while I was working on my side project.

Lovely work you're doing. Any update on being able to get the text of a post in .txt? For links and stuff

Isn't >>19344 doing what you want? Unless you want posts and/or especially links to be arranged differently.

>>19356 >>19377
I skimmed too fast, but the same is true for WindowsPath.

explorer_2018-11-22_20-54-11.png (65.7KiB, 436x255) save_alt

Either drop >>19344 into each creators directory and run it or use my fixed edit https://mega.nz/#!ZsIlxSSZ!Q3U6uCEtbSbfdMCjy1l1fVxfNBw4N5Yn8hI__C3I2VQ which saves all posts as a html file inside a posts folder inside each creators folder.


I'm retarded, I was skimming through the posts and somehow missed that. Thanks for the work guys.

Can we have a feature to download shared only?


That is odd choice. Unless you mean to download only files by archive file types which can be done with current version when you add their file extension names in yiff.txt. Why does it has to be shared data only?

Updated yiff.bat to build complete gallery HTML files residing creator folders if "Gallery HTML =" setting is turned on in yiff.txt.

The "yiff.html" at working directory is actually only meant to show the latest pictures from recent download, kind of like daily dose of mine.

Updated party.bat (>>19344) and yiff.bat with commented out codes for the ability to save per-creator data on disk. Remove the "#" sign before "jsonwrite" instances and they'll work. party.bat will look for and work with JSON file first if it really exists. This allows re-compile HTML files from JSON file regardless if yiff.party is down.

This new feature allows to download the whole creator.json to be downloaded to the creator's folder, and allows Party.bat to work with it locally instead of contacting again yiffparty's servers, right?

Two little questions; one, is it neccesary to drop party.bat into every single creator's folder, or is there a way to make it run a single time for all creators?
And second; about Fill = and Shared Files in yiff.bat. Using Fill works correctly to have it download only the new stuff by keeping only the last post's files on the folder, but the shared files behaviour is different. It seems to redownload them every time, instead of stopping at the last. Am I doing something wrong, is it an oversight, or is it expected behaviour?

(same guy than >>19692)
An additional consideration; if an user imports posts of higher tiers that are older than the most recent post; would yiff.party cathegorize them as "newer" even if they have an older date, or as "older", therefore causing yiff.bat to skip them when set to Fill = No?


Yes, the party.bat will look for local JSON file first, then fetch from yiff.party if it doesn't exists. And yeah it's unfortunate that it's for per creator only for now. I'd probably upgrade it to work across creators to become an offline counterpart of yiff.bat that will only create HTML files from JSON file.

The "Shared files =" setting is obsoleted by file extension whitelist. It was the old way to avoid downloading large files which is typically archived file types. The file extension whitelist can also avoid downloading them as well, so... That setting has since been removed in new yiff.bat, please re-download it from same download link in OP.

The code behind "Fill =" setting that will stop downloading further files is actually expecting a third file in a row to exist then it'll stop. In old yiff.bat, patreon data and shared data were isolated and counter will reset for each. I guess you were experiencing the odd behavior with shared data is due to that, also probably because the certain creator only has one or two shared files.

Again, the latest yiff.bat is always in OP. I occasionally do silent fixes too if I find out the problem.

Thanks for the reply.

Not sure if you saw >>19693, but additionally, I'm seeing that it's currently not able to get the names from the Yiff.party server, or that gets the creator's name wrong. Is that on Yiff.party's side, or something you might have changed in the bat?

21277952.otter-dick-suck.png (837.6KiB, 1500x1208) save_alt

Sorry, I was busy with other things today. So to respond >>19693 I think yiff.party captures actual ID from Patreon and will download what is available on Patreon and append ID on them. I can see that it can conveniently used to fill the recently deleted post from yiff.party's post flag report and let the yiff.party's scraper do the job. So I assume the higher tier would mean newer as long as the older ones didn't get deleted. I realized that since the new yiff.bat will merge shared data as continuation after patreon data, so yiff.bat will not check for new shared files when it stopped on new post based on "Fill =" setting. Dunno if that's such big deal if "Fill =" setting can always be turned on. It'd also complicate the code to take care of that with "Fill =" turned off as it did for three in a row existence on disk used to overcome the suddenly stopped on "already downloaded" file because of post + attachment duplication which each actually has same post ID + file. There were double "already downloaded" files in extreme cases so it extended to check if a third file exists on disk in a row to stop.

There are two possible scenarios as to why yiff.bat thinks ID is bad (aside from actually bad ID), first trigger is that the ID wasn't found in https://yiff.party/creators2.json, second, yiff.bat actually captured cloudflare's page instead of actual per-creator JSON file and noticed "" in page source (same as those 404 pages, and JSON file doesn't have that) so it tells you the creator ID is bad. You can tell yiff.bat to skip all creators down to that creator to try again when you comment out all the other creators in yiff.txt then restart CLI.


Oh, yiff.party didn't want to display what was in that "" in my post, it was DOCTYPE html with brackets. Sorry about that.


What is the creator by the way? If the problem is consistent that is.

Oh, also, you can assign name yourself by the way. It can be any name really. ID is sensitive information, a small typo there can lead to another/non-existent creator. Just be sure ID is correct and then append with non-digit character only, after that, next characters can be digit again and w/e.

I ended up getting the name myself manually. The ones I saw thing trouble were Rukis (got wrong name, like cslunarin2 or something like that) and h0rs3 (no name at all, just the id numbers).

Posts downloaded correctly for both anyway.

Added new setting "Log 404 files ="

Updated yiff.bat and party.bat to correctly capture attachment filenames using regex + attachment url for use to build gallery HTMLs to avoid images being displayed as broken, few attachment filenames on yiff.party server are actually broken, so...

Upgraded party.bat to work across creators. Please take it to where yiff.bat is at! Well, technically, it'll look and work with \yiff\ folder. It'll optionally load yiff.bat for global file rejection filters only, and will read sub-directories in \yiff\ as creator list.

Alright, thanks. I'll look into it very soon.

https://yiff.party/creators2.json actually has some creator names under different ID. What gives? I guess there isn't much to do about it other than have admin look into it.


I mean... party.bat will look for yiff.txt for global file rejection filter list, not loading yiff.bat for it.

I want to download "shared only" as some artists like Sakimichan only send their stuff via messages and the only stuff leaked on yiff party is previews...

Improved file rejection filter system in yiff.bat and party.bat. magnificent.txt will override file type whitelist from yiff.txt, making it possible to accept alternative file types like .zip for certain creator.

It should still be possible to download only those by giving magnificent.txt their file extension names.

Updated party.bat to extract links to "3114967.raier.txt", etc and will make patrol.txt for the filenames found on disk compared to your personal filter list.

Updated party.bat and yiff.bat to take file extension names from yiff.txt as blacklist if there's exclamation mark ("!") prepended to each. Doesn't have effect until you remove/comment out all other file extensions. This allows downloading other obscure file types and/or broken filenames.

Yiff.bat no longer has abilities to build complete gallery HTML files, leaving the job to party.bat. Yiff.bat will check if party.bat exists in same directory then save per-creator data "creator.json" on disk ready for party.bat to pick them up. After it's finished, it'll ask you if you want to run party.bat next (press any key to continue) or not (kill CLI to finish).

Guess I'll be forced to rewrite my script after all. Still I am amazed you coded this shit in bash, fucking beta :kek:


Welcome back! And no, it isn't bash, it's batch, Windows thing. Also no one have forced you to rewrite your script. But go ahead, update your script for the neglected OSes. Otherwise, please do tell how can it even recover for the Windows platforms. Let's not talk shit about codes behind mine because it works better than Yiffy-Get frankly. Don't believe me? Try raier, check for duplication and corruption, furthermore, I've made human readable text files for settings'n'stuff and lot of other improvements. If you tried hard enough, your script will probably end up being as good as mine anyway. At least non-Windows users will thank you. <3

dunno if this works fine on WINE
but my w7 VM is ready
also i apologize for not showing up a few weeks ago

I plan to rework the entire downloader to be modular simply put. So it makes adding features more easy, plus the human readability part as well.


Looking forward to it. I think my script is finished for what I want it to do. But it's always good to have alternatives to fit people need. I've seen people want JSON parser and I've looked into it, considered about it, ultimately not included it. My argument is that yiff.party get information wrong sometime (e.g. filename =/= filename in url in https://yiff.party/787448#p3243120) and the piece of correct information still requires regex to extract AFAIK and secondly it's my personal script, so... ??

Yiffy-get the filename handling and stores them in special format that makes it extremely unlikely to get messed up (postid - titlestring - filename as uploaded), it works but it's messy. I want to resolve it somehow but still thinking how.

What does Log 404 files exactly do? Fiddled with it, couldn't really tell a difference between on and off.

It's when you weren't able to download the file. If you can download everything OK then it'll not log anything.


Alright, I've been trying to fix something recently. Trying to download DogBoneArtwork's gallery (2307896), there's a file with a HUGE filename


That will crash yiff.bat immediately, every time. Also, when adding the extension (which in that case es .pe_file_Y3 etc...) to the blacklist makes yiff.bat download everything up to that file (6-7 files) then stop as if there was nothing else under it anymore.

Am I doing something wrong?


The blacklist/whitelist in yiff.txt is global and works differently than mediocre.txt and magnificent.txt.

Yiff.bat will only take off from yiff.txt as file extensions to avoid matches in the filename before the extension name (like PSD in "December.PSD_01.png"). I haven't checked codes for a while so I'm not sure if yiff.bat cannot handle long or weird extension yet, but you should use mediocre.txt for that instead. Add something like "23194231.https" in mediocre.txt in DogBoneArtwork's folder then restart CLI.


Where did you get that picture?

Hi. WTF is this?

Hi. WTF is this?

Say, which version is the latest up to date one? There seems to be a couple different versions linked in the thread.

i also have older versions which are not included here

Which one works best?
Recently went through the trouble of getting an e621 grabber working on linux and that was a real pain. If you've got an up to date linux version that'd be perfect, though I could probably get a windows one working in wine or just use an old windows XP drive I've got.

i use KVM and i never actually tried anything Vbox works too

good to know, you using the one in the OP post then?

>>17154 yiff.bat (main)
>>19344 party.bat (optional add-on along with yiff.bat that comes with whole different set of features)
>>17476 chroming.bat (captures filenames of the mediocre shits you've deleted to mediocre.txt)

They're all on latest

thank you very much.

I'm having trouble using this. Any guide?


Umm... just run the batch file and read what it says?

I haven't ever used python before. Do I just put the .txt file in or is there more to this?


Please change the file extension back to .bat if it's something else. Then you just have to launch it and it'll tell you what to do.

ty. that was the prob. it was .bat.txt so it was a .txt file

add this plz https://yiff.party/bbs/read/12795#22107

How do you download rar files? All i'm getting is jpg and png


Check Yiff.txt again, there are image file types as whitelist. Sorry if it's kind of unexpected after running Yiff.bat several times since its first time.

I checked the txt file below the bat. The rar was blacklisted. Do I just remove from the blacklist and add to the download?

Edit: so i did that, but I only got some rar files, it didn't download them all. Any suggestion?


Blacklist isn't in effect until the whitelist has been wiped out. If you blank out both whitelist and blacklist it'll download any.

I guess you have interrupted download at some point since you said you've only downloaded some and feel that there's more, in that case, turn "Fill =" to yes in yiff.txt and it'll download the missing files past the latest files.

How do I turn "Fill=" to yes?


It's in first line of yiff.txt... change from No to Yes

Sorry lol I didn't notice that. I thought that was a joke line


Oh, it's alright. I was thinking it'll give away a hint how y/n works.

is there a way to check embeds for 404s


"Log 404 files =" to yes in yiff.txt will give you yiff.log file also containing links where 404 files came from. Is that what you mean?

thx m8

Any way to download mega download links?


Party.bat makes a useful file containing every links extracted from posts per creator, you'd just have to open each in browser to download files from outside domains. That's the best my script can do...

dont forget the Megadownloader v1.7
integration is also nice

Removed setting "Fill =". New way to stop (per creator): get the name of the file you want to stop at, create an empty .txt file with same file name.

Added new feature: Normally yiff.bat will ask for ID for the new creator you want to add, but you can just write that creator name with "lookup." prepended and save (per line) to yiff.txt and yiff.bat will look for ID for this new name. Say, if you know "raier" is on Patreon (and is on yiff.party server) you can write "lookup.raier" to yiff.txt and it'll turn into "3114967.raier".

What does this do differently to yiff.party then?


What are you talking about?

What this whole thread is about... duh...



Could use an update. Looks like older links are hosted on dold now.

Any ideas on what is making this happen???
New ID! I'll check creators list from yiff.party . . .
Traceback (most recent call last):
File "H:\FF Downloads\yiff.bat", line 327, in <module>
File "H:\FF Downloads\yiff.bat", line 137, in remotecreatorlist
creatorlist = json.loads(creatorread)
File "C:\Users\*REDACTED*\AppData\Local\Programs\Python\Python37-32\lib\json\__init__.py", line 348, in loads
return _default_decoder.decode(s)
File "C:\Users\*REDACTED*\AppData\Local\Programs\Python\Python37-32\lib\json\decoder.py", line 337, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "C:\Users\*REDACTED*\AppData\Local\Programs\Python\Python37-32\lib\json\decoder.py", line 355, in raw_decode
raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
Restart CLI? Press any key to continue . . .

2486281_DiDi_cutie_fox.jpg (107.4KiB, 612x792) save_alt

Updated yiff.bat to download images from new urls


Looks like https://yiff.party/creators2.json just went out of existence. Might it have been moved (anyone have idea where it went)? Temp fix is to write down the creator name after ID. Supposedly you have ID 4979402 which happens to be haychel as its creator name you write like this "4979402.haychel" or "4979402.whatever" and it'll work.

Updated yiff.bat with a new url where the creator list has gone to.

one thing i have noticed. is that yiff.bet doesnt grab the high res photos. it grabs some sorta other junk. odd


Example? Is it different than downloading them yourself?

New version seems to download ender files that stops scans for other files. Is this intentional? Example 3659577 downloads an ender file after scanning.

I love the program! Just needs the ability to opt out of downloading the "_low" copies of files!

Updated yiff.bat adding more dialogs for new users and not start download suddenly after updating changes to new yiff.txt, giving users chance to check/edit there before downloading with their personalized filters and settings.


You're right, a new version does that. It's a new feature! Ender file will be there (not a downloaded file technically speaking...) after successful download of every file from creator. It'll move once you download more new files from creator. It'll not be there (or not moving) if there's an error downloading a file. It's smarter than "Fill =" setting, willing to try again only on some creators with the error downloading files and the interrupted downloads (usually by killing CLI while downloading).

Now, if you're going to download a lot of things from yiff.party, it should be okay to interrupt and resume like "Fill = Yes" did in previous versions, then conserve storage performance a bit like "Fill = No" did.


Put "_low" in mediocre.txt in creator folder that does that.

New version is giving the files the ID of the artist in the filename instead of the ID of the file itself, how can I change this? This is making it so files aren't ordered as they were created, like they previously were.

Disregard, I was running a version from February, thought it updated automatically. Downloaded latest version, it's setting the filename correctly.

https://yiff.party/668242 LayerIndustries has 30 missing posts

Couldn't find this in thread, but I'm grabbing stuff from a creator, and along with the actual content, there are a pile of cropped "preview" images. Is there a way to exclude these after deleting them, so the script doesn't redownload?


If there's a consistent term in file names of these inferior images, then put it in mediocre.txt in creator folder and yiff.bat will not download them again. If they're random in file names then chroming.bat from >>17476 should help before having to constantly copying these file names to mediocre.txt yourself.

chroming.bat worked, thanks!


My pleasure 🦦

Updated yiff.bat and party.bat to load global rejection filter list along with magnificent.txt if there's "yiff.txt" written in it. Say, you want all files but archive file types from all creators, you'd have

> !.zip
> !.rar
> !.7z

in yiff.txt. But if there's one creator you DO want archive files from, you'd put in

> .zip
> .rar
> .7z

in magnificent.txt in creator folder. But then that will reject literally every other file types for that creator. By adding

> yiff.txt

in magnificent.txt meaning you just wanted more things from that creator. You can still blacklist certain archive files by adding them to mediocre.txt. There are lot of possibilities and a check for "yiff.txt" is bit unusual but it's there for convenience.

party.bat was updated with a hidden feature, edit the batch file and look for "expensive = ". What it does is to scan and log file names of corrupted images to patrol.txt. It will take a while on slower devices.

Lot of changes were made to yiff.bat and party.bat for small performance boost and covering some other shortcomings. Now handling of missing local files because of older posts that got imported later (by importer with higher tier post access).

Please report back issues.

look up yiff-scraper on github instead

superior yet can't download anything besides jpegs


Right, it doesn't yet, the predefined settings from yiff.txt tells yiff.bat to just download pictures from your favorite creators and nothing else. Yiff.bat is meant to download thousands of pictures and the new ones at your convenience. You should edit the settings in yiff.txt to allow yiff.bat to download other file types.


Yiff.bat is not a scraper.

edited them, still no result
deleted the enderfiles and all that, still only pictures, nothing else.


You need to add or delete lines of file extension names in yiff.txt. There's also lines of file extension names after exclamation marks, they're blacklist version that don't have effect until you blank out all the normal file extension names. If you blank out all then it'll download any.

You can literally do this shit in bash with a oneliner, a few more for interactiveness.


A crazy long one you mean? Love some example. Can you?

how do you get it do download by the date?


It seems to download from newest to oldest as the fetched file list contains post ID in descended order and that descended ID is correlated to older post. I don't think there's a way to download file with its creation date, if that's the other you meant.

something like that. i downloaded some things, but there are out of order post wise

It's the way Patreon assigned IDs to their file (technically part of url before the actual filename of a file for now), yiff.party followed suit then yiff.bat in the end. While technically there wasn't ID in filename itself, yiff.bat appended them to filename to work as collision resistance. They can also give you some sense of chronological order. Same ID would mean they're posted at the same time especially from a post of multiple files. There are actually secondary IDs, I think they meant to display file in exact order the creator has uploaded to the post of multiple files. Not sure, and I don't see reason to use it yet, apparently more harm than good, there's sometime a duplication between main file and in one of secondary files, and it's great that yiff.bat happened to not download the duplication because their secondary ID weren't even put into comparison yet. Again, the ID you find in filename coming from yiff.bat is just about collision resistance, then it's up to you to use it as chronological order.

You shouldn't expect ID to order (descended or ascended) exactly as the file's creation date, the file's creation date is created by your OS, and there's no reliable way to fetch original date of a file from the internet, it could be fucked over by a web server, etc, the importer of higher tier would import the older post at later time meaning you'd only get "older" files with newer creation date above other "newer" files.

Is there a way to get this thing to run in a different location / drive than on the default C drive? My python skills are weak AF.

Thanks in advance!


Yiff.bat will download files to a folder of same name in current directory (meaning where ever yiff.bat is at and whatever it's named as)

So if you have yiff.bat as Z:\English\Motherfucker.bat then it'll download artpieces to Z:\English\Motherfucker\

Added a new setting "Show mediocre ="

Sageman 10/24/18(Wed)13:25:53 No.17328
reason OP's profile pic hey w7 guy plz upload locky

w7 890 10/24/18(Wed)13:31:29 No.17329
>>17326 lick my ass bitch
>>17328 the quick and dirty method no longer works no can do sorry :[ just call the admin

shitbot named w7 v8.9-0 10/24/18(Wed)13:41:06 No.17333
>>17254 >>17291 >>17303 u guys mad
https://www.virustotal.com/#/file/b41ffad900c94872ee6a3d1b099e48a984fceeba1968ba9dd5b4e572579ecc27/detection eat the damn file its safe
>>17329 after that plzkickmyshinymetalazz
WTF.jpg.py has crashed

Orgymania 10/24/18(Wed)13:42:39 No.17334
>>17333 >>17329 streakfagging but i still forgive u

Updated yiff.bat with less third party dependencies (now there are zero). Uses module named "urllib" in placement of "requests" and murdered proxies support. The "Proxy =" setting in yiff.txt is now useless.

I updated to the 6/25 version, but when I run it it just keeps saying OFFLINE. I tried having it download a different artist in case it was just a problem with that one, but it still had the same problem.


It's overkill error message for all error related to trying to fetch creator-related files off from yiff.party (grabbing per-creator data and/or checking name/id for the new creators), I understand that it can't be diagnosed properly. It has to be connection problem generally or invalid connection configuration (the proxy feature was removed in this version). If you edit and remove the "try:" and "except:" from yiff.bat you will see traceback errors that may give you hint what really went wrong, it could just as well be my script is being retarded somehow.

if "" in REMOTEFILESdec:
NameError: name 'REMOTEFILESdec' is not defined


You must have removed "REMOTEFILESdec =" line along with "try:" and "except:" by accident. Try again?

that's because the "REMOTEFILESdec ="" is in the try, so if I get rid of it, it gets rid of that too.
I know it's this chunk that's throwing the error:
REMOTEFILES = partysession('https://yiff.party/' + CREATOR_ID + '.json').read()
REMOTEFILESdec = REMOTEFILES.decode('utf-8')
print("\n OFFLINE")
if I remove the whole thing, I get the "not defined" error I mentioned earlier, and if I comment out just the try and except lines, it complains about an unexpected indent. sorry I'm not super code-savvy, I'm working off a semester each of BASIC, c++, and java from my community college nearly a decade ago, so I don't know a whole lot

You should give us the ability to specify the python path in the .txt file so whenever you update we don't have to change it again.


The "try" and "except" is exception handing sort of like "if" and "else" for whenever error comes up. The offline message is coming from "except" because of an error in "try". You need to remove only the "try:" then whole "except:" thing (and fix indentations) so there's no if-else and then you can see the error that exception handling didn't want to show that to you. No worries, you'll get it soon enough.

I can re-up old version if you need it.


Python is one that's reading .txt, so python path in there would be useless. Though if I let batch read there too then it should be possible. What did I change whenever I update?


Added a new setting "Python =" then a hidden setting "offlinetraceback =" (inside yiff.bat).

>>36704 ah ok that makes sense. I also wasn't aware python cared about whitespace, interesting. I tried the 6/25 version and got:
Traceback (most recent call last):
File "D:\BESC\yiff.party\yiff.bat", line 470, in <module>
REMOTEFILES = partysession('https://yiff.party/' + CREATOR_ID + '.json').read()
File "C:\Users\(name)\AppData\Local\Programs\Python\Python37-32\lib\http\client.py", line 460, in read
s = self._safe_read(self.length)
File "C:\Users\(name)\AppData\Local\Programs\Python\Python37-32\lib\http\client.py", line 612, in _safe_read
raise IncompleteRead(b''.join(s), amt)
http.client.IncompleteRead: IncompleteRead(86542 bytes read, 66226 more expected)

and setting the offlinetraceback to true in the new version gave me more or less the same error with a couple different numbers:
Traceback (most recent call last):
File "D:\BESC\yiff.party\yiff.bat", line 481, in <module>
REMOTEFILES = partysession('https://yiff.party/' + CREATOR_ID + '.json').read()
File "C:\Users\(name)\AppData\Local\Programs\Python\Python37-32\lib\http\client.py", line 460, in read
s = self._safe_read(self.length)
File "C:\Users\(name)\AppData\Local\Programs\Python\Python37-32\lib\http\client.py", line 612, in _safe_read
raise IncompleteRead(b''.join(s), amt)
http.client.IncompleteRead: IncompleteRead(86826 bytes read, 65942 more expected)
I tried updating to python 3.7.3, but it still throws the error

>Please fix path to Python in "Python = " setting in D:\yiff.txt
>Try again!

in my settings: Python = "C:\Python37"

"Python = C:\" would be C:\Python37\python.exe

Quotation marks not needed even if there's spaces in path. I've uploaded new version imminently, quotation marks was from older version if it wasn't you that added it.

I've seen that error before with proxy and I've killed proxy because of it. Looks like I need work on IncompleteRead issue...

floo.png (4.0KiB, 888x50) save_alt

Sorry, my brain was sort of half-gone when I made that post. Thing is I did try a lot of different combinations (double quotes, single quotes, back quotes, no quotes, folder alone or directly the .exe) and they all lead to the .bat file telling me to fix the path.

3 hours left

"Python = C:\" for C:\Python37\python.exe

Oh fuck, of course, what the hell. I was confident I tried that too. Thanks

>Looks like I need work on IncompleteRead issue...
does that mean there's nothing I can do on my end in the meantime?

Haven't read the entire thread so sorry if this has been reported already but this fails to download images that are embedded in the text portion of posts, see: https://yiff.party/patreon/3977850

Also while I'm at it I think it would be kinda nice if the title of the window/background color of the console changed when it's over, or if it just closed itself. IMO

First time user, I get
any ideas?

Guess I'll upload alternative yiff.bat with third party dependencies. No worries, the batch side (not running Python code yet) will fetch these for you. "yiff (requests)" is its name but hardcoded as "yiff" to load yiff.bat's folder and txt.


Try new version (link in OP), the requests module (in old and alternative version) get that error sometime while vanilla get different error, try and see which work better for you. I have no idea as I don't work on urllib module yet. If I do find out why then I'll update yiff.bat. Anyone knowledgeable with this can help.

It'll change color on end of Python (CLI will stay active as batch)


yiff.bat doesn't look at download links from outside domains. party.bat can help you with that in some way (it compiles line of links detected from post to text file per creator), you'd just have to open each in your browser and download from them. Some may not be just a link to download, and that only you can access to the downloads behind captcha and other weird download methods such as mega.nz that most script can't anyway.

I think on line 590
if exist "Scripts\pip.exe"
should be
if exist "%Python%Scripts\pip.exe"

Changing it to that made pip upgrade itself but then

[part1] of the pastebin:

after pressing a key

[part2] of the pastebin

Have you been renaming \Python37\ into something else? Check for the remainders in your code. The first "The system cannot find the path specified." is probably coming from cd, you need to get cd to work.

Updated yiff.bat with "IncompleteRead" fix attempt after I read https://github.com/urllib3/urllib3/issues/1516#issuecomment-469957705

Reintroducing "Proxy =" setting

oops yeah, it's on C:\tools\python3\, forgot to change the cd command. Downloaded your latest version from OP and still

>Reading yiff.txt . . .
> New ID! I'll check creators list from yiff.party . . .
>Restart CLI? Press any key to continue . . .


If it happened too instant then there's probably something in my script or your computer, otherwise it has to be yiff.party server.

You can try turn on the hidden setting "offlinetraceback =" to see what's up or try yiff (requests).bat I've uploaded recently.

>You can try turn on the hidden setting "offlinetraceback =" to see what's up or try yiff (requests).bat I've uploaded recently.
Made offlinetraceback = "true" on line 24 on the bat, result


Yeah, I don't know who's the real culprit of this, it's coming from urllib module the vanilla and requests module depend on. It seems like the fix attempt has failed... There are slightly different error in requests for some reason, you can try that, or maybe it's all on yiff.party that you gotta wait for it to go away.

Updated yiff.bat with "(R)etry?" (press R to retry) after every offline error.

Untitled.png (42.9KiB, 1482x845) save_alt

I got a lot of different errors this time after trying the (requests) version

Look at the posts on that page, the files are all hosted on yiff.party

Thought of another minor improvement; links to the YP page in the generated html document. Thanks

Oh, yeah, updated yiff.bat with a fix for patreon_inline pictures. You probably need to delete the ender file and let the new version rebuild a new one. There are two other fixes, since I've dropped requests and use urllib directly, there was problem with unicode urls and the # character, now they'll be url-encode before urllib.

Now there are no more regex codes! They're all replaced with native python codes.

updated to the 7/7 build and still no dice. I tried a dozen different creators, and one of them worked, but none of the others did, they all threw errors similar to these. still not sure what's going on or why the one creator seemed to work when the rest won't


urllib is pretty sensitive to bad server or connection. I'll explore way to resume the download so that breaking connection doesn't kill download progress. I learned that not every server support resuming downloads but I hope yiff.party is it.

I've written my own download-script based on wget, and the last few weeks has been horrible. Basically any download is retried/resumes multiple times before a complete file is downloaded. Dunno if the issue is with cloudflare or yiff.party though...

That sounds great, please share.

Updated yiff.bat with ability to resume download on retry and show 0 / 0 KB progress for fetching data (rather than downloading to disk).

Bad news? The resume download is useless. The resume download code is there in "offline" retry, sure, but for some reason yiff.party server will not let resume download on the creator data, it was exactly where the retry will come in if there's an error. Then somehow yiff.party allows resuming download on the files, but yiff.bat doesn't provide retry on error for them, they'll be skipped.

Now the resume download has some use. yiff.bat can resume on the interrupted downloads via their ".part" files.

FileNotFoundError: [Errno 2] No such file or directory: 'yiff\\7874509.cutesexyrobutts\\27418061.https_api-da.wixmp.com__api_download_filedownloadTokeneyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ1cm46YXBwOjdlMGQxODg5ODIyNjQzNzNhNWYwZDQxNWVhMGQyNmUwIiwiaXNzIjoidXJuOmFwcDo3ZTBkMTg4OTgyMjY0MzczYTVmMGQ0MTVlYTBkMjZlMCIsImV4cCI6MTU1OTc5NDQ5MywiaWF0I.part'

I'm guessing the problem here is the filename is way, way too big. I tried throwing in a file with that name just so yiff.bat can skip over trying to download it but Windows won't even allow me to do that.

This is the file's URL: https://yiff.party/patreon_data/7874509/27418061/https_api-da.wixmp.com__api_download_filedownloadTokeneyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ1cm46YXBwOjdlMGQxODg5ODIyNjQzNzNhNWYwZDQxNWVhMGQyNmUwIiwiaXNzIjoidXJuOmFwcDo3ZTBkMTg4OTgyMjY0MzczYTVmMGQ0MTVlYTBkMjZlMCIsImV4cCI6MTU1OTc5NDQ5MywiaWF0I

As you can tell there is no extension but it's a PNG image.


Thanks, updated yiff.bat to truncate long filenames. You'll need to add proper file extension yourself.

New hidden setting "mathhell =" to have fun math screensaver instead of prompting you to press R to retry on offline error. yiff.bat will be in loop until success. The number used in math question is actually number of failed retries.

Been loving this project, makes things so much easier. Recently though I've noticed that attachments don't get downloaded for at least some artists. I thought it was an issue with Patreon changing things and the importer missing them, but no, if you go to the artist's profile the files are there, just not getting downloaded (https://yiff.party/patreon/106008 is an example of one that doesn't download for me). I've tried to set yiff.bat to download everything I can, ignoring any blacklisting that could be going on, but still nada.

Anyone else run into this? Any ideas?

To be clearer, it seems to be situations where there are multiple files in the "Media" category (rather than Attachments) that files go missing.


https://yiff.party/106008.json is what yiff.bat will fetch to see the file list for that creator. If you also look there, there are also missing media files. I wonder if there's another JSON yiff.bat should look into... I'll update once I know what it's supposed to be. Thanks for pointing that out.

Updated yiff.bat to use HTML files instead. You should delete the ender files then yiff.bat will look for the missing files and download them.

Thanks for the quick update, seems to be working wonders. Got almost 200 new files with that.

29282663.2019_08_BR-02_CloudBomb3r_NSFW.jpg (384.6KiB, 1181x1417) save_alt

Updated yiff.bat with new simultaneous download capabilities, the downloads will complete quickly! Lot of code changes so I hope nothing's frell up.

EDWOIFJVAAMXXIB.jpg (140.0KiB, 1065x1600) save_alt

I found your downloader in early 2019 and came back looking for an up to date (and working) downloader to find you're still around and it's even better. I love you, have some cub.

I've cleaned up several stupid/useless codes in yiff.bat I made during implementing simultaneous downloads... the last one had to litter the .old files in \yiff\ folder but it will not any more. Clean them up yourself.


looks like i missed alot of versions oh well
also will this work in wine and winXP


While I specifically said Windows PC with Python 3 install, there's no guarantee it'll work elsewhere but you can try. I'd imagine it'll take just small changes to work natively on other OS too.

yiff.bat on Terminal.png (358.2KiB, 885x421) save_alt

Never mind, updated yiff.bat to work better cross-platform. It being a batch file actually doesn't mean jack to Python (with argument -x) so there's your chance.

Keep getting stuck with it saying setting up cookies followed by OFFLINE. Any ideas? Updated to latest .bat.

I noticed that as well. This has to do with cookies... the actual browser also fails to load (I got CloudFlare's "retry for live version" page) after cookies are deleted. yiff.bat will be able to get through after retries. I suppose I could let it save cookies locally so it can be reused later if the issue keeps up.

You make a good point. Used a web browser I hadn't to view yiff.party, it failed, retried a live version and loaded immediately. Gonna try nuking my cookies now.

Nuked my cookies in Chrome, still fails with initialising cookies. When I tried to load yiff.party it gave the CloudFlare's retry for live version which immediately succeeded when I clicked retry.

Yiff.bat will use its own cookies from yiff.party, doesn't grab anything from browser, but you'd see it fail at launch as it doesn't save the cookies to get past of this peculiar issue.

Updated yiff.bat with a way of saving cookies for next launch. The issue is consistent and annoying.

003_patreon_reward..png (925.1KiB, 1200x800) save_alt

Last updated 8 months ago
Breakdown of missing post tiers:
azzai has 154 missing posts
$1.00 - 148 posts $6.00 - 6 posts

Last update 2months ago
tayarinne has 1145 missing posts
$1.00 - 308 posts $3.00 - 449 posts $5.00 - 346 posts $10.00 - 10 posts $15.00 - 32 posts

File is belong Azzai
break link over "lick" draw over this artist
Aerofishtashka could be add?

Thank you again <3

Updated yiff.bat for better parallel downloading and removed setting "Log 404 files =". yiff.party has pagination that broke something and admin isn't going to fix the flagging system so the .log file "Log 404 files =" used to make became really useless now. Its removal has helped me clean up codes too. Again I hope nothing's frell up.

>>44082 Wallpaper pwease imma use it for my winpe
>>44393 spamfag (atleast i didnt say spergfag)

CaptureYP.PNG (650.6KiB, 1440x900) save_alt

the pic

28733835.2019_07_BR-03_Otterbutter.jpg (414.1KiB, 1181x1417) save_alt


>>45827 doublethx haha lol

just curious who here love otters

yiff CLI.png (54.1KiB, 1766x820) save_alt

Updated yiff.bat for better CLI color as I found the way to pick the exact color I want. It's funny, Windows 10 wanted to make CLI color easy to read but it has failed to take monochromatic color into consideration. My PC has the custom CLI color for obvious reason but I want to make sure it will look same to everyone.

Just downloaded the latest version, and now it doesn't find Python anymore. Using the same path as I've always had doesn't work (still works with an older version of the batch), and I haven't had any luck figuring out an alternative that would work.

Ah, removed yiff.txt and checked to see what it says, it's looking for python 3.8, which I don't think is mentioned anywhere in this discussion. Going to install that and have another go.

OK yup, that fixed it. So if anyone else has issues running the latest version of the batch file, install Python 3.8.0.

Yes, you're right, yiff.bat was updated to work with Python 3.8 now. I update the CLI error message a little bit to make it show Python version.

Renamed party.bat (>>19344) to more.bat and cleaned up cum stain . . . (codes).

> Wanna yiff more?

>>46485 Yes please also why not rename it to m0ar.bat
>>45827 will repost my winPE with wallpaper soon

Updated yiff.bat with fix for some files with "#" in the filename failed to download.

Here's what happened: urls must be percent-encoded before downloading. The "#" will be turned into "%23" manually as some file names do contain it, then it'll not be mistaken for an url parameter. But during url splitting to encode some string to make them "url friendly" then unsplit, it only happens on string before # and not after it. No wonder some failed to download because the string after # (eventually %23) are not encoded yet.

imma say something about the script. It more or less works as expected, except in a previous version at least, it would randomly just stop downloading files, without notifying the user why.

also, would it be possible for the script to parse the posts for URLs for links to MEGA, dropbox, GDrive, etc, and output them to a text file? maybe with the post name?

Aaaaand it crashes if it hits a colon.

This is a windows problem. The only fix is to have the script intercept this, and rename it the file.


I think the error will always be same, they'll be errored out sometime for various reasons. At least that the incomplete files will always be resumed, yiff.bat supports resuming interrupted downloads. The broken files on server is up to server owner to fix it. The only progress that is going to reset is when it's fetching new data from creator then interrupted.


I have a separate script for that, it's now called more.bat (>>19344) >>37231 will tell you about it.


What kind of file system are you on, out of curiosity? Thanks

Oh, yes, NTFS hates colon characters. Hard to believe that some files will still have illegal characters in, they must be coming from user of different system or renamed post-upload.

Can you tell what creator that has it?

Sorry, I was sure it was also file system dependent but guess not.

Michiyoshi. Whenever it reaches a few files it complains. Namely, most of their attached files.

NTFS, by the way.

I'll try move.bat when I get home.

The colons will be turned into modifier letter colons before saving on disk. Michiyoshi was a fun subject to my experiment ^_^

I've still noticed it sometimes stops for no real reason. It's incredibly annoying, especially since i have a decent amount of creators in the list. That, along with having to manually reconfirm a retry.


Oh, you mean that offline and retry thing? It was annoying for sure, yiff.party's connection was terrible from time to time. The traceback message isn't going to say much and it will deadlock the CLI. "OFFLINE" is blanket term for any and all kind of connection problems between your computer and yiff.party and will ask you to retry, it's elegant, and the successfully fetched data per creator will stay until you kill CLI. Keep hitting R should get it through. There is the hidden setting "mathhell =" in batch file that can put it into loop until success, but it seems there was slight memory leak in the code so your computer may not like it running for overnight (that is if the connection keeps failing).

It's not the connection dropping. I've kinda just made an AHK script to automatically press R every few seconds.

It's just that it'll be running then nothing. No "offline" message, just the last file that got downloaded, and then nothing else.


Oh, yeah, just need to delete the ender file then it'll look missing files to download again, and if they're already on disk, appears completed but corrupted then it's server's fault to leave them like that.

I guess.
"del /S *.ender" works well for that

Updated yiff.bat with return of logging dead links albeit now part of gallery HTML.

>using winblows
get linux dude its free (on a VM of course)

gimmie this version plz
also can you post old versions on guthub

Link to latest version is in OP like usual. I don't have any old versions as I don't save them... no point with saving old ones.

version control anyone?

30302975.2019_09_BR-03_Vanceton_NSFW.jpg (483.3KiB, 1181x1417) save_alt

Added new setting "Patreon cookie ="

This is big update - if you know how to use yiff.party's importer then you can do it! Pledge anyone on patreon then feed yiff.bat your Patreon cookie to download the missing/dead files through Patreon site!

Browser identity (i.e. user agent) and download speed is questionable though. Probably best not use yiff.bat for Patreon if you're paranoid about what will Patreon think of it.

Added new setting "Yiff.party =" whether should yiff.bat download files from yiff.party or not. That way yiff.bat can turn into Patreon downloader no more.

perfect now we can upload whole patreon stuff in openload (i mean alliance4creativity)

Can I get instructions in plain english?


The CLI is short and clear. You just have to run the batch file, it'll tell you what to do next.

can we have an option to download patreon pages by themselves instead of searching pledges? it would be useful for downloading from patreon pages with lots of free content


There is a hidden setting that will grab file lists from all favorite creators on Patreon. I added it to grab new files from the creators I stopped pledging.

can someone explain to a retard like me what this is?

Alright, I have officially found the limit of this tool.
After seemingly 128 creators added the tool just takes absolutely forever, constantly stopping from working, and generally being a pain in the ass to use.


I recommend 64-bit Python. Yiff.bat holds file list in memory for all the creators but even then I doubt memory would be skyrocketed, still worth a try. I don't think I have placed such a limit somewhere in there.

For a quick isolation of whatever went wrong (especially for troubleshooting) I usually reduce/replace creator list then restore via undo history of the running text editor. However for a permanent isolation, a separate creator list in different folder & text file will work better. I mean it can be done. yiff.bat can be in different name (e.g. "patreon.bat") and there'll be new text file and folder associate to it, it can have different creator list and settings.

where is it? i looked and it isn't standing out


Hidden settings aren't meant to stand out ;) there are True/False variables inside batch file for silly/debugging purpose, "favoriteispledged =" is the one you're looking for

Already using Python 3.7.4 64bit.
Will maybe try removing a few or something

But at 128 entries, it hard stops for at least a few seconds/minutes

Oh, I think you ran into thread deadlock. Bad code during threading will deadlock the CLI rather than stopping CLI and it would seem to run fine but taking forever to finish, it was waiting for all threads to finish but at least one was killed. There are codes only for Python 3.8+

can we scan posts for dropbox/mega links and download them?


Could someone add an option to download posts in dated folders to separate the content downloaded?

by date downloaded or by date uploaded?

By the Date Uploaded from Patreon (the date on the posts on Yiff).

Updated yiff.bat to save timestamps in ender file (only work for files on Patreon site for now), it'll know which file may be edited on server, delete/rename all the associated local file(s) or the ender file to dismiss.

Write "end" in yiff.txt will cut off list of favorite creators for convenient debugging with the above creators.

Yiff.party is very unstable right now ..... OFFLINE (R)etry? Oh, please, (A)lways!

>delete/rename all the associated local file(s)
how do i pick between the two

Updated for Yiff.party's new image server domain

It now as well saves yiff.party's timestamps to ender file. You'll get lot of "Edited on server" CLI messages, delete all the ender files dismiss them all. Things has become interesting with timestamp thing when downloading stuff from yiff.party first and then Patreon, there'll be updated post probably with new files or edited files that yiff.party isn't going to have.


What do you mean?

incase some badness happens and the program decides to delete everything, i want to disable that


Oh, no, yiff.bat can't do either, I mean you must do that if you don't want that message again.


Yiff.bash when?

you need Python and argument -x to open it. Windows just have extra benefits from the batch side.


Example in yiff.txt:
> 9325459.vitrex
> 5238280.tsaiwolf
> Fantia
> 4245.ばっちゃ屋

> Fantia
> 4245.ばっちゃ屋
> Patreon
> 9325459.vitrex
> 5238280.tsaiwolf

Screenshot (4).png (501.9KiB, 1017x543) save_alt

i've been getting this error using more.bat, any idea why?

I updated more.bat now that it won't encode anything, the unicode characters will display as question (?) marks, exactly what JSONs have now on yiff.party, they used to have unicode escapes that I'd encode, but now they have neither utf-8 or utf-8 escapes but instead displaying ? marks. Not good for non-English speakers. JSON is starting to cripple apart.

thanks man, wish i could do the shit you do

Please add .replace(u"\u2028","") to the list of string methods for the creatorread variables in yp_fantia_filelist and yp_patreon_filelist. This is a unicode character known as the line separator, and it apparently counts for the purposes of the splitlines method. It is used in Japan (and probably other Asian countries) and can sometimes be found in their posts.

Thanks for sharing! What kind of creator that do that?

2020-01-22_11-27-14.png (31.2KiB, 1331x512) save_alt

There's some error on the latest version when I comment out all the whitelist
Python 3.8.1

I recalled that problem and I've shipped a silent fix a while ago for that, are you on the latest version?

Nvm, I figured out what went wrong, updated.