File size: 1,244 Bytes
89df459
 
 
8eefd04
89df459
 
1badb48
89df459
8eefd04
89df459
 
1badb48
89df459
 
8eefd04
 
 
89df459
8eefd04
 
 
 
 
 
89df459
 
 
 
1badb48
89df459
 
 
 
 
 
80798c8
1badb48
89df459
4765650
89df459
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
import gradio as gr
import subprocess
import os
import re

# Função para baixar o clipe da Twitch
def download_twitch_clip(url, auth_token):
    # Comando básico para download
    command = ["twitch-dl", "download", "-q", "source", url]

    # Adiciona o token de autenticação, se fornecido
    if auth_token.strip():
        command.extend(["-a", auth_token])

    # Executa o comando de download e captura a saída
    process = subprocess.Popen(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
    stdout, stderr = process.communicate()

    # Usa expressão regular para encontrar o nome do arquivo na saída
    match = re.search(r"Target: (.+\.mp4)", stderr.decode("utf-8"))
    if match:
        file_name = match.group(1)
    else:
        raise Exception("Não foi possível encontrar o nome do arquivo de vídeo.")

    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()