【项目案例】Telegram 群视频自动整理下载器:选群、按标题分类、持续监听新视频

阅读约 4 分钟
【项目案例】Telegram 群视频自动整理下载器:选群、按标题分类、持续监听新视频

「项目案例」系列:我做过的定制项目,写清楚客户要什么、解决了什么问题。这类项目不提供源码,文中截图都是演示模式的虚构数据,不涉及任何客户信息。有类似需求可以直接联系我,文末有方式。

客户的需求

客户在 Telegram 里加了好几个资料群,群里持续有人发视频。时间一长,问题很明显:

  • 视频散落在聊天记录里,想找某一个要翻很久;
  • 一个一个点下载太慢,量一大根本做不完;
  • 保存下来也是一堆乱七八糟的文件名,不知道哪个是哪个;
  • 群里新发的视频,希望能自动保存,不用一直盯着。

我做的东西

一个在客户自己电脑上运行的小工具,用浏览器打开页面操作。账号用客户自己的 Telegram 账号登录,登录凭证只保存在这台电脑上,不经过任何第三方服务器。

第一步:登录,选群,设规则

登录后会自动获取你加入的群和频道列表,在下拉框里选一个。然后设三条规则:

  • 标题怎么识别:默认取消息文字里【】或《》里的名字,没有就取第一行;也可以改成“第一行”或“整段”;
  • 文件夹怎么分:按“群名 / 标题”,或者“群名 / 年份 / 标题”,或者“群名 / 画质 / 标题”;
  • 要哪些视频:按画质勾选(4K、2K、1080P、720P……),设置最小和最大体积(默认最小 50MB,用来跳过预告和短视频),还能只要某天之后发的。

第二步:扫描,预览,改标题

选群、设规则、扫描后的预览:标题、年份、画质、大小、发布时间、保存路径一目了然

图:扫描后的预览(演示模式,群名和视频标题都是虚构的)。

点“扫描”后,所有符合条件的视频会列成一张表:

  • 标题、年份、画质是从消息文字里自动识别出来的;
  • 每条的保存路径提前显示,不想要的取消勾选;
  • 识别得不对的,标题可以直接在表格里改;
  • 每条有封面缩略图,还能点“看”直接播放预览,再决定要不要下;
  • 已经下载过的会标出来,不会重复下。

一条消息里发了多个视频(相册)时,只有一条带文字,其余的会自动沿用那条的标题。

第三步:下载,还能持续监听

下载进度和日志

图:下载完成后的日志,每个视频保存到了哪个文件夹一清二楚。

  • 一个大文件会切成几段同时下载,比单线程快;
  • 下载中的文件先存成临时的 .part,下完再改名,中途断了不会留下一个半截文件冒充完整;
  • 已下载的消息记在本地,重启也不会重复下载;名字相同但不是同一个文件的,会自动加上消息编号,不会覆盖;
  • 遇到 Telegram 的限流会自动等待再继续;
  • 每个视频的文件夹里还有一个“信息”文本,记着原始文字、发布时间和消息链接,以后好追溯;
  • 勾上“持续监听”之后,这个群里新发的视频会自动下载,日志里能看到每一条。

解决了什么问题

以前现在
在聊天记录里翻视频扫描一次,列成表,按画质、体积、日期筛选
一个一个点下载勾选后批量下载,大文件分段并发
保存下来文件名乱按标题、年份、画质自动建文件夹,标题可手改
群里有新视频要自己盯着打开“持续监听”,新视频自动下载
重复下、下一半断了记录已下载,临时文件下完才改名

隐私和使用边界

  • 跑在你自己的电脑上,不依赖我的服务器,我也看不到你的账号和文件;
  • Telegram 的登录凭证和接口密钥都只放在本机,等同于账号密码,不要发给任何人;
  • 只应该下载你有权保存和使用的内容,比如自己加入的、允许个人备份的资料群。把别人有版权的视频搬到自己的产品里会有法律风险,这一点我会在交付时跟客户说清楚。

技术栈和交付

用 Python 写,Telegram 部分用 Telethon,网页界面是本地运行的单页。交付内容是整个工具加一份使用说明(怎么申请自己的接口密钥、怎么登录、怎么分类)。

想要类似的工具?

这个项目不提供源码,但同类的“Telegram 自动化”我可以按你的需求来做:群消息整理、定时保存、关键词提醒、自动归档、给群里的消息加通知……都可以聊。

  • 官网留言:kuaibuild.com(说一句想做什么就够)
  • Telegram:@kuaibuild
想要类似的东西?网站、Telegram 机器人、运维工具,说说你的需求。
发布需求

有想法或问题?去留言板留言 →