def METHOD_NAME(service, folder_id, location, folder_name):
    if not os.path.exists(location + folder_name):
        os.makedirs(location + folder_name)
    location += folder_name + "/"
    result = []
    page_token = None
    while True:
        files = (
            service.files()
            .list(
                q="'{}' in parents".format(folder_id),
                fields="nextPageToken, files(id, name, mimeType, shortcutDetails)",
                pageToken=page_token,
                pageSize=1000,
            )
            .execute()
        )
        result.extend(files["files"])
        page_token = files.get("nextPageToken")
        if not page_token:
            break
    result = sorted(result, key=lambda k: k["name"])
    total = len(result)
    current = 1
    for item in result:
        file_id = item["id"]
        filename = item["name"]
        mime_type = item["mimeType"]
        shortcut_details = item.get("shortcutDetails", None)
        if shortcut_details is not None:
            file_id = shortcut_details["targetId"]
            mime_type = shortcut_details["targetMimeType"]
        print(filename, mime_type, "({}/{})".format(current, total))
        if mime_type == "application/vnd.google-apps.folder":
            METHOD_NAME(service, file_id, location, filename)
        elif not os.path.isfile(location + filename):
            download_file_from_google_drive(file_id, location + filename)
        current += 1