---
name: "f-download-sorter"
description: "整理 /mnt/f 下下载的视频文件：扫描→清垃圾→按规则归档到7个大类目录"
status: proposal
version: "v1"
date: "2026-07-06T09:03:54.941Z"
---

# /mnt/f 下载文件批量归档整理

## 用途
当 `/mnt/f/collections` 和 `/mnt/f/video` 里堆了大量下载的视频文件时，用此 Skill 批量整理：**清理垃圾 → 按内容类型归档到 `/mnt/f` 下的大类目录**。

## 触发条件
- 用户说"整理 /mnt/f 的视频"、"归档 collections"、"下载文件太多了帮忙理一下"等
- 或者用户显式调用此 skill

## 流程

### Step 1: 扫描并统计
运行 `/home/yangxuan/.nvm/versions/node/v25.2.0/lib/node_modules/openclaw/skills/f-download-sorter/scripts/scan_and_clean.py`
- 遍历 `/mnt/f/collections` 和 `/mnt/f/video` 下所有条目
- 输出每个条目的：名称、大小、视频文件数

### Step 2: 清理垃圾
同上脚本自动清理以下两类：
- **空壳目录**：目录总大小 < 1MB 且无视频文件（通常是推广 HTML/URL 文件）
- **小视频残片**：整条目录总大小 < 50MB 且视频内容极少

### Step 3: 按规则归类归档
运行 `/home/yangxuan/.nvm/versions/node/v25.2.0/lib/node_modules/openclaw/skills/f-download-sorter/scripts/classify_and_move.py`

分类规则（按文件名关键词匹配，优先级从上到下）：

| 规则 | 关键词 | 目标目录 |
|------|--------|----------|
| 过那条巷子 | "过那条巷子" | `/mnt/f/过那条巷子/` |
| 2048合集 | "2048" | `/mnt/f/2048合集/` |
| AI短剧 | "AI短剧"/"AI自制"/"AI视频"/"美丽新世界"/"少年阿宾"/"NTR寝取"/"嫂子"/"魔女小姨子"/"桃运圣医"/"我和老师的约定" | `/mnt/f/AI短剧/` |
| FC2福利姬 | "FC2"/"Comatozze"/"Dainty"/"KAKAE"/"lananlanan"/"P站" | `/mnt/f/FC2福利姬/` |
| 种子合集 | "BT-btt" | `/mnt/f/合集种子/` |
| 国产露脸 | "19岁"/"冯帆"/"momocats"/"露脸才是王道"/"香蕉" | `/mnt/f/国产露脸/` |
| 自拍泄漏 | 剩余所有含"泄密"/"自拍"/"露脸"/"自慰"/"原相机"/"情侣"/"校花"/"嫩妹"/"福利姬"/"裸聊"/"绿帽"/"良家"/"约炮"/"狗哥"/"土豪"/"原档"/"维度"/"桃子"/"娇娇"/"学妹"/"反差"等关键词 | `/mnt/f/自拍泄漏/` |
| 其他无法归类 | 以上都不匹配 | `/mnt/f/AI短剧/`（兜底） |

**特殊规则：**
- `重生之征服郭伯母`（`/mnt/f/video/重生之征服郭伯母`）已有 Jellyfin NFO 元数据，**不动**

### Step 4: 清理空目录
移动完毕后，删除 `/mnt/f/collections` 和 `/mnt/f/video` 目录（如已为空）。

### Step 5: 报告结果
输出最终 `/mnt/f` 下 7 个大类目录的结构和各目录大小。

## 注意事项
- **WSL `/mnt/` 跨文件系统扫描很慢**，如果条目数极大（>500），优先在 Windows 原生 Python 中执行扫描/移动
- 所有操作都是**同一分区内重命名（mv）**，不复制数据，瞬间完成
- 不会打开/预览视频内容，仅基于文件名关键词分类
- 删除前会经用户确认

## 脚本
两个脚本位于 skill 目录的 `scripts/` 下：
- `scripts/scan_and_clean.py` — 扫描+清理垃圾
- `scripts/classify_and_move.py` — 分类归档移动