A Python wrapper for the Twitch API, EventSub and Authentication
Project description
Twitch Python Wrapper
A Python wrapper for the Twitch API, EventSub and Authentication SOON.
No need to hassle about WebSockets nor data structures
Installation
pip install twitch-python-wrapper
What this wraps
This wraps around Twitch's
- API,
- EventSub, and
- Authentication SOON
Usage
API
from twitch_python_wrapper.api.client import APIClient
# While you can set the 'access_token' parameter to a user access token,
# those endpoints that can only be used with a user access token are
# not yet supported by this wrapper
client = APIClient(
client_id="CLIENT_ID",
access_token="APP_ACCESS_TOKEN"
)
user = client.users.get_users(login="twitchdev")
# Change the 'id' attribute to get whatever you want!
print(user.id)
EventSub
Using decorators, great for getting just one event in a function
from twitch_python_wrapper.eventsub.client import EventSubClient
from twitch_python_wrapper.eventsub.objects import Metadata
from twitch_python_wrapper.enums import SubscriptionType
# The parameter 'access_token' MUST be a user access token
client = EventSubClient(
client_id="CLIENT_ID",
access_token="USER_ACCESS_TOKEN"
)
# Event triggered when WebSocket Welcome Message is received
@client.on("builtins.message.welcome")
def connected(metadata: Metadata, payload: dict):
print("Connected with EventSub")
# Change the broadcaster_user_id by your own and
# this event should fire everytime you edit your stream info
@client.on(
SubscriptionType.CHANNEL_UPDATE,
"2",
{"broadcaster_user_id": "1337"}
)
def on_channel_update(metadata: Metadata, payload: dict):
# https://dev.twitch.tv/docs/eventsub/eventsub-subscription-types/#channel-update-notification-payload
name = payload["event"]["broadcaster_user_name"]
title = payload["event"]["title"]
language = payload["event"]["language"]
category = payload["event"]["category_name"]
print(f"{name} updated their stream info")
print(f"Stream title -> {title}")
print(f"Stream language -> {language}")
print(f"Stream category -> {category}")
Without decorators, great for getting multiple events to a function
from twitch_python_wrapper.eventsub.client import EventSubClient
from twitch_python_wrapper.eventsub.objects import Metadata
from twitch_python_wrapper.enums import SubscriptionType
# The parameter access_token MUST be a user access token
client = EventSubClient("CLIENT_ID", "USER_ACCESS_TOKEN")
# Event triggered when WebSocket Welcome Message is received
def connected(metadata: Metadata, payload: dict):
print("Connected with EventSub")
# Change the broadcaster_user_id by your own and
# this event should fire everytime you edit your stream info
def on_channel_update(metadata: Metadata, payload: dict):
# https://dev.twitch.tv/docs/eventsub/eventsub-subscription-types/#channel-update-notification-payload
name = payload["event"]["broadcaster_user_name"]
title = payload["event"]["title"]
language = payload["event"]["language"]
category = payload["event"]["category_name"]
print(f"{name} updated their stream info")
print(f"Stream title -> {title}")
print(f"Stream language -> {language}")
print(f"Stream category -> {category}")
client.register(connected, "builtins.message.welcome")
broadcasters = ["1337", "12826", "141981764"]
for broadcaster in broadcasters:
client.register(
on_channel_update,
SubscriptionType.CHANNEL_UPDATE,
"2",
{"broadcaster_user_id": broadcaster}
)
Authentication
SOON
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file twitch_python_wrapper-1.0.0b0.tar.gz.
File metadata
- Download URL: twitch_python_wrapper-1.0.0b0.tar.gz
- Upload date:
- Size: 33.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8e1c8c76b835cef51669fdfe3b4f2ff3ac8bbaeed26be63d32ba119a5a7db3c1
|
|
| MD5 |
9e6e635a92e057b720b371c674c7795e
|
|
| BLAKE2b-256 |
cd3f110f754043da77d97abecb401dec214821727c079d43bbd698d45ea5a35e
|
File details
Details for the file twitch_python_wrapper-1.0.0b0-py3-none-any.whl.
File metadata
- Download URL: twitch_python_wrapper-1.0.0b0-py3-none-any.whl
- Upload date:
- Size: 53.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8ad0e71fa8d555833f03187b879f75b99cd09d282886ef179153d0ae8dfeb2f0
|
|
| MD5 |
82367b960cbf4f88c164829712a45a64
|
|
| BLAKE2b-256 |
6d84b00ac5d3687ebc9868af8bb73c8a5f6ea6e406ead075bd5889246ef04f3b
|