尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

QClaw:打造全自动动漫资源智能追踪与推送系统

QClaw:打造全自动动漫资源智能追踪与推送系统 1. 项目概述从“追番”到“智能追踪”的进化作为一个追了十几年动漫的老二次元我太懂那种每周定点蹲守更新、在各个平台间反复横跳、生怕错过任何一部心头好的感觉了。更别提那些还在连载中的作品追着追着就忘了看到第几集或者新一季开播了却浑然不知。传统的追番方式无论是手动记录、依赖平台推送还是加入各种社群获取信息都显得被动且碎片化。直到我开始接触并折腾起QClaw才真正意义上把“追番”这件事从一项需要投入精力的“劳动”变成了一个全自动、智能化的“系统”。QClaw这个名字最近在动漫爱好者的小圈子里热度不低。简单来说它是一个开源的、高度可定制的动漫资源智能追踪与聚合工具。它的核心能力是像一个不知疲倦的“数字管家”24小时不间断地帮你监控你关注的动漫作品包括新番、连载中番剧、甚至是一些老番的BD资源一旦有符合你设定条件的新资源出现比如最新一集更新、特定字幕组的版本、指定画质它就能自动捕获并通过你预设的渠道如Telegram Bot、邮件、Webhook等第一时间推送给你甚至能联动下载工具实现“推送即下载”的完全自动化流水线。这个项目的魅力在于它把控制权完全交还给了用户。你不再受限于任何一个视频平台的片单和推送算法而是基于你自己的喜好构建一个专属的、精准的“情报网”。无论是想追当季热门新番还是想补某部经典老番的1080p BDRipQClaw都能帮你盯得死死的。接下来我就结合自己从零搭建、配置到深度使用的全过程拆解如何玩转QClaw打造一个真正属于你自己的、省心又高效的动漫智能追踪与推送系统。2. 核心设计思路与组件选型解析2.1 为什么是QClaw核心优势与定位在开源生态里与资源追踪相关的工具并不少比如更通用的RSS聚合器或者一些PT站的内置工具。但QClaw在动漫垂直领域做到了极致的专注和易用性这是它脱颖而出的关键。首先它原生为动漫资源优化。其内置的解析器Parser和过滤器Filter对动漫资源的命名规则如[Lilith-Raws] 鬼灭之刃 刀匠村篇 - 10 [Baha][WEB-DL][1080p][AVC AAC][CHT][MP4]有非常好的支持能够精准提取出番剧标题、集数、字幕组、分辨率、编码格式等元数据。这比使用通用RSS阅读器去匹配复杂多变的资源标题要可靠得多。其次高度可定制的订阅规则。你可以基于番剧的Bangumi ID、中文名、别名等多种方式进行订阅。更重要的是你可以为每一条订阅规则配置精细的过滤条件例如只接收特定字幕组如“喵萌奶茶屋”、“Lilith-Raws”的版本只接收1080p及以上画质或者排除包含“先行版”、“生肉”的资源。这种粒度控制确保了推送信息的绝对精准过滤掉大量无效噪音。最后灵活的推送与联动能力。QClaw本身不负责下载它是一个高效的“侦察兵”和“通知中心”。它可以将获取到的资源信息通过多种方式目前主要支持Telegram Bot通过Webhook也可轻松集成钉钉、Discord等推送给你。同时它能将包含资源真实下载链接如磁力链、种子链接的消息传递给下载工具如qBittorrent、Transmission触发自动下载。这种“监测-通知-执行”的分离设计使得系统架构清晰各司其职非常稳定。2.2 系统架构全景与组件分工一个完整的QClaw智能追踪系统通常由以下几个核心组件构成理解它们的关系是顺利部署的关键QClaw 核心服务这是系统的大脑。它负责执行定时任务根据你的订阅规则去指定的“资源站”如蜜柑计划、动漫花园的RSS抓取信息进行解析和过滤最后触发推送。它通常以Docker容器或Python脚本的形式运行在服务器上。消息推送中间件这是系统的“嘴巴”。目前最主流、体验最好的是Telegram Bot。你需要创建一个Telegram Bot并从QClaw获取它的API Token和Chat ID进行配置。当QClaw发现新资源时就会调用Telegram的接口将消息发送到你的私聊或群组。下载客户端这是系统的“手”。负责实际的文件下载任务。推荐使用qBittorrent因为它提供了完善的Web API可以方便地被QClaw调用。QClaw在推送消息的同时可以将下载链接直接发送给qBittorrent实现自动添加下载任务。资源站/数据源这是系统的“眼睛”。QClaw需要从这些站点获取原始的更新信息。通常以RSS订阅地址的形式提供。你需要寻找稳定、更新及时的动漫RSS源进行配置。运行环境通常是一台拥有公网IP的VPS虚拟私人服务器或家里的NAS网络附加存储用于24小时不间断运行QClaw核心服务和下载客户端。整个工作流可以概括为资源站更新 - QClaw定时抓取并过滤 - 通过Telegram Bot推送通知 - 同时/自动将链接发送至qBittorrent开始下载。注意在选择资源站RSS源时请务必尊重源站的规定不要进行高频请求避免给源站带来压力。优先选择那些明确提供了公开RSS服务的站点。3. 从零开始环境部署与核心配置详解3.1 基础运行环境搭建我强烈推荐使用Docker和Docker Compose来部署整个系统。这能解决环境依赖的麻烦实现一键部署和迁移管理起来也异常清晰。假设你已经在你的Linux服务器如Ubuntu 22.04上安装好了Docker和Docker Compose。首先我们创建一个项目目录并编写核心的docker-compose.yml文件。这个文件将定义QClaw和qBittorrent两个服务。version: 3.8 services: qbittorrent: image: linuxserver/qbittorrent:latest container_name: qbittorrent environment: - PUID1000 - PGID1000 - TZAsia/Shanghai - WEBUI_PORT8080 volumes: - ./qbittorrent/config:/config - ./qbittorrent/downloads:/downloads # 下载保存路径 ports: - 8080:8080 # Web管理界面 - 6881:6881 - 6881:6881/udp # BT监听端口 restart: unless-stopped networks: - anime_network qclaw: image: ghcr.io/qclaw/qclaw:latest container_name: qclaw environment: - TZAsia/Shanghai volumes: - ./qclaw/config:/app/config - ./qclaw/data:/app/data depends_on: - qbittorrent restart: unless-stopped networks: - anime_network networks: anime_network: driver: bridge关键配置解析PUID/PGID设置为你的Linux用户ID和组ID用于保证容器内生成的文件拥有正确的权限。可以通过id $USER命令查看。卷Volumes映射这是数据持久化的关键。将容器内的配置和下载目录映射到宿主机的目录下即使容器删除你的设置和下载的文件也不会丢失。网络Networks创建一个独立的桥接网络anime_network让qClaw和qBittorrent两个容器在同一个内部网络内互通可以通过服务名如qbittorrent直接访问无需复杂的IP配置。执行docker-compose up -d两个核心服务就会在后台启动。接下来是详细的配置环节。3.2 QClaw 核心配置实战QClaw启动后其配置文件会生成在你映射的./qclaw/config目录下。核心配置文件是config.toml。我们需要对其进行编辑。首先配置资源源Feeds。这里以“蜜柑计划”的RSS为例它是一个非常优秀的动漫资讯与资源聚合站。[[feeds]] name mikan url https://mikanani.me/RSS/MyBangumi?tokenYOUR_TOKEN type mikan interval 900 # 抓取间隔单位秒900秒15分钟 enable true实操心得token需要你在蜜柑计划网站注册账号后在“我的订阅”RSS页面获取。间隔时间interval不建议设置过短15-30分钟是一个既及时又不会对源站造成压力的选择。其次配置推送器Senders。这里以Telegram Bot为例。在Telegram中搜索BotFather发送/newbot指令按提示创建一个新的Bot并最终获得一个形如1234567890:ABCdefGHIjklMnOprSTUvwxYZ的API Token。与你刚创建的Bot发起对话发送任意一条消息如/start。在浏览器中访问https://api.telegram.org/botYourBOTToken/getUpdates将YourBOTToken替换为你的Token在返回的JSON信息中找到message.chat.id字段的值这就是你的Chat ID。然后在config.toml中添加[[senders]] name my_telegram type telegram token 1234567890:ABCdefGHIjklMnOprSTUvwxYZ # 替换为你的Bot Token chat_id 4567890123 # 替换为你的Chat ID最后配置下载器Downloaders使其能联动qBittorrent。访问你部署的qBittorrent的WebUIhttp://你的服务器IP:8080默认账号密码是admin/adminadmin。登录后务必在“设置”中修改默认密码在“设置” - “Web UI”中勾选“启用备用身份验证”并设置一个用户名和密码建议与默认密码不同。在QClaw的配置文件中添加[[downloaders]] name my_qbittorrent type qbittorrent host qbittorrent # 因为在同一Docker网络直接用服务名 port 8080 username 你设置的WebUI用户名 password 你设置的WebUI密码 category Anime # 可选在qBittorrent中为下载任务添加分类标签3.3 订阅规则与过滤器的艺术这是QClaw的灵魂所在。配置订阅Subscriptions和过滤器Filters决定了你收到什么、过滤掉什么。一个完整的订阅配置示例[[subscriptions]] name 追番列表 keywords [鬼灭之刃, 咒术回战, SPY×FAMILY] ignore_old true feeds [mikan] senders [my_telegram] downloaders [my_qbittorrent] [[subscriptions.filters]] type regex pattern .*(Lilith-Raws|喵萌奶茶屋|NC-Raws).* action accept [[subscriptions.filters]] type resolution value 1080p action accept [[subscriptions.filters]] type regex pattern .*(先行版|生肉|无字幕).* action reject配置逐行解析keywords: 订阅的关键词列表。QClaw会匹配资源标题中包含这些关键词的条目。支持中文、英文、日文原名。ignore_old: 设为trueQClaw只会处理首次启动后出现的新资源避免一次性推送大量历史记录。feeds/senders/downloaders: 关联之前定义的数据源、推送器和下载器。过滤器链过滤器按顺序执行。上述配置的逻辑是首先只接受标题中含有“Lilith-Raws”、“喵萌奶茶屋”或“NC-Raws”这些字幕组的资源。其次在上述结果中只接受分辨率包含“1080p”的资源。最后在前两步都通过的结果中拒绝标题里含有“先行版”、“生肉”或“无字幕”的资源。这种“先抓取意向字幕组和画质再排除不想要的版本”的过滤策略在实践中非常高效。你可以为不同的番剧或不同类型的资源比如新番和BDrip创建多个subscriptions块实现更精细的管理。4. 高级玩法与个性化定制4.1 基于Bangumi番组计划的精准订阅使用关键词订阅有时会误匹配或漏匹配。更精准的方式是利用Bangumi番组计划一个中文ACG数据库的ID进行订阅。QClaw内置了Bangumi支持。访问Bangumi网站搜索你想订阅的番剧例如“孤独摇滚”其URL可能是https://bgm.tv/subject/349887那么ID就是349887。在订阅配置中使用bangumi_id字段替代keywords[[subscriptions]] name 精准订阅示例 bangumi_id [349887, 362179] # 孤独摇滚和 莉可丽丝 的ID # ... 其他配置同上这种方式完全避免了因译名、简称不同导致的订阅失败是追求完美体验的必备技能。4.2 推送消息模板自定义默认的Telegram推送消息可能包含过多或过少的信息。你可以自定义推送模板只展示你最关心的内容。在config.toml的senders部分可以添加template字段[[senders]] name my_telegram type telegram token 你的Token chat_id 你的ChatID template 新番抵达 标题{{.Title}} 大小{{.Size}} 发布于{{.PublishDate}} 链接{{.MagnetLink}} 模板中使用Go模板语法可用变量包括.Title标题、.Size大小、.PublishDate发布时间、.MagnetLink磁力链接、.Episode集数等。这样每条推送都清晰明了符合你的阅读习惯。4.3 与自动化媒体库管理工具联动下载完成只是第一步。如果你的终极目标是构建一个家庭影音库那么可以让qBittorrent下载完成后自动触发后续流程。例如使用著名的Radarr电影和Sonarr电视剧的动漫变种方案Anime库或者使用jellyseerr作为统一请求界面。大致思路是QClaw触发下载 - qBittorrent下载完成 - 通过qBittorrent的“完成后运行外部程序”功能调用一个脚本 - 该脚本将文件移动到Sonarr/Radarr监控的文件夹 - Sonarr/Radarr自动进行重命名、分类、入库到Jellyfin/Plex/Emby媒体服务器。这需要额外的脚本编写和配置属于进阶玩法但能实现从“发现资源”到“在家庭影音库中观看”的全流程自动化。5. 实战问题排查与维护心得即使配置再仔细在实际运行中也可能遇到各种问题。下面是我踩过坑后总结的常见问题速查表。问题现象可能原因排查步骤与解决方案QClaw容器启动失败配置文件语法错误运行docker-compose logs qclaw查看具体错误日志。最常见的是config.toml中TOML格式错误如漏了引号、括号。使用在线的TOML校验工具检查。收不到Telegram推送1. Bot Token或Chat ID错误2. 未与Bot对话3. 网络问题1. 仔细核对config.toml中的token和chat_id确保无空格。2. 在Telegram中给你的Bot发送一条消息。3. 在服务器上尝试curlTelegram API检查网络连通性。资源匹配不到1. 关键词不准确2. RSS源未更新3. 过滤器过于严格1. 去资源站查看目标资源的实际完整标题调整关键词。2. 手动访问RSS链接查看是否有新内容。3. 暂时注释掉所有过滤器看是否能收到推送逐步添加以定位问题过滤器。qBittorrent无法添加任务1. WebUI认证失败2. 网络不通3. 下载目录权限问题1. 确认QClaw配置中的qBittorrent用户名密码正确且WebUI认证已开启。2. 在QClaw容器内使用curl http://qbittorrent:8080测试连通性。3. 检查qBittorrent容器的下载目录映射是否有写权限。内存或CPU占用异常高1. 抓取间隔太短2. 订阅规则过多且复杂3. 日志级别过高1. 适当延长feeds中的interval时间。2. 优化订阅规则避免过于宽泛的正则表达式。3. 在QClaw配置中设置log_level info而非debug。长期维护建议定期备份配置整个docker-compose.yml文件和./qclaw/config、./qbittorrent/config目录就是你的全部配置定期打包备份。关注项目更新订阅QClaw项目的GitHub Release关注是否有新功能或重要安全更新。更新时拉取新镜像并重启服务即可docker-compose pull docker-compose up -d。日志管理默认日志会输出到容器标准输出可以通过Docker Compose的日志驱动或配置日志文件进行管理避免磁盘被日志占满。资源源维护公共RSS源有时会失效或变更地址需要定期检查订阅的RSS链接是否依然有效。折腾这样一套系统前期确实需要投入一些时间和精力去理解和配置。但一旦它稳定运行起来那种每周自动收到心仪番剧更新推送并且已经静静躺在下载队列里的感觉是传统追番方式无法比拟的。它真正把时间还给了你让你能更纯粹地享受内容本身。
返回列表