分享一个下载 telegram 频道图片的脚本

2019-03-21 16:06:00 +08:00
 EscYezi

由于某些你懂的理由,需要从某个频道下载所有的图片,搜索一番发现并没有现成的工具,但是有封装好的 telegram python api 库—— Telethon,于是基于该库编写了此脚本

链接: https://github.com/yeziyezi/scripts

或者也可以直接用 Telethon 来搞事情(

Telethon 的文档: https://telethon.readthedocs.io/en/latest/index.html

11834 次点击
所在节点    分享创造
16 条回复
yggd
2019-03-21 16:14:21 +08:00
Markdown 链接前面不加 !
EscYezi
2019-03-21 16:19:18 +08:00
@yggd #1 感谢指正
xFrank
2019-03-23 11:42:27 +08:00
怎么用?
EscYezi
2019-03-23 12:23:53 +08:00
@xFrank #3 安装依赖,拿到自己的 tg api id 和 hash,把那几个变量改一下,然后运行。具体的在 readme 和注释里已经写了
metalbug
2019-03-23 18:39:26 +08:00
能下载所有视频吗?
EscYezi
2019-03-24 02:13:32 +08:00
@metalbug #5 这个脚本只能下载图片
Deteriorator
2019-05-12 20:56:01 +08:00
请问怎么获取 saved messages 信息?
EscYezi
2019-05-12 21:30:31 +08:00
@Deteriorator 这个我也不太清楚,可以去 Telethon 的文档找找看
Deteriorator
2019-05-12 22:04:06 +08:00
@EscYezi 试了一个下午,到现在都没找到方法,吐血了都
ronman
2019-11-15 16:52:28 +08:00
老哥有没有遇到 FloodWaitError 啊,我看了一下好像是短时间请求次数太多了,导致的出错,有什么好的解决办法吗?
Aistv
2020-01-01 12:37:41 +08:00
@EscYezi @ronman 我想问一下,第一次登陆需要输入手机号码之类的,在哪里输入啊?我运行脚本后,过一会就提示:连接失败 5 次,是不是代理不行?我用的 ssr
ronman
2020-01-01 13:06:57 +08:00
@Aistv 代理没设置好,直接运行的话不走代理,搜一下怎么处理吧
Aistv
2020-01-01 14:53:12 +08:00
@ronman 开了 ssr 后在 Telegram 自定义代理里面试了 127.0.0.1,1080,软件都可以用 脚本就不行,能告诉我你用的什么代理吗?


Traceback (most recent call last):
File "C:\Users\Aistv\Desktop\scripts-master\download-telegram-channel-pictures.py", line 19, in <module>
client = TelegramClient('my_session',api_id=api_id,api_hash=api_hash,proxy=proxy).start()
File "C:\Users\Aistv\AppData\Roaming\Python\Python38\site-packages\telethon\client\auth.py", line 132, in start
else self.loop.run_until_complete(coro)
File "C:\Users\Aistv\AppData\Local\Programs\Python\Python38\lib\asyncio\base_events.py", line 612, in run_until_complete
return future.result()
File "C:\Users\Aistv\AppData\Roaming\Python\Python38\site-packages\telethon\client\auth.py", line 139, in _start
await self.connect()
File "C:\Users\Aistv\AppData\Roaming\Python\Python38\site-packages\telethon\client\telegrambaseclient.py", line 439, in connect
if not await self._sender.connect(self._connection(
File "C:\Users\Aistv\AppData\Roaming\Python\Python38\site-packages\telethon\network\mtprotosender.py", line 124, in connect
await self._connect()
File "C:\Users\Aistv\AppData\Roaming\Python\Python38\site-packages\telethon\network\mtprotosender.py", line 237, in _connect
raise ConnectionError('Connection to Telegram failed %d time(s)', self._retries)
ConnectionError: [Errno Connection to Telegram failed %d time(s)] 5
>>>
ronman
2020-01-03 10:56:03 +08:00
@Aistv pysocks
Aistv
2020-01-03 19:39:35 +08:00
@ronman 我连续下载了几千张并没有碰到你说的什么 FloodWaitError,只有验证过期什么的,重新开一下脚本就可以继续。
minxiansheng
2020-12-22 21:18:57 +08:00
@Aistv 大佬,我用 clash 代理,运行这个程序出现 Connection to Telegram failed 5 time(s),怎么解决啊,谢谢大佬

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/547048

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX