Metadata-Version: 2.5
Name: socially
Version: 0.3.0
Summary: Authless social media user lookup — X, TikTok, Instagram, GitHub, Reddit, Bluesky, Mastodon, YouTube
Project-URL: Homepage, https://github.com/lmaohi7181828/socially
Project-URL: Repository, https://github.com/lmaohi7181828/socially
Project-URL: Issues, https://github.com/lmaohi7181828/socially/issues
Author: socially
License-Expression: MIT
License-File: LICENSE
Keywords: bluesky,github,instagram,mastodon,osint,social,tiktok,twitter,x,youtube
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Typing :: Typed
Requires-Python: >=3.10
Provides-Extra: dev
Requires-Dist: curl-cffi>=0.7; extra == 'dev'
Requires-Dist: orjson>=3.10; extra == 'dev'
Requires-Dist: pytest>=8.0; extra == 'dev'
Provides-Extra: fast
Requires-Dist: curl-cffi>=0.7; extra == 'fast'
Requires-Dist: orjson>=3.10; extra == 'fast'
Description-Content-Type: text/markdown

# socially

Authless multi-platform user lookup for Python.

**X · TikTok · Instagram · GitHub · Bluesky · Mastodon · YouTube**

No API keys. No login. Normalized `User` + full `raw` payload.

X user lookup follows the guest GraphQL pattern used by [xtekky/x-noauth-api](https://github.com/xtekky/x-noauth-api) (`UserByScreenName`, public bearer + guest token, feature flags).

## Install

```bash
pip install socially
# or with speed extras:
pip install "socially[fast]"
```

From source:

```bash
pip install -e ".[fast]"
```

`fast` extra: `orjson` + `curl_cffi` (TLS fingerprint).

## Usage

```python
from socially import Socially, lookup

u = lookup("tiktok", "tiktok")
print(u.username, u.followers, u.display_name)

u = lookup("bluesky", "jay.bsky.team")
print(u.id, u.followers)

s = Socially()
print(s.platforms())
results = s.lookup_many("nasa", platforms=["github", "youtube", "bluesky"])
```

## Platforms

| Name | Authless method |
|------|-----------------|
| `x` / `twitter` | Guest token + GraphQL `UserByScreenName` (xtekky-style) |
| `tiktok` | Profile HTML `__UNIVERSAL_DATA_FOR_REHYDRATION__` |
| `instagram` / `ig` | `web_profile_info` |
| `github` / `gh` | Public REST `/users/{user}` |
| `bluesky` / `bsky` | `app.bsky.actor.getProfile` |
| `mastodon` | `/api/v1/accounts/lookup` (`user@instance`) |
| `youtube` / `yt` | Channel `@handle` `ytInitialData` + og meta |

## User fields

`platform`, `id`, `username`, `display_name`, `bio`, `url`, `avatar_url`, `banner_url`,  
`followers`, `following`, `posts`, `likes`, `verified`, `protected`, `location`, `website`, `created_at`, `raw`

## License

MIT
