code: def download(
          self,
          file_name: str = "",
          block: bool = True,
          progress: callable = None,
          progress_args: tuple = ()
      ) -> "Message":
          
          return self._client.download_media(
              message=self,
              file_name=file_name,
              block=block,
              progress=progress,
              progress_args=progress_args,
          )
docs: Bound method *download* of :obj:`Message <pyrogram.Message>`.
  
          Use as a shortcut for:
  
          .. code-block:: python
  
              client.download_media(message)
  
          Example:
              .. code-block:: python
  
                  message.download()
  
          Args:
              file_name (``str``, *optional*):
                  A custom *file_name* to be used instead of the one provided by Telegram.
                  By default, all files are downloaded in the *downloads* folder in your working directory.
                  You can also specify a path for downloading files in a custom location: paths that end with "/"
                  are considered directories. All non-existent folders will be created automatically.
  
              block (``bool``, *optional*):
                  Blocks the code execution until the file has been downloaded.
                  Defaults to True.
  
              progress (``callable``):
                  Pass a callback function to view the download progress.
                  The function must take *(client, current, total, \*args)* as positional arguments (look at the section
                  below for a detailed description).
  
              progress_args (``tuple``):
                  Extra custom arguments for the progress callback function. Useful, for example, if you want to pass
                  a chat_id and a message_id in order to edit a message with the updated progress.
  
          Returns:
              On success, the absolute path of the downloaded file as string is returned, None otherwise.
  
          Raises:
              :class:`RPCError <pyrogram.RPCError>`
              ``ValueError``: If the message doesn't contain any downloadable media