ProxyProfiles

Инструкция

Полное руководство пользователя (тот же текст, что в архиве — Инструкция_полная.md).

ProxyProfiles — менеджер профилей Chrome с отдельным прокси для каждого профиля

ProxyProfiles — настольное приложение для Windows 10/11 (x64), которое помогает вести много аккаунтов соцсетей (Instagram, TikTok, Facebook, X/Twitter, VK и т.д.): у каждого профиля своя папка Chrome (cookies, история, расширения), свой прокси и свой набор параметров отпечатка браузера.

Версия 1.5 — вход по логину и паролю, база пользователей (SQLite) с ролями, сброс пароля без потери данных, код восстановления (раздел «Новое в версии 1.5.0»).

Версия 1.3 — шифрование данных мастер-паролем, учёт трафика и ROI (Keitaro/Binom/CSV), креативы, контент-план с автопостингом в YouTube и TikTok, здоровье аккаунтов, аренда и ротация прокси, командный режим (раздел 13).

Версия 1.2 — встроенные алгоритмы прогрева с анкетой ниши (раздел 6), импорт аккаунтов, cookies и 2FA (раздел 7), загрузка видео на YouTube (раздел 8), уведомления в Telegram (раздел 9). Это не полноценный антидетект-браузер уровня Octo/Dolphin/AdsPower (подробнее — в разделе «Ограничения»).


1. Установка и запуск

Нужен установленный Google Chrome (обычный, стабильный). Приложение использует ваш Chrome, а не свой встроенный браузер.

Скачать последнюю версию: https://pp.46-8-225-60.sslip.io/download.html (установщик, полный архив с инструкциями и курсом, портативная версия; у каждого файла указан SHA-256). (Зеркало, если основной сайт недоступен: https://proxyprofiles.vercel.app/download.html)

Вариант А — установщик (рекомендуется)

  1. Запустите ProxyProfiles-Setup-<версия>-x64.exe.
  2. Выберите папку установки → «Установить». Создаются ярлыки в меню «Пуск» и на рабочем столе. Новая версия ставится поверх старой, данные сохраняются.
  3. Windows SmartScreen может предупредить о неизвестном издателе (установщик не подписан) — нажмите «Подробнее» → «Выполнить в любом случае».

Вариант Б — портативная версия (zip)

  1. Распакуйте ProxyProfiles-<версия>-portable-win-x64.zip в любую папку (например, D:\ProxyProfiles).
  2. Запустите ProxyProfiles.exe.

Chrome ищется автоматически:

  • C:\Program Files\Google\Chrome\Application\chrome.exe
  • C:\Program Files (x86)\Google\Chrome\Application\chrome.exe
  • %LOCALAPPDATA%\Google\Chrome\Application\chrome.exe

Если Chrome стоит в другом месте, укажите путь в Настройки → Google Chrome → Обзор….

Где хранятся данные: %APPDATA%\ProxyProfiles\

  • data.json — профили, прокси, теги, настройки;
  • profiles\<id>\ — папки Chrome (user-data-dir) для каждого профиля;
  • logs\warmup\<ГГГГ-ММ-ДД>\<id запуска>.json — журналы прогрева (каждый шаг: время, действие, результат).

При удалении программы эти данные не удаляются.


1а. Аккаунт ProxyProfiles и тарифы (1.6)

С 1.6.1 программа открывается только через аккаунт ProxyProfiles: при запуске экран «Вход / Регистрация» (логин, пароль, почта или Telegram по желанию). Локальный администратор больше не создаётся, роль берётся из облачного аккаунта. Пароль аккаунта открывает и локальные зашифрованные данные; если данные были под старым паролем, его попросят один раз и данные перейдут на пароль аккаунта. Новый аккаунт получает тариф Free.

Тариф Профили Прогрев Загрузки, «Выход из тени» Команда и роли
Free 2 нет нет нет
Lite 20 да нет нет
Pro 100 да да нет
Premium без ограничений да да да

Тариф и срок видны внизу боковой панели и в «Настройки → Подписка» (кнопки «Проверить тариф» и «Выйти из аккаунта»). Программа проверяет тариф при запуске и каждые 30 минут. Без интернета последний проверенный тариф действует 3 дня, затем до проверки действует Free. Истёк срок: действует Free, данные не удаляются. Тарифы выдаёт администратор в веб-админке (раздел «Клиенты»).

2. Быстрый старт

  1. Прокси → «Добавить / импорт»: вставьте прокси, по одному в строке, → «Добавить». Отметьте «Сразу проверить».
  2. Профили → «Массовое создание»: например, 10 профилей с тегом «Instagram», режим прокси «Распределить сохранённые прокси». У каждого профиля будет свой прокси и свой случайный отпечаток.
  3. Нажмите ▶ Запустить у профиля. Сначала прокси проверяется. Если проверка прошла, откроется окно Chrome, которое работает только через этот прокси.
  4. ■ Стоп или просто закройте окно Chrome. Локальный форвардер прокси при этом тоже закрывается.

Как добавить прокси к одному профилю

Откройте профиль (клик по названию) → вкладка «Прокси»:

  • Из списка прокси — выбрать сохранённый прокси;
  • Свой прокси — вставить строку в поле (она распознаётся автоматически) или заполнить поля «Тип / Хост / Порт / Логин / Пароль». Кнопка «💾 В список прокси» сохраняет его в общий список;
  • Без прокси — прямое подключение (по умолчанию такой запуск запрещён, см. Настройки).

Кнопка «⟳ Проверить прокси» показывает внешний IP, страну, город, часовой пояс, провайдера и задержку. Результат сохраняется в профиле и в списке прокси.

Массовые действия

Отметьте профили галочками. Появится панель: Запустить, Остановить, Назначить прокси (один на всех / распределить по одному / убрать), Тег (добавить/убрать), Проверить прокси, Удалить. Есть поиск, фильтр по тегу и по статусу.

На странице «Прокси» выбранные прокси можно проверить, назначить отмеченным профилям (по кругу), удалить, или создать по профилю на каждый прокси.

Импорт существующего профиля Chrome

