diff --git a/funkwhale_cli/api.py b/funkwhale_cli/api.py
index 082b22fc5f25d90b60626f6db8a15bad44466ecf..5c20ced938499768188127a9ecf73ccb0dd91a3c 100644
--- a/funkwhale_cli/api.py
+++ b/funkwhale_cli/api.py
@@ -1,11 +1,11 @@
-import aiohttp
-
 from . import exceptions
 from . import schemas
 from . import settings
 
 
 def get_session_kwargs():
+    import aiohttp
+
     headers = {"User-Agent": settings.USER_AGENT}
     return {
         "timeout": aiohttp.ClientTimeout(total=settings.TIMEOUT),
@@ -14,6 +14,8 @@ def get_session_kwargs():
 
 
 def get_session():
+    import aiohttp
+
     kwargs = get_session_kwargs()
     return aiohttp.ClientSession(**kwargs)
 
diff --git a/funkwhale_cli/cli/base.py b/funkwhale_cli/cli/base.py
index e4f86767a51babdc99bdd7000c7a7eefffadd5a0..78517f4c30dba6906d08024d7fc86ed85f86a3e7 100644
--- a/funkwhale_cli/cli/base.py
+++ b/funkwhale_cli/cli/base.py
@@ -1,5 +1,4 @@
 import asyncio
-import aiohttp
 import click
 import click_log
 import dotenv
@@ -110,6 +109,7 @@ def env_file(v):
 
 def async_command(f):
     def wrapper(*args, **kwargs):
+        import aiohttp
         loop = asyncio.get_event_loop()
         ignore_aiohttp_ssl_eror(loop)
         _async_reraise = kwargs.pop("_async_reraise", False)
diff --git a/funkwhale_cli/cli/tracks.py b/funkwhale_cli/cli/tracks.py
index 743333818447d56c62fc1c6bdf9b2281768114c9..e96226d454e519c17050b8356faeb890b1fda780 100644
--- a/funkwhale_cli/cli/tracks.py
+++ b/funkwhale_cli/cli/tracks.py
@@ -1,7 +1,6 @@
 import os
 import pathlib
 
-import aiohttp
 import click
 import tqdm
 
@@ -70,6 +69,8 @@ async def get_track_download_url(id, remote, format=None):
 async def track_download(
     ctx, id, format, directory, template, overwrite, ignore_errors, skip_existing
 ):
+    import aiohttp
+
     async with ctx.obj["remote"]:
         progressbar = tqdm.tqdm(id, unit="Files")
         for i in progressbar: