Flashgot 1.2.8 and newer has a better support for axel. Flashgot is much better alternative. Download flashgot from here.

Relevant Forum thread.

Information on this page is obsolete. It is not a good idea to read cookies from sqlite file, since firefox does not write all cookies to the disk.

http://gamekia.blogspot.com/





Firefox 3 is saving all cookies in the file named "cookies.sqlite". Cookies are saved in format of SQLite3, which is lightweight, one-file SQL database. Quick start tutorial of SQLite tells us how to use this library in C programming language.

Axel is console-based download manager that supports multiple parallel connections, which will speed-up the download of files.

Compilation

Process of creating an axel that can read cookies from Firefox 3 is a following:
  1. Grab a source of axel-2.4 (download page).
  2. Make sure you have sqlite3 development package (libsqlite3-dev) installed
  3. Apply the following patch by placing it in the folder "axel-2.4/" and issuing command
    patch -p1 < axel_firefox.v0.3.patch
  4. Compile the source
    ./configure --ff3c=1
    make
  5. Optionally install
    sudo make install

Usage

In order to use cookies with axel you need to set enviroment variable "AXEL_COOKIES". For example, you can set it for current shell
export AXEL_COOKIES=<PROFILE_DIR>/cookies.sqlite
axel -n 32 http://example.com/f.zip
Or, you can set it for one axel process
AXEL_COOKIES=<PROFILE_DIR>/cookies.sqlite axel -n 32 http://example/f.z

See also


Current issues

  1. Firefox does not save cookies which don't have expiry time specified. Such cookies are supposed to be deleted upon closure of the browser, and these cookies are not saved to "cookies.sqlite". This means that you have to select an option 'Remember my login', if website supports this option, otherwise server will issue a cookie which expires upon closure of browser, and in that case we cannot load such cookie. Some proposals to fix this problem:
    • Attach to the running process of Firefox3 (I doubt this will ever gonna happen).
    • Use Firefox3 extension to export cookies in run-time (This is better but still is complicated).
  2. Cookies can store 4KB per one cookie, however MAX_QUERY in axel is 2048, so we don't follow this minimum requirement.
  3. If cookie cannot fit into the buffer, recommended action is to not send such cookie, however current version truncates cookies.
  4. Netscape and rfc2109 don't agree on whether domain matching should have "." in front, I have no idea what is the correct behavior. Version 0.3 uses both matching with and without dot.

TODO

  1. Add option to specify cookies path in the configuration file "axelrc"
  2. Fix these issues
  3. Do not use static global variables
  4. Allow other sources for cookies (Firefox 2, Chrome, Opera)
  5. Choose to fail rather that to truncate SQL query
  6. This list here

Changelog

Version v0.3 of the patch
  • improves handling of domain names, path of cookie, expiration date, security flag.
  • Cookies are sorted by the length of a path
  • configure option is added --ff3c
- emiraga emiraga May 23, 2009
yiannis_marangos made improvements to the patch currently v0.2
  • removing buffer overflows
  • fixing host handling and
  • added dependency to sqlite3 installed as system library.
I want to thank him for this.
- emiraga emiraga May 17, 2009
First release of the patch v0.1
- emiraga emiraga Apr 7, 2009