# Media Scout

Media Scout 可以解析常见的视频编辑工程文件，
并从中提取媒体文件的路径。

支持的文件包括：

- 经典 XML 项目文件 (Final Cut Pro 7 XML) `.xml`
- FCPXML 项目文件（Final Cut Pro X|11 XML）`.fcpxml` 或 `.fcpxmld`
- 剪辑决定表（Editing Decision List）`.edl`
- Davinci Resolve 元数据表格 `.csv`
- 纯文本文件列表 `.txt`
  纯文本文件也可以是包含路径的 `.sh` 脚本文件，Media Scout 将使用正则表达式从文本中提取路径。

## 用法

直接使用即可：

```shell
mediascout "工程文件1.xml" "工程文件2.fcpxml" "工程文件3.edl" "工程文件4.csv" "工程文件5.txt" "工程文件6.sh" ...
```

默认情况下，mediascout 将会逐个解析支持的文件，
并将解析的结果逐行输出到`标准输出`中。

你可以将结果直接进行重定向：

```shell
mediascout "序列文件.xml" > "输出文件.txt"
```

mediascout 在默认情况下有一些默认的特性：

- 工程文件中包含的文件路径将会按照文件中本身的顺序输出
- 如果指定了多个工程文件，将会按照输入的顺序逐个解析
- 解析到的文件将会以字符串的形式按原样输出
- 输出时每行输出一个路径
- 在一次执行中，将不会重复输出同样的路径，即使这些路径可能来自不同的文件

了解这些特性以避免工具的输出不符合你的预期。
另外，这些特性也可以通过选项进行定制。

## 高级选项

Media Scout 提供多种选项定制其工作方式
以适应你的需求。

### `-i|--include`

像 `EDL` 这种格式的文件，
其格式本身并不保存源文件的完整路径，
从中只能解析出文件名。

使用 `--include` 选项可以指定一个目录，也可以多次使用指定多个目录。
Media Scout 在遇到非绝对路径时，将会自动从这些目录中搜索文件。
如果成功搜索到，将会输出完整路径，否则仍然输出原始相对路径。

### `-e|--existed-only`

`--existed-only` 选项将会过滤掉那些不存在的路径。

如果路径是相对路径，在没有指定`--include`选项时，将会从当前工作目录中查找。

### `--allow-duplicated`

虽然我也不太理解这有什么用处，但是通过这个选项可以停用自动的去重功能。

### `-q|--auto-quote`

指定此选项后，如果路径中包含空格，将会自动添加引号。
