网页版与共享只读浏览

除了 Windows 客户端,还有一个基于 Python 的网页版:在浏览器里完成登录、粘贴链接、看实时进度、管理下载文件。它面向自托管用户,也是「共享只读浏览」公开部署模式的载体。

现在就能用

网页版做什么

网页版是在原有命令行工具之上加的一层浏览器界面,只做下载,不包含频道转发备份功能。启动后浏览器自动打开 http://127.0.0.1:8000,按三步引导填写 API 凭证、手机号和验证码即可。

  • 粘贴 t.me 消息链接(含私有频道 t.me/c/… 与评论区链接)、磁力链接(只下种子里的视频)、公开推文链接
  • 批量抓取某个对话的历史媒体:按媒体类型、日期范围、最多个数筛选;文件名含消息 ID,重复提交自动跳过已下载部分,中断后重新提交即可续传
  • 订阅对话:以后每来一条新媒体就自动下载,程序不会往被订阅的对话里发任何消息
  • 往 Telegram 收藏夹粘贴链接同样触发下载,手机上丢链接、电脑上看进度
  • 设置项:下载目录、代理、并发数、分块连接数、单文件上限
规划中

共享只读浏览:只看不发的公开部署

网页版正在增加一种「共享只读浏览」模式:把一个账号能访问的频道内容以只读方式对外提供,访客可以浏览、搜索和下载,但无法发送、转发或改动账号。它对应桌面客户端已有的精简模式,思路一致:

  • 访客界面只保留浏览、搜索、下载入口;所有会写入 Telegram 的接口在服务端拒绝
  • 访客的阅读不会同步为已读,账号主人的未读状态保持不变
  • 会话文件、API 凭据只留在服务器本机,访客拿不到

这一模式尚未发布。发布后本页会补充部署步骤与访问控制说明;在此之前,网页版仍只应绑定 127.0.0.1,不要暴露到局域网或公网。

目前可行的替代方案

需要马上给他人提供只读浏览,可在一台专用 Windows 机器上用精简模式启动桌面客户端:

$env:TG_LITE_MODE = "1"; .\Inkgram-0.16.0.exe

环境变量强制的精简模式无法从界面关闭。详见使用指南。

自托管

如何部署网页版

1. 安装与启动

需要 Python 3 与 pip。磁力下载另需 aria2(Windows:winget install aria2.aria2)。

pip install -r requirements.txt
python run_web.py

加 --no-browser 可不自动打开浏览器。不要与命令行版 main.py 同时运行,两者共用同一个 .session 文件。

2. 首次登录

界面按三步引导:填写 api_id / api_hash(来自 my.telegram.org)→ 输入带国际区号的手机号 → 输入验证码(开了两步验证再输密码)。登录态保存在 my_transfer_session.session,之后启动直接进主界面。

3. 必须守住的约束

  • 单进程单 worker:session 是 SQLite,不能多进程共享
  • 绑定 127.0.0.1:.session 等同于账号完全控制权,只读模式发布前绝不暴露到网络
  • Docker 部署首次需在容器内交互登录一次,之后可后台运行

4. 与桌面客户端的关系

两者独立:桌面客户端是 Rust + Tauri 的 Windows 程序,功能完整;网页版是 Python + FastAPI 的轻量下载器,适合放在常开的机器或服务器上。API 凭据可以共用,登录会话不能共用。

下载桌面客户端