Need help with springer_free_books?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

1.6K Stars 372 Forks GNU General Public License v3.0 213 Commits 23 Opened issues


Python script to download all Springer books released for free during the 2020 COVID-19 quarantine

Services available


Need anything else?

Contributors list

The script is not working anymore, due to the reCAPTCHA step Springer added.

Python script to download all Springer books released for free during the 2020 COVID-19 quarantine

Python package and testrun

Books available

It used to have 409 english books (it took about 4 hours to complete the download ~ 14 GB, both PDF and EPUB, on my machine), but Springer has since removed some of them from the open access.


Note: If you want just one or two specific books, get the excel file and manually download those or use the script to help you download (see Download book selectively sub-section).

By default the script stores the books in

subfolder according to the subject ("English Package Name" column of the excel file).

Download all English books (PDF and EPUB)

Use the following command to download all PDF and EPUB books to the default download folder

To download them to a subfolder of your choice, say
python3 -f ./books
You can download to an absolute path, say
python3 -f C:/ebooks/springer/

To download books in separate chapters (PDF only)

python3 --dl_chapters

Download all German books (PDF and EPUB)

To download the German books use

python3 --lang de
This language flag can be combined with any of the above and below mentioned options. If not specified,
--lang en
, i.e. English, is the default.

Download all books of specific format

To download all PDF books only, run

python3 --pdf
or all EPUB books only
python3 --epub

Download only specific book categories

You can download selective books by categories. Make sure category name with space(s) is enclosed in double quotation marks, like so

python3 -c Engineering "CoMpuTer sciEnCe"
The category name is case-insensitive.

Download book selectively

You can download books by indices (refer to the excel file for the titles)

python3 -i 2 345 70 90 0 213

Verbose mode

If you need to know what you are downloading, enable the verbose mode with

python3 -v -c "Behavioral science and psychology" "chaos AD" UFO "Life science" -i 2 34 400
You will get the following summary before the downloading starts ``` Book Title English Package Name 2 All of Statistics Mathematics and Statistics 34 Essential Astrophysics Physics and Astronomy 37 International Perspectives on Psychotherapy Behavioral Science and Psychology 40 Applied Behavior Analysis Behavioral Science and Psychology 70 Psychology of Perception Behavioral Science and Psychology 95 Handbook of Consumer Finance Research Behavioral Science and Psychology 311 Clinical Methods in Medical Family Therapy Behavioral Science and Psychology 313 Motivation and Action Behavioral Science and Psychology 381 Perceptual Organization Behavioral Science and Psychology 396 Evidence-Based Practice in Clinical Social Work Behavioral Science and Psychology 397 Foundations of Behavioral Health Behavioral Science and Psychology 398 Social Psychology in Action Behavioral Science and Psychology 400 A Course in Rasch Measurement Theory Education

13 titles ready to be downloaded... The following invalid book categories will be ignored: 1. chaos AD 2. UFO 3. Life science ```

Running in a virtual environment (Bash commands):

python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt

Virtual environment on Windows (auto-detects Python version):

Just double-click the

file from Windows Explorer, or type-in its name at the command-line and press ENTER. Do install Python first, either from or from the Microsoft Store for Windows 10.

Virtual environment on Windows (Python 3.x):

python -m venv .venv
pip install -r requirements.txt

Virtual environment on Windows (Python 2.7.x):

python -m virtualenv .venv
pip install -r requirements.txt



Thanks Springer!

Docker container to do all the work

Considering you cloned the repo in a folder, as:

cd \home\[user]\workspace
git clone
cd springer_free_books
mkdir downloads

You can run the scripts like that:

docker build . -t springer-image
docker run --rm -v [local_download_folder]:/app/downloads springer-image
and the downloads will be at [


On macOS, if the script produces a

error, then security certificates may need to be installed. Instructions for doing so can be found here. If that doesn't work, see alternate instructions here.

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.