Note: This is a proof of concept application and is not intended for production use. It demonstrates the integration of various AI technologies for video processing and content generation.
NEW: Added GitHub with ModelContextProtocol (MCP) Integration
SemantiClip is a powerful AI-driven tool that converts videos into structured content by transcribing audio and creating blog posts. Built with .NET, Semantic Kernel and Blazor WebAssembly, it delivers a fast, modern, and responsive user experience.
SemantiClip is an AI-powered tool that transforms video content into structured written formats. Designed for content creators and educators, it automates transcription and blog post creation—making it easier than ever to repurpose video content.
- 🎙️ Audio Extraction – Uses FFmpeg to extract audio from video files.
- ✍️ Transcription – Converts speech to text using Azure OpenAI Whisper.
- 📝 Blog Post Creation – Automatically generates readable blog posts from transcripts.
- 💻 Modern Web UI – Built with .NET 9, Blazor WebAssembly, and MudBlazor.
- 🧩 Local Content Generation – Supports on-device LLM processing with Ollama.
- 🔍 Semantic Kernel Integration – Utilizes Semantic Kernel Process and Agent frameworks for enhanced context and orchestration.
- 📗 GitHub with ModelContextProtocol Integration – Publishes blog posts directly to GitHub repositories with ModelContextProtocol.
SemantiClip helps you do more with your video content—faster, smarter, and effortlessly.
- .NET 9
- Semantic Kernel Process Framework
- Semantic Kernel Agent Framework
- Blazor WebAssembly
- MudBlazor - UI Component Library
- Azure OpenAI
- FFmpeg - Media processing library
- Ollama - Local LLM for content generation
- ModelContextProtocol - ModelContextProtocol for publishing blog posts to GitHub
- .NET 9 SDK
- Azure account with OpenAI service deployed
- FFmpeg installed on the server
- Ollama installed for local LLM processing
- GitHub account with personal access token (for blog post publishing)
-
Clone the repo
git clone https://github.com/vicperdana/SemantiClip.git
-
Install Ollama
# macOS brew install ollama # Windows # Download from https://ollama.ai/download
-
Configure Ollama Model
# Start the Ollama service ollama serve # In a separate shell Pull the phi4-mini model (search other models at [Ollama](https://ollama.com/search)) ollama run phi4-mini
-
Configure GitHub Integration
# Create a GitHub personal access token with repo access - see more details [here](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens#creating-a-fine-grained-personal-access-token) # Copy the generated token and add it to your appsettings.json "GitHub": { "PersonalAccessToken": "yourGitHubToken" },
-
Install FFmpeg
# macOS brew install ffmpeg # Ubuntu sudo apt-get install ffmpeg # Windows # Download from https://ffmpeg.org/download.html and add to PATH
-
Configure Azure OpenAI Services
- Set up Azure OpenAI service
- Deploy Whisper model for transcription (recommended: whisper)
- Deploy GPT-4o model for content generation (recommended: gpt-4o)
- Add your API keys and deployment names to the configuration
-
Configure
appsettings.Development.json
under the SemanticClip.API project{ "AzureOpenAI": { "Endpoint": "your-azure-openai-endpoint", "ApiKey": "your-azure-openai-api-key", }, "LocalSLM": { "ModelId": "phi4-mini", "Endpoint": "http://localhost:11434" }, "AzureAIAgent": { "ConnectionString": "your-azure-ai-agent-connection-string", "ChatModelId": "gpt-4o", "VectorStoreId": "semanticclipproject", "MaxEvaluations": "3" }
-
Run the application
cd SemanticClip.API dotnet run # In a new terminal cd SemanticClip.Client dotnet run
- Open the application in your browser (default: http://localhost:5186)
- Upload a video file
- Click "Process Video"
- Wait for the processing to complete
- View the generated transcript and blog post
- To publish the blog post to GitHub, edit the instructions with a repo that you have write access to and click "Submit with MCP"
- Improve transcription quality with Whisper
- Implement FFmpeg for better audio extraction
- Use specialized models for different tasks
- Add support for multiple video formats
- Add GitHub with ModelContextProtocol Integration
- Add export options (PDF, Word, etc.)
- Implement user authentication
- Run using dotnet aspire
- Add unit tests and integration tests
- Optimize performance for large video files
- Update documentation and examples
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
Distributed under the GPLv3 License. See LICENSE
for more information.
Vic Perdana - LinkedIn - GitHub
Project Link: https://github.com/vicperdana/SemantiClip