Коротко
Аккаунтов в приложении нет: ни регистрации, ни входа, ни пароля.
- Имя, электронную почту, телефон, дату рождения и геолокацию мы не спрашиваем и не собираем.
- Рекламные идентификаторы (IDFA на iOS, GAID на Android) приложение не читает — отслеживания нет.
- Сторонних SDK аналитики, рекламы и сбора сбоев в сборке нет.
- Единственный идентификатор — случайный номер установки. Связать его с человеком нельзя: личных данных нет ни на устройстве, ни на сервере.
Номер установки
При первом запуске приложение придумывает себе номер вида AB12-CD34-EF56 — двенадцать знаков из алфавита без похожих букв. Он случайный: ни из телефона, ни из аккаунта, ни из рекламного идентификатора он не выводится.
Нужен он ровно для одного — отличать в журнале обращений одну установку от другой: иначе не понять, двадцать раз искал один человек или по разу двадцать. Тот же номер показан в профиле, чтобы его можно было продиктовать в поддержку.
Удалили приложение — номер исчез вместе с ним. После переустановки будет новый, и связи со старыми записями не останется.
Что остаётся на устройстве
На телефоне лежат три вещи, и все они — в хранилище самого приложения:
- номер установки;
- настройки: язык, отметка о согласии с условиями, пройденный онбординг, переключатели «Без водяного знака» и «Сохранить в галерею»;
- история: до ста последних записей — название фильма, обложка, площадка, точность распознавания и ссылка на исходный ролик.
История никуда не отправляется: её читает и пишет только приложение на вашем телефоне.
Скачанный ролик попадает в кеш приложения — оттуда работает кнопка «Поделиться» — и, если вы разрешили, в альбом «ZB Qidir» в галерее. Кеш система может очистить сама, когда на устройстве заканчивается место.
Текущий поиск — ссылка, найденный фильм, выбранное качество — живёт только в оперативной памяти и на диск не попадает.
Что уходит на сервер
Приложение обращается к нашему серверу по адресу api.zb-qidir.uz. В каждом запросе идут два заголовка: номер установки и общий ключ сборки — он одинаковый у всех установок и к пользователю отношения не имеет.
Кроме заголовков сервер получает только то, без чего запрос не выполнить:
- ссылку на ролик, которую вы вставили;
- выбранный язык — от него зависит язык карточки фильма;
- выбранное качество и отметку «Без водяного знака» — при скачивании;
- идентификаторы задачи и найденного фильма — чтобы спросить о них ещё раз.
Больше приложение не отправляет ничего. Содержимое буфера обмена читается только когда вы сами нажимаете «Вставить из буфера», и на сервер оно попадает лишь вместе с запуском поиска — то есть если вы вставили ссылку и нажали кнопку.
Что хранит сервер и сколько
Журнал обращений. На каждый поиск и каждое скачивание в журнал ложится строка: время, тип события, номер установки, язык, площадка, ссылка на ролик, название найденного фильма, точность распознавания, отметка «не нашли» и выбранное качество. Это вся наша статистика — ради неё номер установки и существует.
Каждая запись живёт 90 дней: чистка идёт по расписанию, и просроченные строки удаляются из журнала сами.
Остальное живёт ещё меньше:
- задачи распознавания и скачивания — 30 минут в памяти процесса;
- готовый файл ролика — не дольше 60 минут на диске, уборка идёт каждые 15 минут;
- кадры, вырезанные из ролика для распознавания, — удаляются сразу после ответа модели;
- ссылки предпросмотра — 30 минут в памяти.
Есть ещё технический лог веб-сервера: в строках доступа фигурирует IP-адрес — так по умолчанию устроен любой веб-сервер. Отдельно мы IP-адреса не собираем и с номером установки не сопоставляем; используются они для ограничения частоты запросов, чтобы сервис не положили автоматическими обращениями.
Кому передаются данные
Чтобы распознать фильм и достать ролик, часть данных уходит подрядчикам. Каждый получает ровно столько, сколько нужно для его работы:
- OpenAI или Anthropic — в зависимости от того, какая модель включена на сервере: уменьшенные кадры из ролика, название и автор ролика. По ним модель и угадывает фильм.
- TMDb — название и год предполагаемого фильма; в ответ приходит карточка с обложкой и описанием.
- OMDb — то же самое, ради рейтинга IMDb.
- Кинопоиск (api.kinopoisk.dev) — то же самое, ради рейтинга Кинопоиска.
- Apify — ссылка на ролик Instagram: анонимно площадка Reels не отдаёт.
- TikTok, Instagram, YouTube — запрос самого ролика по вашей ссылке, иногда через промежуточный прокси.
- Cinerama — только если вы сами нажали на партнёрский блок «Где посмотреть»: в ссылке передаются метка utm_source=zbqidir и идентификатор фильма. Блок помечен как реклама.
Номер установки не передаётся ни одному из них — он остаётся на нашей стороне.
Разрешения устройства
- Галерея, только запись — спрашиваем в момент сохранения ролика, чтобы положить файл в альбом «ZB Qidir». Читать вашу медиатеку приложение не умеет.
- На iOS объявлен и доступ к галерее — ради кнопки «Открыть в галерее».
- На Android для того же нужны разрешения READ_MEDIA_VIDEO и READ_MEDIA_IMAGES.
Камеру, микрофон, контакты, календарь, геолокацию и уведомления приложение не запрашивает.
Отказ в доступе к галерее ничего не ломает: ролик остаётся в приложении, и им можно поделиться.
Как удалить свои данные
Аккаунта нет, поэтому нет и «удаления аккаунта». Всё остальное убирается так:
- История — кнопка «Очистить» на экране истории.
- Всё локальное сразу — удалите приложение или очистите его данные в настройках системы. Уйдут номер установки, настройки, история и скачанные ролики из кеша. Ролики, сохранённые в галерею, останутся: ими распоряжаетесь вы.
- Записи в журнале на сервере — напишите на [АДРЕС ПОДДЕРЖКИ] и укажите номер установки из профиля; строки с этим номером мы удалим. Впрочем, делать этого не обязательно: срок их хранения — 90 дней.
Изменения
Меняется код — меняется и эта страница: она описывает то, что происходит на самом деле, а не то, что нам удобно. Дата последней редакции стоит вверху.
Контакты
Оператор данных — [НАЗВАНИЕ ЮРЛИЦА], ИНН [ИНН], [ЮРИДИЧЕСКИЙ АДРЕС].
Вопросы о данных и просьбы об удалении — на [АДРЕС ПОДДЕРЖКИ]. В письме пригодится номер установки: он показан в профиле приложения.