Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
HF_HOMENoHugging Face cache (Whisper weights live here)
PYTHONUTF8Noset to 1 on Windows to avoid mojibake
HF_ENDPOINTNomirror, e.g. https://hf-mirror.comhuggingface.co
YUEYING_LANGNolanguage of report.md written by the server (en/zh)en
YUEYING_MODELNodefault for the model parameterauto
YUEYING_DEVICENoauto / cuda / cpuauto
YUEYING_OUT_DIRNoroot folder for results (absolute, ~ ok)~/yueying_out
YUEYING_MAX_JOBSNopipelines running at once per server1
YUEYING_JOB_TIMEOUTNohard limit per video, seconds7200
YUEYING_KEEP_SOURCENo1 keeps the downloaded ≤720p source in _download/ (enables exact-moment frames for URLs)
YUEYING_COOKIES_FROM_BROWSERNodefault browser for cookies (chrome, edge, firefox, …)

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

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
watch_videoA

Turn a video into a timestamped transcript plus a keyframe overview so you can summarize it, answer questions about it, extract steps, commands or code, or write notes. video is an absolute path to a local video/audio file or a YouTube / Bilibili / Douyin / Xiaohongshu / TikTok / Vimeo URL. Fully offline: platform subtitles are used when they exist, otherwise local Whisper speech recognition (GPU when available, CPU otherwise); no API key. Results are cached per video, so calling again with the same video is instant. Typical time: 5–60 s for short subtitled videos, a few minutes for long videos without subtitles; the very first speech recognition downloads a model once (~480 MB on CPU, ~1.6 GB on GPU). If the reply starts with RUNNING, call watch_video again with the same video — it resumes waiting for the same job; do not change options and do not start other videos meanwhile. The reply is an English overview: metadata, chapters, the list of contact sheets (see them with get_frames), file paths, and the transcript with [mm:ss] timestamps (truncated at max_chars with a start time for get_transcript). Cite timestamps like (03:15). Not for live streams or images.

get_transcriptA

Read part of an already-watched video's transcript with [mm:ss] timestamps. Use when the watch_video overview was truncated, when the user asks about a specific time range, or to export subtitles (format='srt'). Returns at most max_chars; when truncated the last line gives next_start so you can continue from there. Paragraph format is the cheapest.

search_transcriptA

Find where something is said in an already-watched video. Each hit shows the time, the surrounding sentences, and the nearest keyframe number and contact-sheet number so you can follow up with get_frame_at or get_transcript. Use this instead of paging the whole transcript when the user asks 'when does he mention X' or 'find the part about Y'.

get_framesA

See what is on screen in an already-watched video. Returns contact-sheet images (3x3 keyframes in time order, every tile labelled '#number mm:ss' bottom-left) or individual keyframes. Read the contact sheets first to get the visual storyline, then request single frames only when you need to read code, slides or UI text. At most 3 images per call (default 2), downscaled to max_width; page with start/count. Every image is preceded by its absolute file path so hosts that can read files may open the full-size original instead.

get_frame_atA

Look closely at one moment of an already-watched video, e.g. to read code, a slide, a chart or a UI. For local files that still exist the exact frame at that time is extracted from the video; otherwise the nearest cached keyframe is returned and the caption says so. Also returns the transcript paragraphs spoken around that time. Returns one image (~100 KB at 960 px).

list_videosA

List videos already processed by yueying on this machine (newest first) and jobs currently running, with video_id, title, duration, text source, date, folder and size. Use when the user refers to a video watched earlier, to get a video_id for the other tools, or to see how much disk space results use. Instant and read-only.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A4.4/5.0

Scored across 6 tools

Disambiguation5/5

Each tool targets a distinct step in the video processing workflow: create (watch_video), read transcript (get_transcript), search (search_transcript), visual overview (get_frames), precise frame lookup (get_frame_at), and listing (list_videos). There is no meaningful overlap between any two tools; the boundaries are clear.

Naming Consistency5/5

All tool names follow a consistent imperative verb_noun snake_case convention (watch_video, get_transcript, list_videos, search_transcript, get_frames, get_frame_at). Even 'get_frame_at' is a predictable extension of the get_ pattern, so naming is uniform and easy to guess.

Tool Count5/5

Six tools is well-scoped for a video analysis server. Each tool covers a necessary operation without redundancy, and the count is appropriate for the domain.

Completeness4/5

The core workflow is well covered: ingest a video, retrieve transcript segments, search within them, and view visual content. The only notable gap is the absence of a delete/cleanup tool to remove processed videos or cached results, though list_videos does expose disk usage as a workaround.

Maintenance

ActivityMaintained
ResponsivenessNo issues