Telegram 在2021年底的一次更新中为群组增加了“禁止转发”功能,开启后普通成员便无法从群组中复制、转发或者保存任何内容。当然坊间也发明出了不少破解的方法,例如从缓存中提取或是从网页版抓包等,虽然有效使用起来却较为不便。不过 reizhi 在 GitHub 闲逛时偶然发现了这个名为 SaveRestrictedContentBot 的项目,能够从限制群组中转存各种媒体和文件,如果有这方面需求的话不妨试试。
1.部署
作者已经给出了比较详细的部署说明,这里便不再多花时间介绍了。只需要 Fork 该项目后一键或手动部署到 Heroku 即可,具体可参见图示。当然,如果你想要本地运行也可以使用 Dockerfile 来构建镜像。
2.环境变量
想要让代码正确的跑起来,在部署时还需要设置以下环境变量:API_ID
, API_HASH
, SESSION
, BOT_TOKEN
, AUTH
, FORCESUB
。
其中 API_ID
和 API_HASH
可以从 https://my.telegram.org/apps 获取,登陆后直接复制即可。
SESSION
可以使用这个网页运行一段小程序来获取。点击运行后类型选择 p ,再按提示依次输入 API_ID
, API_HASH
和注册手机号,完成后即可在收藏夹中找到 SESSION
。需要注意 SESSION
仅一次性有效,如果停止并重新启动代码或容器,则必须重新获取。
BOT_TOKEN
需要向 @botfather 申请一个,按提示输入名称等各项信息即可。
AUTH
为管理员的账号 ID ,可以通过 @myidbot 获取。
FORCESUB
是使用该机器人必须关注的频道(Channel)名,需要新建一个频道并将上一步新建的机器人设为管理员。如频道地址为 t.me/reizhinews ,则填写 reizhinews 。
3.使用方法
只需要把想转存的消息链接发给机器人即可,内容既可以是文字也可以是媒体或文件。由于机器人需要下载后重新上传,文件比较大的话就需要稍等片刻。好在代码内置了队列和延迟等待机制,连续发送多条链接也是完全没问题的。
4.批量转存
除了单条转存外,SaveRestrictedContentBot 还支持管理员批量转存。只需要向机器人发送 /batch
命令按提示操作即可。单次最高支持转存100条连续的消息。
5.项目地址
https://github.com/vasusen-code/SaveRestrictedContentBot
也可以使用 reizhi 生成的镜像来部署:https://hub.docker.com/r/reizhi/savebot ,环境变量同上。
您好,请问部署的机器人是否可以下载其他群组中的内容?(机器人未加入该群组的情况下)
未尝试,理论上可以下载公开群组的媒体。
下载工作正常,但上载时无法保存。大佬知道如何解决吗?
建议直接给作者提 issue
看了半天这个脚本不知道怎么用,有没有大佬详细一点教一教?
大佬可以请教一下点击 deploy to heroku之后 页面一直loading是怎么回事吗?我是小白 希请回复
能不能付费远程帮我弄一下
Heroku 现在不免费了,价格是5刀每月。
或者你自备 VPS 的话也可以,代搭一次性费用20,不含后续更新和维护。
也不需要更新,我都跑了半年了一直可以用。
你好 能给个联系方式吗
注意下邮件
我也需要代搭建。
需要自备 vps ,我可以推荐但是需要自己购买。代搭一次性费用20,可以接受的话注意下邮件。
ethon这个库好像出了点问题……后面报错也是这个库,这咋办?
ERROR: Could not find a version that satisfies the requirement ethon==1.3.8
ERROR: No matching distribution found for ethon==1.3.8
WARNING: You are using pip version 21.0.1; however, version 23.0 is available.
You should consider upgrading via the ‘/usr/local/bin/python -m pip install –upgrade pip’ command.
ERROR: Service ‘app’ failed to build: The command ‘/bin/sh -c pip3 install –no-cache-dir -r requirements.txt’ returned a non-zero code: 1
srcbot | starting Bot ~@DroneBots
srcbot | Traceback (most recent call last):
srcbot | File “/usr/local/lib/python3.9/runpy.py”, line 197, in _run_module_as_main
srcbot | return _run_code(code, main_globals, None,
srcbot | File “/usr/local/lib/python3.9/runpy.py”, line 87, in _run_code
srcbot | exec(code, run_globals)
srcbot | File “/app/main/__main__.py”, line 16, in
srcbot | load_plugins(plugin_name.replace(“.py”, “”))
srcbot | File “/app/main/utils.py”, line 12, in load_plugins
srcbot | spec.loader.exec_module(load)
srcbot | File “”, line 790, in exec_module
srcbot | File “”, line 228, in _call_with_frames_removed
srcbot | File “main/plugins/frontend.py”, line 8, in
srcbot | from main.plugins.pyroplug import get_msg
srcbot | File “/app/main/plugins/pyroplug.py”, line 11, in
srcbot | from ethon.pyfunc import video_metadata
srcbot | File “/usr/local/lib/python3.9/site-packages/ethon/pyfunc.py”, line 29
srcbot | break
srcbot | ^
srcbot | SyntaxError: ‘break’ outside loop
srcbot | main has Imported helpers
srcbot exited with code 1
建议和作者反馈
想要協助搭建
查看后续邮件
你好可以协助搭建吗,我第一步获取环境变量就报error
API_ID, API_HASH 申请时报错可能是 IP 不干净,代搭注意查看后续邮件
需要带搭 请私信我一下邮件
查看后续邮件