Full_Video: https://www.youtube.com/watch?v=cTfs_JWQJKM Only demo: https://www.youtube.com/watch?v=TiTOYB5Lx30

Inspiration

VidPhrase was inspired by a simple problem I kept running into myself. As a beginner video editor, I often had to go through long videos just to find one sentence, one quote, or one specific moment. Unlike text documents, videos do not have a proper Ctrl+F. The problem becomes even worse when the wording is different from what you remember. I wanted to build a tool that makes videos and audio searchable by both exact phrases and meaning.

What it does

VidPhrase turns YouTube videos, uploaded video or audio files, subtitles, comments, and descriptions into searchable content.

It supports three main workflows:

  • Regular phrase search in YouTube subtitles and comments
  • AI-powered semantic search that understands similar meanings and synonyms
  • Search inside uploaded video or audio files through automatic transcription

The application returns timestamps, direct links to the exact moment, and downloadable subtitles, allowing users to navigate long-form content instantly.

How I built it

I built VidPhrase using Python and Flask for the backend and a web-based interface for the frontend.

I used:

  • Flask for the web application and routing
  • yt-dlp for extracting YouTube subtitles, descriptions, and comments
  • Faster-Whisper for local transcription of uploaded video and audio files
  • TheFuzz for fuzzy phrase matching and typo tolerance
  • Google Gemini for semantic search, contextual understanding, and synonym detection
  • Werkzeug utilities for secure file uploads and processing

I combined these components into a single workflow that can search across multiple sources while keeping the experience simple and intuitive.

Challenges I ran into

One of the biggest challenges was dealing with real-world language. People rarely remember exact wording. They remember ideas. A phrase may appear as a synonym, another grammatical form, or a completely different expression with the same meaning.

Another challenge was handling different content sources in one application. I had to process YouTube subtitles, comments, uploaded files, and AI-generated semantic results while keeping the experience fast and easy to use.

I also had to balance search accuracy with performance, especially when working with long videos and large transcripts.

Accomplishments that I'm proud of

I'm proud that I built a tool that combines several search methods in one place.

VidPhrase can:

  • Search inside YouTube videos
  • Search comments and descriptions
  • Transcribe uploaded files locally
  • Find semantically similar phrases with AI
  • Return timestamps and direct links for instant navigation

Most importantly, it transforms long videos and audio recordings into searchable knowledge.

What I learned

Through this project, I learned how difficult natural language search actually is. Exact matching is often not enough because people remember meaning rather than wording.

I also gained practical experience combining transcription, fuzzy matching, semantic AI search, and multiple data sources inside a single application.

What's next for VidPhrase

Next, I want to improve semantic search accuracy, support more languages and media sources, and make navigation even faster.

I also plan to add advanced filters, transcript highlighting, and more powerful ways to explore long-form video and audio content.

My long-term goal is to make VidPhrase feel like Ctrl+F for videos and audio.

Built With

Share this project:

Updates