diff --git a/fetch_databases.py b/fetch_databases.py
index 1f4c08e9a499cd83f7d79133d2ff1bc2f4ad37dc..b4d47a11f1410bc99ca79e6c5fd9a13202e97e33 100644
--- a/fetch_databases.py
+++ b/fetch_databases.py
@@ -19,6 +19,7 @@ import concurrent.futures
 import functools
 import os
 import pathlib
+import shutil
 import subprocess
 import sys
 
@@ -105,6 +106,11 @@ def main(argv=('',)) -> None:
         f' {destination}.'
     ) from e
 
+  if shutil.which('curl') is None:
+    raise ValueError('curl is not installed. Please install it and try again.')
+  if shutil.which('zstd') is None:
+    raise ValueError('zstd is not installed. Please install it and try again.')
+
   # Download each of the files and decompress them in parallel.
   with concurrent.futures.ThreadPoolExecutor(
       max_workers=len(DATABASE_FILES)