Как держать проект на Drive, как синхронить SSD ↔ Drive, как отдавать монтажёру и как делать это быстро и безопасно. Сквозные правила для любого YT-проекта.
Это РАЗНЫЕ задачи с разными целями, направлением и местом на Drive. Сначала пойми, что тебе нужно.
| 🪞 Зеркало (Mirror) | 📤 Handoff монтажёру | |
|---|---|---|
| Цель | полная копия проекта = бэкап/работа с двух машин | отдать материал монтажёру |
| Направление | двустороннее (bisync, обе стороны равны) | одностороннее (rclone copy) |
| Что | весь проект (медиа включительно) | что нужно монтажёру (медиа + артефакты) |
| Куда на Drive | gdrive:YTAI_Mirror/<PROJECT> (личный) | Shared Drive «Production Projects» → <PROJECT> |
| Кто запускает | mirror.py локально (скилл /sync) | делегируется Winston |
Имя папки проекта на Drive — стабильное (напр. {PROJECT}), НЕ менять при движении карточки/смене статуса (иначе рвутся ссылки).
Полное двустороннее зеркало проекта SSD ↔ Google Drive через rclone bisync. Безопасно: конфликт сохраняет обе версии, массовые удаления и запуск без диска блокируются.
--initgdrive:YTAI_Mirror/<PROJECT>. Большой seed → ФОНОМ (nohup+caffeinate), это часы. Один раз на проект.--run--check-access (sentinel RCLONE_TEST на обеих сторонах — не стартует без диска) · --max-delete 25 (абортит при удалении >25%) · --conflict-resolve none (обе версии сохраняются .conflict1/2)..conflict1=SSD, .conflict2=Drive. Ничего не потеряно. Решить какая победила → rename обратно. Не включать глобальный auto-newer (mtime на внешних дисках врёт).--force вслепую.Реестр зеркал: mirror.py --list. Логи — в проекте 00_Setup/logs/, НИКОГДА в /tmp. Привилегированное (форс mass-delete, права на Shared Drive) → Winston.
Залить новый материал/правки монтажёру в его папку на Shared Drive. Это rclone copy, делегируется Winston.
<PROJECT> (folderId фиксирован на проект).rclone copy --ignore-existing — докачать недостающее, без перезаписи. НЕ заводить папки _from_editor / дубли.02_Edit/, 01_Source/), не в отдельную папку.--tpslimit 8 --transfers 2, multi-thread off, большие mp4 → --drive-acknowledge-abuse, исключить .DS_Store.move, НЕ перезаливка ⭐Самая частая потеря времени. Если контент УЖЕ на Drive, а локально его переименовали/перенесли — на Drive делай серверный move (мгновенно, без байтов), а не лей заново.
rclone copy залил её на Drive заново (десятки ГБ через интернет), а старая осталась дублем. Часы впустую + дубли.rclone move gdrive:<old> gdrive:<new> — server-side в пределах одного аккаунта/Shared Drive. Мгновенно, 0 байт по сети. Контент тот же — менялись только пути.Правило: реорг папок на Drive = серверный move старого → нового пути. Заливать заново только то, чего на Drive ещё нет (новые файлы). Удаление дублей — тоже move в Drive-корзину (§5), не purge.
_TRASH, не purge)Ничего не удаляем насовсем. Перекладываем в корзину + заметка «что/почему». Восстановить = перенести обратно.
/Volumes/<disk>/<CHANNEL>/_TRASH/<дата>/<PROJECT>/ + _NOTE.md. Хелпер: python3 ~/YTAI/scripts/999_extra/trash_move.py "<path>" --reason "...". На том же диске move мгновенный.rclone move <src> gdrive:<.../_TRASH/> (НЕ purge) + заметка. Делает Winston. Перед move — сверить, что файл есть в новой структуре (не унести единственную копию).Почему бывает медленно и как ускорить.
rclone --bind 192.168.1.95 (трафик с en0 мимо туннеля, app-level) = 4× (5→22 МиБ/с). Уже вшито в mirror.py. Route-level split НЕ годится — Google = ротируемый пул IP.403 rateLimitExceeded, ETA скачет. Лечит --tpslimit 8 --transfers 2, multi-thread off. --size-only = дешёвый рестарт.nohup caffeinate), переживает сон/закрытие сессии.Если переименовал/перенёс папки, в .prproj зашиты старые пути → монтажёр увидит Media Offline.
.prproj, пока он открыт в Premiere.mirror.py (skill /sync), rclone bisync/move/copy, trash_move.py. · смежное: YT-загрузка → · Project Ops → · обновлено 2026-06-24.