Павел Дуров спиратил google translate api чтобы переводить сообщения в Telegram
Для того чтобы пользоваться Google Translate API, его надо купить. Но разработчики телеги решили добавить туда немного коммунизма и спиратили его)))
Разработчик клиента "nekogram" созданного на основе открытого исходного кода telegram пишет, что api украли из приложения google translate, вместо того чтобы купить.
Предполагается, что на скрине выше ссылка "https://translate.googleapis.com/translate_a/single?client=g..." вписана по частям в исходный код, чтобы алгоритмы google play не запалили ее.
Вот еще нашел статью на хабре:
Разработчик и IT-эксперт Дан Петров обнаружил, что перевод сообщений на другие языки в последней версии Telegram в версии для Android работает через API Google Translate, но в обход официальному способу. Мессенджер использует для этого недокументированные функции, что позволяет ему фактически бесплатно делать перевод, а также не попасть на блокировку со стороны Google.
В новой версии Telegram для iOS 15 используется встроенная функция «Системный перевод» и там все в порядке с легальностью схемы перевода сообщений и их безопасностью.
Петров выяснил, что Telegram использует неофициальный метод для вызова запросов в API Google Translate. Мессенджер делает это так, чтобы облачной системе перевода Google казалось, что запрос идет от Google Chrome и других браузеров через штатную функцию перевода сайтов. При каждом запросе на перевод клиент выполняет ротацию идентификатора пользовательского агента. Этот метод часто используется веб-парсерами, чтобы избежать ограничения скорости при подключении к облачным серверам или попадания в черный список веб-служб.
Исследователь пояснил в своем блоге, как именно в данном случае Telegram обходит коммерческий способ использования API Google Cloud Translate. Также он уточнил, что этот вариант наиболее безопасен для пользователей. В случае, если бы Telegram официально оплачивал доступ к API Google Translate, то в открытом исходном коде мессенджера должен быть приватный ключ для использования сервиса перевода от Google. Но его там нет.
Петров подытожил, что текущий вариант выдачи и получения Telegram запросов в API Google Cloud Translate хоть и бесплатный, но непонятный для простых разработчиков, что не удобно для изучения исходного кода. По его мнению для этого лучше использовать текущую версию официального Java SDK от Google и использовать RPC через HTTP для экономии полосы пропускания, что станет скоро необходимо, учитывая более 500 млн активных пользователей Telegram под конец 2021 года.
По данным источника «Кода Дурова», это действительно не совсем стандартное и временное решение. Этот подход разработчики месенджера решили применить, чтобы оценить спрос на функцию перевода в Telegram на Android. Инсайдер пояснил, что вскоре планируется реализовать полноценное серверное решение для перевода на стороне месенджера, но разработчики ещё думают над нужной архитектурой и мощностями. Они даже планировали в самом простом случае задействовать вариант перевода полностью на стороне клиента, но тесты показали, что качество в этом случае оказалось ниже, чем при текущей реализации перевода.
upd:ссылка из частей собирается, потому, что там часть значение параметризировано, не потому, что кто то хотел обмануть гугл, зачем такую чушь сюда постить?
Я же написал, это только предположение. К тому же, если значение параметризовано, то почему разрывы идут посреди слов?
"https://translate.goo" + "gleapis.com/transl" + "ate_a" и так далее. Где здесь параметры? Их тут нет.