Как я перестал ждать загрузки видео и перешел на личный аудио-офлайн: опыт разработчика

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

Я привык потреблять информацию ушами — на прогулке (а гуляю я 1.5-2 часа в день), в машине или во время домашних дел. Когда связь стала подводить, я решил не искать сложные способы стабилизации видеопотока, а просто сменил формат.

Почему аудио — это новый черный?

Видео в высоком разрешении весит гигабайты и требует идеального канала. Аудиофайл в хорошем качестве в 10-15 раз легче. Я подумал: зачем мне ждать, пока прогрузится картинка, если мне нужен только звук?

Я арендовал удаленный сервер и написал небольшое решение для Telegram, которое превращает любое видео в обычный аудиофайл. Это решило сразу три проблемы:

  1. Никаких ожиданий: Сервер скачивает файл за секунды, так как находится в зоне с отличной связью.
  2. Фоновый режим: Telegram — идеальный плеер. Можно выключить экран телефона, и звук не прервется, слушаешь в формате радио :)
  3. Экономия места: Файлы весят мало, их можно хранить прямо в мессенджере и слушать без интернета. А также можно пересылать друзьям или семье, если нашли что-то интересное.

Немного о том, как это устроено.

Я не стал изобретать велосипед и использовал проверенные инструменты для работы с медиапотоками. Основная хитрость была в том, чтобы сделать работу системы стабильной.

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

Также стоит отметить, что у мессенджера есть свои ограничения на размер передаваемых данных. Если лекция длится 3–4 часа, файл получается тяжелым. Мой алгоритм автоматически анализирует размер и аккуратно «разрезает» аудио на логические части. В плеере они идут друг за другом, так что целостность повествования не теряется.

Чтобы не нагружать сервер и не тратить ресурсы на обработку одного и того же материала дважды, я добавил базу данных (кэширование). Если кто-то уже запрашивал это интервью, новый пользователь получает его мгновенно.

Экономика и результат

Расходы на содержание такой системы — около 1500–2000 рублей в месяц (аренда виртуальной машины и поддержка каналов связи (это самая дорогая часть, на самом деле)). Для личного комфорта себя и друзей — сумма вполне оправданная. Никакие Premium'ы не дадут такой цены в текущих условиях.

В итоге я получил инструмент, куда просто кидаю ссылку в чат и через пару минут иду гулять с готовой лекцией в наушниках.

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

А как вы адаптируетесь к изменениям в работе привычных сервисов? Стали ли меньше смотреть и больше слушать?

Как я перестал ждать загрузки видео и перешел на личный аудио-офлайн: опыт разработчика
Начать дискуссию