An application for extracting YouTube video transcripts and generating concise AI-powered summaries.
- YouTube transcript extraction via YoutubeExplode
- AI summarization: concise summary (3-10 points) using LLM (OpenAI or local LLM)
- Automatic fallback: if OpenAI is unavailable, local LLM (Ollama) is used
- Modern UI: responsive Angular 19 frontend with latest features
- REST API: .NET 9, production-ready
- Health-check endpoint:
/api/health - Unit/integration tests for backend and frontend
- Backend: .NET 9, YoutubeExplode 6.5+, OpenAI API, Ollama (local LLM)
- Frontend: Angular 19, RxJS 8, TypeScript 5.6+, modern standalone components
- Testing: xUnit, Angular TestBed
- .NET 9 SDK
- Node.js 18+ and npm
- Angular CLI 19+
- OpenAI API key (optional)
- Ollama (optional, for local LLM)
git clone <repository-url>
cd YouTubeTranscriptSummarizercd src/YouTubeTranscriptSummarizer.API
dotnet restore
dotnet runcd client
npm install
ng servecurl http://localhost:7001/api/health
# Response: { "status": "Healthy" }Edit src/YouTubeTranscriptSummarizer.API/appsettings.json:
{
"OpenAI": {
"ApiKey": "your-openai-api-key-here",
"Model": "gpt-3.5-turbo"
}
}- Install Ollama: https://ollama.ai/
- Download a model:
ollama pull llama2- Configure:
{
"LocalLLM": {
"Model": "llama2"
}
}If OpenAI is unavailable, local LLM (Ollama) will be used automatically.
- Run backend tests:
dotnet test src/YouTubeTranscriptSummarizer.API.Tests - Run frontend tests:
ng test(fromclientdirectory)