使用 telethon 获取媒体下载网址

问题描述 投票:0回答:2

我使用 python-telegram-bot 从发送到我实现的机器人的帖子中获取下载网址。问题是文件大小限制(最大上传大小:50 MB,最大下载大小:20 MB)。

所以我将 python 库更改为 telethon 以使用 mtproto。它没有文件大小限制,但是,我找不到获取下载网址的方法!它有一个名为“download_media”的方法,可以下载媒体!

@client.on(events.NewMessage)
async def download_media(event, **kwargs):
    message = event.message
    file = await message.download_media()

有没有办法只获取下载网址而不下载文件?

python telegram telegram-bot telethon
2个回答
0
投票

与 Telethon 连接的 Telegram 的 MTProto API 不提供从 URL 下载文件的功能,为了方便起见,该功能由 HTTP bot API 提供。


0
投票

1- 使用

message.document.file_id
您可以访问视频的 file_id。

2- 使用

getFile(<file_id>)
方法获取文件的
file_path
(相当于卷曲
https://api.telegram.org/$bot_token/getFile
,请阅读更多内容Telegram Bot getFile APIpython-telegram-bot getFile 文档

3- 视频的最终 URL 如下:

https://api.telegram.org/file/<bot_token>/<file_path>

P.S:仅在您自己的代码库上使用该 URL,因为它会泄露您的 BOT_TOKEN。

P.S.2:链接有效期为 1 小时,之后必须再次提出

getFile
请求。

© www.soinside.com 2019 - 2024. All rights reserved.