# Setup

Этот репозиторий в первую очередь рассчитан на Linux / Ubuntu / Debian / WSL.
Ниже собраны команды для инструментов, которые реально используются здесь:

- `ffmpeg` / `ffprobe`
- `yt-dlp` из latest release напрямую, а не из `apt`
- `rembg` для удаления фона
- `edge-tts` для озвучки
- `ImageMagick` (`convert`) для meme-render скриптов
- `node` как полезный помощник для `yt-dlp` на YouTube
- `playwright` для части `video-generation/`

## 1. Базовые системные пакеты

Для `rembg` нужен `python3` версии `3.11+`.

```bash
sudo apt update
sudo apt install -y \
  ffmpeg \
  imagemagick \
  curl \
  ca-certificates \
  python3 \
  python3-venv \
  python3-pip \
  pipx \
  nodejs \
  npm
```

Примечания:

- `ffprobe` ставится вместе с `ffmpeg`
- `convert` приходит из пакета `imagemagick`
- `node` не обязателен всегда, но помогает `yt-dlp` на некоторых YouTube-роликах

## 2. `yt-dlp` напрямую из latest release

Не ставь `yt-dlp` из `apt`, там часто старая версия.

```bash
mkdir -p "$HOME/.local/bin"

curl -L \
  https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp \
  -o "$HOME/.local/bin/yt-dlp"

chmod a+rx "$HOME/.local/bin/yt-dlp"

grep -qxF 'export PATH="$HOME/.local/bin:$PATH"' ~/.bashrc || \
  echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc

export PATH="$HOME/.local/bin:$PATH"
hash -r

yt-dlp --version
```

Обновление:

```bash
yt-dlp -U
```

## 3. Удаление фона через repo wrapper

В репозитории уже есть обёртка `remove-background/scripts/remove-background.sh`.
Она сама:

- создаёт `.venv-imagegen`
- ставит `rembg[cpu,cli]`
- скачивает модель `u2net` в `~/.u2net/`

Bootstrap:

```bash
bash remove-background/scripts/remove-background.sh --install-only
```

Проверка:

```bash
.venv-imagegen/bin/rembg --help >/dev/null && echo "rembg ready"
```

Первый реальный запуск:

```bash
bash remove-background/scripts/remove-background.sh \
  assets/input.jpg \
  assets/input.nobg.png
```

Если нужен ручной install без repo wrapper:

```bash
python3 -m venv .venv-imagegen
. .venv-imagegen/bin/activate
python -m pip install -U pip
python -m pip install -U "rembg[cpu,cli]"
deactivate
```

## 4. `edge-tts` для озвучки

Для CLI-утилиты здесь удобнее всего `pipx`, потому что скрипт `voice/tts_generate.py`
вызывает `edge-tts` как обычную команду из `PATH`.

```bash
pipx ensurepath
export PATH="$HOME/.local/bin:$PATH"
hash -r

pipx install edge-tts

edge-tts --list-voices | head
```

Если уже установлен:

```bash
pipx upgrade edge-tts
```

Минимальная проверка синтеза:

```bash
edge-tts \
  --voice ru-RU-SvetlanaNeural \
  --text "Привет, это проверка озвучки." \
  --write-media /tmp/edge-tts-check.mp3
```

## 5. Опционально: окружение для `video-generation/`

Нужно только если ты используешь пайплайн генерации видео и browser automation.

```bash
python3 -m venv .venv-video-generation
. .venv-video-generation/bin/activate

python -m pip install -U pip
python -m pip install -r video-generation/scripts/requirements.txt

playwright install chromium

deactivate
```

Если нужен viewer-бот отдельно:

```bash
python3 -m venv .venv-viewer
. .venv-viewer/bin/activate
python -m pip install -U pip
python -m pip install -r video-generation/viewer/requirements.txt
deactivate
```

## 6. Быстрый smoke check

```bash
python3 --version
ffmpeg -version | head -n 1
ffprobe -version | head -n 1
yt-dlp --version
which edge-tts
edge-tts --help >/dev/null && echo "edge-tts ok"
.venv-imagegen/bin/rembg --help >/dev/null && echo "rembg ok"
node --version
```

## 7. Что чем используется в этом репо

- `download-youtube-segment/` требует `yt-dlp` и `ffmpeg`
- `ffmpeg-editing/` требует `ffmpeg`, `ffprobe`, а `render-meme-vertical.sh` ещё и `convert`
- `remove-background/` использует `rembg`
- `voice/` использует `edge-tts`
- `video-generation/` местами требует `playwright`

## 8. Официальные ссылки

- `yt-dlp`: https://github.com/yt-dlp/yt-dlp
- `rembg`: https://pypi.org/project/rembg/
- `edge-tts`: https://pypi.org/project/edge-tts/
