code: async def download(self, destination=None, timeout=30, chunk_size=65536, seek=True, make_dirs=True):
          
          file = await self.get_file()
  
          is_path = True
          if destination is None:
              destination = file.file_path
          elif isinstance(destination, (str, pathlib.Path)) and os.path.isdir(destination):
              os.path.join(destination, file.file_path)
          else:
              is_path = False
  
          if is_path and make_dirs:
              os.makedirs(os.path.dirname(destination), exist_ok=True)
  
          return await self.bot.download_file(file_path=file.file_path, destination=destination, timeout=timeout,
                                              chunk_size=chunk_size, seek=seek)
docs: Download file
  
          :param destination: filename or instance of :class:`io.IOBase`. For e. g. :class:`io.BytesIO`
          :param timeout: Integer
          :param chunk_size: Integer
          :param seek: Boolean - go to start of file when downloading is finished.
          :param make_dirs: Make dirs if not exist
          :return: destination