使用帮助 #
这里介绍 Save Any Bot 的一些功能和使用方法, 如果你没有在这里找到你需要的内容, 另请参阅 配置说明 或前往 Github Discussions 提问.
转存文件 #
要使用 Bot 的转存 Telegram 文件功能, 需要向 Bot 发送或转发以下类型的消息.
- 文件或媒体消息, 如图片, 视频, 文档等
- Telegram 消息链接, 例如:
https://t.me/acherkrau/1097. 即使频道禁止了转发和保存, Bot 依然可以下载其文件. - Telegra.ph 的文章链接, Bot 将下载其中的所有图片
静默模式 (silent) #
使用 /silent 命令可以开关静默模式.
默认情况下不开启静默模式, Bot 会询问你每个文件的保存位置.
开启静默模式后, Bot 会直接保存文件到默认位置, 无需确认.
在开启静默模式之前, 需要使用 /storage 命令设置默认保存位置.
存储规则 #
允许你为 Bot 在上传文件到存储时设置一些重定向规则, 用于自动整理所保存的文件.
见: #28
目前支持的规则类型:
- FILENAME-REGEX
- MESSAGE-REGEX
- IS-ALBUM
添加规则的基本语法:
“规则类型 规则内容 存储名 路径”
注意空格的使用, 语法正确 bot 才能解析, 以下是一条合法的添加规则命令:
/rule add FILENAME-REGEX (?i)\.(mp4|mkv|ts|avi|flv)$ MyAlist /视频
此外, 规则中的存储名若使用 “CHOSEN” , 则表示存储到点击按钮选择的存储端的路径下
规则类型:
FILENAME-REGEX #
根据文件名正则匹配, 规则内容要求为一个合法的正则表达式, 如
FILENAME-REGEX (?i)\.(mp4|mkv|ts|avi|flv)$ MyAlist /视频
表示将文件名后缀为 mp4,mkv,ts,avi,flv 的文件放到名为 MyAlist 存储下的 /视频 目录内 (同时受配置文件中的 base_path 影响)
MESSAGE-REGEX #
同上, 但是是根据消息本身的文本内容正则匹配
IS-ALBUM #
匹配相册消息 (media group), 规则内容只能为 true 或 false.
规则中的路径若使用 “NEW-FOR-ALBUM” , 则表示为该组消息新建一个文件夹来存储它们. 见: https://github.com/krau/SaveAny-Bot/issues/87
例如:
IS-ALBUM true MyWebdav NEW-FOR-ALBUM
这将会把以 media group 形式发送的消息保存到名为 MyWebdav 的存储下, 并为每个相册新建一个文件夹(由第一个文件生成)来存储它们.
监听聊天 #
该功能需开启 UserBot 集成.
监听指定聊天的消息, 并自动保存到默认存储中, 遵从存储规则, 并且可以设置过滤器来只保存匹配的消息.
监听聊天:
/watch <chat_id/username> [filter]
取消监听:
/unwatch <chat_id/username>
过滤器类型:
msgre #
正则匹配消息文本, 例如:
/watch 12345678 msgre:.*hello.*
这将会监听 ID 为 12345678 的聊天, 并且只保存消息文本中包含 “hello” 的消息.
直接下载链接 #
使用 /dl 命令可以直接下载一个或多个 HTTP/HTTPS 链接的文件到存储中.
/dl <url1> [url2] [url3] ...
示例:
/dl https://example.com/file.zip
/dl https://example.com/file1.zip https://example.com/file2.zip
Bot 会验证链接格式, 然后让你选择目标存储位置.
Aria2 下载 #
该功能需要在配置文件中启用 Aria2 并配置 RPC 连接.
使用 /aria2dl 命令可以通过 Aria2 下载管理器下载文件, 支持 HTTP/HTTPS、FTP、BitTorrent 等多种协议.
/aria2dl <uri1> [uri2] [uri3] ...
示例:
# 下载 HTTP 链接
/aria2dl https://example.com/file.zip
# 下载磁力链接
/aria2dl magnet:?xt=urn:btih:...
# 下载种子文件 (需要先上传 .torrent 文件)
/aria2dl https://example.com/file.torrent
配置 Aria2:
在 config.toml 中添加:
[aria2]
enable = true
url = "http://localhost:6800/jsonrpc"
secret = "your-rpc-secret" # 如果配置了 rpc-secret
remove_after_transfer = true # 转存完成后删除本地文件
yt-dlp 视频下载 #
该功能需要在系统中安装 yt-dlp 命令行工具.
使用 /ytdlp 命令可以下载支持的视频网站的视频和音频, 支持 YouTube、Bilibili、Twitter 等 1000+ 个网站.
/ytdlp <url1> [url2] [flags...]
示例:
# 基本下载
/ytdlp https://www.youtube.com/watch?v=dQw4w9WgXcQ
# 下载多个视频
/ytdlp https://www.youtube.com/watch?v=video1 https://www.youtube.com/watch?v=video2
# 使用自定义参数
/ytdlp https://www.youtube.com/watch?v=dQw4w9WgXcQ -f best
/ytdlp https://www.youtube.com/watch?v=dQw4w9WgXcQ --extract-audio --audio-format mp3
常用参数:
-f <format>: 指定下载格式 (如best,worst,bestvideo+bestaudio)--extract-audio: 提取音频--audio-format <format>: 音频格式 (如mp3,m4a,wav)--write-sub: 下载字幕--write-thumbnail: 下载缩略图
更多参数请参考 yt-dlp 文档.
存储间传输 #
使用 /transfer 命令可以在不同存储之间直接传输文件, 无需经过 Telegram.
/transfer <source_storage>:/<source_path> [filter]
参数说明:
source_storage: 源存储名称source_path: 源路径filter: 可选的正则表达式过滤器, 只传输匹配的文件
示例:
# 传输整个目录
/transfer local1:/downloads
# 传输指定路径的文件
/transfer alist1:/media/photos
# 只传输 mp4 文件
/transfer webdav1:/videos ".*\.mp4$"
# 传输图片文件
/transfer local1:/pictures "(?i)\.(jpg|png|gif)$"
Bot 会:
- 列出源路径下的所有文件
- 应用过滤器 (如果提供)
- 显示文件数量和总大小
- 让你选择目标存储
- 让你选择目标目录 (如果该存储配置了目录)
- 开始传输任务
注意:
- 源存储必须支持列举和读取功能
- 目标存储必须支持写入功能
- 传输过程显示实时进度
- 支持取消正在进行的传输任务
转存 Telegram 之外的文件 #
除了 Telegram 上的文件, Bot 还可通过 JavaScript 插件或内置解析器来支持转存其他网站的文件.
查看贡献解析器文档了解详情
只需向 Bot 发送符合解析器要求的链接即可使用, 当前内置的解析器:
- Kemono