很多时候小工具不好用,下载TG里面电影资源都是要下载半天,更多的解决办法就挂一台windows一直下载,好在最近找到了一个更好的方案,就是挂着一个TG机器人,把资源转发给机器人让其帮忙下载,而且机器人还能根据资源分类
在使用 Telegram 的 API 之前,您需要获取自己的 API ID 和哈希:
先获取机器人聊天列表:
curl https://api.telegram.org/bot[机器人令牌]/getUpdates
会显示一个聊天ID和聊天对象,在把ID填入下面测试,如答复即可完成
curl -X POST "https://api.telegram.org/bot[机器人令牌]/sendMessage" -d "chat_id=[聊天室ID]&text=my sample text"
如果在聊天室机器人答复 my sample text 表示测试成功
拉取镜像:
docker pull jsavargas/telethon_downloader
部署容器:
docker run -itd --restart=always \
--privileged=true \
--name tg \
-e TG_AUTHORIZED_USER_ID=[聊天室ID] \
-e TG_API_ID=[TG API] \
-e TG_API_HASH=[哈希值] \
-e TG_BOT_TOKEN=123456;ABCDEF \
-e TG_MAX_PARALLEL=4 \
-e TG_PROGRESS_DOWNLOAD=True \
-v /TG/config:/config \
-e TZ=Asia/Shanghai \
jsavargas/telethon_downloader:latest
变量解释
TG_AUTHORIZED_USER_ID:聊天室ID,在上面测试聊天机器人可以获得该ID
TG_API_ID:TG API,在生成电报 API 密钥那一步可以获得这个ID
TG_API_HASH:TG 哈希值,在生成电报 API 密钥那一步可以获得这个哈希值
TG_BOT_TOKEN:机器人TOKEN,在创建电报机器人那一步可以获得这个TOKEN,格式类似123:ABC
TG_MAX_PARALLEL:最大同时下载数量(默认:4)
TG_PROGRESS_DOWNLOAD:显示下载进度信息
TG_DL_TIMEOUT:等待下载完成的最长时间(以秒为单位)。 在此时间之后,下载被取消并触发错误(默认:3600)
机器人最好是部署在境外主机,在国内部署是不能正常通信,这里需要设置代理,无奈镜像没有设置代理的香港变量,这里需要魔改一下配置文件
确保完成以下操作:
docker exec -it tg pip install PySocks
进入容器内/app目录,修改bottorrent.py文件
docker exec -it tg /bin/sh
在 205行 左右 把 proxy=none 改成 socks5 链接地址,如:127.0.0.1:1080
# client = TelegramClient(session, api_id, api_hash, proxy =none, request_retries = 10, flood_sleep_threshold = 120)
client = TelegramClient(session, api_id, api_hash, proxy =("socks5", '127.0.0.1', 1080), request_retries = 10, flood_sleep_threshold = 120)
最后重启TG容器即可使用