---
title: check
tags: [iptvc]
---

# Команда `check`

Команда поддерживает множество аргументов для разных целей.

Они могут дополнять друг друга.

Порядок аргументов не имеет значения.

## `-i`, `--ini` { id=ini }

Указывает путь к локальному [ini-файлу](../../ref/formats/playlists.md) с описанием плейлистов.

Можно указать только однажды.

Значение по умолчанию: `./playlists.ini`

Если файл не найден, проверка плейлистов будет доступна только по ссылкам ([`--url`](#url)) или из локальных файлов ([`--file`](#file)).

```shell title="Пример"
./iptvc check -i ~/my.ini
```

## `-t`, `--tags` { id=tags }

Указывает путь к локальному [json-файлу](../../ref/formats/channels.md) с описанием тегов каналов.

Можно указать только однажды.

Значение по умолчанию: `./channels.json`

Если файл не найден, то будет выведено предупреждение о том, что каналы не будут помечены тегами.

```shell title="Пример"
./iptvc check -t ~/tags.json
```

## `-f`, `--file` { id=file }

Указывает путь к локальному файлу плейлиста `*.m3u`/`*.m3u8`.

Можно указать несколько разных.

```shell title="Пример"
./iptvc check -f playlist.m3u
./iptvc check -f playlist1.m3u --file playlist2.m3u8
./iptvc check --file /path/to/playlist.m3u
```

## `-u`, `--url` { id=url }

Указывает URL удалённого плейлиста (поддерживаются протоколы http/https).

Можно указать несколько разных.

```shell title="Пример"
./iptvc check -u http://example.com/playlist.m3u
./iptvc check -u https://site.com/playlist.m3u8 --url http://other.com/list.m3u
```

## `-c`, `--code` { id=code }

Указывает код плейлиста из файла [playlists.ini](../../ref/formats/playlists.md).

Можно указать несколько разных.

!!! warning "Работает только вместе с [`--ini`](#ini)."

Если не указан ни разу, то будут проверены все плейлисты, которые указаны в ini-файле.

Если используется кеширование, то проверенные плейлисты (результаты проверки которых ещё находятся в кеше) проверяться не будут.

```shell title="Пример"
./iptvc check -i ~/my.ini -c RU_BASIC --code MOVIE_PREMIUM
```

## `--repeat` { id=repeat }

Указывает количество повторений (итераций) команды.

Значение по умолчанию: `1`

Если указано `0`, тогда:

* повторение будет бесконечным;

* если переданы [`--url`](#url), [`--file`](#file) или [`--code`](#code), то на каждой итерации будут проверяться только указанные плейлисты;

* если не переданы [`--url`](#url), [`--file`](#file) или [`--code`](#code), то на каждой итерации список плейлистов будет подготавливаться заново.
  Если при этом используется кеширование, то проверенные плейлисты (результаты проверки которых ещё находятся в кеше) проверяться не будут.

```shell title="Пример"
# проверить 5 раз плейлисты с кодами xx и yy из my.ini
./iptvc check -i ~/my.ini -c xx --code yy --repeat 5
# бесконечно проверять все плейлисты из my.ini, без учёта проверенных
./iptvc check -i ~/my.ini --repeat 0
# бесконечно проверять плейлист из файла
./iptvc check -f test.m3u --repeat 0
```

## `--playlists-all-cooldown` { id=playlists-all-cooldown }

Указывает паузу между полными циклами проверки в секундах. Параметр переопределяет `check.playlists.all-cooldown` из конфигурации.

Пауза применяется после завершения полного цикла и перед началом следующего. Внутри цикла этот параметр не используется: для задержки между плейлистами применяется [`check.playlists.one-cooldown`](#playlists-one-cooldown).

Значение по умолчанию: значение `check.playlists.all-cooldown` из конфигурации, обычно `1800` (30 минут).

```shell title="Пример"
# проверить 5 раз с паузой 5 секунд между циклами
./iptvc check -i ~/my.ini -c xx --code yy --repeat 5 --playlists-all-cooldown 5
# бесконечно проверять все плейлисты из my.ini каждый час
./iptvc check -i ~/my.ini --repeat 0 --playlists-all-cooldown 3600
# бесконечно проверять плейлист из файла с паузой 10 секунд
./iptvc check -f test.m3u --repeat 0 --playlists-all-cooldown 10
```

## `-r`, `--random` { id=random }

Указывает максимальное количество случайных плейлистов из ini-файла для проверки.

!!! warning "Работает только вместе с [`--ini`](#ini)."

Если не указан ни разу, то будут проверены все плейлисты, которые указаны в ini-файле.

Если используется кеширование, то проверенные плейлисты (результаты проверки которых ещё находятся в кеше) проверяться не будут.

```shell title="Пример"
./iptvc check -i ~/my.ini -r 10
```

## `-j`, `--json` { id=json }

Если указано, то подробные результаты проверки будут выводиться в формате JSON.

```shell title="Пример"
./iptvc check -f playlist.m3u --json
```

## `-q`, `--quiet` { id=quiet }

Подавляет вывод всех логов.

!!! info "Не влияет на [`--json`](#json) (JSON-данные будут выведены в stdout), но перекрывает [`--verbose`](#verbose) (логов не будет вовсе, независимо от повышенной подробности)."

```shell title="Пример"
./iptvc check -i ~/my.ini --random 10 --quiet --json
```

## Глобальные флаги { id=global }

Эти флаги доступны для всех команд и переопределяют значения из `config.yml`.

### `--config` { id=config }

Путь к файлу конфигурации `config.yml`.

Значение по умолчанию: `config.yml`

```shell title="Пример"
./iptvc check --config /etc/iptvc/config.yml
```

### `--debug` { id=debug }

Включает режим отладки. Переопределяет `app.debug` из `config.yml` и переменную `APP_DEBUG`.

```shell title="Пример"
./iptvc check -i ~/my.ini --debug
```

### `--log-level` { id=log-level }

Устанавливает уровень логирования. Переопределяет `app.log_level` из `config.yml`.

Доступные значения: `debug`, `info`, `warn`, `error`.

```shell title="Пример"
./iptvc check -i ~/my.ini --log-level debug
```

### `-v`, `--verbose` { id=verbose }

Включает подробное логирование.

```shell title="Пример"
./iptvc check --random 10 --verbose
```

## Флаги проверки плейлистов { id=check-playlists }

Эти флаги переопределяют параметры секции `check.playlists` из `config.yml`. Доступны для команд `check` и `serve`.

### `--playlists-timeout` { id=playlists-timeout }

Таймаут HTTP-запроса плейлиста в секундах.

Переопределяет `check.playlists.timeout` (по умолчанию `10`).

```shell title="Пример"
./iptvc check -i ~/my.ini --playlists-timeout 5
```

### `--playlists-all-cooldown` { id=playlists-all-cooldown }

Задержка в секундах после проверки всех плейлистов.

Переопределяет `check.playlists.all-cooldown` (по умолчанию `1800`).

```shell title="Пример"
./iptvc check -i ~/my.ini --playlists-all-cooldown 10
```

### `--playlists-one-cooldown` { id=playlists-one-cooldown }

Задержка в секундах после проверки каждого плейлиста.

Переопределяет `check.playlists.one-cooldown` (по умолчанию `2`).

```shell title="Пример"
./iptvc check -i ~/my.ini --playlists-one-cooldown 2
```

### `--playlists-max-routines` { id=playlists-max-routines }

Максимум одновременно проверяемых плейлистов.

Переопределяет `check.playlists.max-routines` (по умолчанию `1`).

```shell title="Пример"
./iptvc check -i ~/my.ini --playlists-max-routines 10
```

### `--playlists-per-routine` { id=playlists-per-routine }

Количество плейлистов на одну процедуру проверки.

Переопределяет `check.playlists.per-routine` (по умолчанию `1`).

```shell title="Пример"
./iptvc check -i ~/my.ini --playlists-per-routine 3
```

### `--playlists-user-agent` { id=playlists-user-agent }

User-Agent для HTTP-запросов плейлистов. Можно указать несколько — будет выбран случайный при каждом запросе.

Переопределяет `check.playlists.user-agent`.

```shell title="Пример"
./iptvc check -i ~/my.ini --playlists-user-agent "Mozilla/5.0" "curl/8.0"
```

## Флаги проверки каналов { id=check-channels }

Эти флаги переопределяют параметры секции `check.channels` из `config.yml`. Доступны для команд `check` и `serve`.

### `--channels-timeout` { id=channels-timeout }

Таймаут HTTP-запроса канала в секундах.

Переопределяет `check.channels.timeout` (по умолчанию `10`).

```shell title="Пример"
./iptvc check -i ~/my.ini --channels-timeout 5
```

### `--channels-byte-range` { id=channels-byte-range }

Объём данных в байтах для загрузки от сервера при проверке канала.

Переопределяет `check.channels.byte-range` (по умолчанию `512`).

```shell title="Пример"
./iptvc check -i ~/my.ini --channels-byte-range 1024
```

### `--channels-cooldown` { id=channels-cooldown }

Задержка в секундах после проверки каждого канала.

Переопределяет `check.channels.cooldown` (по умолчанию `0`).

```shell title="Пример"
./iptvc check -i ~/my.ini --channels-cooldown 1
```

### `--channels-max-routines` { id=channels-max-routines }

Максимум одновременно проверяемых каналов.

Переопределяет `check.channels.max-routines` (по умолчанию `50`).

```shell title="Пример"
./iptvc check -i ~/my.ini --channels-max-routines 100
```

### `--channels-per-routine` { id=channels-per-routine }

Количество каналов на одну процедуру проверки.

Переопределяет `check.channels.per-routine` (по умолчанию `10`).

```shell title="Пример"
./iptvc check -i ~/my.ini --channels-per-routine 20
```

### `--channels-user-agent` { id=channels-user-agent }

User-Agent для HTTP-запросов каналов. Можно указать несколько — будет выбран случайный при каждом запросе.

Переопределяет `check.channels.user-agent`.

```shell title="Пример"
./iptvc check -i ~/my.ini --channels-user-agent "Mozilla/5.0" "VLC/3.0"
```

## Флаги кеша { id=cache-flags }

Эти флаги переопределяют параметры секции `cache` из `config.yml`. Доступны для команд `check` и `serve`.

### `--cache-enabled` { id=cache-enabled }

Включает кеширование результатов в KeyDB/Redis.

Переопределяет `cache.enabled` (по умолчанию `false`).

```shell title="Пример"
./iptvc check -i ~/my.ini --cache-enabled
```

### `--cache-host` { id=cache-host }

Хост KeyDB/Redis.

Переопределяет `cache.host` (по умолчанию `localhost`).

```shell title="Пример"
./iptvc check -i ~/my.ini --cache-enabled --cache-host 192.168.1.10
```

### `--cache-port` { id=cache-port }

Порт KeyDB/Redis.

Переопределяет `cache.port` (по умолчанию `6379`).

```shell title="Пример"
./iptvc check -i ~/my.ini --cache-enabled --cache-port 6380
```

### `--cache-username` { id=cache-username }

Логин для подключения к KeyDB/Redis.

Переопределяет `cache.username`.

```shell title="Пример"
./iptvc check -i ~/my.ini --cache-enabled --cache-username myuser
```

### `--cache-password` { id=cache-password }

Пароль для подключения к KeyDB/Redis.

Переопределяет `cache.password`.

```shell title="Пример"
./iptvc check -i ~/my.ini --cache-enabled --cache-password secret
```

### `--cache-db` { id=cache-db }

Номер базы данных KeyDB/Redis.

Переопределяет `cache.db` (по умолчанию `0`).

```shell title="Пример"
./iptvc check -i ~/my.ini --cache-enabled --cache-db 2
```

### `--cache-ttl` { id=cache-ttl }

TTL записей кеша в секундах.

Переопределяет `cache.ttl` (по умолчанию `30`).

```shell title="Пример"
./iptvc check -i ~/my.ini --cache-enabled --cache-ttl 3600
```
