Главное Авторские колонки Пресс-релизы Промо Вакансии Вопросы
😼
Выбор
редакции
139 0 В избр. Сохранено
Авторизуйтесь
Вход с паролем

Как запрос «а можно добавить видео?» превратился в отдельный видеосервис

Пару недель назад к нам пришёл вроде бы простой запрос. Сразу от нескольких активных пользователей, почти слово в слово: «Почему нельзя прикрепить видео к постам и записям автомобильных блогов? Я поменял подвеску, снял процесс — а показать могу только фотками».
Мнение автора может не совпадать с мнением редакции

Новая видеоплатформа для автомобильного контента

Запрос понятный. Автомобильный контент — он про процесс: как звучит мотор после доработки, как машина едет, как разбирается узел. Фотографии половину этого просто не передают.

Мы могли сделать минимально необходимое: прикрутить загрузку файла к посту и закрыть тикет. Вместо этого решили подойти кардинально.

Что мы сделали

1. Видео в постах и блогах — то, о чём просили.

Теперь видео можно прикрепить к записи в блог автомобиля и к посту на стене. Причём мы не стали делать «видео отдельным типом поста» — фото и ролики лежат в одной сетке вложений, плитками. Хочешь три фотографии и два видео в одной записи — пожалуйста, до 9 вложений на пост.

2. Библиотека видео — то, о чём не просили, но что оказалось нужнее.

По ходу разработки выяснилась вещь, которую пользователи не формулировали, но которая всплывала постоянно: один и тот же ролик человек хочет использовать в нескольких местах. Показать в блоге авто, отправить в личку другу, вставить в пост в сообществе.

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

3. Видеоплатформа — то, до чего мы дошли своей логикой.

А дальше стало очевидно: если у каждого пользователя уже есть библиотека роликов про его машину — почему это видит только он и подписчики?

Так появился отдельный раздел — видеоплатформа Carshel. Устроена она примерно как YouTube или Rutube, только с одним принципиальным ограничением: здесь только автомобильный контент.

Как это работает: при загрузке ролика в библиотеку автор ставит галочку «Показывать в каталоге». Если поставил — видео попадает на витрину, его находят по названию и тегам, оно набирает просмотры, лайки и комментарии, а автор получает подписчиков. Не поставил — видео остаётся приватным инструментом для его постов. Автор решает сам, ничего не публикуется автоматически.

В каталоге сейчас: главная с рядами «Популярное», «Новые видео», «Клипы», разделы «Подписки» и «История просмотра», поиск по названиям и тегам, страница просмотра с комментариями и лайками. Плюс отдельный формат — вертикальные короткие клипы со своей лентой, в стиле Reels/TikTok, они не смешиваются с горизонтальными роликами.

Про техническую часть — то, чем я правда доволен

Первая версия загрузки видео у нас была честно говоря так себе. Мы сжимали ролик прямо в браузере пользователя — через WebAssembly-сборку ffmpeg. Логика была понятная: не грузить сервер, не платить за перекодирование.

На практике это выглядело так: пользователь загружает пятиминутное видео с телефона, вкладка греется, телефон греется, прогресс-бар ползёт минуты, а если свернуть браузер — процесс встаёт. На слабых устройствах всё это иногда просто падало.

Мы это выкинули и переделали на серверное перекодирование.

Теперь пользователь заливает оригинал файла напрямую в объектное хранилище, минуя наш сервер, — по временной подписанной ссылке. Задача на обработку ставится в очередь, отдельный воркер забирает её и перекодирует ролик в оптимальный для веба формат под нужный профиль (для горизонтальных роликов один, для вертикальных клипов другой). Пользователь в это время может закрыть вкладку и идти пить чай.

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

Результат: загрузка стала быстрее и предсказуемее, телефон не греется, качество на выходе стабильное.

Ещё из технического, чем горжусь: лента видео не случайная. Мы считаем рейтинг с затуханием по времени — свежий ролик с нулём просмотров всё равно получает шанс быть показанным, а не тонет под старыми хитами. Плюс уже просмотренное отодвигается в конец, и у разных зрителей порядок разный. Считается это не на лету при каждом запросе, а пересчитывается фоново раз в полчаса — иначе под нагрузкой такое просто не живёт.

Что дальше

Видеоплатформу мы продолжаем допиливать — это не «сделали и забыли». В ближайших планах:

  1. плейлисты и подборки
  2. рекомендации на основе того, какие машины интересны пользователю
  3. улучшение поиска
  4. монетизация для авторов

Вывод, который я забрал себе

Запрос пользователя — это почти никогда не техническое задание. «Добавьте видео в посты» на самом деле означало «мне тесно в формате фотографий, я хочу показывать процесс». И если отвечать на настоящую потребность, а не на буквальную формулировку, получается продукт, а не фича.

Если у вас есть машина и вы что-то с ней делаете — приходите, посмотрите. Обратную связь читаю лично, ровно из неё и родился этот раздел.

0
В избр. Сохранено
Авторизуйтесь
Вход с паролем
Комментарии
Выбрать файл
Блог проекта
Расскажите историю о создании или развитии проекта, поиске команды, проблемах и решениях
Написать
Личный блог
Продвигайте свои услуги или личный бренд через интересные кейсы и статьи
Написать

Spark использует cookie-файлы. С их помощью мы улучшаем работу нашего сайта и ваше взаимодействие с ним.