# Структура папок для каждого режима (https://clout.wtf/guide/ru/folder-structure-guide/)



В этом гайде — короткий справочник: какие режимы есть, какие расширения файлов поддерживаются, как раскладывать видео и фото, что происходит после публикации, и чек-лист для самопроверки перед запуском.

***

## Какие режимы есть

В приложении **3 режима**, выбираются в шаблоне через переключатель **Run Mode**:

| Режим       | Что делает                                                                                                                | Нужны ли медиа-файлы |
| ----------- | ------------------------------------------------------------------------------------------------------------------------- | -------------------- |
| **Upload**  | Постит видео или карусели на залогиненные аккаунты                                                                        | Да                   |
| **Warm-up** | Прогрев в приложении: листает ленту, ставит лайки, ищет по ключам, смотрит выдачу                                         | **Нет**              |
| **Seeding** | Полный цикл массового посева на свежих аккаунтах: переустановка TikTok (чистый старт) → ротация прокси → логин → загрузка | Да                   |

Тип контента внутри Upload и Seeding выбирается отдельно:

* `video` — обычные видео
* `carousel` — карусель из фотографий

## Поддерживаемые форматы файлов

| Тип                    | Расширения                             |
| ---------------------- | -------------------------------------- |
| **Видео**              | `.mp4`, `.mov`, `.m4v`, `.avi`, `.mkv` |
| **Фото (карусель)**    | `.jpg`, `.jpeg`, `.png`, `.heic`       |
| **Описания (sidecar)** | `.json` рядом с медиа                  |

Все остальные расширения игнорируются.

## Режим 1. Upload — Видео

### Поля в шаблоне

* **Папка с видео** — абсолютный путь к папке
* **Порядок** — `Sequential` (по имени, естественная сортировка) или `Random` (перемешивание)
* **Перемещать использованные** — в подпапку `used/` (по умолчанию **включено**)
* **Удалять после публикации** — приоритет над «перемещать»

### Структура папки

```text
videos/
  clip_1.mp4
  clip_2.mp4
  clip_10.mp4
  promo.mov
  used/
    clip_1.mp4
    clip_2.mp4
```

Работает естественная сортировка: `1, 2, 10` — а не `1, 10, 2`. Папка `used/` создаётся автоматически после первой успешной публикации.

### Что происходит после публикации

* Если включено «перемещать» → файл уезжает в `used/` внутри той же папки
* Если включено «удалять» → файл удаляется навсегда (`used/` не создаётся)
* Sidecar `.json` с описанием перемещается / удаляется **вместе с видео**

### Многоустройственный режим

Если запущено несколько устройств с одной и той же папкой, рядом с медиа создаётся скрытый файл `.publish_history.json` — он гарантирует, что один и тот же файл не будет залит дважды разными устройствами (claim с TTL 30 минут).

## Режим 1. Upload — Карусель (рекомендуемый: подпапки)

### Когда использовать

Когда у тебя готовый «упакованный» контент — каждая карусель уже разложена в свою папку с понятным порядком фото.

### Поля в шаблоне

* **Папка с фото** — абсолютный путь
* **Каждая подпапка = одна карусель** — **включить**

### Структура папки

```text
carousels/
  01_summer_post/
    1.jpg
    2.jpg
    3.heic
    content.json
  02_promo/
    photo_a.png
    photo_b.png
    description.json
  03_lifestyle/
    img1.png
    img2.jpg
  used/
    01_summer_post/
    02_promo/
```

Одна подпапка = одна карусель; порядок фото внутри — по имени файла. `content.json` — опциональное описание именно этой карусели. После публикации вся подпапка целиком переезжает в `used/`.

### Правила

* **Имя подпапки `used` (любой регистр) — служебное.** Никогда не сканируется. Не называй так свои карусели.
* Внутри подпапки фото сортируются естественно: `1, 2, 10` — а не `1, 10, 2`.
* Подпапки публикуются по той же естественной сортировке имён.
* В TikTok можно загрузить **от 1 до 35 фото** в одну карусель. Всё, что больше девяти, приложение выбирает порциями по девять внутри пикера, каждая порция добавляет около 30 секунд к публикации.

### Что происходит после публикации

Вся подпапка целиком переезжает в `used/` (или удаляется). Sidecar внутри уезжает вместе с ней.

## Режим 1. Upload — Карусель (плоский режим)

### Когда использовать

Когда не хочется группировать фото в подпапки — все картинки лежат «вповалку» в одной папке.

### Поля в шаблоне

* **Папка с фото**
* **Каждая подпапка = одна карусель** — **выключить**
* **Фото в карусели** — сколько картинок будет в одной карусели (от 1 до 35)

### Структура папки

```
photos/
├── img_01.jpg          ┐
├── img_02.jpg          │  карусель №1 (если photo_count=5)
├── img_03.jpg          │
├── img_04.jpg          │
├── img_05.jpg          ┘
├── img_06.jpg          ┐
├── img_07.jpg          │  карусель №2
├── img_08.jpg          │
├── img_09.jpg          │
├── img_10.jpg          ┘
└── used/
    ├── img_01.jpg
    └── ...
```

