редакции
Как запрос а можно добавить видео? превратился в отдельный видеосервис
Запрос понятный. Автомобильный контент — он про процесс: как звучит мотор после доработки, как машина едет, как разбирается узел. Фотографии половину этого просто не передают.
Мы могли сделать минимально необходимое: прикрутить загрузку файла к посту и закрыть тикет. Вместо этого решили подойти кардинально.
Что мы сделали
1. Видео в постах и блогах — то, о чём просили.
Теперь видео можно прикрепить к записи в блог автомобиля и к посту на стене. Причём мы не стали делать «видео отдельным типом поста» — фото и ролики лежат в одной сетке вложений, плитками. Хочешь три фотографии и два видео в одной записи — пожалуйста, до 9 вложений на пост.
2. Библиотека видео — то, о чём не просили, но что оказалось нужнее.
По ходу разработки выяснилась вещь, которую пользователи не формулировали, но которая всплывала постоянно: один и тот же ролик человек хочет использовать в нескольких местах. Показать в блоге авто, отправить в личку другу, вставить в пост в сообществе.
Поэтому мы сделали единую точку загрузки — личную библиотеку видео. Загрузил один раз, дальше вставляешь куда угодно. Никаких повторных заливок одного и того же файла.
3. Видеоплатформа — то, до чего мы дошли своей логикой.
А дальше стало очевидно: если у каждого пользователя уже есть библиотека роликов про его машину — почему это видит только он и подписчики?
Так появился отдельный раздел — видеоплатформа Carshel. Устроена она примерно как YouTube или Rutube, только с одним принципиальным ограничением: здесь только автомобильный контент.
Как это работает: при загрузке ролика в библиотеку автор ставит галочку «Показывать в каталоге». Если поставил — видео попадает на витрину, его находят по названию и тегам, оно набирает просмотры, лайки и комментарии, а автор получает подписчиков. Не поставил — видео остаётся приватным инструментом для его постов. Автор решает сам, ничего не публикуется автоматически.
В каталоге сейчас: главная с рядами «Популярное», «Новые видео», «Клипы», разделы «Подписки» и «История просмотра», поиск по названиям и тегам, страница просмотра с комментариями и лайками. Плюс отдельный формат — вертикальные короткие клипы со своей лентой, в стиле Reels/TikTok, они не смешиваются с горизонтальными роликами.
Про техническую часть — то, чем я правда доволен
Первая версия загрузки видео у нас была честно говоря так себе. Мы сжимали ролик прямо в браузере пользователя — через WebAssembly-сборку ffmpeg. Логика была понятная: не грузить сервер, не платить за перекодирование.
На практике это выглядело так: пользователь загружает пятиминутное видео с телефона, вкладка греется, телефон греется, прогресс-бар ползёт минуты, а если свернуть браузер — процесс встаёт. На слабых устройствах всё это иногда просто падало.
Мы это выкинули и переделали на серверное перекодирование.
Теперь пользователь заливает оригинал файла напрямую в объектное хранилище, минуя наш сервер, — по временной подписанной ссылке. Задача на обработку ставится в очередь, отдельный воркер забирает её и перекодирует ролик в оптимальный для веба формат под нужный профиль (для горизонтальных роликов один, для вертикальных клипов другой). Пользователь в это время может закрыть вкладку и идти пить чай.
Отдельно пришлось сделать приоритеты в очереди. Когда мы запустили массовую фоновую переобработку старых роликов, оказалось, что свежезагруженное пользователем видео честно стоит в хвосте за тысячей фоновых задач. Теперь у пользовательских загрузок приоритет выше, а фоновые прогоны уступают дорогу и доедаются в свободное время.
Результат: загрузка стала быстрее и предсказуемее, телефон не греется, качество на выходе стабильное.
Ещё из технического, чем горжусь: лента видео не случайная. Мы считаем рейтинг с затуханием по времени — свежий ролик с нулём просмотров всё равно получает шанс быть показанным, а не тонет под старыми хитами. Плюс уже просмотренное отодвигается в конец, и у разных зрителей порядок разный. Считается это не на лету при каждом запросе, а пересчитывается фоново раз в полчаса — иначе под нагрузкой такое просто не живёт.
Что дальше
Видеоплатформу мы продолжаем допиливать — это не «сделали и забыли». В ближайших планах:
- плейлисты и подборки
- рекомендации на основе того, какие машины интересны пользователю
- улучшение поиска
- монетизация для авторов
Вывод, который я забрал себе
Запрос пользователя — это почти никогда не техническое задание. «Добавьте видео в посты» на самом деле означало «мне тесно в формате фотографий, я хочу показывать процесс». И если отвечать на настоящую потребность, а не на буквальную формулировку, получается продукт, а не фича.
Если у вас есть машина и вы что-то с ней делаете — приходите, посмотрите. Обратную связь читаю лично, ровно из неё и родился этот раздел.