---
url: /guide/cli/batch.md
---

# 批量参数

有些参数只有在批量下载时才可以使用哦

## 启用批量下载

* 参数 `-b` 或 `--batch`
* 配置项 「不支持」
* 默认值 `False`

只需要 `yutto --batch <url>` 即可启用批量下载功能。

::: warning 该选项不支持配置项

因为是否启用批量下载在大多数情况需要针对具体链接来选择，因此将其设置在配置项里基本是无意义的。

:::

## 选集

* 参数 `-p` 或 `--episodes`
* 配置项 「不支持」
* 默认值 `1~-1`（也即全选）

也就是选集咯，其语法是这样的

* `<p1>` 单独下某一剧集
  * 支持负数来选择倒数第几话
  * 此外还可以使用 `$` 来代表 `-1`
* `<p_start>~<p_end>` 使用 `~` 可以连续选取（如果起始为 1，或者终止为 -1 则可以省略）
* `<p1>,<p2>,<p3>,...,<pn>` 使用 `,` 可以不连续选取

emmm，直接看的话大概并不能知道我在说什么，所以我们通过几个小例子来了解其语法

```bash
# 假设要下载一个具有 24 话的番剧
# 如果我们只想下载第 3 话，只需要这样
yutto <url> -b -p 3
# 那如果我想下载第 5 话到第 7 话呢，使用 `~` 可以连续选中
yutto <url> -b -p 5~7
# 那我想下载第 12 话和第 17 话又要怎么办？此时只需要 `,` 就可以将多个不连续的选集一起选中
yutto <url> -b -p 12,17
# 那我突然又想将刚才那些都选中了呢？还是使用 `,` 呀，将它们连在一起即可
yutto <url> -b -p 3,5~7,12,17
# 嗯，你已经把基本用法都了解过了，很简单吧～
# 下面是一些语法糖，不了解也完全不会影响任何功能哒～
# 那如果我只知道我想下载倒数第 3 话，而不想算倒数第三话是第几话应该怎么办？
# 此时可以用负数哒～不过要注意的是，这种参数以 `-` 开头参数需要使用 `=` 来连接选项和参数
yutto <url> -b -p=-3
# 那么如果想下载最后一话你可能会想到 `-p=-1` 对吧？不过我内置了符号 $ 用于代表最后一话
# 像下面这样就可以直接下载最后一话啦～
yutto <url> -b -p $
# 为了进一步方便表示一个范围选取，在从第一话开始选取或者以最后一话为终止时可以省略它们
# 这样就是前三话啦（这里与以 `-` 开头类似，以 `~` 开头可能被识别为 $HOME，因此最好也用等号，或者使用引号包裹）
yutto <url> -b -p=~3
# 这样就是后四话啦
yutto <url> -b -p=-4~
# 所有语法都了解完啦，我们看一个稍微复杂的例子
yutto <url> -b -p "~3,10,12~14,16,-4~"
# 很明显，上面的例子就是下载前 3 话、第 10 话、第 12 到 14 话、第 16 话以及后 4 话
```

下面是一些要注意的问题

1. 这里使用的序号是视频的顺序序号，而不是番剧所标注的`第 n 话`，因为有可能会出现 `第 x.5 话` 等等的特殊情况，此时一定要按照顺序自行计数。
2. 参数值里一定不要加空格
3. 参数值开头为特殊符号时最好使用 `=` 来连接选项和参数，或者尝试使用引号包裹参数
4. 个人空间、视频列表、收藏夹等批量下载暂不支持选集操作

::: warning 该选项不支持配置项

与「启用批量下载」相同，具体选集只有在具体链接时才能确定，为该选项指定配置项同样无意义。

:::

## 同时下载附加剧集

* 参数 `--with-extra-episodes`
* 配置项 `batch.with_extra_episodes`
* 默认值 `False`

`-s` 和 `--with-section` 已弃用。目前仍可兼容旧脚本，但会打印弃用提示，请迁移到 `--with-extra-episodes`。

## 跳过预告片

* 参数 `--skip-preview`
* 配置项 `batch.skip_preview`
* 默认值 `False`

启用后，番剧批量下载会在选集前排除预告片。因此 `--skip-preview -p=-1` 会选择最后一话正式内容。

## 指定稿件发布时间范围

* 参数 `--batch-filter-start-time` 和 `--batch-filter-end-time` 分别表示`开始`和`结束`时间，该区间**左闭右开**
* 配置项 `batch.filter_start_time` 和 `batch.filter_end_time`
* 默认 `不限制`
* 支持的格式

  * `%Y-%m-%d`
  * `%Y-%m-%d %H:%M:%S`

  例如仅下载 2020 年投稿的视频，可以这样:

  `--batch-filter-start-time=2020-01-01 --batch-filter-end-time=2021-01-01`
