Как мы с Google AI Studio написали конвертер на WebAssembly, который жует видео на 1.5 ГБ прямо в браузере, но ломает зубы о PDF

Привет, vc.ru! Хочу поделиться историей создания и кодинга своего пет-проекта — AllConvert.ru.

Все началось с банального раздражения. Мне нужно было перегнать пачку «айфоновских» фото из HEIC в JPG и сконвертировать тяжелое видео. Популярные онлайн-конвертеры выбесили: тонны агрессивной рекламы, ограничения на размер файлов (плати, если файл больше 100 МБ) и необходимость сливать свои личные данные на чужие сервера.

Я подумал: а можно ли сделать инструмент, который работает 100% локально в браузере, на технологиях WebAssembly, чтобы файлы вообще не улетали на сервер? В одиночку ковырять WASM было тяжело, поэтому в соавторы я взял Google AI Studio.

Как мы это программировали и что получилось

Процесс выглядел как безумный марафон. Мы с нейросетью перепробовали гору библиотек: что-то подключали, тестировали, оно падало, мы удаляли и ставили новое. В итоге я даже сам запутался, какой именно франкенштейн из кода сейчас работает под капотом, но результат получился крутым:

  • Медиафайлы работают идеально: Направления вроде HEIC ➔ JPG, WEBP ➔ PNG, аудио (MP3, WAV, FLAC) работают как часы и пакетно скачиваются в один ZIP-архив. Я лично тестировал конвертацию видео весом в 1.5 ГБ — скрипт спокойно переварил его через ОЗУ браузера. Скорость упирается только в мощность вашего процессора. Файлы физически не покидают ваше устройство — полная приватность.
  • Но документы — это боль: Если с медиа все отлично, то на конвертации документов (PDF, DOCX, таблицы) мы с AI знатно споткнулись. Некоторые файлы переводятся криво, вплоть до «каракулей» вместо текста (сказываются ограничения инструментов WebAssembly со шрифтами и кодировками). Сейчас я активно это допиливаю: что-то исправим, а совсем безнадежные направления, скорее всего, просто выпилю, чтобы не портить впечатление от сервиса.

Борьба с РКН при запуске

Сайту чуть больше месяца, хостится он на GitHub Pages. Сразу после запуска вскрылась главная проблема для пользователей из РФ — из-за периодических блокировок РКН в сторону гитхаба, сайт у людей открывался через раз.

Пришлось оперативно прокидывать всё через Cloudflare. Сейчас технически всё вычистил, по логам Яндекс.Вебмастера и Google Search Console критических ошибок нет, доступность 100% без всяких VPN. Сайт летает и на десктопе, и на мобилках.

Зачем я это пишу?

Проект полностью бесплатный, без ограничений и на данный момент вообще без рекламы (Яндекс со своей РСЯ пока мурыжит меня на модерации из-за того, что домен слишком молодой и трафика мало).

Мне очень нужен ваш фидбэк живых людей, чтобы понять, куда двигаться дальше. Зайдите, потестируйте, попробуйте скормить ему тяжелое видео или пачку картинок.

Пишите в комментарии:

  1. Как вам скорость работы на ваших устройствах?
  2. Какие направления конвертации вам нужны чаще всего?
  3. Ну и если поймали те самые «каракули» на документах — кидайте примеры, погнал мучить Google AI Studio дальше, чтобы исправлять баги.