有什么方法可以使用telethon来了解电报照片的网址?

时间:2018-09-23 12:59:35

标签: python telegram telethon

im使用python和telethon获取消息。 我可以下载消息照片,但我不想存储和下载。 我想知道照片的网址,以便以后使用它随时访问。 有什么办法吗?

2 个答案:

答案 0 :(得分:1)

电报API不会为您提供指向帖子媒体文件的直接URL。但是,作为一种解决方法,请看一下几个月前Telegram在其网站上添加的新功能:

您只需输入以下格式的网址即可查看网络中公共频道的帖子: https://t.me/“频道用户名” /“发布号”

(例如https://t.me/gizmiztel/2350

这样,您可以解析DOM并找到每个媒体文件的直接URL。

注意:每种类型的文件可能需要一个单独的方法来提取文件的URL。

答案 1 :(得分:1)

@tashakori 答案的扩展

对于没有设置用户名的频道(我见过几个),它是 ?email={contactfield=email|true}

例如

https://t.me/c/channel_id/message_id

另请注意:当然,只有加入频道的用户才能访问这些链接。

还有 async def main(): # TODO setup client etc. # this channel id was obtained from using something similar to https://stackoverflow.com/a/62849271/8608146 channel = await client.get_entity(-1001006503122) async for message in client.iter_messages(channel, reverse=True): # channel.id and the above -100.. id are not same # this channel.id looks like 1006503122 print("message URL", f"https://t.me/c/{channel.id}/{message.id}") 属性返回 -100...