Профили → «Импорт папки Chrome» → выберите папку User Data (обычно %LOCALAPPDATA%\Google\Chrome\User Data) или папку конкретного профиля (Default, Profile 1…):

  • Скопировать (рекомендуется): данные копируются в папку приложения, кэш не копируется;
  • Использовать на месте: Chrome запускается прямо с этой папкой. Эту папку нельзя одновременно открывать в обычном Chrome.

Перед импортом закройте обычный Chrome.

Cookies

В меню профиля (⋯): Экспорт cookies (JSON / Netscape) и Импорт cookies. Профиль для этого должен быть запущен. JSON совместим с расширениями Cookie-Editor / EditThisCookie.


3. Поддерживаемые форматы прокси

Типы: HTTP, HTTPS, SOCKS5, SOCKS4. Если в строке нет схемы, используется «тип по умолчанию».

Формат Пример
host:port 185.10.10.10:8000
host:port:user:pass 185.10.10.10:8000:login:password
user:pass@host:port login:password@185.10.10.10:8000
user:pass:host:port login:password:185.10.10.10:8000
host:port@user:pass 185.10.10.10:8000@login:password
схема://user:pass@host:port socks5://login:password@91.200.1.2:1080
схема://host:port:user:pass http://185.10.10.10:8000:login:password
через пробел 185.10.10.10 8000 login password
IPv6 [2001:db8::1]:8080, user:pass@[2001:db8::1]:8080

Схемы: http, https, socks5, socks5h, socks, socks4, socks4a. Логин и пароль могут быть URL-кодированы (%40 = @). В пароле можно использовать : (формат host:port:user:pass). Строки, начинающиеся с #, пропускаются. При импорте дубли не добавляются.


4. Строгий режим прокси: что гарантируется

Chrome не умеет передавать логин и пароль прокси через --proxy-server. Поэтому для каждого запущенного профиля приложение поднимает локальный форвардер на 127.0.0.1:<случайный порт> без авторизации, а он пересылает трафик на ваш прокси уже с логином и паролем. Chrome подключается только к этому форвардеру.

Гарантии:

  1. Профиль с прокси никогда не запускается без прокси. Перед каждым запуском прокси проверяется через тот же форвардер, который получит Chrome. Если проверка не прошла (неверный логин/пароль, прокси не отвечает, таймаут), появляется ошибка, и Chrome не запускается.
  2. У форвардера нет прямого выхода в интернет. Любой запрос идёт только через ваш прокси. Если прокси «упал» во время работы, страницы перестают загружаться: они не откроются напрямую с вашего IP.
  3. Chrome запускается с флагами:
    • --proxy-server=http://127.0.0.1:<порт> и --proxy-bypass-list=<-loopback>: в обход прокси не идёт ничего, даже localhost;
    • --host-resolver-rules="MAP * ~NOTFOUND , EXCLUDE 127.0.0.1": локальные DNS-запросы запрещены, имена сайтов разрешаются на стороне прокси (защита от DNS-утечек);
    • --force-webrtc-ip-handling-policy=disable_non_proxied_udp и --webrtc-ip-handling-policy=disable_non_proxied_udp, а также те же настройки в Preferences профиля: WebRTC не может отправить UDP мимо прокси и раскрыть ваш реальный IP;
    • --disable-quic, --no-first-run, --no-default-browser-check, --user-data-dir=<папка профиля>, --lang, --accept-lang, --window-size.
  4. Когда закрывается последнее окно Chrome или нажата кнопка «Стоп», форвардер закрывается. Когда закрывается ProxyProfiles, все запущенные им браузеры тоже закрываются.
  5. Профиль без прокси по умолчанию не запускается. Разрешить это можно в Настройки → «Разрешить запуск профилей без прокси».

5. Отпечаток браузера (fingerprint)

При создании профиля отпечаток генерируется случайно, но согласованно: UA Windows ↔ navigator.platform = Win32 ↔ WebGL ANGLE/Direct3D11. Кнопка «🎲 Новый отпечаток» создаёт новый.

Параметр Как подменяется
User-Agent «Авто» = реальная версия установленного Chrome (рекомендуется), пресеты Chrome 150–154 Windows или свой. При своём UA подменяются и Client Hints (заголовки Sec-CH-UA* через CDP, navigator.userAgentData в JS)
Язык --lang, --accept-lang, intl.accept_languages в профиле, navigator.language(s), локаль Intl. Режим «По стране прокси» выбирает язык по стране IP
Часовой пояс «Авто по прокси» берёт пояс из проверки прокси. Подмена через CDP Emulation.setTimezoneOverride на уровне движка, поэтому Intl, Date, getTimezoneOffset и toString согласованы, в том числе в воркерах. Есть режимы «Вручную» и «Системный»
Экран screen.width/height/availWidth/availHeight/colorDepth
CPU / память navigator.hardwareConcurrency, navigator.deviceMemory (как и в настоящем Chrome — не больше 8)
WebGL UNMASKED_VENDOR_WEBGL / UNMASKED_RENDERER_WEBGL из списка реальных видеокарт (NVIDIA/AMD/Intel, ANGLE D3D11)
Canvas Небольшой постоянный для профиля шум в toDataURL, toBlob, getImageData. Хэш стабилен между запусками, но отличается у разных профилей
AudioContext Небольшой постоянный шум в AudioBuffer.getChannelData и AnalyserNode.getFloatFrequencyData
WebRTC «Только через прокси» (по умолчанию) или «Полностью отключить» (RTCPeerConnection недоступен)
webdriver navigator.webdriver = false
Окно --window-size: авто (по экрану) или вручную

Как это устроено. К каждому профилю подключается своя копия встроенного расширения MV3. Его content script работает в MAIN world на document_start во всех фреймах. Конфиг профиля записывается прямо в копию расширения. В Chrome 137+ флаг --load-extension отключён, поэтому расширение загружается через DevTools Protocol (Extensions.loadUnpacked, канал --remote-debugging-pipe, без открытого сетевого порта). Если загрузить расширение не удалось, тот же скрипт внедряется через CDP Page.addScriptToEvaluateOnNewDocument. В Dedicated/Shared/Service Worker скрипт внедряется через CDP до старта воркера. Подменённые функции маскируются под native (Function.prototype.toString).


6. Аккаунты соцсетей и прогрев (версия 1.2)

⚠ Риск блокировки — прочитайте до использования

