Spaces:
Sleeping
Sleeping
#!/usr/bin/env python3 | |
""" | |
Test script to verify video analysis for a GAIA YouTube question. | |
""" | |
import requests | |
from tools import video_analysis_tool | |
def test_youtube_video_question(): | |
api_url = "https://agents-course-unit4-scoring.hf.space" | |
questions_url = f"{api_url}/questions" | |
print("=== Testing YouTube Video Question ===") | |
# 1. Fetch questions | |
print("1. Fetching questions...") | |
try: | |
response = requests.get(questions_url, timeout=15) | |
response.raise_for_status() | |
questions_data = response.json() | |
print(f"β Fetched {len(questions_data)} questions") | |
except Exception as e: | |
print(f"β Failed to fetch questions: {e}") | |
return | |
# 2. Find a question with a YouTube link in the question text or file_name | |
youtube_question = None | |
for i, question in enumerate(questions_data): | |
qtext = question.get('question', '').lower() | |
fname = question.get('file_name', '').lower() | |
if 'youtube.com' in qtext or 'youtu.be' in qtext or 'youtube.com' in fname or 'youtu.be' in fname: | |
youtube_question = (i, question) | |
break | |
if not youtube_question: | |
print("β No YouTube video questions found.") | |
return | |
idx, question = youtube_question | |
question_text = question.get('question') | |
file_name = question.get('file_name', '') | |
print(f"\n2. Found YouTube video question {idx+1}:") | |
print(f" Question: {question_text[:120]}...") | |
print(f" File name: {file_name}") | |
# 3. Extract YouTube URL | |
# Try to find a YouTube URL in the question text or file_name | |
import re | |
yt_url = None | |
yt_pattern = r'(https?://(?:www\.)?(?:youtube\.com|youtu\.be)[^\s]*)' | |
match = re.search(yt_pattern, question_text) | |
if match: | |
yt_url = match.group(1) | |
elif file_name and ('youtube.com' in file_name or 'youtu.be' in file_name): | |
yt_url = file_name | |
if not yt_url: | |
print("β Could not extract YouTube URL from question.") | |
return | |
print(f"3. YouTube URL: {yt_url}") | |
# 4. Analyze the video | |
print("4. Analyzing video with video_analysis_tool...") | |
result = video_analysis_tool.invoke(yt_url) | |
print(f"5. Tool result:") | |
print(f" {result[:500]}...") | |
print("\nβ YouTube video analysis test complete!") | |
if __name__ == "__main__": | |
test_youtube_video_question() | |