Local-first AI memory system that stores conversation history verbatim and retrieves it with semantic search, exposed as an MCP server and CLI.
GhostPeony/clip-finder
Self-hosted semantic search over YouTube transcripts, letting you find and jump to exact timestamps across channels, playlists, or videos.
- Stars
- 55
- Forks
- 6
- Open issues
- 0
- Last commit
- 4 months ago
What is it?
SearchTube indexes YouTube transcripts from a channel, playlist, or single video, then lets you search by meaning rather than exact keywords. Each result links to the matching timestamp in the video, so you can jump straight to the relevant clip.
It runs in two modes. Local mode needs no login and stores vectors in a local ChromaDB directory, with your own Gemini key supplied in the browser. Supabase mode adds user authentication, Postgres with pgvector, usage quotas, and server-hosted Gemini keys, with optional encrypted storage of per-user keys.
The stack is a React frontend with a FastAPI backend, using Gemini embeddings for retrieval. The project also includes an evaluation script for comparing embedding models and dimensions before changing defaults.
Key features
- 01Semantic search over YouTube transcripts with timestamped links
- 02Indexing for channels, playlists, and single videos
- 03Skips videos that are already indexed
- 04Local mode with no auth, or Supabase mode with multi-user login
- 05Bring-your-own-key support in the browser or encrypted server-side storage
- 06Transcript downloads in SRT format and recent search history
Use cases
- Finding a specific explanation inside a long lecture series or tutorial channel
- Searching across a playlist for a topic without watching every video
- Running a private, self-hosted transcript search for a team or personal archive
Quick start
- 1
Clone the repository
git clone https://github.com/GhostPeony/SearchTube.git - 2
Create a Python virtual environment and install backend dependencies
python -m venv venv venv\Scripts\activate pip install -r requirements.txt - 3
Install frontend dependencies, then create .env.local with your Gemini API key
npm install - 4
Start the backend in one terminal and the frontend in another, then open http://localhost:3001
python backend/server.py npm run dev
Things to know
- Local mode needs a Gemini API key for embeddings and search.
- Setup instructions use Windows-specific venv activation; other platforms need a different activation command.
- Transcripts are unavailable for videos without captions or with region or age restrictions.
Topics
FAQ
- What is clip-finder?
- Self-hosted semantic search over YouTube transcripts, letting you find and jump to exact timestamps across channels, playlists, or videos. SearchTube indexes YouTube transcripts from a channel, playlist, or single video, then lets you search by meaning rather than exact keywords. Each result links to the matching timestamp in the video, so you can jump straight to the relevant clip.
- Is clip-finder free to use? What license does it have?
- clip-finder is open source under the MIT license. Check the license terms before using it in commercial products.
- Is clip-finder still maintained?
- Updated within 6 months. The last commit to clip-finder was on Jul 2, 2026.
- What can I use clip-finder for?
- Finding a specific explanation inside a long lecture series or tutorial channel Searching across a playlist for a topic without watching every video Running a private, self-hosted transcript search for a team or personal archive
- How do I install clip-finder?
- Clone the repository: git clone https://github.com/GhostPeony/SearchTube.git Create a Python virtual environment and install backend dependencies: python -m venv venv venv\Scripts\activate pip install -r requirements.txt Install frontend dependencies, then create .env.local with your Gemini API key: npm install Start the backend in one terminal and the frontend in another, then open http://localhost:3001: python backend/server.py npm run dev
- Where can I get clip-finder?
- The source code and installation instructions are on GitHub: https://github.com/GhostPeony/clip-finder
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
Open-source embedding database for AI apps, storing documents and vectors to power semantic, hybrid and full-text search.
A retrieval toolkit from BAAI providing BGE embedding and reranker models plus training, evaluation and tutorials for search and RAG.
Self-hosted inference server that serves embedding, reranking, OCR, extraction, safety and LLM models from one cluster through an OpenAI-compatible API.
Web app for running DeepSeek-OCR on images and PDFs, with a React frontend, FastAPI backend and Docker setup.
An AI tool that turns English grammar and usage points into 30-second vertical teaching videos with Chinese subtitles and highlighted English keywords.