AI AGENT SKILLS

Movie Monitor

一个面向 Other 场景的 Agent 技能。原始说明:电影监控下载自动化技能。自动从6v电影站抓取新片、添加到115离线下载、复制到本地NAS并重命名。支持IMDb/豆瓣双评分过滤。触发场景:用户要求运行电影下载任务、检查监控状态、修复下载问题、或对电影pipeline做任何调整。

SKILL.md

SKILL.md


name: movie-monitor
description: 电影监控下载自动化技能。自动从6v电影站抓取新片、添加到115离线下载、复制到本地NAS并重命名。支持IMDb/豆瓣双评分过滤。触发场景:用户要求运行电影下载任务、检查监控状态、修复下载问题、或对电影pipeline做任何调整。


Movie Monitor Skill

电影自动化监控下载 pipeline,支持 6v520 电影站 → 115离线下载 → NAS 存储。

架构

6v520 列表页 ──抓取──> movie_pipeline.py --mode=monitor ──添加──> 115离线下载
                                              │
                          copy_and_rename_movies.py <──复制── 115挂载目录
                                              │
                                           NAS存储
                                              │
                        复制完成后自动重命名115云端文件夹及视频文件

定时任务

| 时间 | 任务 | 类型 |
|------|------|------|
| 每天 20:00 | 抓取新片并添加到115离线下载 | agentTurn + isolated |
| 每天 21:00 | 从115挂载目录复制到NAS并重命名 | agentTurn + isolated |

cron 任务使用 agentTurn + isolated 类型,在独立 session 中真正执行 shell,不会遗漏。

核心脚本

| 脚本 | 用途 |
|------|------|
| movie_pipeline.py | 主入口,mode=monitor 只抓取+添加115,mode=download 只下载 |
| movie_monitor_simple.py | 抓取电影列表、提取评分、添加到115 |
| copy_and_rename_movies.py | 从115挂载目录复制到NAS并重命名,复制完成后自动重命名115云端文件夹和文件 |
| client_115.py | 115 API 客户端(Cookie:~/.openclaw/scripts/movie-monitor/115_cookie_manual.json) |
| download_from_115.py | 115下载到本地逻辑 |
| config.py | 配置(源目录、目标目录、Cookie路径等) |
| cleanup_and_rename.py | 批量清理115云端和本地NAS的垃圾后缀目录/文件名(电影港 dygang、6v电影、地址发布页等),修复本地目录和云端文件重命名 |

115 重命名脚本

~/.openclaw/scripts/115-renamer/115.js(Node.js)

重要:重命名脚本使用独立 Cookie(~/.openclaw/scripts/115-renamer/cookie.json),需要与 movie-monitor 的 cookie 保持同步更新。

# 列出云下载目录
node 115.js ls <cid>

# 重命名文件/文件夹
node 115.js rename "<旧名>" "<新名>" <cid>

使用方式

抓取新片并添加到115

python3 movie_pipeline.py --mode=monitor

从115复制到NAS并重命名

python3 copy_and_rename_movies.py

清理115云端和本地NAS的垃圾目录/文件名

python3 cleanup_and_rename.py

自动去除垃圾后缀(电影港 dygang、6v电影、地址发布页等),同时修复本地目录和云端文件。

完整流程

python3 movie_pipeline.py --mode=full

清理115云端脏名(批量重命名)

python3 batch_rename_115_cloud.py

配置

# cookie 文件(两个脚本共用同一个)
cookie_file = "~/.openclaw/scripts/movie-monitor/115_cookie_manual.json"
renamer_cookie = "~/.openclaw/scripts/115-renamer/cookie.json"
# 两者需保持同步!

# 源目录:115挂载的云下载目录
source_dir = "/mnt/public/CloudDrive/115open/云下载"

# 目标目录:NAS本地存储
target_dir = "/mnt/media/115"

评分过滤

  • IMDb 或 豆瓣评分 ≥ 6.0 才下载
  • 过滤正则:r'豆瓣评分[::\s]*([\d.]+)'r'IMDb评分[::\s]*([\d.]+)'
  • 注意:页面格式为 ◎豆瓣评分: 7.2(无 /10),注意不要写错正则

复制重命名规则(v1.3.1 中点号·修复)

复制到 NAS 时自动重命名:

| 类型 | 命名格式 |
|------|----------|
| 单部电影 | 电影名(年份).mkv |
| 多集剧集 | 电影名(年份)S01E01.mp4电影名(年份)S01E02.mp4 ... |

中点号 · 处理说明:源目录名中的中点号(如 杰克·莱恩)在清理后会转换为空格,但在去重匹配时,杰克 莱恩杰克·莱恩 会被视为同一电影。复制后的目录名/文件名遵循源目录的实际命名。

历史版本

v1.3.1

  • 修复中点号 · (U+00B7) 被错误处理的 BUG:之前 · 在正则字符类中被替换为空,导致 杰克·莱恩 变成 杰克 莱恩。现在 · 从正则字符类中移除,改为显式 .replace('·', ' ') 处理,避免与去重匹配逻辑冲突。涉及 copy_and_rename_movies.pycleanup_and_rename.pybatch_rename_movies.pybatch_rename_115_cloud.py

v1.3.0

  • 115 文件重命名改为调用 Node.js 脚本(~/.openclaw/scripts/115-renamer/115.js),支持文件夹和文件双重重命名
  • TMDB 元数据刮削加入中文语言优先
  • 修复集数识别支持 Kimetsu no Yaiba - 56 格式
  • 115 离线下载添加显示进度

v1.2.0

  • 从源目录复制文件到目标目录,复制完成后自动重命名 115 云端文件夹和视频文件

去重规则

检查三个目录:NAS电影目录、NAS 115目录、媒体预处理目录,任意一个存在同名电影即跳过。

超过72小时未修改的目录自动跳过,减少无效遍历。

依赖

requests
beautifulsoup4

注意事项

  • 115 Cookie 需保存在 115_cookie_manual.json(JSON格式,非 cookies.txt)
  • 两个 cookie 文件(movie-monitor 和 115-renamer)必须同步更新,否则云端重命名会失败
  • 云下载目录 CID:1870455255659183041
  • TMDB 图片下载可配置 image_proxy(默认 http://127.0.0.1:7890
  • 复制任务独立运行,不会干扰监控任务