chore: remove obsolete per-folder scripts, add cookies-cron reference, update docs
All checks were successful
CI/CD Pipeline / build-and-deploy (push) Successful in 1m47s
All checks were successful
CI/CD Pipeline / build-and-deploy (push) Successful in 1m47s
- Remove get_cookies.sh (targets a container without yt-dlp, already broken), get_cookies_local.sh, start_all.sh/stop_all.sh — these implement the old per-service-compose startup that now conflicts with the unified root docker-compose.yml. - Add cookies-cron/ — a reference copy of the scripts actually running via cron on the separate browser-equipped machine, with setup requirements and instructions for standing up a new cron host. - Update README.md/ARCHITECTURE.md to describe the current unified docker-compose + CI/CD deploy flow and host-mounted cookies instead of the old per-folder workflow.
This commit is contained in:
parent
b3550f4aaf
commit
772e9fd5b4
12 changed files with 479 additions and 171 deletions
36
cookies-cron/README.md
Normal file
36
cookies-cron/README.md
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
# cookies-cron
|
||||
|
||||
Скрипты для регулярного обновления `youtube_cookies.txt`/`instagram_cookies.txt` из реального авторизованного браузера и доставки их по `scp` на прод и тестовые стенды.
|
||||
|
||||
Это **точная копия** скриптов, которые сейчас реально работают по крону на отдельной машине (не на проде — на проде GUI/браузера нет в принципе). Здесь они лежат для справки и на случай, если cron-машину придётся поднимать заново. Ничего в этом репозитории/CI их не запускает и не использует автоматически.
|
||||
|
||||
## Где это должно стоять и работать
|
||||
|
||||
- Машина с **графическим окружением и реальным браузером** (используется Firefox, см. `BROWSER="firefox"` в обоих скриптах) — обычный десктоп/ноутбук, не сервер.
|
||||
- В этом браузере должны быть **активные авторизованные сессии** на youtube.com и на instagram.com — скрипты не логинятся сами, они просто экспортируют куки из уже залогиненного браузера через `yt-dlp --cookies-from-browser`. Если сессии нет (вышел из аккаунта/куки протухли) — экспортируется пустой/неполный набор куков, и видео с этими доменами перестают скачиваться (в Instagram это проявляется как `login required` без всякой ошибки в самом cron-скрипте).
|
||||
- На машине должен быть установлен **`yt-dlp`** и доступен в `PATH` для cron-окружения (не только для интерактивного шелла — у cron urezанный `PATH`). Скрипты исторически не проверяют, что `yt-dlp` реально нашёлся и отработал — при отсутствии `yt-dlp` они тихо «успешно завершаются», просто переиспользуя старый файл cookies. Если куки на проде не обновляются неделями без видимых ошибок — первым делом проверьте `which yt-dlp` на cron-машине.
|
||||
|
||||
## Файлы
|
||||
|
||||
- **`get_instagram_cookies.sh`** / **`get_youtube_cookies.sh`** — извлекают куки из Firefox в локальные `instagram_cookies.txt`/`youtube_cookies.txt` рядом со скриптом.
|
||||
- **`update_cookies.sh`** — оркестратор: гоняет оба скрипта выше, затем разливает результат по `scp` на:
|
||||
- прод (`REMOTE_HOST`/`REMOTE_INSTAGRAM_PATH`/`REMOTE_YOUTUBE_PATH`) — обязательный шаг, при ошибке скрипт падает с `error_exit`;
|
||||
- тестовый стенд (`DEV_HOST`/`DEV_INSTAGRAM_PATH`/`DEV_YOUTUBE_PATH`) — необязательный, при недоступности стенда просто пишет warning и продолжает.
|
||||
|
||||
Значения этих переменных сейчас захардкожены под текущую инфраструктуру (SSH-алиасы `germany`/`hermesDev` из `~/.ssh/config` той машины, где крон запущен) — при разворачивании на новой cron-машине их нужно поправить под актуальные хосты/пути.
|
||||
|
||||
## Установка на новую cron-машину
|
||||
|
||||
```bash
|
||||
# 1. yt-dlp должен быть в PATH (включая cron-окружение)
|
||||
sudo dnf install -y yt-dlp # или: pip install --user yt-dlp / pipx install yt-dlp
|
||||
|
||||
# 2. Залогиниться в Firefox на youtube.com и instagram.com
|
||||
|
||||
# 3. Прописать актуальные REMOTE_HOST/DEV_HOST и пути в update_cookies.sh
|
||||
|
||||
# 4. Добавить в crontab
|
||||
*/20 * * * * /bin/bash -c '/path/to/cookies-cron/update_cookies.sh' >> /path/to/cookies-cron/cron_error.log 2>&1
|
||||
```
|
||||
|
||||
На принимающей стороне (прод и тестовый стенд) cookies монтируются в контейнеры с хоста — см. `docker-compose.prod.yml`/`docker-compose.yml` и раздел «Cookies на проде» в корневом `README.md`. Перезапуск контейнеров после доставки не требуется — `yt-dlp` читает файл с диска при каждом запросе.
|
||||
Loading…
Add table
Add a link
Reference in a new issue