import gradio as gr import subprocess import os import re import datetime # Função para baixar o clipe da Twitch def download_twitch_clip(url, auth_token): # Gera um timestamp para usar no nome do arquivo timestamp = datetime.datetime.now().strftime("%Y%m%d_%H%M%S") output_pattern = f"{timestamp}_{{id}}_{{channel_login}}_{{title_slug}}.{{format}}" command = ["twitch-dl", "download", url, "-q", "source", "-o", output_pattern] if auth_token.strip(): command.extend(["-a", auth_token]) process = subprocess.Popen(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE) stdout, stderr = process.communicate() # O nome do arquivo é determinado pelo padrão de saída file_name = output_pattern.format(id="unknown", channel_login="unknown", title_slug="unknown", format="mkv") return file_name # Interface Gradio def gradio_interface(url, auth_token=""): file_name = download_twitch_clip(url, auth_token) return file_name iface = gr.Interface( fn=gradio_interface, inputs=[ gr.Textbox(label="URL do Clipe da Twitch"), gr.Textbox(label="Token de Autenticação (opcional)") ], outputs=gr.Video() ) # Executar a interface iface.launch()