小水滴
纯TG机器人项目,让你的订阅变得移动优雅
无需进入Web网页选择操作,可配置好后完成后机器人自动后台订阅,并依据MoviePilot强大的订阅识别整理功能自动入库整理
项目介绍
💡 小水滴是什么?
小水滴是一个纯Telegram机器人项目,是一个115网盘多渠道资源聚合搜索、监控tg转存、配合MoviePilot订阅、消息转发、Emby联动删除网盘源文件的Telegram机器人聚合工具。它让你的订阅变得移动优雅——无需进入Web网页选择操作,全程可配置完成后通过机器人指令操作自动后台订阅,并依据MoviePilot强大的订阅识别整理功能自动入库整理。
📋 核心工作流
⚠️ 重要说明
小水滴希望做成一个纯机器人界面的115网盘资源中转工具,让接收和分享在前端界面极致的简单简单再简单一点。项目仅AI编写学习测试试玩,可永久免费拉取试玩,避免过度分享玩法所以并不开源供网友复制、下载、二次编辑。请勿国内平台宣传!
核心功能
多网盘管理 基础
多115账号扫码登陆参与订阅转存,支持多网盘账号同时管理。
万能解析 基础
自动解析转存tg分享频道的所有隐藏链接,包含115分享链接、磁力链接、Ed2k链接。
清理神器 基础
Emby删除节目联动删除网盘源文件,发现入库污染资源及时清理。
快捷搜索 /s
聚合搜索自有网盘的所有资源、盘搜资源、影巢资源、tg分享频道历史资源。
多元分享 /se /export
/se精准搜索自有网盘内的资源自动生成Ed2k分享链接,/export 生成秒传链接分享。
精准订阅 重点推荐
通过搜索订阅、转发随手订阅、榜单一键订阅,基于MoviePilot订阅列表规则搜刮最优版本拆包订阅。
频道监控 永v专属
批量一键添加tg监控频道,监控频道消息全转存,批量添加全转存资源识别词过滤。
水滴众筹
上下游入库接力,上游通过webhook或实时消息频道发送给下游秒入库,下游批量设置识别词过滤。上游可添加n个下游,下游可添加多个上游。
入库即分享
监控网盘入库资源自动生成整部剧集或单集的115分享链接,通过tg机器人、tg频道、webhook上下游分享做多渠道分享。
入库即刻302观看
MP转发入库的资源整理后可通过webhook通知emby-nginx实时生成strm并刷新海报墙提取文件媒体信息,建议选择emby-nginx自带的实时监控,逻辑最完善。
秒传链接分享
生成115网盘的秒传分享链接,可远程分享在tg群/频道或下游小水滴使用者。秒传链接的优势:不用全量下载文件生成,不会被115网盘禁止分享。
其他功能
融入盘搜,主动驱动MP整理,隔离pt订阅防止污染pt入库资源。后台自动115签到、影巢签到等。
机器人指令速查
🔍 资源搜索
/s 文件名称
聚合搜索聚合搜索以下来源的影视资源:自己的115网盘、盘搜站点、TG分享频道资源。示例:/s 流浪地球
/se 文件名称
ED2K链接搜索特定资源并直接生成ED2K下载链接,适合易被和谐的资源或需要离线下载的资源。示例:/se 完美世界 192集
/bd
热门榜单查看当前热门影视资源推荐列表。
📺 订阅功能
/mp
订阅列表查看当前所有已经添加的影视订阅任务。
/mpsearch 关键词
搜索订阅搜索可订阅的影视资源。示例:/mpsearch 鱿鱼游戏
/mpadd 关键词
添加订阅搜索影视资源并直接添加为自动追更订阅。示例:/mpadd 鱿鱼游戏
/mpdel 订阅名称
删除订阅删除已经添加的订阅任务。
/mprefresh
刷新订阅手动刷新所有订阅资源并检查是否有更新。
/sync
手动追更立即执行一次订阅更新任务。
🎬 Emby 管理
/embyx
高危操作开启Emby删除窗口:有效时间5分钟,最大操作30次删除。
/embyc
状态查看查看当前Emby删除窗口状态以及剩余操作次数。
⚙️ 识别词管理
/a
Webhook过滤管理企业微信、Webhook推送的资源识别词过滤转存。
/ta
TG频道过滤管理Telegram频道资源识别词过滤转存。
📡 频道管理
/listch
频道管理查看和批量添加或删除的Telegram资源频道。
/sk
盘搜管理管理用于盘搜资源的TG频道来源。
快速部署
准备工作
在开始部署前,请确保已完成以下准备:
- 已安装 Docker 和 Docker Compose(支持 NAS、服务器或个人电脑)
- 设置好科学网络
- 创建一个用于存放数据的
data目录:mkdir -p wx2tg/data
目录结构示例:
wx2tg/
└── data/方式一:Docker CLI 启动
docker run -d \
--name wx2tg \
--restart unless-stopped \
-p 8608:8608 \
-p 8609:8609 \
-e TZ="Asia/Shanghai" \
-e CONFIG_FILE="/data/config.json" \
-e WEBHOOK_EXTERNAL_PORT="8609" \
-v /vol1/v1000/data:/data \
-v /vol1/v1000/strm:/strm \
maybebe/wx2tg:beta方式二:Docker Compose 启动(推荐)
创建 docker-compose.yml 文件:
version: '3.8'
services:
wx2tg:
image: maybebe/wx2tg:beta
container_name: wx2tg
restart: unless-stopped
ports:
- "8608:8608" # 管理后台界面
- "8609:8609" # webhook专门反代端口 端口隔离保证安全
environment:
- TZ=Asia/Shanghai
- CONFIG_FILE=/data/config.json
- WEBHOOK_EXTERNAL_PORT=8609
volumes:
- /vol1/v1000/data:/data # 程序配置文件及数据
- /vol1/v1000/strm:/strm # Emby 的 strm 映射文件夹访问与登录
- 访问地址:
http://局域网IP:8608 - 默认账号:
admin - 默认密码:
admin123
⚠️ 建议首次登录后立即修改默认密码,确保系统安全。进入配置界面依据提示配置所有功能开关。
端口映射说明
- 8608:8608 - 管理后台访问端口
- 8609:8609 - webhook专门反代端口,端口隔离保证安全
⚠️ 注意:两个端口功能不同,不要混淆。8609端口需要在emby-nginx的strm配置中使用以接收入库通知。
玩法推荐
🌟 终极自动化方案
多多的添加资源来源方上游分享大佬、tg频道,通过MoviePilot成熟的订阅整理入库规则去订阅追更网盘分享的最优视频格式版本,入库后实时生成海报墙观看。如果发现入库污染资源,及时通过Emby删除网盘源文件清理,重新洗版订阅搜刮。
🔗 小水滴 + emby-nginx 串联玩法
小水滴与emby-nginx是完美搭档,推荐以下串联流程:
- 在小水滴配置TG频道监控和订阅规则
- 资源自动转存至115网盘
- MoviePilot自动识别、整理、入库
- 通过webhook通知emby-nginx实时生成strm文件
- emby-nginx自动刷新Emby海报墙并提取文件媒体信息
- Emby中观看视频时通过302直链播放
- 发现污染资源直接在Emby中删除,联动清除网盘源文件
💡 进阶技巧
- 上下游接力:搭建资源共享网络,上游分享大佬的资源秒级同步到下游
- 识别词过滤:精细配置识别词,精准过滤不需要的资源格式
- 多渠道分享:入库即分享,让资源流转效率最大化
- 隔离PT订阅:防止污染PT入库资源,保持网盘和PT双轨并行
- 洗版订阅:利用MP的成熟规则持续追更最优版本,自动替换旧版
配合工具
Emby 服务器部署
docker run -d \
--name embyserver \
-e PUID=0 \
-e PGID=0 \
-e TZ=Asia/Shanghai \
-v /vol1/1000/emby/config:/config \
-v /vol1/1000/emby-nginx/strm:/strm \
-p 8096:8096 \
--restart unless-stopped \
linuxserver/emby:latest
version: "3.8"
services:
embyserver:
image: linuxserver/emby:latest
container_name: embyserver
environment:
- PUID=0
- PGID=0
- TZ=Asia/Shanghai
volumes:
- /vol1/1000/emby/config:/config
- /vol1/1000/emby-nginx/strm:/strm
ports:
- 8096:8096
restart: unless-stopped
Docker Copilot 部署
docker run -d \
--name dockercopilot \
--restart always \
--privileged \
--network bridge \
-p 12712:12712 \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /vol1/1000/data:/data \
-e TZ=Asia/Shanghai \
-e DOCKER_HOST=unix:///var/run/docker.sock \
-e secretKey=aa123456 \
0nlylty/dockercopilot:latest
version: '3.8'
services:
dockercopilot:
image: 0nlylty/dockercopilot:latest
container_name: dockercopilot
restart: always
privileged: true
network_mode: bridge
ports:
- "12712:12712"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /vol1/1000/data:/data
environment:
- TZ=Asia/Shanghai
- DOCKER_HOST=unix:///var/run/docker.sock
- secretKey=aa123456
CloudDrive2 容器配置
docker run -d \
--name clouddrive2 \
--restart unless-stopped \
-e TZ=Asia/Shanghai \
-e CLOUDDRIVE_HOME=/Config \
-v /vol1/1000/CloudNAS:/CloudNAS:shared \
-v /vol1/1000/docker/clouddrive2/config:/Config \
-v /vol1/1000/emby-nginx/strm:/strm:shared \
--device /dev/fuse \
--privileged \
--pid=host \
-p 19798:19798 \
cloudnas/clouddrive2:latest
version: '3.8'
services:
clouddrive2:
image: cloudnas/clouddrive2:latest
container_name: clouddrive2
restart: unless-stopped
environment:
- TZ=Asia/Shanghai
- CLOUDDRIVE_HOME=/Config
volumes:
- /vol1/1000/CloudNAS:/CloudNAS:shared
- /vol1/1000/docker/clouddrive2/config:/Config
- /vol1/1000/emby-nginx/strm:/strm:shared
devices:
- /dev/fuse
privileged: true
pid: host
ports:
- "19798:19798"
MoviePilot 容器配置
docker run -d \
--name moviepilot \
--hostname moviepilot-v2 \
--restart always \
-it \
-p 3000:3000 \
-v /vol1/1000/moviepilot-v2/config:/config \
-v /vol1/1000/moviepilot-v2/core:/moviepilot/.cache/ms-playwright \
-v /var/run/docker.sock:/var/run/docker.sock:ro \
-v /vol1/1000/CloudNAS:/CloudNAS:rslave \
-v /vol2/1000/Download:/Download \
-e NGINX_PORT=3000 \
-e PORT=3001 \
-e PUID=0 \
-e PGID=0 \
-e UMASK=000 \
-e TZ=Asia/Shanghai \
-e SUPERUSER=admin \
-e PROXY_HOST=http://192.168.x.x:7890 \
jxxghp/moviepilot-v2:latest
version: '3.8'
services:
moviepilot:
image: jxxghp/moviepilot-v2:latest
container_name: moviepilot
hostname: moviepilot-v2
restart: always
tty: true
stdin_open: true
ports:
- "3000:3000"
volumes:
- /vol1/1000/moviepilot-v2/config:/config
- /vol1/1000/moviepilot-v2/core:/moviepilot/.cache/ms-playwright
- /var/run/docker.sock:/var/run/docker.sock:ro
- /vol1/1000/CloudNAS:/CloudNAS:rslave
- /vol2/1000/Download:/Download
environment:
- NGINX_PORT=3000
- PORT=3001
- PUID=0
- PGID=0
- UMASK=000
- TZ=Asia/Shanghai
- SUPERUSER=admin
- PROXY_HOST=http://192.168.x.x:7890
emby-nginx容器配置
docker run -d \
--name emby-nginx \
-p 7001:7001 \
-p 8022:8001 \
-p 9527:9527 \
-p 5002:5002 \
-v /vol1/1000/emby-nginx/strm:/strm \
-v /vol1/1000/emby-nginx/backup:/app/backup \
--network bridge \
--restart unless-stopped \
yantaocheng/emby-nginx:latest
version: '3.8'
services:
emby-nginx:
image: yantaocheng/emby-nginx:latest
container_name: emby-nginx
ports:
- "7001:7001"
- "8022:8001"
- "9527:9527"
- "5002:5002"
volumes:
- /vol1/1000/emby-nginx/strm:/strm
- /vol1/1000/emby-nginx/backup:/app/backup
network_mode: bridge
restart: unless-stopped
Clash Meta 容器配置
docker run -d \
--name clash-meta \
--restart unless-stopped \
-p 7890:7890 \
-p 7891:7891 \
-p 9090:9090 \
-v /vol1/1000/clash-meta:/root/.config/clash \
-e TZ=Asia/Shanghai \
ghcr.io/metacubex/clash-meta:latest
version: '3.8'
services:
clash-meta:
image: ghcr.io/metacubex/clash-meta:latest
container_name: clash-meta
restart: unless-stopped
ports:
- "7890:7890" # HTTP 代理
- "7891:7891" # SOCKS5 代理
- "9090:9090" # 控制面板
volumes:
- /vol1/1000/clash-meta:/root/.config/clash
environment:
- TZ=Asia/Shanghai