用于视频下载的 Telegram 机器人

一个拥有 102 个节点的 Telegram 机器人,支持从 50+ 平台进行视频抓取、ffmpeg 转码、S3 存储、订阅管理和多格式交付。
挑战
用户需要一种简单的方式从 YouTube、Instagram、TikTok、Vimeo、Facebook、Twitter 以及数十个其他平台下载视频,并以首选格式接收。跨多个平台管理下载、格式、文件大小和订阅需要大量的编排。
解决方案
我们构建了一个Telegram 机器人(102 个节点),运行在 n8n 上,具备完整的 ffmpeg 处理、平台检测、订阅管理和基于 S3 的交付:
- Telegram 触发器:用户发送 URL 并立即收到格式选择选项
- 平台检测:从 URL 自动检测视频平台
- yt-dlp 集成:通过 shell 执行 yt-dlp 提取元数据、可用格式并下载视频/音频
- ffmpeg 转码:在格式之间转换(MP4、WEBM、MKV、AVI、MOV、GIF)并处理分辨率、压缩和音频提取
- 格式选择:用户从可用格式列表中选择,附带时长、分辨率和大小信息
- S3 存储:下载的文件上传到 S3,生成带过期时间的签名 URL
- 订阅 webhook:用户订阅频道/平台并在有新内容时自动接收更新
- MongoDB 持久化:存储用户资料、下载、订阅历史和命令日志
- 错误处理:支持 50+ 平台,对不支持的 URL、网络错误和内容限制提供稳健的回退
- 管理员监控:通过 Telegram 向 Killia 团队发送下载报告和错误通知
结果
- 支持从 50+ 视频平台下载
- 完整的 ffmpeg 转码管道处理任何格式转换
- 订阅系统自动推送内容更新
- S3 + 签名 URL 确保安全的临时文件访问
- 102 个节点管理命令、格式、订阅、下载和错误处理
业务问题
- 从不同平台下载视频需要不同的工具和方法
- 平台之间的格式转换复杂,需要 ffmpeg 专业知识
- 手动管理跨多个平台的文件大小和交付
- 没有针对频道或内容平台的自动订阅跟踪
主要优势
- 一个 Telegram 界面支持 50+ 视频平台
- 自动格式选择并附元数据(分辨率、时长、大小)
- ffmpeg 转码处理任何格式转换
- S3 存储和签名 URL 确保安全的临时访问
- 订阅系统自动推送内容更新
- 完整的命令历史和用户资料存储在 MongoDB 中
应用详情
- 带自定义命令和回复键盘的 Telegram 机器人
- yt-dlp 用于元数据提取和下载
- ffmpeg 用于格式转换(MP4、WEBM、MKV、AVI、MOV、GIF、音频)
- S3 存储和签名 URL(可配置过期时间)
- MongoDB 用于用户资料、下载、订阅和日志
- 订阅 webhook 实现内容自动更新
- 通过 Telegram 进行管理员监控和错误通知