3.7 KiB
VideoStudy.app - Gemini Context
Project Overview
VideoStudy.app is a .NET 8.0 platform designed to analyze YouTube videos using Artificial Intelligence. It leverages Microsoft Semantic Kernel to provide summaries, extract key moments, and generate study materials from video content.
The project is structured as a distributed application with a backend API handling AI processing and a Blazor Hybrid Desktop application for the user interface.
Key Technologies
- Framework: .NET 8.0
- AI Orchestration: Microsoft Semantic Kernel (v1.70.0)
- LLM Providers: Supports Groq (Cloud), Ollama (Local), and OpenAI.
- UI: Blazor Hybrid (Razor Components) with Bootstrap 5.
- Video Processing: YoutubeExplode (download), FFmpeg (screenshots), Whisper.net (transcription).
- Document Generation: QuestPDF.
Architecture
The solution (VideoStudy.sln) consists of the following key projects:
-
VideoStudy.API: ASP.NET Core Web API.- Acts as the central intelligence hub.
- Handles interaction with LLM providers via Semantic Kernel.
- Exposes endpoints for video analysis (
POST /api/analyze) and health checks. - Runs on
http://localhost:5000.
-
VideoStudy.Desktop: Blazor Hybrid Desktop Application.- Server Project:
VideoStudy.Desktop(Hosts the app, runs onhttp://localhost:5001). - Client Project:
VideoStudy.Desktop.Client(Wasm/UI logic). - Provides the user interface for inputting URLs, viewing progress, and displaying results.
- Communicates with
VideoStudy.APIvia HTTP.
- Server Project:
-
VideoStudy.Shared: Class Library.- Contains shared data models (
AnalysisRequest,AnalysisResponse,KeyMoment) ensuring type safety between API and Desktop.
- Contains shared data models (
Development & Usage
Prerequisites
- .NET 8.0 SDK
- FFmpeg (required for advanced processing features like screenshots)
- An LLM Provider (Ollama running locally or an API Key for Groq/OpenAI)
Building the Project
To build the entire solution:
dotnet build VideoStudy.sln
Running the Application
The application requires two separate terminals running simultaneously.
Terminal 1: Start the API
cd VideoStudy.API
dotnet run
# Listens on http://localhost:5000
Terminal 2: Start the Desktop App
cd VideoStudy.Desktop/VideoStudy.Desktop
dotnet run
# Listens on http://localhost:5001
Accessing the UI
Open your browser to http://localhost:5001 to use the application.
Configuration
Configuration is managed via appsettings.json files in the respective projects.
LLM Configuration (VideoStudy.API/appsettings.json):
To change the AI provider (e.g., switching from Groq to Ollama), update the LlmSettings section or modify the dependency injection in Program.cs.
Desktop Configuration (VideoStudy.Desktop/VideoStudy.Desktop/appsettings.json):
Ensure the BaseUrl points to the running API instance (default: http://localhost:5000).
Project Structure
VideoStudy.API/Controllers/: API Endpoints.VideoStudy.Desktop/Components/Pages/: Blazor UI Pages (e.g.,Home.razor).VideoStudy.Desktop/Services/: Client-side logic for FFmpeg, YouTube download, etc.VideoStudy.Shared/Models.cs: Core data contracts.
Current Status (Phase 2)
- Completed: Basic API structure, UI layout (Bootstrap), Semantic Kernel integration, YoutubeExplode integration.
- In Progress: Advanced transcription (Whisper.net), PDF generation, robust error handling, and persistence.
Common Issues
- Connection Refused: Ensure the API is running before trying to analyze a video in the Desktop app.
- Port Conflicts: If ports 5000 or 5001 are in use, modify
launchSettings.jsonor usedotnet run --urls.