|
import gradio as gr |
|
import json |
|
from src.pipeline import run_pipeline, search_highlights |
|
from dotenv import load_dotenv |
|
import shutil |
|
|
|
load_dotenv() |
|
|
|
def extract(video_file, game_card_str): |
|
shutil.copy(video_file.name, "uploaded.mp4") |
|
result = run_pipeline("uploaded.mp4", game_card_str) |
|
return json.dumps(result, indent=2) |
|
|
|
def search(query): |
|
return "\n".join(search_highlights(query)) |
|
|
|
with gr.Blocks() as demo: |
|
gr.Markdown("# Soccer Highlight Extractor") |
|
|
|
with gr.Tab("Extract Highlights"): |
|
video = gr.File(label="Upload Video") |
|
game_card = gr.Textbox(label="Paste Game Card (JSON)", lines=10) |
|
result = gr.Textbox(label="Pipeline Output") |
|
gr.Button("Run Extraction").click(extract, [video, game_card], result) |
|
|
|
with gr.Tab("Search Highlights"): |
|
query = gr.Textbox(label="Search Query") |
|
output = gr.Textbox(label="Search Results") |
|
gr.Button("Search").click(search, query, output) |
|
|
|
demo.launch() |
|
|