Made some chanages and now Can't remmebr what I did
This commit is contained in:
@@ -0,0 +1,74 @@
|
||||
#!/usr/bin/env python3
|
||||
import asyncio
|
||||
import json
|
||||
import os
|
||||
import webbrowser
|
||||
from twitchAPI.twitch import Twitch
|
||||
from twitchAPI.oauth import UserAuthenticator
|
||||
from twitchAPI.type import AuthScope
|
||||
|
||||
SECRETS_FILE = "twitch_secrets.json"
|
||||
|
||||
def load_credentials():
|
||||
"""Loads existing Client ID and Secret from your JSON file."""
|
||||
if not os.path.exists(SECRETS_FILE):
|
||||
raise FileNotFoundError(f"Could not find {SECRETS_FILE} in this directory.")
|
||||
with open(SECRETS_FILE, "r") as f:
|
||||
data = json.load(f)
|
||||
return data.get("client_id"), data.get("client_secret")
|
||||
|
||||
def save_token_to_json(token):
|
||||
"""Saves the generated token into twitch_secrets.json under 'manual_token'."""
|
||||
with open(SECRETS_FILE, "r") as f:
|
||||
data = json.load(f)
|
||||
|
||||
# Inject the new token
|
||||
data["manual_token"] = token
|
||||
|
||||
with open(SECRETS_FILE, "w") as f:
|
||||
json.dump(data, f, indent=4)
|
||||
print(f"\n[SUCCESS] Token saved inside '{SECRETS_FILE}' under 'manual_token'!")
|
||||
|
||||
async def main():
|
||||
try:
|
||||
client_id, client_secret = load_credentials()
|
||||
if not client_id or not client_secret:
|
||||
print("[ERROR] Please add your client_id and client_secret to the JSON file first.")
|
||||
return
|
||||
|
||||
print("Initializing local connection loop...")
|
||||
# Initialize official Twitch connection interface
|
||||
twitch = await Twitch(client_id, client_secret)
|
||||
|
||||
# Scopes: We leave this empty [] since VOD collection only requires basic public clearance
|
||||
scopes = []
|
||||
|
||||
# Create an authenticator that automatically sets up http://localhost:17563
|
||||
auth = UserAuthenticator(twitch, scopes, url="http://localhost:17563")
|
||||
|
||||
# Request authentication URL
|
||||
auth_url = auth.return_auth_url()
|
||||
print(f"\nIf your browser does not open automatically, copy and paste this URL into your browser:\n{auth_url}\n")
|
||||
|
||||
# Open your system default browser to let you manually click "Authorize"
|
||||
webbrowser.open(auth_url)
|
||||
|
||||
print("Waiting for you to click 'Authorize' in your web browser...")
|
||||
# The script halts here, running a local background server until you click authorize
|
||||
token, refresh_token = await auth.authenticate()
|
||||
|
||||
print(f"\nSuccessfully generated Token: {token}")
|
||||
|
||||
# Save it right back into your configuration file
|
||||
save_token_to_json(token)
|
||||
|
||||
# Gracefully shut down the library connection
|
||||
await twitch.close()
|
||||
|
||||
except Exception as e:
|
||||
print(f"\n[ERROR] An error occurred: {e}")
|
||||
print("Double-check that http://localhost:17563 is added to your Twitch Dev Console.")
|
||||
|
||||
if __name__ == "__main__":
|
||||
# Run the asynchronous loop
|
||||
asyncio.run(main())
|
||||
Reference in New Issue
Block a user