Любая автоматизация действий в соцсетях нарушает правила большинства площадок и может привести к ограничениям, теневому бану или блокировке аккаунта. ProxyProfiles не даёт гарантий и не «обходит» антифрод.

  • Соблюдайте план и дневные лимиты. Не прогревайте много аккаунтов одновременно с одного IP. Один профиль = один аккаунт сети = один прокси.
  • Подписки, комментарии, публикации и оформление профиля программа не делает — это ручные задачи (см. 6.6).
  • Если появилась капча, страница входа, проверка аккаунта или окно согласия с cookies, программа ничего не решает и не обходит: сценарий ставится на паузу, статус аккаунта — «Требуется действие». Дальше решаете вы, вручную.

6.1. Аккаунты в профиле

В одном профиле может быть несколько аккаунтов разных соцсетей: Threads, TikTok, YouTube, Instagram. Откройте профиль → вкладка «Аккаунты» → «+ Добавить аккаунт» (или «📥 Импорт», см. раздел 7).

Поля аккаунта: соцсеть, логин, пароль, почта и пароль от почты, секрет 2FA (TOTP), cookies, статус, день прогрева, дневные лимиты аккаунта (лайки / подписки / действия), заметки. Всё это хранится в открытом виде в data.json.

Статусы: Новый, Прогревается, Прогрет, Требуется действие, Ошибка, Бан. Аккаунты со статусами «Бан», «Ошибка», «Требуется действие» и «Прогрет» планировщик не трогает.

Кнопки у аккаунта: ↗ открыть сайт (cookies аккаунта внедряются заранее), 🔑 Войти (см. 7.3), 🔥 Прогреть, 📅 План, 📋 Анкета, ✅ x/y — ручные задачи на сегодня, ⋯ — код 2FA, cookies, загрузка видео (YouTube), изменить, удалить. Под строкой аккаунта показывается: ниша, происхождение, отлежка, день и фаза, число сеансов сегодня, счётчики лайков/подписок за день с лимитами, предупреждения (ГЕО, незаполненная анкета).

6.2. Встроенные алгоритмы прогрева

Встроены сценарии и планы из исследования алгоритмов прогрева (warmup-research). Это 16 сценариев: Threads — 4 фазы, TikTok — 7 (день 1, дни 2–3, 4–6, 7–10, 11–14, поддержание, «после публикации»), YouTube — 5 (4 фазы и ускоренный для старых аккаунтов). Для Instagram оставлен мягкий сценарий без алгоритма. Есть 5 планов: threads-new, tiktok-new, tiktok-aged, youtube-new, youtube-aged.

Встроенные сценарии только для чтения, но их можно дублировать и менять копию. У каждого показаны фаза, дни, число сеансов в день, длительность сеанса, дневные ориентиры (лайки, подписки, комментарии…), какие ответы анкеты нужны, ручные задачи и источники. Старые сценарии-заглушки версии 1.1 заменены: планы аккаунтов переводятся на новые сценарии автоматически.

Если план назначен, планировщик каждый день сам запускает сценарий нужной фазы нужное число раз (1–3 сеанса), в случайное время внутри окон активности.

6.3. Анкета ниши

Кнопка «📋 Анкета» у аккаунта. Анкета открывается и сама, когда вы назначаете план аккаунту без анкеты. В ней 26 вопросов: ниша, ключевые слова (10–20), подтемы, хэштеги, аккаунты-ориентиры, эталонные видео, страна, язык, происхождение и возраст аккаунта, окна активности, интенсивность и др. Анкету можно менять в любой момент, она хранится в аккаунте. Есть кнопка «Заполнить примером».

  • Во время запуска плейсхолдеры {{keywords}}, {{hashtags}}, {{subtopics}}, {{reference_accounts}}, {{reference_videos}} заменяются случайными значениями из ответов. Буквальный {{…}} никогда не ищется и не открывается.
  • Если сценарию нужны ответы, которых нет (например, нет ключевых слов), запуск отклоняется с понятным сообщением: «Нельзя запустить «…» для @…: в анкете ниши не заполнено — Ключевые слова для поиска. Откройте «Анкета ниши» у аккаунта». При запуске по расписанию статус аккаунта становится «Требуется действие». Необязательные шаги (например, ориентиры, если их нет) просто пропускаются.
  • ГЕО: если страна в анкете не совпадает со страной IP по последней проверке прокси, вы увидите предупреждение в анкете, у аккаунта и в журнале запуска.
  • Интенсивность «Осторожно (×0.7)» уменьшает вероятность лайков и кликов и длительность сеансов.
  • Окна активности из анкеты становятся окнами плана. Они задаются по времени целевой страны и пересчитываются во время вашего ПК. Если после пересчёта окно переходит через полночь, оно обрезается до 00:00–23:59 текущих суток.

6.4. План по анкете, происхождение аккаунта и отлежка

В окне плана есть кнопка «🧭 Собрать по анкете». Если анкета заполнена, новый план собирается сразу:

Происхождение План
Новый, зарегистрирован мной полный (*-new, 14 дней у TikTok)
Старый личный (есть история) ускоренный (*-aged), если возраст ≥ 7 дней
Купленный авторег полный + отлежка 24–48 ч (до её конца прогрев не запускается)
Купленный с отлежкой (фарм) ускоренный (*-aged) + отлежка 24 ч
Восстановлен после бана полный, фаза 1 удлинена до 5 дней

Во время отлежки в «Ручных задачах» стоит напоминание: ничего не менять в аккаунте. Для каждого этапа можно задать своё число сеансов в день. По умолчанию оно берётся из сценария фазы.

6.5. Движок: лимиты и защита от «снятия» лайка

  • Дневные лимиты аккаунта: лайки, подписки, действия. Действует наименьшее из: лимит в карточке аккаунта, лимит фазы сценария, общая настройка (Настройки → «Дневные лимиты»). Если лимит исчерпан, шаг пропускается с записью в журнале. Счётчики считаются за календарный день по всем сеансам.
  • Лайк/подписка не снимаются: перед нажатием проверяется состояние кнопки (aria-pressed="true", подписи «Unlike / Не нравится», красная иконка сердца, [subscribed] / «Subscribed / Вы подписаны»). Уже поставленный лайк или оформленная подписка не нажимаются, в журнале будет «уже стоит — не нажимаем». Берётся кнопка активного ролика (ближайшая к центру экрана).
  • Подписка автоматически делается только в сценариях YouTube и только с низкой вероятностью, в пределах лимита фазы. В Threads и TikTok подписки — ручная задача.
  • Глобальные ограничения сеанса и детектор капчи/входа — как в 1.1. Добавлено окно согласия с cookies YouTube/Google (ЕС): пауза, выбор вы делаете сами один раз для профиля.

