Download blank images

hello, I’m having trouble downloading Sentinel 2 images for the months of December and November 2023, using the download code the images come blank the same does not happen for previous months.
import requests
import os

def get_access_token(username: str, password: str) → str:
data = {
“client_id”: “cdse-public”,
“username”: username,
“password”: password,
“grant_type”: “password”,
r =”,
except Exception as e:
raise Exception(
f"Access token creation failed. Response from the server was: {r.json()}"
return r.json()[“access_token”]

Autenticação automática com suas credenciais

username = “######”
password = “######”

start_date = “2023-10-02”
end_date = “2023-10-07”
data_collection = “SENTINEL-2”

Primeira área de interesse

aoi1 = “POLYGON(( -57.5008328013177 -29.3640488685621, -57.5008328013177 -29.508531896755336,-57.283619344395845 -29.508531896755336,-57.283619344395845 -29.3640488685621,-57.5008328013177 -29.3640488685621))'”
aoi2 = “POLYGON((-57.56929777549898 -30.187547300904747, -57.56929777549898 -30.245454048186325,-57.50336350491027 -30.245454048186325,-57.50336350491027 -30.187547300904747,-57.56929777549898 -30.187547300904747))”

Diretório onde os produtos serão salvos

directory = “C:/Users/kamil/Desktop/CPFL”

Itera sobre as duas áreas de interesse

for aoi, folder_name in zip([aoi1, aoi2], [“imagem_21JVH”, “imagem_21JVG”]):
# Obtém um novo token de acesso para cada imagem
access_token = get_access_token(username, password)

# Faz a solicitação para a área de interesse
response = requests.get(f"$filter=Collection/Name eq '{data_collection}' and OData.CSC.Intersects(area=geography'SRID=4326;{aoi}) and ContentDate/Start gt {start_date}T00:00:00.000Z and ContentDate/Start lt {end_date}T00:00:00.000Z")
json = response.json()

# Verifica se a chave 'value' existe na resposta
if 'value' in json:
    for result in json['value']:
        # Obtém a URL de download direto do produto
        product_url = f"{result['Id']})/$value"

        # Faz o download do produto
        headers = {"Authorization": f"Bearer {access_token}"}
        session = requests.Session()
        response = session.get(product_url, stream=True)

        # Verifica se o download foi bem-sucedido (código 200)
        if response.status_code == 200:
            # Define o nome do arquivo
            file_name = f"product_{result['Id']}.zip"

            # Define o diretório do produto
            product_directory = os.path.join(directory, folder_name)  # Nome específico para a pasta

            # Cria o diretório do produto se ele não existir
            os.makedirs(product_directory, exist_ok=True)

            # Salva o arquivo no diretório especificado
            with open(os.path.join(product_directory, file_name), 'wb') as file:
                for chunk in response.iter_content(chunk_size=8192):
                    if chunk:
            print(f"Produto {result['Id']} baixado com sucesso!")
            print(f"Falha ao baixar o produto {result['Id']}. Código de status: {response.status_code}")
    print("A chave 'value' não foi encontrada na resposta.")

Hi @kamilastromm ,

This is a forum specifically for Sentinel Hub APIs. Since you’re using OData in the Copernicus Data Space Ecosystem, please create a ticket on the Copernicus Data Space Ecosystem Community forum so your questions can benefit other Copernicus Data Space Ecosystem users. Thank you!