Twitter Илона Маска в Telegram с переводом на русский

Хочу поделиться одной моей поделкой, возможно, кому-то она тоже будет полезна. В этой статье я поделюсь тем, что я сделал, чтобы читать Twitter-аккаунт Маска в удобном мне месте и имея под рукой перевод англоязычных твитов на русский.

Проблема

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

Идея

Сейчас я делаю на заказ программных роботов, которые в онлайне обрабатывают новостные потоки в соцсетях, фильтруют, выбирают наиболее интересные и цитируемые, и передают заказчику. Я подумал, почему бы мне не использовать свои навыки и не облегчить себе жизнь в описанной выше проблеме. Для этого нужно только каждые сколько-то минут заходить в твиттер, забирать новые сообщения, прогонять их через переводчик и отправлять в канал в телеграме. Кажется, ничего сложного.

Подводные камни

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

Вторая проблема, отказ твиттера в выдаче доступа к API в описанных мной кейсах. То есть остается единственный вариант заниматься веб-скраппингом. Ну что ж.

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

Технологии

Я решил попробовать самостоятельно и начал гуглить что-то вроде "parsing twitter without API". Нашлось достаточно много решений, сразу скажу, что решение twint — библиотека с открытым исходным кодом, которая вполне работоспособна и подошла под мою задачу.

Для того, чтобы перевести текст с английского на русский, я сначала было собирался использовать google translate, но понимал, что в нем ограниченное количество бесплатных переводов, решил что попробую использовать единственную известную мне нейросеть для перевода с английского на русский fairseq от Facebook AI Research. Качество перевода показалось мне вполне приемлемым с точки зрения того, чтобы понять в чем суть твита, хотя оно и не было идеальным.

Все это я обернул в скрипт на языке программирования python и запустил на постоянную работу на своем сервере.

Как пользоваться

Выглядит сейчас это следующим образом. Каждый твит и ретвит на главной странице твиттера Илона Маска пропускается через переводчик, подбираются ссылки и картинки из поста, дальше все это сохраняется в пост в телеграм-канале. Выглядит это так

Как выглядит пост в телеграме

Итого у меня получился телеграм-канал под названием "Твиттер Илона Маска" (подписывайтесь, мне будет приятно, что это нужно кому-то еще 🤗, будет дополнительный стимул поддерживать в будущем), в котором можно

1) читать новые и старые посты Илона Маска

2) видеть перевод текста на русский язык

3) перейти по ссылке на исходный пост в твиттере

И все это без регистрации и смс:)

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

0
25 комментариев
Написать комментарий...
4nght .

Мне, кстати, читатели твиттера Маска чем-то напоминают читателей пабликов Бизнес в VK.
Не камень в твой огород, если что

Ответить
Развернуть ветку
Кирилл Балахонов
Автор

Интересно же, что он там пишет, что потом котировки компаний и криптовалют пробивают уровни)

Ответить
Развернуть ветку
Angela Davis

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

Ответить
Развернуть ветку
Кирилл Балахонов
Автор

Да я согласен что можно проще, но не удобнее для меня лично. У меня это как с фейсбуком, я не являюсь постоянным пользователем, поэтому сделать там любое действие это ux-боль=))) то ли дело телега)

Ответить
Развернуть ветку
Rustam Matnazarov

Согласен. ФБ ужасен

Ответить
Развернуть ветку
Кирилл Балахонов
Автор

Ну тут складывается впечатление, что разные поколения в разных странах прошли свой путь совместного развития с ui/ux соцсети, в которой проводили много времени. я со школы и в инсте пользовался вк, после него в фб ничего не понятно. у кого-то уверен наоборот

Ответить
Развернуть ветку
Rustam Matnazarov

Думаю тренд на социальные сети спадает

Ответить
Развернуть ветку
Балкон.Ру

Не благодарите

Ответить
Развернуть ветку
Кирилл Балахонов
Автор

спасибо, а как быть с тем, что твиттер в рф не очень популярен и ходить туда только за Маском не очень нативно получается?)

Ответить
Развернуть ветку
Rustam Matnazarov

Маск везде говорит одно и тоже, что а твиттере, что на Ютуб

Ответить
Развернуть ветку
Кирилл Балахонов
Автор

есть такое, только в твиттере он ещё как выложит что-нибудь  эдакое, что фондовый рынок разрывает на части) 

Ответить
Развернуть ветку
Иван Гуляев

А как вы фиксируете уже выложенные публикации?

Ответить
Развернуть ветку
Кирилл Балахонов
Автор

Я их разово прогнал, а дальше уже скрипт ждет новых. Или вы о чем-то другом?

Ответить
Развернуть ветку
Иван Гуляев

Я о том, как скрипт отличает новые твиты от старых :)

Ответить
Развернуть ветку
Кирилл Балахонов
Автор

он смотрит на ссылки последних постов в телеге и по id определяет максимальный. из твиттера рассматривает уже только те, у которых id больше максимального:)

Ответить
Развернуть ветку
Иван Гуляев

Понял, благодарю =)

Ответить
Развернуть ветку
Кирилл Балахонов
Автор

👌

Ответить
Развернуть ветку
Трафик Директян

А как скрипт ждёт новых? Скрапит Твиттер каждую минуту/час ?

Ответить
Развернуть ветку
Кирилл Балахонов
Автор

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

Ответить
Развернуть ветку
Alex Bird

Подписался ))

Ответить
Развернуть ветку
Кирилл Балахонов
Автор

👍

Ответить
Развернуть ветку
Марсель Исмагилов

А с русского на узбекский так можно? Или совсем плохо переводит?

Ответить
Развернуть ветку
Кирилл Балахонов
Автор

С помощью той технологии, которую я использовал не получится, там прям по пальца посчитать можно сколько языков доступны - немецкий, французский и итальянский кажется только

Ответить
Развернуть ветку
Pavel

Естественно нужен телеграм премиум?

Ответить
Развернуть ветку
Андрей Индыков

а что с проектом то?

Ответить
Развернуть ветку
22 комментария
Раскрывать всегда