skip to navigation
skip to content


A simple file downloader that can be used as a data migration tool. In constant development.

Latest Version:

# # # # # # # # # # # # # # # # # # # # # # # # # #
# #
# Downloader written in Python #
# #
# #
# Authors: #
# Brian Tomlinson #
# #
# Manuel Debaux #
# #
# Brian Turner #
# #
# # # # # # # # # # # # # # # # # # # # # # # # # #



1. About Piddle
2. System Requirements
3. Installation
4. Basic Usage
5. Advanced Usage
6. FAQ


1. About Piddle:

Piddle is a small program in the vein of wget and aria2.
I was unhappy with the usability of these two existing programs
and was faced with needing to write something for my final project
in my beginning programming class. Thus Piddle was born.

I don't expect a ton of people to want to use this, that's okay,
I'm writing it for me :)


2. System Requirements:

A current Linux distribution with Python-2.7.2. Older Python versions are
untested and are therefore unsupported. Python-3.x.x is unsupported at this time
but official support is planned for the near future.

What about Windows and Mac?

Piddle may in fact work on both of these platforms and future support is
intended, but they are untested. Presumably, Mac systems could work with
Piddle's current code, though this is again, untested. Windows support is almost
definitely a "no" at this time.


3. Installation:

Piddle requires a few dependencies that are slated to be provided in a
future release. You only need to install these dependencies manually if you
are using the current version of Piddle.

Python Modules: progressbar

To install progressbar, use pip2 or your package manager's version into your
PYTHONPATH. All other imports are part of the standard Python installation for
most Linux distributions.

Main program installation:

To install Piddle, 'git clone' in your desired
installation directory (~/git/piddle is recommended). Ensure that is
executable (as user, chmod +x and then symlink to /usr/bin/pydl
for convenience. If the last step is not followed, you will have to cd into the folder
containing and run './' that way.


4. Basic usage:

Most users will find the default behavior of Piddle to be just fine for everyday
use. Default behavior means prompting via the terminal. This is the method that
has seen the most extensive testing. To run Piddle with the default settings, cd
into the directory where you have installed Piddle (most likely ~/git/piddle), ensure
that the filename "" is executable (as user, chmod +x, and execute
./ Follow the prompts and enjoy painless downloading.


5. Advanced Usage:
Advanced users and CLI junkies will appreciate Piddle's command line arguments.
They can be found by executing ' --help'. For more help, see and scroll
down to the main() function.


6. FAQ

Q: Do you know what "Piddle" means in English!?!?!

A: I'm very well aware thank you.

Q: Knowing what "Piddle" means, why would you name a program like that?

A: Because it was just a "piddly little program" idea that I had. That, and I
have a sense of humor about it :)

Q: Download performance is insanely slow, I'm getting roughly 90B/s on a cable connection!

A: I'm very well aware of this and am looking into it. So far it seems that
urllib and urllib2 are to blame, but I have yet to find a fix. This issue is
the highest priority and research into a fix is ongoing.

Q: You know the downloads would go faster if you just used 'X' module...

A: Yep, but then that doesn't solve the problem, does it? I would rather use
urllib and urllib2 and simply contribute a fix to the community rather than skirt
the real problem and hope that someone else has the time and know-how to do it.
Besides, other methods to accomplish the same tasks as those two modules take a lot
more typing and are not really as elegant and simple to read.

Q: File looping doesn't work with my .csv file containing 'X#' of links! What gives?

A: Currently Piddle can can only take regular text files as arguments. CSV support
is planned in future versions but is not yet implemented.

Q: Why would I use this instead of Wget or Aria2?

A: Good question! You like Python and want to laugh at a new programmer?

Q: Why doesn't Piddle work on 'X' OS? You hate on anything that isn't Linux or something?

A: My distaste for Windows aside, I don't "hate" any OS in particular. If your OS
isn't supported it's because I have yet to add the necessary compatible code.
Support for Windows and Mac is incoming, but not before all features work perfectly
as intended on the development systems, which all happen to run Linux.

Q: When will that be?

A: "Soon"

Q: You're an idiot programmer because you didn't use 'X' programming language like
a real pro!

A: You're probably right. However, I see it as me being a new programmer who is
learning and trying to progress. If that bothers you, don't run the program. You
probably have a neck-beard, live in your mothers basement, and have problems talking to women.
I on the other hand, have a hot wife, an EPIC BEARD, and have highly progressed social skills. :P

Q: No, seriously, why didn't you write this in C or C++?

A: Short answer, I don't know those programming languages, but they are on my
"TODO" list. Longer answer, Python is easy to read, has some powerful libraries
and provides a level of performance that is acceptable for this type of program.

Q: Something is broken! Where can I submit bug reports/feedback/patches/etc?

A: There is no official bug tracker or feedback form to fill out. If you have feedback
or just want to know who to yell at, email Brian Tomlinson at
If you want to submit patches, please git pull the master branch of Piddle on GitHub
and send me a pull request with a detailed description of what your patch offers.
If it is as good as you say it is (after review) then I'll merge it into master
and credit you in the commit and code.

Q: I want to contribute to your project! What can I do?

A: Assuming that you are talking about code, feedback, testing, etc. Email
Brian Tomlinson at and we'll go from there. If in the off-chance
you are talking about monetary contributions, thank you for your thoughts, but no thanks.
Firstly, while Piddle could very well turn into a larger project that would warrant
a price tag to the enterprise world, it is still too small for that and honestly, doesn't cost
me any more than I would already be paying in electricity, computers, net, etc. So save
your cash. Secondly, because of the first answer, I haven't setup paypal or any other
donation service. I enjoy coding enough that I'll do it for free for as long as I can.
If you really want to contribute monetarily, hire me to program for your company :)

Q: Where can I keep up to date on Piddle updates without having to check GitHub

A: Good question! Right now, the only way to get updates outside of GitHub is
to check my profile on Google Plus: Updates are not on any
kind of a schedule and as such are pretty sporadic. I am also available via
Google Talk and Google Mail:

Q: Will Piddle ever have a GUI?

A: Yes! Currently I am looking at a few options and researching which of those
is easiest to implement cross-platform while maintaining the highest levels of
stability (despite the OS in certain cases *cough* Windows *cough*).

Q: Is there any credibility to the rumor that you're going to turn Piddle into
a web app or Chrome extension?

A: Yes there is. Neither of those ideas are finalized and each presents its own
challenges that are currently beyond my skill level. As soon as the necessary
research is complete and development begins in either of those categories, followers
of my Google Plus profile will be the first to know.

Q: You type a lot! Ever think of writing a book instead?

A: Actually... I have, however, I am the #antitwitter!

File Type Py Version Uploaded on Size (md5) Source 2012-08-12 11KB
  • Downloads (All Versions):
  • 9 downloads in the last day
  • 53 downloads in the last week
  • 242 downloads in the last month