Initial commit: Twitch Stream Vision Analyzer
Async pipeline: streamlink + ffmpeg frame capture → Gemini Vision API analysis → rich console output + log file. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
27
output.py
Normal file
27
output.py
Normal file
@@ -0,0 +1,27 @@
|
||||
import aiofiles
|
||||
from datetime import datetime
|
||||
|
||||
from rich.console import Console
|
||||
from rich.panel import Panel
|
||||
|
||||
console = Console()
|
||||
|
||||
|
||||
def print_description(description: str, frame_number: int) -> None:
|
||||
timestamp = datetime.now().strftime("%H:%M:%S")
|
||||
console.print(
|
||||
Panel(
|
||||
description,
|
||||
title=f"[bold cyan]Frame #{frame_number}[/bold cyan] [{timestamp}]",
|
||||
border_style="blue",
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
async def log_description(
|
||||
log_file: str, description: str, frame_number: int
|
||||
) -> None:
|
||||
timestamp = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
|
||||
line = f"[{timestamp}] Frame #{frame_number}: {description}\n"
|
||||
async with aiofiles.open(log_file, "a", encoding="utf-8") as f:
|
||||
await f.write(line)
|
||||
Reference in New Issue
Block a user