6.9 KiB
Сборка и проверки правообладателя
Этот документ описывает обслуживание официальной версии правообладателем и уполномоченными им лицами. Публикация инструкций не предоставляет права изменять, создавать самостоятельные форки или распространять новые версии собственного кода. Условия и исключения — в LICENSE. Пользователь может собрать неизменённую официальную поставку для установки и использования по назначению.
Исходники расширения — extension/, Native Messaging помощника — host/,
установщика — tools/setup.cs, сайта — site/.
Готовые EXE, приватный runtime, кеши, личная история и node_modules в Git не включаются.
Быстрые проверки
Нужны Python 3.10+ и Node.js 22+. Для тестов помощника установите requirements.txt
в отдельное виртуальное окружение. Не меняйте глобальное окружение пользователя.
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.
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.
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 укажите версии ОС, браузера, расширения и помощника, действия для воспроизведения и текст ошибки без личных данных.