Home

Anonymous Sean

ffdown - A simple fan fiction downloader

I noticed that it was hard to download entire fan works from certain hosting sites, such as fanfiction.net and adultfanfiction.net.

Therefore, because I wanted to get a better understanding of python, I built two basic downloaders, one for each hosting site.

The programs are free for anyone to use or modify. I would humbly ask that, if you do integrate this code into another project, you let me know (I'd love to know that someone found this useful). I'll say now that I'm not a programmer, so the code isn't necessarily clean, but the code is mostly commented, so it should be clear what everything does.

Both downloaders can download all chapters of a work as a single html file, then optionally add metadata, a table of contents, and chapter headers.

Mac and Windows Users:

There are now binary/gui versions available for Mac and Windows.

If you would prefer to use a graphical interface, or do not want to resolve dependancies yourself, please download either the FFDown-MacBinary or FFDown-Windows package from the files section. Both programs will work with both FF and AFF, and should have all the features of the command line version.

Windows Users:

If you are using FFDown on Windows, you may have to install Microsoft's Visual C++ Package.
In the event the program does not work for you, please download and install this:
http://www.microsoft.com/downloads/en/details.aspx?FamilyID=9b2da534-3e03-4391-8a4d-074b9f2bc1bf&displaylang=e

Known Issues:

This should have been resolved in r016, but just in case it is still a problem for some users:
The html files are encoded in UTF-8. This may cause some elements on the page to be
incorrectly displayed. If you see strange characters in the downloaded story, try changing
your web browser's text encoding to UTF-8 (in Firefox, Safari, and Chrome, this is in the View menu).

Source Requirements - Does not apply if you are running FFDown-Windows or FFDown-MacBinary.

Both scripts require python 2.x - THIS SCRIPT IS NOT COMPATABLE WITH PYTHON 3.
Python comes preinstalled on Mac and Linux systems. Windows users can download python from here: http://python.org/download/

You will also need a copy of beautiful soup, which is an html parser for python.
If you downloaded this as a package (.tar.gz or .zip from the files section of the website), this is already included.
For reference, Beautiful Soup is available here: http://www.crummy.com/software/BeautifulSoup

Optional: The GUI is written in PyQt, so you will need to install PyQt if you want to run the interface.

Before you start - Applies to the source version AFF only

AFF requires users declare their name and age before they enter the site. This is done automatically in AFFDown's main method. However, in the interest of respecting the site's policies, I would ask that
each user modify the birthday/name line:
post = {'cmbmonth':'1', 'cmbday':'1', 'cmbyear':'1990', 'cmbname':'anon'}
Where each item is your your birth month, day, year, and signing name.

Source Basic Usage

python (A)FFDown.py (--noTOC) (--noHeaders) (--noTags) url (outfile)

If you don't specify an output file, it will default to output.html

Changelog

10-14-2011 (no code changes)
Switched to git, project now also hosted on github:
https://github.com/szim90/FFDown

12-02-2010 (r020)
Updated GUI so .html is appended to filename automatically. Also cleaned up
readme files and fixed some spelling errors (closed ticket 1 - thanks to Aaron Davies for reporting the problem)

11-30-2010 (r016)
Corrected problem that caused oneshots from FF.net to download incorrectly.
Also resolved HTML encoding issues.

11-11-2010
Added Mac and Windows Binaries

11-09-2010
Updated licence information and fixed a bug that prevented FFDown from working with some stories.

Support/Bugs

If you find that something doesn't work, please submit a ticket or post about it in the discussion section.
Likewise, if you have an idea on how to improve the project, feel free to submit patches/improvements/etc.