Skip to content

MrSnifo/twitch.py

Repository files navigation

twitch.py

PyPI - Version Python Versions

A Python wrapper for Twitch It handles real-time events via WebSocket EventSub and integrates with the Helix API, all designed for easy asynchronous use.

Installation

To install twitch.py, use the appropriate command for your operating system:

For Windows:

py -3 -m pip install --upgrade twitch.py

For macOS/Linux:

python3 -m pip install --upgrade twitch.py

Quick Start

Here’s a simple example to get you started with twitch.py:

from twitch import Client
from twitch.types import eventsub

client = Client(client_id='YOUR_CLIENT_ID')

@client.event
async def on_ready():
    print('Client is ready!')

@client.event
async def on_follow(data: eventsub.channels.FollowEvent):
    await client.channel.chat.send_message(f'{data["user_name"]} just followed the channel!')

client.run('YOUR_USER_ACCESS_TOKEN')

OAuth Authentication

Authenticate easily with Twitch using the Device Flow authentication method:

from twitch import Client
from twitch.types import eventsub
from twitch.ext.oauth import DeviceAuthFlow, Scopes

client = Client(client_id='YOUR_CLIENT_ID')

DeviceAuthFlow(
    client=client,
    scopes=[Scopes.CHANNEL_READ_SUBSCRIPTIONS]
)

@client.event
async def on_code(code: str):
    print(f'Go to https://www.twitch.tv/activate and enter this code: {code}')

@client.event
async def on_auth(access_token: str, refresh_token: str):
    print(f'Access Token: {access_token}')
    
@client.event
async def on_subscribe(data: eventsub.channels.SubscribeEvent):
    await client.channel.chat.send_message(f'{data["user_name"]} just Subscribed!')

client.run()

Documentation and Support

For more detailed instructions, visit the twitch.py Documentation.

Need help or want to join the community? Join the Discord server.