ytscholar
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| YTSCHOLAR_HOME | No | Base directory for the knowledge DB. | ~/.ytscholar |
| YTSCHOLAR_EMBEDDINGS | No | Set to '1' to enable semantic re-rank (experimental). | 0 |
| YTSCHOLAR_HTTP_PROXY | No | Proxy for reaching YouTube (defaults to HTTP_PROXY). | |
| YTSCHOLAR_MAX_VIDEOS | No | Hard cap on videos per research call. | 15 |
| YTSCHOLAR_CHUNK_CHARS | No | Approx chars per retrieval chunk. | 900 |
| YTSCHOLAR_EMBED_MODEL | No | Sentence-transformers model. | all-MiniLM-L6-v2 |
| YTSCHOLAR_HTTPS_PROXY | No | HTTPS proxy for reaching YouTube (defaults to HTTPS_PROXY). | |
| YTSCHOLAR_COOKIES_FILE | No | Path to an exported cookies.txt. | |
| YTSCHOLAR_DEFAULT_LANGS | No | Preferred transcript languages, e.g. 'fa,en'. | en |
| YTSCHOLAR_REQUEST_DELAY | No | Seconds between transcript fetches. | 0.8 |
| YTSCHOLAR_CACHE_TTL_DAYS | No | Skip re-fetching a video seen within N days. | 30 |
| YTSCHOLAR_COOKIES_FROM_BROWSER | No | Browser to read YouTube cookies from: firefox, chrome, chromium, brave, edge. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_transcriptA | Return the transcript/subtitles for a single YouTube video. Args: video: A YouTube URL or an 11-character video id. languages: Optional comma-separated preferred languages in priority order, e.g. "en" or "fa,en". Empty = server default. translate_to: Optional target language code to auto-translate the transcript into (uses YouTube's translation), e.g. "en". store: If true (default), also add this transcript to the local knowledge base so future searches can draw on it. Returns a dict with the plain-text transcript, language, and metadata. |
| research_topicA | Research a topic by mining the transcripts of the top YouTube videos. Searches YouTube for the topic, takes the top Args: topic: The subject to research, e.g. "retrieval augmented generation". max_videos: How many top videos to mine (capped by server config). languages: Optional comma-separated preferred transcript languages. Returns a per-video ingestion report plus updated knowledge-base stats. |
| search_knowledgeA | Semantic/keyword search over everything the agent has already learned. Retrieves the most relevant transcript passages from the local knowledge base, each with a deep link that opens the source video at the exact timestamp. Answer the user's question using these passages as evidence. Args: query: Natural-language question or keywords. k: Number of passages to return. topic: Optional filter to a topic previously passed to research_topic. |
| knowledge_statsA | Report what the agent has learned so far: videos, chunks, topics, and whether semantic embeddings are active. Useful to check memory state. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 4 tools
Each tool has a clearly distinct purpose: fetching transcripts, researching a topic (which itself uses transcripts), searching the knowledge base, and reporting stats. Even though research_topic uses get_transcript internally, their high-level functions are unambiguous.
All tools follow a verb_noun pattern: get_transcript, research_topic, search_knowledge, knowledge_stats. The pattern is consistent, though 'research_topic' and 'knowledge_stats' are slightly less uniform than 'get_' or 'search_' prefixes, but still readable.
With only 4 tools, the set is lean and well-scoped for a YouTube transcript knowledge-base server. Each tool is essential: ingestion (get_transcript), bulk learning (research_topic), retrieval (search_knowledge), and monitoring (knowledge_stats). No bloat.
The core workflow of ingest, research, search, and stats is covered. Minor gaps include lack of a tool to delete knowledge or list all topics explicitly, but these are not critical for the primary use case of learning and querying.