.NET Web API that turns YouTube transcripts into AI summaries and saves them to Notion.
C#
0
0 commits
updated Jan 25, 2026
A .NET Web API built with Clean Architecture, DDD, and SOLID principles that extracts transcripts from YouTube videos, generates study summaries using AI (Hugging Face), and saves them to a Notion database.
YoutubeExplode.The solution follows the Clean Architecture layers:
VideoTranscript, Summary), and Value Objects. No external dependencies.GenerateSummaryUseCase), Interfaces/Ports (IGetTranscriptService, etc.), and DTOs.Before running the application, you need to configure your API keys.
YoutubeTranscriptor.Api/appsettings.json.{
"HuggingFace": {
"ApiKey": "YOUR_HUGGING_FACE_API_KEY"
},
"Notion": {
"DatabaseId": "YOUR_NOTION_DATABASE_ID",
"ApiKey": "YOUR_NOTION_API_KEY"
}
}
Note: For production, consider using User Secrets or Environment Variables.
Restore dependencies:
dotnet restore
Run the API:
dotnet run --project YoutubeTranscriptor.Api
Access Swagger:
The API will launch (usually on https://localhost:7286 or http://localhost:5271).
Visit /swagger to inspect the endpoints.
Run the unit tests to verify the core logic:
dotnet test
POST /api/Transcript/generate
Request Body:
{
"videoUrl": "https://www.youtube.com/watch?v=YOUR_VIDEO_ID"
}
Response:
{
"notionPageUrl": "https://notion.so/your-new-page-id",
"summaryContent": "• Key point 1\n• Key point 2..."
}
C#
100.0%
.NET Web API that turns YouTube transcripts into AI summaries and saves them to Notion.
C#
0
0 commits
updated Jan 25, 2026
A .NET Web API built with Clean Architecture, DDD, and SOLID principles that extracts transcripts from YouTube videos, generates study summaries using AI (Hugging Face), and saves them to a Notion database.
YoutubeExplode.The solution follows the Clean Architecture layers:
VideoTranscript, Summary), and Value Objects. No external dependencies.GenerateSummaryUseCase), Interfaces/Ports (IGetTranscriptService, etc.), and DTOs.Before running the application, you need to configure your API keys.
YoutubeTranscriptor.Api/appsettings.json.{
"HuggingFace": {
"ApiKey": "YOUR_HUGGING_FACE_API_KEY"
},
"Notion": {
"DatabaseId": "YOUR_NOTION_DATABASE_ID",
"ApiKey": "YOUR_NOTION_API_KEY"
}
}
Note: For production, consider using User Secrets or Environment Variables.
Restore dependencies:
dotnet restore
Run the API:
dotnet run --project YoutubeTranscriptor.Api
Access Swagger:
The API will launch (usually on https://localhost:7286 or http://localhost:5271).
Visit /swagger to inspect the endpoints.
Run the unit tests to verify the core logic:
dotnet test
POST /api/Transcript/generate
Request Body:
{
"videoUrl": "https://www.youtube.com/watch?v=YOUR_VIDEO_ID"
}
Response:
{
"notionPageUrl": "https://notion.so/your-new-page-id",
"summaryContent": "• Key point 1\n• Key point 2..."
}
C#
100.0%