Media-Download-Helper 项目简介

Media-Download-Helper

完整部署教程请参考:Media-Download-Helper 完整部署教程

V2.0.0 版本说明

鉴于公网 IP 难以获取,而且将内部服务直接暴露到公网环境,安全系数较低,部署难度较大等几个原因,因此在 v2.0.0 版本中,取消了 http server 模块,由 media download helper 直接向 Google Apps Script 主动发起 get 请求进行轮询获取磁力链接信息。去除了公网 ip 的依赖,提高安全性的同时也增加了部署的便利性。

当然,v2.0.0 并非完美的方案,它同样存在着弊端,就是轮询请求 Google Apps Script 部署的在线 Web 应用的间隔不好把控。目前版本设置的轮询间隔为 1 分钟,这也就意味着 Google Apps Script 的 web 应用一天需要相应 1440 次请求,如果可以,请考虑使用更长的轮询间隔,避免薅羊毛过狠导致后期不可用的情况出现。

还有一点,v2.0.0 版本中,Google Apps Script 仅仅通过脚本属性字段来缓存接收到的 post 数据,这里也存在着未知的风险。

如果条件允许的情况下,还是推举使用 v1.x.x 版本,由 google apps script 响应 post 请求时,直接将数据推送到 Media Download Helper 内置的 http server,避免了缓存和并发的问题。

当然,轻度使用场景下,v2.0.0 版本也是可以接受的。

开发目的

玩个人影视服务器的朋友,应该都知道 Jeckett,Sonarr,Radarr 这些自动下载工具,只要我添加了对应的 PT 站,它们就能根据提交的请求进行检索下载。但是部分资源可能不在 PT 站,尤其是部分生肉,外网的磁力链接发布的更快一些,例如 TG 上的一些频道。Radarr 和 Sonarr 不支持直接使用磁力链接进行下载,在外也不方便使用这些内网的服务。

再者有部分朋友也不想弄 PT 和上面说的那些服务,只是偶尔有部分资源想下载下来观看一下,完整部署自动化追剧工具就显得有点大材小用了。

所以才想开发一个小工具,借助免费的工具就可以实现在外远程进行下载,同时还可以在下载完成后通过电报机器人推送影片信息,方便查看下载信息。

项目简介

“Media Download Helper” 是一个基于电报机器人,Google Apps Script 和 qbittorrent 的多媒体下载助手。

用户可通过向 tg bot 发送影片的磁力链接,通过部署的 Google Apps Script 在线 web 应用转发至 Media Download Helper。Media Download Helper 将通过 qbittorrent web API 下载该磁力链接,并支持查重功能,根据磁链中的 hash 值判重,如果 qbittorrent 中已存在该 hash 值的 torrent,则不再重复下载,通过 tg bot 返回 “xxxxxx 已存在,请勿重复下载”给用户。

除了提供下载功能以外,Media Download Helper 还支持在下载完成后,根据磁力链接中的文件名,对 TMDB 数据库进行检索,将检索到的影片信息通过 tg bot 返回给用户,具体效果图可见下方章节。( 说句题外话,这个推送的效果,本来是用在我另一个辅助 Emby 私人服务器针对入库影片进行推送发布消息的,感兴趣的朋友也可以试用一下,给点建议,项目地址:https://github.com/Ccccx159/watchdog_for_Emby )

各模块交互图

模块交互图

依赖项

仅在 Python 3.11 环境下测试通过:

  • python 3.11 (External module: requests, python-qbittorrent, colorlog)
  • Telegram Bot and it’s Token (鉴于电报资源丰富,尤其 @RarbgPro 频道发布的公开磁链,以及强大的 bot 功能,因此将用户交互客户端选择为 Telegram)
  • Google Apps Script (构建在线脚本,并注册为电报机器人的 webhook)
  • Qbittorrent with WebUI (磁链下载工具)
  • TMDB API Token (影视资源数据库,用于下载完成后进行检索,并传递相关信息给用户)

这里需要注意,Simple Http Server 是在局域网内部部署的服务,如果没有将其暴露到公网环境下,那么 Google Apps Scrip 的在线脚本则无法访问 Simple Http Server 。所以,在部署在线脚本时,需要将 Simple Http Server 暴露到公网环境下。(此处可能存在安全风险,建议使用 https 和 cdn 来提高安全系数)

完整部署教程请参考:Media-Download-Helper 完整部署教程

环境变量说明

环境变量说明
QBIT_HOSTQbittorrent WebUI host 地址
QBIT_USERQbittorrent WebUI username 用户名
QBIT_PASSQbittorrent WebUI password 密码
BOT_TOKENTelegram Bot Token
TMDB_API_TOKENTMDB API Token
GOOGLE_APPS_SCRIPT_URLGoogel Apps Script 部署的在线 web 应用网址
LOG_LEVEL(可选) 日志等级,默认 WARNING
LOG_EXPORT(可选) 日志导出到文件,默认 False
LOG_PATH(可选) 日志导出路径,默认 /var/tmp/media_dlhelper_logs/

效果图

效果图

效果图

参考链接

  • 23
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值