Spaces:
Sleeping
Sleeping
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() | |