myYouTube/AGENTS.md

3.3 KiB
Raw Blame History

AGENTS.md

Правила для персонального YouTube-клиента с категориями подписок и интеграцией с существующим MeTube. Основные этапы разработки (каркас, OAuth/подписки, категории, лента, воспроизведение и MeTube) уже реализованы; ориентируйся на фактический код и README.md.

Архитектурные ограничения

  1. Не форкать/копировать Tube Archivist.
  2. Не встраивать yt-dlp в этот сервис — скачивание выполняет существующий MeTube на mediaVM.
  3. Не дублировать функции скачивания MeTube.
  4. Не монтировать media storage MeTube на hermesVM: видео не хранится локально, только проксируется или линкуется.
  5. Не реализовывать YouTube Recommendations/Home.
  6. Приложение остаётся single-user (ALLOWED_GOOGLE_EMAIL).
  7. Frontend не вызывает Google API напрямую.
  8. Frontend не вызывает MeTube write API (POST /add и т.п.) напрямую — только через наш backend.
  9. Не восстанавливать имя скачанного файла из YouTube title: использовать точное имя из события MeTube completed.
  10. Не удалять существующие файлы MeTube при синхронизации или обслуживании; удаление по явному действию пользователя — отдельный поддерживаемый сценарий.
  11. Не менять исходный код MeTube.
  12. Все внешние base URL (MeTube, Google) задаются через env/config.
  13. REST API должен оставаться пригодным для будущего mobile/PWA клиента.

Структура и соглашения

  • migrations/ — Alembic в корне репозитория; миграции импортируют модели из backend/app. Схему БД изменять миграциями, не создавать и не менять ad hoc при старте приложения.
  • MeTube-специфичные HTTP/Socket.IO вызовы инкапсулировать в MeTubeClient, не размазывать по backend.
  • Секреты хранить только в .env (образец — .env.example); не коммитить .env, refresh token или client secret.
  • Backend тесты — pytest в корневом tests/. Интеграции с Google/MeTube по умолчанию mock; реальные вызовы к http://192.168.8.177:8081 — только opt-in, не в обычном CI.
  • В unit-тестах использовать TestClient(app) без with: контекстный менеджер запускает lifespan с подключением к MeTube (Socket.IO) и Postgres (reconcile_on_startup).

Запуск и проверка

См. README.md. Быстрая проверка: docker compose up -d --build и curl http://localhost:8080/api/health.