Открыть список
Как стать автором
Обновить

Clubhouse без iPhone. How-to инструкция

PythonСоциальные сети и сообществаЛайфхаки для гиковГолосовые интерфейсы
Tutorial

Дисклеймер

В этой статье я расскажу, как запустить Clubhouse без iPhone с помощью консольного python приложения, которое позволит пользоваться большинством функций социальной сети. Clubhouse оказался теплой ламповой площадкой, но для владельцев андроидов вроде меня эта соцсеть недоступна. Официальная версия для гугловской платформы, по слухам, выйдет не ранее мая.
Автор статьи отказывается от любой ответственности за неправомерное использование полученных знаний и напоминает что статья сделана с обучающей и справочной целью. Создавать ботов, участвовать в кибербуллинге и прочих плохих вещах крайне не рекомендуется.

( UPD от 20.02.2021 ) Шаг 0. Неофициальный клиент под андроид:

Петербургский разработчик Гришка выпустил неофициальный клиент под android:
https://github.com/grishka/Houseclub/releases

Шаг 1. Виртуальный iPhone

Для того, чтобы зарегистрироваться в приложении вам понадобится сервис, предлагающий автоматизированное тестирование мобильных телефонов. В целом можно обойти это требование и зарегистрироваться с использованием реверснутой библиотеки, но вероятно вас смогут вычислить и забанить. К тому же в виртуальной лабе вы сможете потыкать приложение до выхода андроид версии и зафолловить понравившихся людей, чтобы у вас был список комнат с вашими интересами. На рынке есть несколько таких сервисов. Я остановился на browserstack.com — там есть возможность получить доступ к реальному iphone, который лежит где-то в серверной и его экран расшаривается на веб-приложение. Нам понадобится функционал App Live — он доступен только по подписке. Я честно отдал порядка 40 долларов за один месяц тестирования. Кроме этого, нам понадобится любое .ipa приложение, чтобы сервис позволил вам запустить выбранную модель iPhone'а:

iPhone 11 на app-live.browserstack.com
iPhone 11 на app-live.browserstack.com

Никаких дополнительных настроек не надо - заходим в App Store под своим Apple ID и устанавливаем Clubhouse:

Установка приложения Clubhouse
Установка приложения Clubhouse

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

Поиск людей в приложении Clubhouse через онлайн-доступ к реальному iPhone
Поиск людей в приложении Clubhouse через онлайн-доступ к реальному iPhone

У всех онлайн-сервисов по тестированию мобильных телефонов есть недостаток: они не умеют перенаправлять звук и микрофон на ваш браузер. То есть с этого «эмулятора» вы не сможете послушать в Clubhouse ни одной беседы и сами сказать ничего не сможете. Чтобы общаться в комнатах и слушать, что говорят другие, вам придется запустить python приложение на своем компьютере.

Шаг 2. Сlubhouse-py

Для прослушивания комнат и для диалогов будем использовать консольное python приложение. Брать отсюда: https://github.com/stypr/clubhouse-py

Оно основано на реверснутом протоколе clubhouse'а и автор обещает удалить приложение после выхода нормальной версии для андроида. Для работы приложения требуется Python версии 3.7 и выше. Приложение работает под Windows и macos.
Установка простая:

git clone https://github.com/stypr/clubhouse-py
cd ./clubhouse-py
pip3 install -r requirements.txt
pip3 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
Вот так выглядит запущенное клиентское приложение:

консольный интерфейс управления clubhouse-py
консольный интерфейс управления clubhouse-py

Еще важный момент: консольное приложение по-умолчанию отображает 20 записей в списке каналов и 20 пользователей в каналах. Чтобы увеличить лимиты можно изменить значение переменной max_limit в файле cli.py:

max_limit = 30

Вывод

Я смог протестировать Clubhouse и полноценно зарегистрировать себя и еще нескольких друзей таким способом. И уже несколько дней слушаю беседы и периодически общаюсь в них.
У приложения на python'е есть недостатки: самый главный - это консольный интерфейс. Вы не увидите обновления списка спикеров и не сможете включать/выключать ваш микрофон из приложения. Как workaround включайте/выключайте микрофон другими способами. Кроме того, список доступных бесед ограничен количество строк и возможна ситуация, когда вы не увидите нужную вам беседу. Немного поэкспериментировав, я не нашел способа выводить больше 30 записей в списке бесед, но думаю что такой способ точно есть. Иногда помогает сохранить channel_name отдельно и подключаться напрямую по адресу. Адрес беседы можно взять из ссылки на событие, например: https://www.joinclubhouse.com/event/M1e7eO3N. Приложение не создает подписку на события ( это не реализовано в протоколе clubhouse-py ), поэтому вы не сможете получать приглашения на приватные беседы и прочие оповещения. Но часть проблем можно решить, используя виртуальные лабы с iPhone'ами. Например, это удобно для того, чтобы посмотреть список предстоящих мероприятий, подписаться на каких-то известных людей и просто поискать своих друзей.

В общем, если нет айфона, но есть мозги, то решить проблему с популярным приложением можно. Обратное не работает.

Спасибо за внимание!

UPD на 20.02.2021:

Несколько новостей:

1. Выпущен неофициальный клиент под андроид:
https://github.com/grishka/Houseclub/releases

2. Для запуска под linux поможет комментарий @yakimka8 :

На линуксе послушать комнаты не получится, так как под линукс нет agora-python-sdk. Но, можно воспользоваться демкой от агоры webdemo.agora.io/agora-web-showcase/examples/LargeGroupVideoChat-Web

Чтобы упростить заход в чат, можно сделать так:

# Check for the voice level.
if RTC:
    token = channel_info['token']
    RTC.joinChannel(token, channel_name, "", int(user_id))
else:
    print("[!] Agora SDK is not installed.")
    print("    You may not speak or listen to the conversation.")
    # Добавляем ссылку на сайт с параметрами
    print('    But you can use this link:')
    print(f'    https://webdemo.agora.io/agora-web-showcase/examples/LargeGroupVideoChat-Web/?appID=some_app_id&channel={channel_name}&token={channel_info["token"]}&mode=live&codec=h264&role=audience')
    print('    user_id: ', user_id)if RTC:    token = channel_info['token']

Теперь при выборе чата, cli будет не только говорить что Agora SDK не
установлено, но также предлагать перейти по ссылке и послушать беседу в
браузере.

Соответсвенно заходим в cli, выбираем комнату, копируем свой user_id,
переходим по ссылке, вставляем user_id в поле «Advanced settings ->
UID» и нажимаем «Join»

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

UPD на 21.02.2021:

1. Массово появились боты, пока вроде бы от security инженеров, а не спамеров
2. Появилась возможность записи бесед через телеграм-ботов

Теги:clubhouseandroidvendorlockiphoneclubhouse-pyсоциальные сети
Хабы: Python Социальные сети и сообщества Лайфхаки для гиков Голосовые интерфейсы
Всего голосов 36: ↑30 и ↓6 +24
Просмотры41.1K

Похожие публикации

Лучшие публикации за сутки