Основные же наши проблемы с интеграцией начались, когда мы дошли до передачи файлов. Дело в том, что передача данных в Telegram работает по защищенному протоколу MProto и прямые http/s ссылки на файлы получить невозможно. Нужно было создавать прокси, который конвертирует MProto в http/s причем на самом устройстве, без участия сервера, т.е. этот прокси будет недоступен вне устройства. На мобильных платформах iOS и Android можно поднять локальный http-сервер с локальной авторизацией, и, когда объект видеоплеера обратится по ссылке к этому локальному прокси-серверу, последний “сходит” по протоколу MProto в дата-центр Telegram, скачает нужную порцию данных и вернет ее по http/s. Для web-версий приложения такой фокус не пройдет, потому что попросту невозможно поднять веб-сервер в странице браузера. Выход мы нашли в исходниках web-версии Telegram. Можно зарегистрировать так называемый ServiceWorker и переопределить нативную функцию fetch, которой браузер пользуется при скачивании картинок и видео, и подменить ответ, полученный опять же через MProto.