Дисклеймер
В этой статье я расскажу, как запустить Clubhouse без iphone с
помощью консольного python приложения, которое позволит
пользоваться большинством функций социальной сети. Clubhouse
оказался прикольной теплой ламповой площадкой, но для владельцев
андройдов вроде меня эта соцсеть недоступна, а версия для андройда,
по слухам, выйдет не ранее мая.
Автор статьи отказывается от любой ответственности за неправомерное
использование полученных знаний и напоминает что статья сделана с
обучающей и справочной целью. Создание ботов, кибербуллинг и прочие
плохие вещи делать крайне не рекомендуется.
Шаг 1. Виртуальный iPhone
Для того, чтобы зарегистрироваться в приложении вам понадобится
сервис, предлагающий автоматизированное тестирование мобильных
телефонов. В целом можно обойти это требование и зарегистрироваться
с использованием реверснутой библиотеки, но вероятно вас смогут
вычислить и забанить. К тому же в виртуальной лабе вы сможете
потыкать приложение до выхода андройд версии и зафолловить
понравившихся людей, чтобы у вас был список комнат с вашими
интересами. На рынке есть несколько таких сервисов. Я остановился
на browserstack.com там есть
возможность получить доступ к реальному iphone, который лежит
где-то в серверной и его экран расшаривается на веб-приложение. Нам
понадобится функционал App Live он доступен только по подписке. Я
честно отдал порядка 40 долларов за один месяц тестирования. Кроме
этого, нам понадобится любое .ipa приложение, чтобы сервис позволил
вам запустить выбранную модель iPhone'а:
Никаких дополнительных настроек не надо - заходим в App Store
под своим Apple ID и устанавливаем Clubhouse:
Приложение попросит ваш телефонный номер, пришлет код на ваш
реальный телефон, и тут вам понадобится приглашение в Clubhouse,
заранее позаботьтесь, чтобы кто-то из друзей в приложении вам его
отправил на ваш номер телефона. После получения приглашения
заполните информации о себе в био это единственное место в
приложении, где можно рассказать о себе текстом. Интерфейс простой,
главное подписаться на интересных вам людей, чтобы дальше можно
было легко находить комнаты для прослушивания в консоли:
У всех онлайн-сервисов по тестированию мобильных телефонов есть недостаток: они не умеют перенаправлять звук и микрофон на ваш браузер. То есть с этого эмулятора вы не сможете послушать в Clubhouse ни одной беседы и сами сказать ничего не сможете. Чтобы общаться в комнатах и слушать, что говорят другие, вам придется запустить python приложение на своем компьютере.
Шаг 2. Сlubhouse-py
Для прослушивания комнат и для диалогов будем использовать консольное pyhton приложение. Брать отсюда: https://github.com/stypr/clubhouse-py
Оно основано на реверснутом протоколе clubhouse'а и автор
обещает удалить приложение после выхода нормальной версии для
андройда. Для работы приложения требуется Python версии 3.7 и выше.
Приложение работает под Windows и macos.
Установка простая:
git clone https://github.com/stypr/clubhouse-pycd ./clubhouse-pypip3 install -r requirements.txtpip3 install agora-python-sdk
Для запуска выполните:
python3 cli.py
Если у вас все заработало с первого раза поздравляю!
Но скорей всего будут проблемы.
Во-первых, на 19 февраля 2021 сборка библиотеки agora-python-sdk
под Windows сломана, поэтому вместо установки через pip лучше
собрать проект руками. Инструкция здесь: https://github.com/AgoraIO-Community/Agora-Python-SDK#installation
Во-вторых, для macos надо дать разрешения на доступ к Микрофону (
Microphone ) и Универсальный Доступ ( Accessability ) для терминала
и python'а. А также, вероятно, потребуется изменить комбинацию
клавиш для "поднятия руки", так как в двуязычном маке нормально не
работает модуль для биндинга горячих клавиш. Для этого откройте в
любом редакторе cli.py и измените :
if not channel_speaker_permission: print("[*] Press [Ctrl+Shift+H] to raise your hands for the speaker permission.") keyboard.add_hotkey( "ctrl+shift+h", _request_speaker_permission, args=(client, channel_name, user_id) )
на что-то подобное:
if not channel_speaker_permission: print("[*] Press [3] to raise your hands for the speaker permission.") keyboard.add_hotkey( "3", _request_speaker_permission, args=(client, channel_name, user_id) )
В-третьих, в macos из-за биндинга клавиш приложение надо запускать под рутом:
sudo python3 cli.py
После запуска приложение попросит указать номер телефона и
ввести код для аутентификации, после чего сохранит полученный токен
в settings.ini
Вот так выглядит запущенное клиентское приложение:
Еще важный момент: консольное приложение по-умолчанию отображает 20 записей в списке каналов и 20 пользователей в каналах. Чтобы увеличить лимиты можно изменить значение переменной max_limit в файле cli.py:
max_limit = 30
Вывод
Я смог протестировать Clubhouse и полноценно зарегистрировать
себя и еще нескольких друзей таким способом. И уже несколько дней
слушаю беседы и периодически общаюсь в них.
У приложения на python'е есть недостатки: самый главный - это
консольный интерфейс. Вы не увидите обновления списка спикеров и не
сможете включать/выключать ваш микрофон из приложения. Как
workaround включайте/выключайте микрофон другими способами. Кроме
того, список доступных бесед ограничен количество строк и возможна
ситуация, когда вы не увидите нужную вам беседу. Немного
поэкспериментировав, я не нашел способа выводить больше 30 записей
в списке бесед, но думаю что такой способ точно есть. Иногда
помогает сохранить channel_name отдельно и подключаться напрямую по
адресу. Адрес беседы можно взять из ссылки на событие, например:
https://www.joinclubhouse.com/event/M1e7eO3N.
Приложение не создает подписку на события ( это не реализовано в
протоколе clubhouse-py ), поэтому вы не сможете получать
приглашения на приватные беседы и прочие оповещения. Но часть
проблем можно решить, используя виртуальные лабы с iPhone'ами.
Например, это удобно для того, чтобы посмотреть список предстоящих
мероприятий, подписаться на каких-то известных людей и просто
поискать своих друзей.
В общем, если нет айфона, но есть мозги, то решить проблему с
популярным приложением можно. Обратное не работает.
Спасибо за внимание!