stream_media()

async Client.stream_media()

Stream the media from a message chunk by chunk.

You can use this method to partially download a file into memory or to selectively download chunks of file. The chunk maximum size is 1 MiB (1024 * 1024 bytes).

Usable by Users Bots
Parameters:
  • message (Message | str) – Pass a Message containing the media, the media itself (message.audio, message.video, …) or a file id as string.

  • limit (int, optional) – Limit the amount of chunks to stream. Defaults to 0 (stream the whole media).

  • offset (int, optional) – How many chunks to skip before starting to stream. Defaults to 0 (start from the beginning).

Returns:

Generator – A generator yielding bytes chunk by chunk

Example

# Stream the whole media
async for chunk in app.stream_media(message):
    print(len(chunk))

# Stream the first 3 chunks only
async for chunk in app.stream_media(message, limit=3):
    print(len(chunk))

# Stream the rest of the media by skipping the first 3 chunks
async for chunk in app.stream_media(message, offset=3):
    print(len(chunk))

# Stream the last 3 chunks only (negative offset)
async for chunk in app.stream_media(message, offset=-3):
    print(len(chunk))