# Сборка и проверки правообладателя Этот документ описывает обслуживание официальной версии правообладателем и уполномоченными им лицами. Публикация инструкций не предоставляет права изменять, создавать самостоятельные форки или распространять новые версии собственного кода. Условия и исключения — в [LICENSE](LICENSE). Пользователь может собрать неизменённую официальную поставку для установки и использования по назначению. Исходники расширения — `extension/`, Native Messaging помощника — `host/`, установщика — `tools/setup.cs`, сайта — `site/`. Готовые EXE, приватный runtime, кеши, личная история и `node_modules` в Git не включаются. ## Быстрые проверки Нужны Python 3.10+ и Node.js 22+. Для тестов помощника установите `requirements.txt` в отдельное виртуальное окружение. Не меняйте глобальное окружение пользователя. ```powershell python -m venv .venv .\.venv\Scripts\python.exe -m pip install -r requirements.txt npm ci .\.venv\Scripts\python.exe -m unittest discover -s tests -v npm test npm run check python tools/build.py ``` `tools/build.py` собирает небольшой `dist/YouTubeDL-1.4.5.zip` без EXE. Для сборки расширения не требуется предварительно собирать помощник. ## Браузерные проверки Нужен установленный Microsoft Edge в Windows; для `test:ui` можно задать `YTDL_TEST_BROWSER`. Скриншоты и отчёты сохраняются в игнорируемую папку `test-artifacts`. ```powershell npm run test:ui npm run test:setup npm run test:thumbnails npm run test:motion npm run test:live-shorts npm run test:site ``` Проверки UI используют контролируемые браузерные API. `test:motion` и `test:live-shorts` загружают настоящее расширение в отдельный профиль Edge; последняя открывает живой YouTube. `test:site` проверяет сайт в браузере на широком и узком экране, ссылки скачивания, темы и навигацию. `npm run test:reconnect` использует отдельную установку и уникальное имя native host: проверяет install/remove/reinstall, разрывы портов и две открытые панели без перезагрузки. Ему нужен `dist/YouTubeDL-Helper-Setup.exe`. `test:browser` скачивает публичный тестовый ролик и проверяет NVENC через FFprobe. **`test:helper` удаляет и повторно устанавливает зарегистрированный помощник текущего пользователя**: запускайте только в подготовленной тестовой учётной записи Windows. `tests/offline-bundle.py`, `tests/component-update.py` и `tests/amd-fallback.py` проверяют автономность, обновления и отказ AMD с переходом на CPU. GPU-проверки зависят от реального оборудования. ## Сборка помощника Нужны Windows x64, C# compiler .NET Framework и Python. Подготовка требует интернет, работает в `.build-cache` и `.build`, проверяет закреплённые SHA256. ```powershell python tools/build_bundle.py --prepare # Повторная сборка из подготовленного комплекта: python tools/build_bundle.py ``` Версия помощника берётся из `host/common.py`, версия расширения — из `extension/manifest.json`. Не меняйте публичный `key` расширения: он закрепляет ID, разрешённый установленному native host. EXE самодостаточен; `install.ps1` / `install.cmd` предназначены для разработки с внешним Python. ## Релизы и сайт - Публикуйте ZIP расширения, отдельный `YouTubeDL-Helper-Setup.exe`, манифест, лицензии/исходные материалы и `SHA256SUMS.txt` в релизах Gitea. - Перед выпуском обновите версии и ссылки в `INSTALL.md`, `README.md`, `site/index.html` и документации. Стабильное имя EXE позволяет использовать URL `/releases/download/vВЕРСИЯ/YouTubeDL-Helper-Setup.exe`. - Исходники статического сайта находятся в `site/` того же репозитория. Nginx публикует их по адресу https://git.lonarpgproxy.space/extention/youtubedl/; обновление выполняется из проверенного коммита main отдельным развёртыванием. - Для локального просмотра: `python -m http.server 4173 --directory site`, затем `http://127.0.0.1:4173`. - Графика и её промпты описаны в `docs/ASSETS.md`. Не добавляйте в маркетинговые скриншоты настоящие cookies, приватные ссылки или личные пути. Для подготовки исходников FFmpeg и его библиотек используйте закреплённую копию FFmpeg-Builds из архива исходных материалов релиза. На Linux с Docker выполните `./download.sh win64 gpl-shared`; параметры и скачиваемые ревизии заданы в сценариях этой копии. Проверяйте лицензии и доступность соответствующих исходников при замене стороннего runtime. Предложения улучшений и ошибки присылайте через Issues; для изменений собственного кода нужно предварительное письменное разрешение правообладателя. В bug report укажите версии ОС, браузера, расширения и помощника, действия для воспроизведения и текст ошибки без личных данных.