threads-py

Unofficial, Reverse-Engineered Python client for Meta's Threads.


Keywords
threads, instagram, facebook, meta, api, threads-api
License
MIT
Install
pip install threads-py==0.0.9

Documentation

threads-py

pypi MIT License

Unofficial, Reverse-Engineered Python client for Meta's Threads.

Looking for the TypeScript version? Check out junhoyeo/threads-api.

Installation

pip install --no-cache-dir --upgrade threads-py

🚀 Usage (Read)

from threadspy import ThreadsAPI

api = ThreadsAPI()

username = "{username}"

# get a user id
user_id = api.get_user_id_from_username(username)
print(user_id)

# get a profile info
profile = api.get_user_profile(username, user_id=user_id)
print(profile)

# get a profile's threads tab
threads = api.get_user_profile_threads(username, user_id=user_id)
print(threads)

# get a profile's replies tab
replies = api.get_user_profile_replies(username, user_id=user_id)
print(replies)

# 3-ways to get the {post_id}
thread_id = "CuX_UYABrr7"
post_id = api.get_post_id_from_thread_id(thread_id)
print(post_id)

post_url = "https://www.threads.net/t/CuX_UYABrr7/?igshid=MzRlODBiNWFlZA=="
post_id = api.get_post_id_from_url(post_url)
print(post_id)

thread_id = "CuX_UYABrr7"
post_id = api.get_post_id_from_thread_id(thread_id)
print(post_id)

# get threads info
thread = api.get_threads(post_id)
print(thread)

# get who liked a thread
linkers = api.get_thread_likers(post_id)
print(linkers)

🚀 Usage (Write)

✨ Text Threads

from threadspy import ThreadsAPI

api = ThreadsAPI(username="username", password="password")
api.publish(caption="🤖 Hello World!")

✨ Threads with Image

api.publish(caption= '🤖 Threads with Link Image', image_path="https://github.com/junhoyeo/threads-py/raw/main/.github/logo.jpg")

✨ Threads with Link Attachment

api.publish(caption= '🤖 Threads with Link Attachment', url="https://github.com/junhoyeo/threads-py)")

✨ Reply to Other Threads

parent_post_url = 'https://www.threads.net/t/CugF-EjhQ3r'
parent_post_id = api.get_post_id_from_url(parent_post_url) # or use `get_post_id_from_thread_id`

api.publish({
  text: '🤖 Beep',
  link: 'https://github.com/junhoyeo/threads-py',
  parent_post_id: parent_post_id,
})

🔎 Search Users

search_parameter = "DrunkLeen"
# 💡 Uses current credentials
api.search(search_parameter)

👍 Like/Unlike a Thread

post_url = 'https://www.threads.net/t/CugF-EjhQ3r'
post_id = api.get_post_id_from_url(post_url) # or use `get_post_id_from_thread_id`

# 💡 Uses current credentials
api.like(postIDToLike)
api.unlike(postIDToLike)

👉 Follow/Unfollow a User

user_id = api.get_user_id_from_username('junhoyeo')

# 💡 Uses current credentials
api.follow(user_id)
api.unfollow(user_id)

⛔ Block/Unblock a User

user_id = api.get_user_id_from_username('junhoyeo')

# 💡 Uses current credentials
api.block(user_id)
api.unblock(user_id)

🔇 Mute/Unmute a User

user_id = api.get_user_id_from_username('junhoyeo')

# 💡 Uses current credentials
api.mute(user_id)
api.unmute(user_id)

⏚ī¸ Restrict/Unrestrict a User

user_id = api.get_user_id_from_username('junhoyeo')

# 💡 Uses current credentials
api.restrict(user_id)
api.unrestrict(user_id)

🧑‍đŸĻŗ Check FriendshipStatus with a User

user_id = api.get_user_id_from_username('junhoyeo')

# 💡 Uses current credentials
api.friendship_status(user_id)

👉đŸģ👈đŸģ Get User Followings and Followers

user_id = api.get_user_id_from_username('junhoyeo')

# 💡 Uses current credentials
api.get_followings(user_id)
api.get_followers(user_id)

➕ Get Suggested Users

# 💡 Uses current credentials
api.get_suggested_users()
# or
api.get_suggested_users(count=5)
# or
api.get_suggested_users(paging=3)
# or
api.get_suggested_users(count=5, paging=2)
# "count" and "paging" parameters are optional
# default: count = 15 "paging" are optional
# default: paging = None

Roadmap

  • ✅ Read public data
    • ✅ Fetch UserID(314216) via username(zuck)
    • 🚧 Read timeline feed
    • ✅ Read User Profile Info
    • ✅ Read list of User Threads
      • 🚧 With Pagination (If auth provided)
    • ✅ Read list of User Replies
      • 🚧 With Pagination (If auth provided)
    • ✅ Fetch PostID(3140957200974444958) via ThreadID(CuW6-7KyXme) or PostURL(https://www.threads.net/t/CuW6-7KyXme)
    • ✅ Read Threads via PostID
    • ✅ Read Likers in Thread via PostID
  • 🚧 LangChain Agent (threadspy.ai)
    • 🚧 Threads Tool for LangChain
    • 📌 Link Threads & LLaMa (@Mineru98)
    • 📌 Provide statistical analysis of posts in Threads (@Mineru98)
  • ✅ Read user private data
    • ✅ Get suggested users
    • ✅ Read User Followers
    • ✅ Read User Followings
  • 🚧 Write data (i.e. write automated Threads)
    • 🚧 Create new Thread with text
      • 🚧 Make link previews to get shown
    • 🚧 Create new Thread with media
    • 🚧 Create new Thread with multiple images
    • 🚧 Reply to existing Thread
    • 🚧 Quote Thread
    • 🚧 Delete Thread
  • ✅ Friendships
    • ✅ Follow User
    • ✅ Unfollow User
    • ✅ Block User
    • ✅ Unblock User
    • ✅ Mute User
    • ✅ Unmute User
    • ✅ Restrict User
    • ✅ Unrestrict User
    • ✅ Check FriendshipStatus with a User
  • ✅ Interactions
    • ✅ Like Thread
    • ✅ Unlike Thread

License

MIT Š Junho Yeo

If you find this project intriguing, please consider starring it(⭐) or following me on GitHub (I wouldn't say Threads).