6.6. Ручные задачи на сегодня

Подписки (кроме YouTube), комментарии, публикации, оформление профиля, 2FA, проверка ленты — это ручные задачи. Программа показывает их в журнале каждого запуска («Вручную: …») и в списке «✅ Ручные задачи на сегодня» у аккаунта. Там вы отмечаете выполненные (отметки хранятся по дням, 60 дней). Задачи зависят от дня плана («День 7: …», «Дни 4–6: …») и от ответов анкеты: темы «Не интересно», сообщества Threads, ссылки, рекламный кабинет.

6.7. Сценарии, очередь, журналы

Редактор сценариев и очередь — как в 1.1. Новый тип шага follow (подписка: selector, probability, labels). У like/follow есть labels — подписи кнопки (aria-label/title) как запасной способ поиска. У шага может быть requires — он выполняется только при заполненном ответе анкеты.

6.8. Проверка селекторов

Селекторы встроенных сценариев проверены на публичных страницах без входа (без логина ни в один аккаунт, headless Chrome) в октябре 2026:

  • TikTok: кнопка лайка div[role=button][data-e2e="like-icon"][aria-pressed] (aria-label «Like video…»), поиск input[data-e2e="search-user-input"], «Интересное» [data-e2e="explore-item"]. Страницы поиска и хэштегов без входа показывают капчу-слайдер, поэтому элементы выдачи проверить не удалось: у них несколько запасных селекторов (search_video-item, challenge-item, user-post-item, a[href*="/video/"]).
  • Threads: иконки действий svg[title="Like"] / <title>Like</title> внутри div[role=button], плюс запасные aria-label «Нравится». Поиск без входа даёт пустую выдачу.
  • YouTube: выдача ytd-video-renderer a#thumbnail; главная и каналы — ytd-rich-item-renderer/yt-lockup-view-model a[href*="/watch"]; лайк like-button-view-model button[aria-pressed="false"]; подписка ytd-subscribe-button-renderer button / yt-flexible-actions-view-model button; Shorts — reel-action-bar-view-model like-button-view-model button.

Кроме того, каждый встроенный сценарий с заполненной анкетой прогоняется в тестах на локальных макетах страниц, которые повторяют эту разметку (test/scenarios-smoke.mjs). Площадки регулярно меняют вёрстку: если в журнале часто «не найден — пропуск», селекторы устарели.


7. Авторизация аккаунтов

7.1. Массовый импорт

Кнопка «📥 Импорт аккаунтов» (на странице профилей или во вкладке «Аккаунты» профиля). По одному аккаунту в строке, разделитель «:» (или «;», «|»):

