Slurp down fanfics, clean them up a bit and save them on your computer.

Get it from CNET!

Basic Usage

  1. Before you do anything else, set up the preferences. It will not function properly without the location and template set.

  2. Type or paste the story ID into the story ID box and click fetch. The title, author, and number of chapters will be shown for your reference.

  3. Enter the chapters you wish to download into the box. "1, 2, 3", "1, 5-10, 27-32", and "1-150" are all valid entries (provided of course that there are that many chapters). If you leave this box blank, all chapters will be downloaded. Click Fetch.

  4. By default, the fic title will be used as the directory name, but you may change it to any valid directory name. The program will warn you if you select an invalid name, or a directory name that is already in use.

  5. Set any advanced options you may wish to set (see below for details).

  6. Click 'Save'. It's that easy.

If You Run Into Problems

  1. Please ensure that the site is operating and that you can access the story and chapter in question in your browser.

  2. Please ensure that you have the most up to date version of the software. Updates will be released fairly often as bugs are discovered and fixed. Compare the version number listed in the program with the latest version number displayed at the site.

  3. If the chapter you are requesting is part of a very recent update of the fic, try waiting a few hours. It often takes time for to completely update their records, and this program obtains the number of chapters from the information in the first chapter page.

Advanced Options

Completed / Oneshot
Check this box to indicate that the story has been completed. This will use the "last.html" template for the final chapter. This option is only enabled if you are downloading at least the most recent chapter. (Eg., if you are only downloading chapters 1-5 of a 10 chapter story, this option is disabled, since it wouldn't do anything anyway.) Alternatively, if the story only has one chapter, this option changes to "Oneshot" and indicates that the "oneshot.html" template should be used.

Override Encoding
If you don't know what Unicode, UTF-8, and Latin-1 are, go read this first. FFNet claims that its stories are in the UTF-8 encoding, and most of them are. But some of them aren't. The De-FFNet-izer automatically tries UTF-8 and Latin-1 in that order, before simply brute-forcing things into UTF-8. However, if you have a story that uses neither of these encodings, figure out which one (The "View -> Encoding" menu in your web browser should be helpful here.) and specify it in this box. Allowable encodings are those listed here.


Location to Save
This should be an actual location on your hard drive. It may be possible to trick the program into allowing a location that doesn't exist. I'm not responsible for what happens if you are this foolish.

Template to Use
See above

Enable Secondary Character Algorithm
You probably won't ever need to mess with this. The option is here in case someday I have to tell people to disable it.

Check for updates on startup
This box is checked by default, and will determine if a new version has been released. If you're feeling paranoid, or you're happy with your version, you can turn this off.


The following template files will be used by the program if they exist:

  • normal.html - used for chapters
  • first.html - used for the first chapter
  • last.html - used for the final chapter when Completed is checked
  • oneshot.html - used if there is only one chapter and Oneshot is checked
  • index.html OR index.header, index.chapter, and index.footer - used to generate the index page; please see below for details on this template

Strictly speaking, the only file absolutely required in the templates folder is "normal.html". However, the optimum experience will only be obtained with all of the template files. In addition, any other files or directories placed in the template folder will be copied to the story folder. This allows you to include images, javascript, or css stylesheets.

Index Templates

There are two choices for the index template. If you use the three "index.header", "index.chapter", and "index.footer" files, the "index.chapter" file will be repeated, once for each chapter, with the header and footer files included above and below, respectively. If you would rather include everything inside one "index.html" file, you may do so, but you have to include comments telling the engine which part of the template is for the chapter loop. Example:
<!-- Chapter loop start -->
<a href="%(chapfile)s">Chapter %(chapnum)d</a><br />
<!-- Chapter loop end -->

Template Tags

It is important to note that "%" is a signal character for the template engine. Therefore, if you wish to use it (e.g. in something like width="50%"), you should instead use two of them. "%%" will be translated to "%" in the output. The De-FFNet-izer uses Python string formatting for the template engine; if you have inexplicable difficulty, consulting that page may clear some things up.

Valid Tags in Chapter Templates
  • %(title)s - The story title
  • %(author)s - The story author
  • %(numchaps)d - The number of chapters
  • %(storyid)d - The story ID
  • %(chapnum)d - The current chapter number
  • %(chapname)s - The current chapter title
  • %(prev)s - Filename for the previous chapter
  • %(next)s - Filename for the next chapter
  • %(body)s - The text of the chapter
Valid Tags in the Index Template - Outside the Chapter Loop
  • %(title)s - The story title
  • %(author)s - The story author
  • %(numchaps)d - The number of chapters
  • %(storyid)d - The story ID
Valid Tags in the Index Template - Inside the Chapter Loop
  • %(title)s - The story title
  • %(author)s - The story author
  • %(numchaps)d - The number of chapters
  • %(storyid)d - The story ID
  • %(chapnum)d - The current chapter number
  • %(chapname)s - The current chapter title
  • %(chapfile)s - The current chapter filename

Error Messages

If there is a problem in one of the templates, the program will try to let you know which template and what type of problem:

  • KeyError usually happens when you misspell one of the tags: %(title)s as %(titlee)s or something

  • ValueError usually happens if you leave off the "s" or "d" at the end of the tag

  • TypeError usually happens if you try something like 'width="50%"' and forget to use dual percent signs (since % is the tag indicator, you have to use %% to indicate a single %)
© 2012 De-FFNet-Izer.Com All rights reserved.