All Projects → transitive-bullshit → clubhouse

transitive-bullshit / clubhouse

Licence: MIT license
Clubhouse API client and social graph crawler for TypeScript.

Programming Languages

typescript
32286 projects
shell
77523 projects

Projects that are alternatives of or similar to clubhouse

clubhouse-unfollowers
👋 Find and unfollow people who unfollowed you or don't follow you back on Clubhouse
Stars: ✭ 24 (-40%)
Mutual labels:  clubhouse, clubhouse-api
Clubhouse Py
Clubhouse API written in Python. Standalone client included. For reference and education purposes only.
Stars: ✭ 1,693 (+4132.5%)
Mutual labels:  clubhouse, clubhouse-api
awesome-clubhouse
A list of useful tools (apis, links, services etc.) for clubhouse users
Stars: ✭ 35 (-12.5%)
Mutual labels:  clubhouse, clubhouse-api
thaiclubhouse
Clubhouse Thailand Community Calendar
Stars: ✭ 19 (-52.5%)
Mutual labels:  clubhouse
jam
🍓 Jam is your own open source Clubhouse for mini conferences, friends, communities
Stars: ✭ 1,030 (+2475%)
Mutual labels:  clubhouse
anyHouse
高仿 ClubHouse,语音直播、语聊房、高音质、极速上麦,开源 ClubHouse,实现了Clubhouse的上麦,下麦,邀请,语音音量提示等功能。
Stars: ✭ 177 (+342.5%)
Mutual labels:  clubhouse
react-native-steve
React Native horizontal scroll view component as seen on Clubhouse tags
Stars: ✭ 89 (+122.5%)
Mutual labels:  clubhouse
clubhouse-desktop
An unofficial Clubhouse desktop client
Stars: ✭ 200 (+400%)
Mutual labels:  clubhouse
AIML-in-Medicine-club
Repository for "AI/MD in Medicine" club in clubhouse
Stars: ✭ 42 (+5%)
Mutual labels:  clubhouse
ticket-check-action
Verify that pull request titles start with a ticket ID
Stars: ✭ 29 (-27.5%)
Mutual labels:  clubhouse
Performance-Engineers-Clubhouse
Join Performance Engineers Clubhouse 🏡
Stars: ✭ 14 (-65%)
Mutual labels:  clubhouse

Clubhouse API

Clubhouse API client and social graph crawler for TypeScript.

NPM Build Status Prettier Code Formatting

Features

  • TypeScript - Simple, clean TS/JS wrapper for the Clubhouse API.
  • Rate Limits - Built-in throttling for Clubhouse rate limits.
  • Robust - Built-in retry logic with exponential falloff via got.
  • Crawler - Comes with a built-in crawler for the Clubhouse social graph.
  • ️️Persistent - Crawler comes with optional neo4j support.

Packages

Package NPM Description
clubhouse-client NPM Clubhouse API client
clubhouse-crawler NPM Clubhouse social graph crawler + neo4j support

Install

npm install --save clubhouse-client
# or
yarn add clubhouse-client

Usage

import { ClubhouseClient } from 'clubhouse-client'

const exampleUserId = '2481724'
const examplePhoneNumber = '+15555555555'
const exampleVerificationCode = '5555'

const clubhouse = new ClubhouseClient()

await clubhouse.startPhoneNumberAuth(examplePhoneNumber)

// NOTE: manually get the SMS verification code

await clubhouse.completePhoneNumberAuth(
  examplePhoneNumber,
  exampleVerificationCode
)

// you should now be authenticated with a userId and authToken
// you can alternatively auth directly via the ClubhouseClient constructor

const me = await clubhouse.getMe()

const profile = await clubhouse.getProfile(exampleUserId)

// get a single page of users that our example user is following
const following = await clubhouse.getFollowing(exampleUserId)

// get a single page of users who are following our example user
const followers = await clubhouse.getFollowers(exampleUserId)

// get all of the users that our example user is following
// (this will attempt to fetch all of the page results)
const allFollowing = await clubhouse.getAllFollowing(exampleUserId)

// get all of the users following our example user
// (this will attempt to fetch all of the page results)
const allFollowers = await clubhouse.getAllFollowers(exampleUserId)

See login.js for a basic Node.js example that logs you in using the Clubhouse API and gives you the environment variables that you'll need (put them in .env) to run the other examples.

See example.js for a basic Node.js example that uses a previously authenticated user.

See crawler.js for a more advanced Node.js app that will crawl the Clubhouse social graph.

Rate Limits

By default, the ClubhouseClient is set to make a maximum of one API call per 3.5 seconds, which empirically gets past most Clubhouse rate limits.

You'll definitely still run into some, and it's up to you how to best handle them. PLEASE DO NOT SPAM THE CLUBHOUSE API.

You can customize the default ClubhouseClient throttling via the throttle parameter which uses p-throttle under the hood.

Related

  • clubhouse-py - Clubhouse API written in Python.
  • Houseclub - A barebones unofficial Android app for Clubhouse.
  • hipster.house - An intentionally terrible third-party Clubhouse client for web browsers.

Disclaimer

This code is intended purely for educational purposes. It may go against the Clubhouse ToS, so use at your own discretion. We recommend against using this API / crawler with your personal Clubhouse account — you may get banned.

Happy Hacking 🙃

License

MIT © Travis Fischer, Tim Saval and Ahmed Tokyo

Support my OSS work by following me on twitter twitter

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].