Bulk downloading and uploading files to Chomikuj.pl

Chomikuj.pl is one of the more interesting archives of the Polish Internet. You can find things there that disappeared from other places long ago, from students’ PDFs to archived radio dramas. A year ago I described a small helper script for bulk downloading. Now I spent a few tokens turning it into a more complete tool. It is a single Python file that can both download and upload entire folders to Chomikuj.pl.

Chomyk is available on GitHub.

What it can do

The main change is simple: you no longer have to choose between downloading a single file and clicking through an entire folder structure by hand. The script downloads folders recursively and preserves their layout on disk. When uploading, it does the same in the other direction.

There are also a few practical details:

  • several transfers can run at the same time;
  • interrupted downloads or uploads can be resumed;
  • while uploading, the script checks CRC32 checksums, so files that are already on the server are not transferred again;
  • the console shows progress, current speed, and the estimated time remaining.

First run

You need Python 3 and the requests and urllib3 libraries. After downloading the repository, simply run:

python3 chomyk.py

On the first run, the program will ask for your username and password and can then save them in config.json. This is convenient, but keep in mind that the credentials are stored as plain text.

Without any arguments, the script opens a simple menu: downloading files from the links in list.txt, downloading a folder from a link pasted into the console, or uploading a file or folder.