Skip to content

download_media incomplete video download #219

@fivepe

Description

@fivepe

Checklist

  • I am sure the error is coming from Pyrogram's code and not elsewhere
  • I have searched in the issue tracker for similar bug reports, including closed ones
  • I ran pip3 install https://github.com/TelegramPlayground/pyrogram/archive/dev.zip --force-reinstall and reproduced the issue using the latest development version

Description

When downloading video files, especially large ones, it often happens that the downloaded file size is 0, or the downloaded file size is incorrect, or the download is incomplete.

Steps to reproduce

while(True):
    file = await tiqu_user_app.download_media(message = msg)
    if not os.path.exists(file):
        continue
    if os.path.getsize(file) == 0 or (msg.video and os.path.getsize(file) != msg.video.file_size):
        if msg.video and os.path.getsize(file) != msg.video.file_size:
            print(f"download fail,{os.path.getsize(file)}-{msg.video.file_size}")
        elif os.path.getsize(file) == 0
            print(f"retry:{retry}")
    else:
        break

Code example

Logs

[2026-01-14 23:19:24] Traceback (most recent call last):
[2026-01-14 23:19:24]   File "/usr/local/lib/python3.9/dist-packages/pyrogram/client.py", line 1140, in get_file
    r = await session.invoke(
[2026-01-14 23:19:24]   File "/usr/local/lib/python3.9/dist-packages/pyrogram/session/session.py", line 446, in invoke
    return await self.invoke(query, retries - 1, timeout)
[2026-01-14 23:19:24]   File "/usr/local/lib/python3.9/dist-packages/pyrogram/session/session.py", line 446, in invoke
    return await self.invoke(query, retries - 1, timeout)
[2026-01-14 23:19:24]   File "/usr/local/lib/python3.9/dist-packages/pyrogram/session/session.py", line 446, in invoke
    return await self.invoke(query, retries - 1, timeout)
[2026-01-14 23:19:24]   [Previous line repeated 2 more times]
[2026-01-14 23:19:24]   File "/usr/local/lib/python3.9/dist-packages/pyrogram/session/session.py", line 439, in invoke
    raise e from None
[2026-01-14 23:19:24]   File "/usr/local/lib/python3.9/dist-packages/pyrogram/session/session.py", line 415, in invoke
    return await self.send(query, timeout=timeout)
[2026-01-14 23:19:24]   File "/usr/local/lib/python3.9/dist-packages/pyrogram/session/session.py", line 378, in send
    raise TimeoutError
[2026-01-14 23:19:24] TimeoutError
[2026-01-14 23:19:24] download fail,0-7159033
[5] Retrying "upload.GetFile" due to TimeoutError()
[5] Retrying "upload.GetFile" due to TimeoutError()

[2026-01-14 23:20:24] Traceback (most recent call last):
[2026-01-14 23:20:24]   File "/usr/local/lib/python3.9/dist-packages/pyrogram/client.py", line 1176, in get_file
    r = await session.invoke(
[2026-01-14 23:20:24]   File "/usr/local/lib/python3.9/dist-packages/pyrogram/session/session.py", line 446, in invoke
    return await self.invoke(query, retries - 1, timeout)
[2026-01-14 23:20:24]   File "/usr/local/lib/python3.9/dist-packages/pyrogram/session/session.py", line 446, in invoke
    return await self.invoke(query, retries - 1, timeout)
[2026-01-14 23:20:24]   File "/usr/local/lib/python3.9/dist-packages/pyrogram/session/session.py", line 446, in invoke
    return await self.invoke(query, retries - 1, timeout)
[2026-01-14 23:20:24]   [Previous line repeated 2 more times]
[2026-01-14 23:20:24]   File "/usr/local/lib/python3.9/dist-packages/pyrogram/session/session.py", line 439, in invoke
    raise e from None
[2026-01-14 23:20:24]   File "/usr/local/lib/python3.9/dist-packages/pyrogram/session/session.py", line 415, in invoke
    return await self.send(query, timeout=timeout)
[2026-01-14 23:20:24]   File "/usr/local/lib/python3.9/dist-packages/pyrogram/session/session.py", line 378, in send
    raise TimeoutError
[2026-01-14 23:20:24] TimeoutError
[2026-01-14 23:20:24] download fail,6291456-100196425
[5] Retrying "upload.GetFile" due to TimeoutError()
Unable to connect due to network issues: timed out

[2026-01-14 23:20:43] Traceback (most recent call last):
[2026-01-14 23:20:43]   File "/usr/local/lib/python3.9/dist-packages/pyrogram/client.py", line 1176, in get_file
    r = await session.invoke(
[2026-01-14 23:20:43]   File "/usr/local/lib/python3.9/dist-packages/pyrogram/session/session.py", line 446, in invoke
    return await self.invoke(query, retries - 1, timeout)
[2026-01-14 23:20:43]   File "/usr/local/lib/python3.9/dist-packages/pyrogram/session/session.py", line 446, in invoke
    return await self.invoke(query, retries - 1, timeout)
[2026-01-14 23:20:43]   File "/usr/local/lib/python3.9/dist-packages/pyrogram/session/session.py", line 446, in invoke
    return await self.invoke(query, retries - 1, timeout)
[2026-01-14 23:20:43]   [Previous line repeated 2 more times]
[2026-01-14 23:20:43]   File "/usr/local/lib/python3.9/dist-packages/pyrogram/session/session.py", line 439, in invoke
    raise e from None
[2026-01-14 23:20:43]   File "/usr/local/lib/python3.9/dist-packages/pyrogram/session/session.py", line 415, in invoke
    return await self.send(query, timeout=timeout)
[2026-01-14 23:20:43]   File "/usr/local/lib/python3.9/dist-packages/pyrogram/session/session.py", line 378, in send
    raise TimeoutError
[2026-01-14 23:20:43] TimeoutError
[2026-01-14 23:20:43] download fail,6291456-38338517
[5] Retrying "upload.GetFile" due to TimeoutError()
[5] Retrying "upload.GetFile" due to TimeoutError()

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions