diff --git a/sen2chain/download_eodag.py b/sen2chain/download_eodag.py
index 0a05c95eea1146aabf2d644897983f6bf49ae8d9..63cbf67c2cab85155f071fc322eef69ee58fdbae 100644
--- a/sen2chain/download_eodag.py
+++ b/sen2chain/download_eodag.py
@@ -72,7 +72,8 @@ class S2cEodag:
         start: str = "2015-01-01",
         end: str = "9999-12-31",
         ref: str = "l1c",
-    
+        min_cloudcover: int = 0,
+        max_cloudcover: int = 100,    
     ):
         ######### ici faudrait virer le self.productType, qui ne doit pas être global pour le download... 
         if productType == "L1C":
@@ -100,23 +101,47 @@ class S2cEodag:
         for p in fitered:
             if self.name not in p.properties["title"]:
                 self.products.remove(p)
-                logger.info("{} - wrong Tile - filtering".format(p.properties["title"]))        
-        
-        local = self.products[:]
-        for p in local:
-            if ref == "l1c":
-                if (outputs_prefix / (p.properties["title"] + ".SAFE")).exists():
-                    # p.location = "file://" + str(outputs_prefix / (p.properties["title"] + ".SAFE"))
-                    logger.info("{} - remote {} - local l1c PRESENT - filtering".format(p.properties["title"], p.properties["storageStatus"]))
-                    self.products.remove(p)
-                else:
-                    logger.info("{} - remote {} - local l1c ABSENT".format(p.properties["title"], p.properties["storageStatus"]))
-            elif ref == "l2a":
-                if (Path(Config().get("l2a_path")) / self.name / (p.properties["title"].replace("L1C_", "L2A_").replace("__OPER__", "_USER_") + ".SAFE")).exists():
-                    logger.info("{} - remote {} - local l2a PRESENT - filtering".format(p.properties["title"], p.properties["storageStatus"]))
+                logger.info("{} - wrong Tile - filtering".format(p.properties["title"]))
+            else:
+                if not(min_cloudcover <= int(p.properties["cloudCover"]) <= max_cloudcover):
                     self.products.remove(p)
+                    logger.info("{} - wrong cloud cover ({}%) - filtering".format(p.properties["title"], int(p.properties["cloudCover"])))
                 else:
-                    logger.info("{} - remote {} - local l2a ABSENT".format(p.properties["title"], p.properties["storageStatus"]))
+                    if ref == "l1c":
+                        if (outputs_prefix / (p.properties["title"] + ".SAFE")).exists():
+                            # p.location = "file://" + str(outputs_prefix / (p.properties["title"] + ".SAFE"))
+                            logger.info("{} - remote {} - local l1c PRESENT - filtering".format(p.properties["title"], p.properties["storageStatus"]))
+                            self.products.remove(p)
+                        else:
+                            logger.info("{} - remote {} - local l1c ABSENT".format(p.properties["title"], p.properties["storageStatus"]))
+                    elif ref == "l2a":
+                        if (Path(Config().get("l2a_path")) / self.name / (p.properties["title"].replace("L1C_", "L2A_").replace("__OPER__", "_USER_") + ".SAFE")).exists():
+                            logger.info("{} - remote {} - local l2a PRESENT - filtering".format(p.properties["title"], p.properties["storageStatus"]))
+                            self.products.remove(p)
+                        else:
+                            logger.info("{} - remote {} - local l2a ABSENT".format(p.properties["title"], p.properties["storageStatus"]))
+                    
+                    
+                      
+        # clouds = self.products[:]
+        # for p in clouds:
+            # if not(min_cloudcover <= int(p.properties["cloudCover"]) <= max_cloudcover):
+                # self.products.remove(p)
+                # logger.info("{} - wrong cloud cover ({}%) - filtering".format(p.properties["title"], int(p.properties["cloudCover"])))        
+        # local = self.products[:]
+        # for p in local:
+            # if ref == "l1c":
+                # if (outputs_prefix / (p.properties["title"] + ".SAFE")).exists():
+                    # logger.info("{} - remote {} - local l1c PRESENT - filtering".format(p.properties["title"], p.properties["storageStatus"]))
+                    # self.products.remove(p)
+                # else:
+                    # logger.info("{} - remote {} - local l1c ABSENT".format(p.properties["title"], p.properties["storageStatus"]))
+            # elif ref == "l2a":
+                # if (Path(Config().get("l2a_path")) / self.name / (p.properties["title"].replace("L1C_", "L2A_").replace("__OPER__", "_USER_") + ".SAFE")).exists():
+                    # logger.info("{} - remote {} - local l2a PRESENT - filtering".format(p.properties["title"], p.properties["storageStatus"]))
+                    # self.products.remove(p)
+                # else:
+                    # logger.info("{} - remote {} - local l2a ABSENT".format(p.properties["title"], p.properties["storageStatus"]))
         logger.info("Search returned {} new product(s) to download".format(len(self.products))) ####### rajouter ici "- dont xx ABSENT - dont xx ONLINE / xx STAGING"
             
     def download(
diff --git a/sen2chain/tiles.py b/sen2chain/tiles.py
index 6b1bcfad19c5e3eb0d85aa4f8d9007b066bfa3e0..c67a057c3b157edccf8f0f60f68b03e0648e4890 100644
--- a/sen2chain/tiles.py
+++ b/sen2chain/tiles.py
@@ -730,13 +730,15 @@ class Tile:
         end: str = "9999-12-31",
         new: bool = False,
         ref: str = "l1c",
+        min_cloudcover: int = 0,
+        max_cloudcover: int = 100,
         order_offline: bool = False,
     ):
         dag = S2cEodag(self.name, provider = provider)
         if new:
             if self.l1c:
                 start = datetime_to_str(self.l1c.last.date + timedelta(days=1), date_format = 'ymd')
-        dag.search(start = start, end = end, ref = ref)
+        dag.search(start = start, end = end, ref = ref, min_cloudcover = min_cloudcover, max_cloudcover = max_cloudcover)
         
         ##############  virer ici de la liste des téléchargements les produits qui ont déjà des l2a ou indices (pour ne pas retélécharger des produits l1c à chaque fois)
         # if ref == "l2a":