41 lines
1.1 KiB
Python

import os
import requests
import livekit
from flask import Flask, request
from flask_cors import CORS
from dotenv import load_dotenv
load_dotenv()
app = Flask(__name__)
# Enable CORS support
cors = CORS(app, resources={r"/*": {"origins": "*"}})
# Load env variables
SERVER_PORT = os.environ.get("SERVER_PORT")
LIVEKIT_API_KEY = os.environ.get("LIVEKIT_API_KEY")
LIVEKIT_API_SECRET = os.environ.get("LIVEKIT_API_SECRET")
@app.route("/token", methods=['POST'])
def getToken():
room_name = request.json.get("roomName")
participant_name = request.json.get("participantName")
if not room_name or not participant_name:
return "roomName and participantName are required", 400
# Create a VideoGrant with the necessary permissions
grant = livekit.VideoGrant(room_join=True, room=room_name)
# Create an AccessToken with your API key, secret and the VideoGrant
access_token = livekit.AccessToken(LIVEKIT_API_KEY, LIVEKIT_API_SECRET, grant=grant, identity=participant_name)
# Generate the token
return access_token.to_jwt()
if __name__ == "__main__":
app.run(debug=True, host="0.0.0.0", port=SERVER_PORT)