login:password
login:password:email:emailpass
login:password:2fa-secret            (base32 или otpauth://…)
login:password:email:emailpass:2fa-secret
login:password:[{"name":"sessionid",...}]   (cookies JSON последним полем)
login:password:W3sibmFtZSI6...              (cookies base64 последним полем)
[{"name":...}]  или  W3sibmFtZSI6...         (только cookies — аккаунт без логина)
.tiktok.com	TRUE	/	TRUE	1999999999	sessionid	abc   (блок Netscape — к предыдущему аккаунту)

Файл можно загрузить кнопкой «Из файла…». «Проверить» показывает распознанные аккаунты и ошибки по строкам. Куда добавить: в текущий профиль, по одному в выбранные профили или «новый профиль на каждый аккаунт» (с тегом «импорт», прокси назначьте потом). Дубли логинов по умолчанию пропускаются.

7.2. Cookies

Cookies аккаунта (JSON Cookie-Editor/EditThisCookie, Netscape cookies.txt или base64 от них) задаются при импорте, в карточке нового аккаунта или через «⋯ → Cookies». Они внедряются в профиль через DevTools Protocol (Storage.setCookies) до открытия сайта: при «↗», «Войти», прогреве и загрузке видео. Внедряются один раз, повторно — только если вы их заменили.

7.3. «Войти» (полуручной вход) и 2FA

Кнопка «🔑 Войти» запускает профиль, внедряет cookies и открывает страницу входа соцсети (если есть cookies, открывается сам сайт). Затем в течение 3 минут программа вписывает логин и пароль в появляющиеся поля (у Google — по шагам, после того как вы нажмёте «Далее»). Если задан секрет 2FA, вписывается и текущий код. Кнопки «Войти» / «Далее» программа не нажимает. Капчу, подтверждение по телефону/почте и любые проверки проходите вы.

Если задан секрет TOTP, «⋯ → Код 2FA» показывает текущий 6-значный код с таймером (otplib, RFC 6238). Его можно скопировать или «вписать на странице».


7.4. Статус входа (новое в 1.3.2)

В таблице аккаунтов профиля есть колонка «Вход»:

  • ✅ Выполнен — в браузере профиля есть cookie сессии соцсети (TikTok: sessionid, YouTube/Google: SAPISID/SID/LOGIN_INFO, Threads/Instagram: sessionid);
  • ⛔ Нет входа — профиль запускался, но сессии нет: нажмите «🔑 Войти»;
  • 🍪 Cookies — у аккаунта сохранены cookies, они будут внедрены при запуске;
  • — не проверен — профиль ещё не запускался.

После «🔑 Войти» программа каждые 4 секунды (до 15 минут) проверяет браузер профиля. Как только вы вошли, статус сам меняется на «✅ Выполнен», а cookies сессии сохраняются в аккаунт (резервная копия входа: при переносе профиля или очистке браузера они будут внедрены заново). Проверить вручную: «⋯ → ✔ Проверить вход». В окне нового аккаунта есть кнопка «🔑 Сохранить и войти»: аккаунт сохраняется, и сразу открывается вход. При каждом запуске профиля статус входа всех его аккаунтов обновляется автоматически.

8. Загрузка видео на YouTube (Shorts и обычные)

В ваш собственный канал, в который вы уже вошли в этом профиле. Аккаунт YouTube → «⋯ → Загрузка видео» → «+ Добавить видео»: файл, название, описание, теги, доступ (ограниченный / по ссылке / открытый), флаг Shorts, «для детей», время публикации по расписанию, время старта загрузки, «отложено». Общая очередь всех аккаунтов — на странице «📤 Загрузки».

Загрузка идёт через интерфейс YouTube Studio в Chrome профиля по DevTools Protocol. Файл передаётся в поле выбора через DOM.setFileInputFiles, без системного окна. Название, описание и теги вводятся посимвольно с паузами, затем выбирается «не для детей» / «для детей», три раза нажимается «Далее», выбирается доступ или расписание. Программа ждёт конца загрузки файла, нажимает «Сохранить / Опубликовать» и записывает ссылку (youtu.be/… или youtube.com/shorts/…) в журнал и очередь.

  • Shorts YouTube определяет сам (вертикальное/квадратное видео до 3 минут). Флаг добавляет #Shorts в описание и ссылку вида /shorts/.
  • Если вместо Studio открылась страница входа, капча, «подтвердите, что это вы», «создайте канал» или «дневной лимит загрузок», то пауза и «Требуется действие». Вкладка остаётся открытой, после решения нажмите «▶».
  • Одновременно загружается одно видео (настройка). Пока в профиле идёт загрузка, прогрев этого профиля ждёт, и наоборот.
  • Если не удалось выставить дату/время публикации, видео остаётся с ограниченным доступом, а в журнале появится предупреждение.
  • Модуль расширяемый (src/main/uploader.js, UPLOADERS[network]). С версии 1.3 есть загрузка в TikTok через TikTok Studio (раздел 13.4).

9. Telegram: уведомления и журнал

Настройки → «Telegram»: токен бота (от @BotFather), chat id, кнопки «Отправить тест» и «Сводка сейчас». События (каждое включается отдельно): прогрев начат / завершён / ошибка, «Требуется действие» (капча, вход, анкета), прокси не прошёл проверку, видео загружено / ошибка загрузки. Есть ежедневная сводка в заданное время. Сообщения отправляются через Bot API sendMessage напрямую из программы, не через прокси профилей. Если нужно, в настройке «Сеть для Telegram» можно выбрать прокси одного из профилей. Токен хранится в data.json в зашифрованном виде (с 1.3), в сообщениях об ошибках он маскируется.

10. Чего программа сознательно НЕ делает

  • Не накручивает просмотры, лайки, подписчиков и не занимается «SEO-накруткой».
  • Не решает капчи и не подключает сервисы решения капч.
  • Не проходит подтверждение по телефону и не использует сервисы виртуальных номеров.
  • Не нажимает «Войти» за вас и не обходит проверки входа.
  • Не пишет комментарии и не публикует посты в прогреве. Загрузка видео делается только по вашей очереди в ваш собственный канал.

13. Новое в версии 1.3

13.1. Мастер-пароль и шифрование

  • При первом запуске 1.3 откроется экран «Создание мастер-пароля»: не короче 8 символов, с цифрой или символом (или длиннее 14 символов). Данные 1.2 (открытый data.json) шифруются автоматически. Старая открытая копия data.json.bak перезаписывается зашифрованной. Если вы раньше сами копировали data.json, в этих копиях секреты остаются в открытом виде, их нужно удалить вручную.
  • Шифрование: ключ выводится из пароля функцией scrypt, данные шифруются AES-256-GCM. Шифруются пароли прокси и аккаунтов, почты, cookies, секреты 2FA, токены Telegram и трекеров, ответы анкет.
  • Восстановить забытый пароль нельзя. Без него данные не расшифровать. Администратор может сбросить пароль другого пользователя, но свой пароль восстановить не может.
  • Кнопка 🔒 в левом нижнем углу блокирует программу. «Сменить пароль» находится там же. Автоблокировка по бездействию: Настройки → Безопасность (0 = выключена).

13.2. Статистика: трекеры, ссылки, офферы, расходы, ROI

  • Страница «📊 Статистика» с вкладками «Отчёт», «Ссылки», «Офферы», «Расходы», «Трекеры», «Импорт CSV».
  • Трекеры: Keitaro (Admin API v1) и Binom (API). Нужны URL и API-ключ (ключ шифруется). Есть кнопки «Проверить» и «Загрузить статистику» за период.
  • Ссылки: шаблоны с подстановками {account_id}, {account}, {profile}, {network}, {video_id}, {offer}, {geo}, {creative}, {link_id} и др. Подстановки ставятся в sub1…sub5 и UTM, так клики в трекере связываются с аккаунтом, видео и креативом.
  • Расходы: покупка аккаунта, аренда прокси, креативы, расход по офферу, прочее. Отчёт показывает клики, конверсии, доход, расход, прибыль и ROI, с группировкой по аккаунту, профилю, соцсети, офферу, ссылке, видео, креативу, GEO или дню. Есть график по дням.
  • CSV: импорт выгрузки любого трекера или партнёрки. Колонки сопоставляются автоматически, а сопоставление можно поправить вручную.

13.3. Креативы

Страница «🎬 Креативы»: библиотека видео с превью, тегами, оффером, GEO и статусом. Видно, куда и когда креатив уже загружен. Из креатива можно сразу поставить загрузку в YouTube или TikTok. Превью делаются встроенным декодером Chromium в Electron (mp4/webm/mov с поддерживаемыми кодеками). Для остальных форматов в Настройки → Контент-план можно указать путь к своему ffmpeg.exe. ffmpeg в установщик не включён, иначе установщик стал бы больше примерно на 30 МБ.

13.4. Контент-план и автопостинг (YouTube + TikTok)

  • Страница «🗓 Контент-план»: календарь на месяц, публикации перетаскиваются мышью между днями.
  • «Автоплан»: креативы распределяются по выбранным аккаунтам в рабочие окна. Перед сохранением показывается предпросмотр. Учитываются лимит постов в день (общий из настроек, по умолчанию 2, или свой у аккаунта в поле «Постов в день») и минимальный интервал.
  • TikTok: публикация через веб-интерфейс TikTok Studio в Chrome профиля, в котором вы уже вошли. Подпись состоит из названия, описания и хэштегов без дублей (до 2200 символов). Поддерживаются «Кто может смотреть» (все / друзья / только вы) и подтверждение «Опубликовать сейчас». После публикации ссылка на видео берётся из раздела «Публикации». Видео публикуется во время старта задачи (отложенная публикация TikTok не используется).
  • Страница входа, «подтвердите, что это вы», капча или лимит публикаций ставят задачу на паузу со статусом «Требуется действие». Программа ничего из этого не проходит за вас.

13.5. Здоровье аккаунтов

Страница «🩺 Здоровье» и колонка «Здоровье» в профилях. По публичной странице аккаунта (YouTube, TikTok) проверяется: страница существует, есть подписчики и просмотры последних своих видео. Резкое падение просмотров (по умолчанию на 70% и больше относительно прошлых видео) отмечается как возможный теневой бан, при этом приходит уведомление в Telegram. Проверка идёт через прокси профиля и без входа. Её можно отключить для отдельного аккаунта. Для Threads, Instagram и других сетей проверки нет.

13.6. Прокси: аренда, ротация, аптайм

Новые поля прокси: «Аренда до», цена, провайдер, ссылка смены IP, «ротация каждые N минут» (запрос по ссылке напрямую или через сам прокси). Колонка «Аренда / аптайм» показывает, сколько дней осталось, и долю успешных проверок за 7 дней. Есть баннер «скоро заканчивается» (порог в днях), автопроверка прокси каждые N минут и кнопка 🔄 «Сменить IP».

13.7. Командный режим

  • Страница «👥 Команда» (только администратор): пользователи с ролями Администратор, Байер, Наблюдатель, доступ к профилям, передача профилей другому пользователю, журнал действий (аудит).
  • У каждого пользователя свой пароль на экране входа. Байер и наблюдатель видят только свои профили и профили, к которым им дали доступ. Наблюдатель только смотрит, секреты от него скрыты. Настройки, трекеры и команда доступны только администратору.
  • Это разделение доступа внутри одной установки на одном компьютере, а не сетевая многопользовательская система.
  • Пакет профилей (.ppbundle): выделите профили → «Экспорт пакета». Пакет шифруется отдельным паролем, папки Chrome можно включить по желанию. Импорт: Команда → Пакет. Так профили переносятся между компьютерами.

13.8. Чего нет в 1.3 сознательно

  • Клоакинг, накрутка просмотров и лайков, обход модерации, решение капч, автоматическое подтверждение телефона — не реализованы и не будут.
  • Поля настроек aiApiKey, aiBaseUrl, aiModel зарезервированы и пока не используются: генерации текстов через ИИ в 1.3 нет.

13.9. Тесты 1.3

npm test (модульные, включая test/v13.test.js), npm run test:smoke (Chrome через CDP, включая tiktok-studio-smoke.mjs на макете TikTok Studio), bash test/run-ui.sh (сквозные UI-тесты Electron, включая ui-13-steps.mjs: мастер-пароль и перенос данных 1.2, блокировка, Keitaro-макет, ROI, CSV, креативы, план, здоровье, Telegram-макет, ротация прокси, роли). Реальные TikTok, YouTube, Telegram и трекеры в тестах не используются, только локальные макеты.


11. Известные ограничения

  • Это не полноценный антидетект-движок уровня Octo Browser, Dolphin{anty}, AdsPower, GoLogin, у которых модифицированное ядро Chromium. Подмена сделана на уровне JavaScript и DevTools Protocol поверх обычного Google Chrome. Продвинутые антифрод-системы могут найти следы подмены.
  • Не подменяются: шрифты, WebGL-параметры кроме vendor/renderer, OffscreenCanvas.convertToBlob, ClientRects, медиаустройства, батарея, matchMedia по размеру экрана, devicePixelRatio, голоса speechSynthesis.
  • Расширение отпечатка видно в chrome://extensions. Chrome может показать плашку о неподдерживаемом флаге.
  • HTTPS-прокси: сертификат прокси не проверяется. SOCKS4 работает без логина/пароля. UDP через SOCKS5 не используется.
  • Когда ProxyProfiles закрывается, все запущенные им браузеры тоже закрываются.
  • С версии 1.3 секреты в data.json зашифрованы мастер-паролем (раздел 13.1). Папки профилей Chrome (profiles\<id>\: cookies, история самого браузера) шифруются только средствами Chrome/Windows, мастер-пароль их не защищает. Блокировка закрывает доступ к интерфейсу, а уже запущенные браузеры продолжают работать.
  • Селекторы соцсетей меняются. Селекторы проверены на публичных страницах без входа. Интерфейс после входа (лента TikTok, поиск Threads) и YouTube Studio проверить без входа невозможно: Studio-загрузчик проверен только на локальном макете с разметкой Studio и может потребовать правки при изменениях интерфейса (тогда будет понятная ошибка «Не найден элемент YouTube Studio: …»).
  • Страницы поиска/хэштегов TikTok без входа показывают капчу. С выполненным входом обычно работают, но при капче будет пауза.
  • Окна активности после пересчёта часового пояса обрезаются в полночь, а окна короче 20 минут отбрасываются.
  • Для Instagram нет алгоритма прогрева (только мягкий сценарий), «Собрать по анкете» недоступно.
  • Детектор капчи/входа эвристический: он может сработать лишне (нажмите «Продолжить») или пропустить нестандартную проверку.
  • Планировщик, загрузки и Telegram работают, только пока программа открыта. Пропущенные окна не догоняются.
  • Расписание публикации в Studio вводится в формате языка интерфейса (ru/en). Для других языков может не сработать, тогда видео останется с ограниченным доступом и будет предупреждение.
  • Установщик и exe не подписаны цифровой подписью (возможно предупреждение SmartScreen).
  • Проверка IP использует ip-api.com (лимит ~45 запросов/мин) с запасным ipinfo.io.
  • TikTok Studio проверен только на локальном макете (интерфейс после входа без входа не проверить). При изменениях интерфейса будет понятная ошибка или пауза.
  • Данные трекеров (Keitaro/Binom) сверены с документацией API и макетами, на реальных инсталляциях не проверялись.

12. Планы на следующие версии

Подмена шрифтов и расширенных параметров WebGL, синхронизация вкладок сессии, группы и папки, генерация текстов через ИИ (поля aiApiKey/aiBaseUrl/aiModel).

Новое в версии 1.5.1 — прогрев из вкладки «Профили» с выбором соцсети

  • У каждого профиля в строке есть кнопка 🔥 Прогреть. В окне:
    1. Соцсеть: Threads / TikTok / YouTube / Все.
    2. Аккаунты этой соцсети в профиле с галочками и отметкой входа (✅ — вход выполнен, ⛔ — не выполнен/не проверялся), статусом и днём прогрева. Аккаунты, которые уже в очереди или помечены «Бан», недоступны.
    3. Режим: «По плану аккаунта» (сценарий этапа на сегодня) или «Сценарий из библиотеки» (список сценариев выбранной сети; при «Все» сценарий применяется только к аккаунтам его сети).
    4. Длительность (необязательно, 1–600 мин) — сеанс не дольше указанного.
  • Если в профиле нет аккаунтов выбранной сети — подсказка и кнопка + Добавить аккаунт (сеть подставляется сама, после сохранения аккаунт сразу появляется в списке).
  • Запуск идёт через существующий движок прогрева: строгая проверка прокси (не прошла — профиль не запускается), один Chrome на профиль, аккаунты профиля — по очереди.
  • Пока идёт прогрев, в строке профиля видно текущий аккаунт (крупная кнопка 👁 Смотреть прямо в строке, как только браузер запущен) и сколько ещё в очереди, кнопки 👁 Смотреть (живой просмотр 1.4.0) и ⏹ Стоп (останавливает все запуски профиля).
  • Массовые действия: «🔥 Прогреть выбранные» открывает тот же выбор соцсети/режима/длительности для нескольких профилей.
  • Права проверяются в главном процессе: наблюдатель не может запускать и останавливать прогрев; байер — только в доступных ему профилях. Запуски пишутся в журнал действий.

🌑 Выход из тени (теневой бан)

  • Где: в аккаунте профиля «⋯» → «🌑 Выход из тени», и на странице «Здоровье» (кнопка 🌑; если у последних видео 0 просмотров — она подсвечена и предлагает запуск).
  • Основное — TikTok, также доступно для YouTube Shorts и Threads.
  • Этап 0 — диагностика: загрузите ещё 1–2 видео и проверьте просмотры.
  • Этап 1 (если всё ещё 0): задача «Ссылка убрана» (убрать ссылку из описания профиля) → публикации на паузе, отдых 1–3 дня (выбираете, по умолчанию 2): программа сама делает короткие естественные сеансы (просмотр, скролл, редкие лайки) в случайное время → 1–2 дня публикаций креативов БЕЗ ссылки (ссылки, t.me и SubID/UTM вырезаются из описания автоматически) → проверка.
  • Этап 2 (если не помогло): ссылка снова убрана → 1 день без входов вообще (прогрев и загрузки аккаунта заблокированы) → 1–3 дня сеансы по паре минут в разное время (развёрнутые комментарии по теме — только напоминание, программа их не пишет) → пара дней публикаций без ссылки → проверка.
  • Итог: просмотры вернулись — 3 дня плавного возврата (1 пост в день, задача «Ссылка возвращена»), затем «Вернуть обычный режим»; всё ещё 0 — «Повторить» или «Создать новый аккаунт».
  • Окно плана: таймлайн, текущий этап и день, следующее действие, сеансы на сегодня, подсказка «Главная задача — не делать резких действий». Просмотры берутся из проверки «Здоровья» (на этапе проверки, не раньше чем через сутки) или вписываются вручную.
  • На время плана обычный прогрев по расписанию на паузе. Смена этапа — уведомление в Telegram (событие «Выход из тени: смена этапа»).

📝 Помощник регистрации

  • В окне профиля вкладка «📝 Регистрация» (и «⋯» → «Зарегистрировать аккаунты»): галочки TikTok / Google (YouTube) / Threads / Instagram и адреса страниц регистрации (по умолчанию tiktok.com/signup, accounts.google.com/signup, threads.net/login, instagram.com/accounts/emailsignup; можно изменить, только https).
  • «📝 Зарегистрировать» запускает профиль через его прокси (строгая проверка) и открывает эти страницы. Формы, капчу и подтверждение телефона вы проходите САМИ — программа их не заполняет, капчу не решает, виртуальные номера не использует.
  • «💾 Сохранить аккаунт» — логин, пароль, почта, пароль от почты, секрет 2FA → аккаунт добавляется в профиль, вход проверяется по cookies (✅).

📒 Заметки (блокнот профиля)

  • Вкладка «📒 Заметки» в окне профиля: свободный текст + карточки доступов по соцсетям (логин, пароль, почта, пароль почты, секрет 2FA, телефон-заметка, комментарий), кнопки 📋 копировать и 👁 показать/скрыть.
  • Карточку можно связать с аккаунтом профиля или создать из неё аккаунт («+ Аккаунт»).
  • Блокнот шифруется ключом данных вместе с остальными секретами; наблюдатель видит пароли и секреты скрытыми и ничего не меняет.

Новое в версии 1.5.0 — вход по логину, база пользователей и роли

Что изменилось. Вместо одного мастер-пароля теперь нормальная авторизация: у каждого пользователя свой логин и пароль, роль (Администратор, Байер, Наблюдатель), статус и история входов. Пользователи, сессии и журнал действий хранятся во встроенной базе данных SQLite (auth.db в папке данных программы; движок sql.js, ничего ставить не нужно).

Как устроена защита. Данные (data.json) по-прежнему шифруются AES-256-GCM, но случайным ключом данных. Этот ключ «завёрнут» отдельно паролем каждого пользователя (scrypt) и кодом восстановления. Пароли нигде не хранятся, только их хэши. Поэтому:

  • администратор может сбросить пароль любому пользователю — данные не теряются;
  • если забыт пароль администратора — «Забыли пароль?» на экране входа: логин администратора + код восстановления → новый пароль (старый код перестаёт работать, выдаётся новый).

Первый запуск (новая установка). Мастер «Создайте администратора»: логин, имя, пароль (минимум 8 символов и цифра/символ, или 14+ символов). Затем один раз показывается код восстановления — скопируйте или «Сохранить в файл» и храните отдельно от компьютера. Новый код: «Пользователи → 🗝 Код восстановления».

Обновление с 1.3/1.4. Программа найдёт старые данные и попросит один раз ввести старый мастер-пароль администратора и новый логин (пароль можно оставить прежним или сразу задать новый). Всё переносится: профили, прокси, аккаунты, журнал. Остальные пользователи 1.4 переносятся автоматически с прежними паролями; их логины строятся из имени (например «Вася Байер» → Вася.Байер) и показываются после переноса. Перед переносом сохраняется копия data.json.before-1.5-….bak.

Не помните старый мастер-пароль? На экране переноса — «Начать заново…» (нужно ввести «НАЧАТЬ ЗАНОВО»). Старые data.json/auth.db перемещаются в папку backup-<дата> в папке данных, и программа стартует как новая. Без старого пароля старые зашифрованные данные открыть нельзя — это защита, а не ошибка. Профили и прокси можно заново импортировать; папки браузерных профилей не удаляются.

Экран входа. Логин + пароль, кнопка 👁 «показать пароль», «Запомнить меня» (запоминает логин). Понятные ошибки: «Неверный логин или пароль. Осталось попыток: N», «Пользователь отключён администратором». После 5 неверных паролей подряд вход в эту учётную запись блокируется на 1 минуту (то же для кода восстановления).

Раздел «Пользователи» (бывшая «Команда», только администратор):

  • создать пользователя: логин, имя, роль, временный пароль, «Попросить сменить пароль при первом входе» (пока пароль не сменён, программа не даёт ничего менять);
  • изменить логин/имя/роль, отключить/включить, снять блокировку за неверные попытки, сбросить пароль, удалить (с передачей профилей);
  • столбцы «Статус» и «Последний вход», вкладка «Входы» (сессии: вход, выход, причина — выход, блокировка, бездействие, закрытие программы), «Журнал действий» (в базе, с поиском), «Доступ к профилям», «Перенос профилей»;
  • последнего администратора нельзя отключить, удалить или понизить; себе нельзя менять роль.

Роли проверяются в главном процессе при каждом действии, а не только скрытием кнопок: наблюдатель только смотрит (пароли, cookies, токены скрыты), байер работает со своими и выданными профилями, без настроек и управления пользователями, администратор — всё.

Кнопки внизу слева: 🔑 «Сменить пароль», 🔒 «Блокировка», 🚪 «Выйти». Автоблокировка при бездействии: «Настройки → Безопасность», для новых установок по умолчанию 15 минут. При блокировке фоновые задачи (прогрев, загрузки) продолжают работать.

Новое в версии 1.4.1

  • Проверка обновлений. При запуске (после ввода мастер-пароля) и затем раз в 6 часов программа проверяет сайт https://pp.46-8-225-60.sslip.io (releases.json, резерв — GitHub Releases). Если вышла новая версия, сверху появляется баннер «Доступна версия X»: «Скачать» открывает страницу загрузки в браузере, «⬇ Скачать и установить» скачивает установщик в папку «Загрузки» с прогресс-баром, проверяет размер и SHA-256 (повреждённый файл удаляется) и предлагает «▶ Установить»: программа закроется и запустится установщик. Вручную: Настройки → Обновления → «🔄 Проверить обновления», там же «🌐 Сайт программы».
  • Сайт программы: главная, скачать, история версий, инструкция, FAQ.

Новое в версии 1.4.0

  • 👁 Смотреть — показ экрана прогрева. На странице «Прогрев» у выполняющегося запуска и у запущенного профиля в «Профилях» есть кнопка «👁 Смотреть». Открывается окно с живой трансляцией вкладки, в которой работает прогрев (CDP screencast, JPEG-кадры по уже открытому каналу браузера, наружу ничего не открывается), а справа — текущий шаг и журнал действий в реальном времени. Если движок открывает новую вкладку, показ переключается на неё сам. Кнопка «🪟 Показать окно Chrome» выводит настоящее окно браузера поверх остальных (например, чтобы пройти вход или капчу). Это только просмотр: управлять браузером можно в окне Chrome. Закрыть — «✕ Закрыть» или Esc.
  • Календарь «Контент-план» исправлен. Название месяца с заглавной буквы («Октябрь 2026»), неделя с понедельника, выходные выделены, кнопка «Сегодня». Время больше не сдвигается на часовой пояс: раньше в окнах дат и времени часть значений считалась в UTC, и у пользователей с UTC+5 ночные посты (00:00–04:59) попадали на предыдущий день. Посты «отложен», «ошибка», «пауза» без времени запуска теперь видны в календаре (в день создания). Клик по дню — список всех постов дня (в том числе «ещё N…»), клик по посту — перенос на точную дату и время, перетаскивание подсвечивает день; при переносе на прошедшее время программа переспрашивает. Пока вы тащите пост, календарь не перерисовывается.
  • Telegram-сводка и предупреждения об окончании аренды прокси считают день по местному времени, а не по UTC.
  • Полная сборка. В установщик снова входят все языковые пакеты движка (в 1.3.1–1.3.2 их убирали ради лимита Google Диска). Программа скачивается с сайта без ограничения размера.

Новое в версии 1.3.2

  • Статус входа в аккаунты соцсетей (см. 7.4): автоматическое определение входа после «🔑 Войти», сохранение сессии в аккаунт, кнопка «Сохранить и войти», пункт «✔ Проверить вход».
  • Страница «Загрузки»: кнопка «+ Добавить видео» (выбор аккаунта YouTube/TikTok → очередь загрузки).
  • Windows: Chrome, установленный в нестандартную папку, находится через реестр (App Paths / ChromeHTML). Если не найден — укажите путь к chrome.exe в «Настройках».

Обучение (1.3.1)

Раздел «🎓 Обучение» — встроенный курс «Арбитраж трафика: из TikTok, YouTube Shorts и Threads в свой Telegram-канал» (11 модулей, 55 уроков). Работает без интернета (файл src/main/course/course.json). Дерево модулей слева, поиск, чек-листы с сохранением прогресса у каждого пользователя, закладки, «Назад/Далее», кнопка «Открыть экран» и чипы связанных экранов. Ссылки на источники открываются в системном браузере. Последний открытый урок восстанавливается.

У аккаунта и у ссылки (Статистика → Ссылки) появилось поле «Инвайт-ссылка Telegram»; в списке ссылок — колонка «Инвайт TG».