### Правила

* Все фото сортируются естественно по имени, нарезаются на блоки заданного размера.
* **Sidecar-описания не работают в плоском режиме** — нет однозначной привязки фото к группе. Если нужны индивидуальные описания на каждую карусель — переходи на режим подпапок.

## Режим 2. Прогрев

### Что делает

* Запускает TikTok
* Смотрит ленту: листает N видео, иногда ставит лайк, может подписаться
* Делает поиск по заданным ключевым словам, смотрит результаты выдачи
* **Никаких файлов не загружает и не трогает**

### Структура папок

**Папки с медиа не нужны.** Поля папки видео / фото в шаблоне прогрева игнорируются.

### Что настраивается

В шаблоне прогрева задаются параметры поведения:

* Сколько видео листать в ленте, сколько секунд на каждое
* Шансы на лайк / подписку / сохранение
* Список ключевых слов для поиска (по одному на строку)
* Сколько роликов смотреть в результатах поиска

## Режим 3. Seeding (массовый посев)

### Что делает

Для каждого аккаунта по очереди: переустанавливает TikTok для запуска с чистого старта → включает прокси из ротации → логинится по выданным кредам → (опционально) делает короткий прогрев → публикует контент → переходит к следующему аккаунту. Камера и микрофон разрешаются автоматически в Настройках.

### Структура папок с контентом

**Совпадает с режимом Upload** — те же видео-папки или карусель-папки. В шаблоне выбран **Run Mode = Seeding**, поля Seeding используют отдельные значения путей и опций.

### Контент переиспользуется между аккаунтами

В отличие от Upload, Seeding **намеренно** заливает один и тот же контент на разные свежие аккаунты — это и есть смысл посева. История публикаций ведётся отдельно для каждого аккаунта.

### Формат файла с аккаунтами

Один аккаунт — одна строка. Поддерживаются три формата (детектится автоматически):

| Формат                   | Шаблон                                                                   |
| ------------------------ | ------------------------------------------------------------------------ |
| **Pipe (рекомендуемый)** | `email\|email_pass\|username\|tiktok_pass[\|refresh_token][\|client_id]` |
| Colon (legacy)           | `username:password:email[:totp_or_refresh][:refresh_or_client_id]`       |
| Старый colon             | `email:password[:totp]`                                                  |

**Пример (pipe):**

```
user1@gmail.com|GmailPass123|cooluser1|TikTokPass!
channel@outlook.com|OutlookPass|bestchannel|SecretPass!|1.ARw...refresh_token
```

> **Note:** **Важно:** если в TikTok-пароле есть символ `:` — пользуйся **только pipe-форматом**. Colon-формат сломается на парсинге.

## Общая защита: история публикаций

В каждой папке с контентом приложение создаёт скрытый файл `.publish_history.json`. Он защищает от двойной публикации, когда одну папку используют несколько устройств одновременно — каждый файл уйдёт в TikTok ровно один раз. **Не удаляй этот файл вручную** — иначе уже опубликованный контент может уйти повторно.

## Чек-лист «правильно подготовил папки»

### Для Upload — Видео

* Все видео в одной папке, расширения из списка (`mp4`, `mov`, `m4v`, `avi`, `mkv`)
* Имена файлов отсортированы как нужно (используется естественная сортировка)
* Подпапки `used/` нет (создастся автоматически) или она пустая
* Если нужны индивидуальные описания — рядом с каждым видео лежит `<имя>.json` (см. гайд про [Set Description](https://clout.wtf/guide/ru/set-description-guide/))

### Для Upload — Карусель (подпапки)

* Каждая карусель — отдельная подпапка
* Внутри подпапки фото пронумерованы или названы так, чтобы естественная сортировка дала нужный порядок
* Никаких подпапок с именем `used` (зарезервировано)
* В шаблоне включён переключатель **«Каждая подпапка = одна карусель»**
* Если нужно описание на карусель — внутри подпапки лежит `content.json` (или `description.json` / `caption.json`)

### Для Upload — Карусель (плоский)

* Все фото в одной папке, отсортированы по именам
* Количество фото кратно «Photos per carousel» (иначе хвост не наберёт полную карусель)
* Sidecar-описания **не используются** — выбран один из глобальных источников описаний

### Для Seeding

* Структура папок такая же, как для Upload
* Файл с аккаунтами в формате pipe (`email|email_pass|username|tiktok_pass`)
* Назначены прокси (Stash / Happ / System) — DIRECT для Seeding не разрешён

## Читать в блоге

* [Как построить AI-конвейер контента для TikTok в 2026 году](https://clout.wtf/blog/ru/ai-to-tiktok-content-pipeline/)
* [Лучшие AI-генераторы видео для TikTok в 2026 году: инструменты и рабочие процессы](https://clout.wtf/blog/ru/best-ai-video-generators-tiktok/)
