TG限制群组转存机器人

By | 2022年6月12日

Telegram 在2021年底的一次更新中为群组增加了“禁止转发”功能,开启后普通成员便无法从群组中复制、转发或者保存任何内容。当然坊间也发明出了不少破解的方法,例如从缓存中提取或是从网页版抓包等,虽然有效使用起来却较为不便。不过 reizhi 在 GitHub 闲逛时偶然发现了这个名为 SaveRestrictedContentBot 的项目,能够从限制群组中转存各种媒体和文件,如果有这方面需求的话不妨试试。

不接代搭了不要再留言了

1.部署

作者已经给出了比较详细的部署说明,这里便不再多花时间介绍了。只需要 Fork 该项目后一键或手动部署到 Heroku 即可,具体可参见图示。当然,如果你想要本地运行也可以使用 Dockerfile 来构建镜像。

2.环境变量

想要让代码正确的跑起来,在部署时还需要设置以下环境变量:API_ID, API_HASH, SESSION, BOT_TOKEN, AUTH, FORCESUB

其中 API_IDAPI_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 ,环境变量同上。

38 thoughts on “TG限制群组转存机器人

  1. kyo

    您好,请问部署的机器人是否可以下载其他群组中的内容?(机器人未加入该群组的情况下)

    Reply
  2. ajun

    下载工作正常,但上载时无法保存。大佬知道如何解决吗?

    Reply
  3. heimaopd

    看了半天这个脚本不知道怎么用,有没有大佬详细一点教一教?

    Reply
  4. acnkid

    大佬可以请教一下点击 deploy to heroku之后 页面一直loading是怎么回事吗?我是小白 希请回复

    Reply
    1. reizhi Post author

      Heroku 现在不免费了,价格是5刀每月。
      或者你自备 VPS 的话也可以,代搭一次性费用20,不含后续更新和维护。
      也不需要更新,我都跑了半年了一直可以用。

      Reply
          1. bebe5

            你好,可以远程付费帮忙弄一下吗?可以的话就联系一下我,谢谢。

    1. reizhi Post author

      需要自备 vps ,我可以推荐但是需要自己购买。代搭一次性费用20,可以接受的话注意下邮件。

      Reply
  5. misaka

    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

    Reply
      1. bebe

        你好,请问一下可以出视频出教程吗?价格我可以接受iOS

        Reply
  6. Madison

    你好可以协助搭建吗,我第一步获取环境变量就报error

    Reply
    1. reizhi Post author

      API_ID, API_HASH 申请时报错可能是 IP 不干净,代搭注意查看后续邮件

      Reply
  7. Tommy

    这个怎么说呢,曲线救国,但效率实在太低。
    我看了tdlib的官方api,要调用sendMessage方法,传入 inputMessageVideo,而这个对象只接受file_input,也就说只支持传入一个文件类型的参数。所以实现原理的是,拿视频举例,先getMessage,通过file_id,调用downloadFile方法,把文件下载下来,然后如果视频有caption之类的信息的话,暂存下来,最后通过sendMessage把这个视频+caption再一并发给你。

    Reply
  8. 123蒂娜宝

    付费搭建… 不知道怎么联系你.. 你给我发邮件吧

    Reply

回复 reizhi 取消回复

您的电子邮箱地址不会被公开。 必填项已用*标注

滑动到最右以进行验证 *