video-context-mcp-server 0.16.0-beta → 0.18.0-beta
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +24 -24
- package/dist/services/ffmpeg.d.ts +14 -4
- package/dist/services/ffmpeg.d.ts.map +1 -1
- package/dist/services/ffmpeg.js +62 -18
- package/dist/services/ffmpeg.js.map +1 -1
- package/dist/services/providerRouter.d.ts +9 -4
- package/dist/services/providerRouter.d.ts.map +1 -1
- package/dist/services/providerRouter.js +35 -11
- package/dist/services/providerRouter.js.map +1 -1
- package/dist/tools/extractFrames.js +1 -1
- package/dist/tools/extractFrames.js.map +1 -1
- package/dist/tools/searchTimestamp.js +2 -2
- package/dist/tools/searchTimestamp.js.map +1 -1
- package/dist/tools/summarizeVideo.d.ts.map +1 -1
- package/dist/tools/summarizeVideo.js +37 -3
- package/dist/tools/summarizeVideo.js.map +1 -1
- package/dist/utils/videoUtils.d.ts.map +1 -1
- package/dist/utils/videoUtils.js +20 -1
- package/dist/utils/videoUtils.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -19,12 +19,12 @@ Video Context MCP Server is a Model Context Protocol (MCP) server that gives MCP
|
|
|
19
19
|
|
|
20
20
|
The free tier covers all core functionality. A **pro license** unlocks four power features:
|
|
21
21
|
|
|
22
|
-
| Feature | Free Tier | Pro
|
|
23
|
-
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -------------- |
|
|
24
|
-
| **🔊 Audio-enhanced analysis** — Auto-transcribes a video's audio track and injects the transcript into AI prompts, giving `analyze_video` and `summarize_video` richer, more accurate results. Controlled by `AUDIO_ENHANCE_VIDEO_ANALYSIS`.<br />**Note**: The `transcribe_video` tool itself is available to all users — this feature specifically enhances the _analysis_ tools by injecting the transcript automatically. | Disabled | ✅ Enabled
|
|
25
|
-
| **🖼️ Extended frame extraction** — Raise the keyframe cap for long or complex videos beyond the free-tier limit. Controlled by `VIDEO_MCP_MAX_FRAMES`. | Capped at
|
|
26
|
-
| **🌐 Platform video downloads** — Analyze videos directly from YouTube, Vimeo, TikTok, and hundreds of other yt-dlp-supported platforms without downloading manually.<br />**Note**: Local files and direct
|
|
27
|
-
| **📺 Extended download resolution** — Raise the yt-dlp download resolution cap beyond 720p for higher-quality platform video downloads. Controlled by `YT_DLP_MAX_RESOLUTION`. | Capped at 720p | Uncapped
|
|
22
|
+
| Feature | Free Tier | Pro |
|
|
23
|
+
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -------------- | --------------------------------- |
|
|
24
|
+
| **🔊 Audio-enhanced analysis** — Auto-transcribes a video's audio track and injects the transcript into AI prompts, giving `analyze_video` and `summarize_video` richer, more accurate results. Controlled by `AUDIO_ENHANCE_VIDEO_ANALYSIS`.<br />**Note**: The `transcribe_video` tool itself is available to all users — this feature specifically enhances the _analysis_ tools by injecting the transcript automatically. | Disabled | ✅ Enabled |
|
|
25
|
+
| **🖼️ Extended frame extraction** — Raise the keyframe cap for long or complex videos beyond the free-tier limit. Controlled by `VIDEO_MCP_MAX_FRAMES`. | Capped at 50 | Default 100; set `0` for uncapped |
|
|
26
|
+
| **🌐 Platform video downloads** — Analyze videos directly from YouTube, Vimeo, TikTok, and hundreds of other yt-dlp-supported platforms without downloading manually.<br />**Note**: Local files and direct `http(s)://` video file URLs (e.g., `https://example.com/video.mp4`) work for all users — no license needed. This gate only applies to platform URLs handled by yt-dlp (e.g., YouTube, Vimeo, TikTok links). | YouTube only | All platforms |
|
|
27
|
+
| **📺 Extended download resolution** — Raise the yt-dlp download resolution cap beyond 720p for higher-quality platform video downloads. Controlled by `YT_DLP_MAX_RESOLUTION`. | Capped at 720p | Uncapped |
|
|
28
28
|
|
|
29
29
|
When a free-tier limit is reached, the tool falls back gracefully and includes a clear notice in the response — it **never hard-blocks**.
|
|
30
30
|
|
|
@@ -367,23 +367,23 @@ When a provider's API key is missing, the tool automatically falls back to the n
|
|
|
367
367
|
|
|
368
368
|
## Environment Variables
|
|
369
369
|
|
|
370
|
-
| Variable | Description | Required
|
|
371
|
-
| ------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
372
|
-
| `Z_AI_API_KEY` | Z.AI API key for GLM-4.6V | Optional (required if using GLM)
|
|
373
|
-
| `MOONSHOT_API_KEY` | Moonshot AI API key for Kimi K2.5 | Optional (required if using Kimi)
|
|
374
|
-
| `GEMINI_API_KEY` | Google API key for Gemini 3 Flash Preview | Optional (required if using Gemini)
|
|
375
|
-
| `VIDEO_MCP_DEFAULT_PROVIDER` | Default video backend (`gemini`, `glm`, `kimi`) | Optional (default: `glm`)
|
|
376
|
-
| `VIDEO_MCP_MAX_FRAMES` | Max frames for summarization (GLM/Kimi only).
|
|
377
|
-
| `DEEPGRAM_API_KEY` | Deepgram API key for `transcribe_video` | Optional (required if using Deepgram)
|
|
378
|
-
| `ASSEMBLYAI_API_KEY` | AssemblyAI API key for `transcribe_video` | Optional (required if using AssemblyAI)
|
|
379
|
-
| `GROQ_API_KEY` | Groq API key for Whisper transcription via `transcribe_video` | Optional (required if using Groq)
|
|
380
|
-
| `AUDIO_MCP_DEFAULT_PROVIDER` | Default audio provider; defaults to `deepgram`. Falls back in order: **deepgram → assemblyai → groq → gemini** when the selected provider's key is unavailable. A fallback notice is included in the response. | Optional (auto-selects from available keys)
|
|
381
|
-
| `AUDIO_ENHANCE_VIDEO_ANALYSIS` | Controls audio transcript injection into GLM/Kimi `analyze_video`/`summarize_video` prompts. **Requires a pro license.** `auto` (default) — transcribes only when the video has a detected audio track; `true` — always attempt transcription; `false` — disabled. A confidence label (`high`/`medium`/`low`) is included in the injected header so the model can weight the transcript appropriately. Gemini is always skipped (handles audio natively). | Optional (default: `auto`; pro only)
|
|
382
|
-
| `VIDEO_MCP_CACHE_TTL_MINUTES` | How long downloaded remote/platform videos are cached (in minutes) across separate tool calls. Cached files live in `os.tmpdir()/video-mcp-cache/` and survive per-call cleanup, avoiding redundant downloads on retries or follow-up questions. Set to `0` to disable caching entirely. | Optional (default: `30`)
|
|
383
|
-
| `YT_DLP_MAX_RESOLUTION` | Maximum video height in pixels when downloading via yt-dlp (YouTube, Vimeo, TikTok, etc.). Lower values reduce file size and download time. Free users capped at 720; pro users can set any value. | Optional (default: `720`)
|
|
384
|
-
| `YT_DLP_PATH` | Path to a custom yt-dlp binary. If unset, uses the binary bundled by `youtube-dl-exec` at install time. | Optional
|
|
385
|
-
| `YT_DLP_COOKIES_FILE` | Path to a Netscape-format cookies file for authenticated yt-dlp downloads (e.g. age-restricted or private YouTube videos). | Optional
|
|
386
|
-
| `VIDEO_MCP_LICENSE_KEY` | Pro license key. Unlocks audio-enhanced analysis, extended frame extraction (
|
|
370
|
+
| Variable | Description | Required |
|
|
371
|
+
| ------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------- |
|
|
372
|
+
| `Z_AI_API_KEY` | Z.AI API key for GLM-4.6V | Optional (required if using GLM) |
|
|
373
|
+
| `MOONSHOT_API_KEY` | Moonshot AI API key for Kimi K2.5 | Optional (required if using Kimi) |
|
|
374
|
+
| `GEMINI_API_KEY` | Google API key for Gemini 3 Flash Preview | Optional (required if using Gemini) |
|
|
375
|
+
| `VIDEO_MCP_DEFAULT_PROVIDER` | Default video backend (`gemini`, `glm`, `kimi`) | Optional (default: `glm`) |
|
|
376
|
+
| `VIDEO_MCP_MAX_FRAMES` | Max frames for summarization (GLM/Kimi only). **Pro**: unset/empty defaults to 100; set to `0` for uncapped (size guard still enforced); any value ≥ 5 is used as-is. **Free**: clamped to 5–50; `0` or unset defaults to 50. | Optional (default: 50 for free / 100 for pro; free users clamped to 5–50) |
|
|
377
|
+
| `DEEPGRAM_API_KEY` | Deepgram API key for `transcribe_video` | Optional (required if using Deepgram) |
|
|
378
|
+
| `ASSEMBLYAI_API_KEY` | AssemblyAI API key for `transcribe_video` | Optional (required if using AssemblyAI) |
|
|
379
|
+
| `GROQ_API_KEY` | Groq API key for Whisper transcription via `transcribe_video` | Optional (required if using Groq) |
|
|
380
|
+
| `AUDIO_MCP_DEFAULT_PROVIDER` | Default audio provider; defaults to `deepgram`. Falls back in order: **deepgram → assemblyai → groq → gemini** when the selected provider's key is unavailable. A fallback notice is included in the response. | Optional (auto-selects from available keys) |
|
|
381
|
+
| `AUDIO_ENHANCE_VIDEO_ANALYSIS` | Controls audio transcript injection into GLM/Kimi `analyze_video`/`summarize_video` prompts. **Requires a pro license.** `auto` (default) — transcribes only when the video has a detected audio track; `true` — always attempt transcription; `false` — disabled. A confidence label (`high`/`medium`/`low`) is included in the injected header so the model can weight the transcript appropriately. Gemini is always skipped (handles audio natively). | Optional (default: `auto`; pro only) |
|
|
382
|
+
| `VIDEO_MCP_CACHE_TTL_MINUTES` | How long downloaded remote/platform videos are cached (in minutes) across separate tool calls. Cached files live in `os.tmpdir()/video-mcp-cache/` and survive per-call cleanup, avoiding redundant downloads on retries or follow-up questions. Set to `0` to disable caching entirely. | Optional (default: `30`) |
|
|
383
|
+
| `YT_DLP_MAX_RESOLUTION` | Maximum video height in pixels when downloading via yt-dlp (YouTube, Vimeo, TikTok, etc.). Lower values reduce file size and download time. Free users capped at 720; pro users can set any value. | Optional (default: `720`) |
|
|
384
|
+
| `YT_DLP_PATH` | Path to a custom yt-dlp binary. If unset, uses the binary bundled by `youtube-dl-exec` at install time. | Optional |
|
|
385
|
+
| `YT_DLP_COOKIES_FILE` | Path to a Netscape-format cookies file for authenticated yt-dlp downloads (e.g. age-restricted or private YouTube videos). | Optional |
|
|
386
|
+
| `VIDEO_MCP_LICENSE_KEY` | Pro license key. Unlocks audio-enhanced analysis, extended frame extraction (uncapped), platform downloads beyond YouTube, and extended download resolution (above 720p). Valid for 1 year from date of issue. | Optional (free tier without it) |
|
|
387
387
|
|
|
388
388
|
> **Tip: install yt-dlp system-wide for faster startup.** The `youtube-dl-exec` package bundles a yt-dlp binary downloaded at `npm install` time, which adds ~30 MB to the install footprint. If you use platform video URLs regularly, it's lighter to install yt-dlp directly and point to it:
|
|
389
389
|
>
|
|
@@ -420,7 +420,7 @@ When a provider's API key is missing, the tool automatically falls back to the n
|
|
|
420
420
|
"ASSEMBLYAI_API_KEY": "your-assemblyai-key",
|
|
421
421
|
"GROQ_API_KEY": "your-groq-key",
|
|
422
422
|
"VIDEO_MCP_DEFAULT_PROVIDER": "glm",
|
|
423
|
-
"VIDEO_MCP_MAX_FRAMES": "
|
|
423
|
+
"VIDEO_MCP_MAX_FRAMES": "100",
|
|
424
424
|
"AUDIO_ENHANCE_VIDEO_ANALYSIS": "auto",
|
|
425
425
|
"VIDEO_MCP_CACHE_TTL_MINUTES": "30",
|
|
426
426
|
"YT_DLP_MAX_RESOLUTION": "720",
|
|
@@ -21,28 +21,38 @@ export declare function getVideoMetadata(videoPath: string): Promise<VideoMetada
|
|
|
21
21
|
* Extract a single frame at a specific timestamp
|
|
22
22
|
* @param videoPath - Path to the video file
|
|
23
23
|
* @param timestampSec - Timestamp in seconds
|
|
24
|
-
* @returns Buffer containing the
|
|
24
|
+
* @returns Buffer containing the JPEG frame
|
|
25
25
|
*/
|
|
26
26
|
export declare function extractFrameAt(videoPath: string, timestampSec: number): Promise<Buffer>;
|
|
27
27
|
/**
|
|
28
28
|
* Extract N evenly-spaced frames from a video
|
|
29
|
+
*
|
|
30
|
+
* Uses the ffmpeg `fps` filter with a single output instead of
|
|
31
|
+
* fluent-ffmpeg's `.screenshots()` API. `.screenshots()` creates one output
|
|
32
|
+
* entry per frame, producing a command line that grows linearly with the
|
|
33
|
+
* frame count. On Windows, where CreateProcessW imposes a ~32 KB limit on
|
|
34
|
+
* the combined command line + environment block, this easily exceeds the
|
|
35
|
+
* limit in VS Code's MCP server environment (which inherits a large set of
|
|
36
|
+
* environment variables). The fps-filter approach emits all frames through
|
|
37
|
+
* a single output, keeping the command line constant regardless of count.
|
|
38
|
+
*
|
|
29
39
|
* @param videoPath - Path to the video file
|
|
30
40
|
* @param count - Number of frames to extract
|
|
31
|
-
* @returns Array of
|
|
41
|
+
* @returns Array of JPEG buffers
|
|
32
42
|
*/
|
|
33
43
|
export declare function extractFramesEvenly(videoPath: string, count: number): Promise<Buffer[]>;
|
|
34
44
|
/**
|
|
35
45
|
* Extract frames at regular intervals
|
|
36
46
|
* @param videoPath - Path to the video file
|
|
37
47
|
* @param intervalSec - Interval in seconds between frames
|
|
38
|
-
* @returns Array of
|
|
48
|
+
* @returns Array of JPEG buffers
|
|
39
49
|
*/
|
|
40
50
|
export declare function extractFramesAtInterval(videoPath: string, intervalSec: number): Promise<Buffer[]>;
|
|
41
51
|
/**
|
|
42
52
|
* Extract frames at specific timestamps
|
|
43
53
|
* @param videoPath - Path to the video file
|
|
44
54
|
* @param timestamps - Array of timestamps in seconds
|
|
45
|
-
* @returns Array of
|
|
55
|
+
* @returns Array of JPEG buffers (same order as timestamps)
|
|
46
56
|
*/
|
|
47
57
|
export declare function extractFramesAtTimestamps(videoPath: string, timestamps: number[]): Promise<Buffer[]>;
|
|
48
58
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ffmpeg.d.ts","sourceRoot":"","sources":["../../src/services/ffmpeg.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ffmpeg.d.ts","sourceRoot":"","sources":["../../src/services/ffmpeg.ts"],"names":[],"mappings":"AA6CA;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,OAAO,CAAA;CAClB;AAED;;;;GAIG;AACH,wBAAsB,gBAAgB,CACpC,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,aAAa,CAAC,CA2BxB;AAED;;;;;GAKG;AACH,wBAAsB,cAAc,CAClC,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,MAAM,CAAC,CAqBjB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,mBAAmB,CACvC,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,MAAM,EAAE,CAAC,CAmCnB;AAED;;;;;GAKG;AACH,wBAAsB,uBAAuB,CAC3C,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,MAAM,EAAE,CAAC,CAyBnB;AAED;;;;;GAKG;AACH,wBAAsB,yBAAyB,CAC7C,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAAE,GACnB,OAAO,CAAC,MAAM,EAAE,CAAC,CA2BnB;AAED;;;;GAIG;AACH,wBAAsB,YAAY,CAChC,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,IAAI,CAAC,CAWf"}
|
package/dist/services/ffmpeg.js
CHANGED
|
@@ -5,9 +5,36 @@ import * as fs from 'fs/promises';
|
|
|
5
5
|
import * as path from 'path';
|
|
6
6
|
import { mkdtemp, rm } from 'fs/promises';
|
|
7
7
|
import { tmpdir } from 'os';
|
|
8
|
-
|
|
8
|
+
(() => {
|
|
9
|
+
const pathKey = process.platform === 'win32'
|
|
10
|
+
? Object.keys(process.env).find((k) => k.toUpperCase() === 'PATH') ||
|
|
11
|
+
'Path'
|
|
12
|
+
: 'PATH';
|
|
13
|
+
const raw = process.env[pathKey] || '';
|
|
14
|
+
const sep = process.platform === 'win32' ? ';' : ':';
|
|
15
|
+
const seen = new Set();
|
|
16
|
+
const deduped = raw.split(sep).filter((entry) => {
|
|
17
|
+
if (!entry)
|
|
18
|
+
return false;
|
|
19
|
+
const key = process.platform === 'win32' ? entry.toLowerCase() : entry;
|
|
20
|
+
if (seen.has(key))
|
|
21
|
+
return false;
|
|
22
|
+
seen.add(key);
|
|
23
|
+
return true;
|
|
24
|
+
});
|
|
25
|
+
process.env[pathKey] = deduped.join(sep);
|
|
26
|
+
})();
|
|
27
|
+
// Set paths to bundled ffmpeg and ffprobe binaries.
|
|
28
|
+
// Both the instance-level setters (used for actual processing) and the
|
|
29
|
+
// FFMPEG_PATH / FFPROBE_PATH env vars (used by fluent-ffmpeg's internal
|
|
30
|
+
// capabilities-check code path, e.g. getAvailableEncoders triggered by
|
|
31
|
+
// .screenshots()) must point to the same bundled binary. Without setting
|
|
32
|
+
// the env vars, the capabilities check falls back to which('ffmpeg') which
|
|
33
|
+
// can fail with ENAMETOOLONG in environments with a very long PATH.
|
|
9
34
|
ffmpeg.setFfmpegPath(ffmpegInstaller.path);
|
|
10
35
|
ffmpeg.setFfprobePath(ffprobeInstaller.path);
|
|
36
|
+
process.env.FFMPEG_PATH = ffmpegInstaller.path;
|
|
37
|
+
process.env.FFPROBE_PATH = ffprobeInstaller.path;
|
|
11
38
|
/**
|
|
12
39
|
* Get video metadata using ffprobe
|
|
13
40
|
* @param videoPath - Path to the video file
|
|
@@ -42,16 +69,17 @@ export async function getVideoMetadata(videoPath) {
|
|
|
42
69
|
* Extract a single frame at a specific timestamp
|
|
43
70
|
* @param videoPath - Path to the video file
|
|
44
71
|
* @param timestampSec - Timestamp in seconds
|
|
45
|
-
* @returns Buffer containing the
|
|
72
|
+
* @returns Buffer containing the JPEG frame
|
|
46
73
|
*/
|
|
47
74
|
export async function extractFrameAt(videoPath, timestampSec) {
|
|
48
75
|
const tempDir = await mkdtemp(path.join(tmpdir(), 'video-mcp-'));
|
|
49
|
-
const outputPath = path.join(tempDir, 'frame.
|
|
76
|
+
const outputPath = path.join(tempDir, 'frame.jpg');
|
|
50
77
|
try {
|
|
51
78
|
await new Promise((resolve, reject) => {
|
|
52
79
|
ffmpeg(videoPath)
|
|
53
80
|
.seekInput(timestampSec)
|
|
54
81
|
.frames(1)
|
|
82
|
+
.outputOptions(['-q:v 2'])
|
|
55
83
|
.output(outputPath)
|
|
56
84
|
.on('end', () => resolve())
|
|
57
85
|
.on('error', reject)
|
|
@@ -66,27 +94,42 @@ export async function extractFrameAt(videoPath, timestampSec) {
|
|
|
66
94
|
}
|
|
67
95
|
/**
|
|
68
96
|
* Extract N evenly-spaced frames from a video
|
|
97
|
+
*
|
|
98
|
+
* Uses the ffmpeg `fps` filter with a single output instead of
|
|
99
|
+
* fluent-ffmpeg's `.screenshots()` API. `.screenshots()` creates one output
|
|
100
|
+
* entry per frame, producing a command line that grows linearly with the
|
|
101
|
+
* frame count. On Windows, where CreateProcessW imposes a ~32 KB limit on
|
|
102
|
+
* the combined command line + environment block, this easily exceeds the
|
|
103
|
+
* limit in VS Code's MCP server environment (which inherits a large set of
|
|
104
|
+
* environment variables). The fps-filter approach emits all frames through
|
|
105
|
+
* a single output, keeping the command line constant regardless of count.
|
|
106
|
+
*
|
|
69
107
|
* @param videoPath - Path to the video file
|
|
70
108
|
* @param count - Number of frames to extract
|
|
71
|
-
* @returns Array of
|
|
109
|
+
* @returns Array of JPEG buffers
|
|
72
110
|
*/
|
|
73
111
|
export async function extractFramesEvenly(videoPath, count) {
|
|
112
|
+
// Need duration to calculate the fps rate
|
|
113
|
+
const meta = await getVideoMetadata(videoPath);
|
|
114
|
+
const duration = meta.duration;
|
|
115
|
+
if (duration <= 0 || count <= 0)
|
|
116
|
+
return [];
|
|
74
117
|
const tempDir = await mkdtemp(path.join(tmpdir(), 'video-mcp-'));
|
|
75
118
|
try {
|
|
119
|
+
// fps = count / duration → e.g. 40 frames over 514 s ≈ 0.078 fps
|
|
120
|
+
// This naturally produces ~count frames evenly spaced across the video.
|
|
121
|
+
const fpsRate = count / duration;
|
|
76
122
|
await new Promise((resolve, reject) => {
|
|
77
123
|
ffmpeg(videoPath)
|
|
78
|
-
.
|
|
79
|
-
|
|
80
|
-
folder: tempDir,
|
|
81
|
-
filename: 'frame-%i.png',
|
|
82
|
-
size: '1280x?', // Resize width to 1280, maintain aspect ratio
|
|
83
|
-
})
|
|
124
|
+
.outputOptions([`-vf fps=${fpsRate},scale=1280:-2`, '-q:v 2'])
|
|
125
|
+
.output(path.join(tempDir, 'frame-%04d.jpg'))
|
|
84
126
|
.on('end', () => resolve())
|
|
85
|
-
.on('error', reject)
|
|
127
|
+
.on('error', reject)
|
|
128
|
+
.run();
|
|
86
129
|
});
|
|
87
130
|
// Read all generated frame files
|
|
88
131
|
const framePaths = (await fs.readdir(tempDir))
|
|
89
|
-
.filter((f) => f.endsWith('.
|
|
132
|
+
.filter((f) => f.endsWith('.jpg'))
|
|
90
133
|
.sort();
|
|
91
134
|
const frames = await Promise.all(framePaths.map((f) => fs.readFile(path.join(tempDir, f))));
|
|
92
135
|
return frames;
|
|
@@ -99,21 +142,21 @@ export async function extractFramesEvenly(videoPath, count) {
|
|
|
99
142
|
* Extract frames at regular intervals
|
|
100
143
|
* @param videoPath - Path to the video file
|
|
101
144
|
* @param intervalSec - Interval in seconds between frames
|
|
102
|
-
* @returns Array of
|
|
145
|
+
* @returns Array of JPEG buffers
|
|
103
146
|
*/
|
|
104
147
|
export async function extractFramesAtInterval(videoPath, intervalSec) {
|
|
105
148
|
const tempDir = await mkdtemp(path.join(tmpdir(), 'video-mcp-'));
|
|
106
149
|
try {
|
|
107
150
|
await new Promise((resolve, reject) => {
|
|
108
151
|
ffmpeg(videoPath)
|
|
109
|
-
.outputOptions([`-vf fps=1/${intervalSec}
|
|
110
|
-
.output(path.join(tempDir, 'frame-%04d.
|
|
152
|
+
.outputOptions([`-vf fps=1/${intervalSec}`, '-q:v 2'])
|
|
153
|
+
.output(path.join(tempDir, 'frame-%04d.jpg'))
|
|
111
154
|
.on('end', () => resolve())
|
|
112
155
|
.on('error', reject)
|
|
113
156
|
.run();
|
|
114
157
|
});
|
|
115
158
|
const framePaths = (await fs.readdir(tempDir))
|
|
116
|
-
.filter((f) => f.endsWith('.
|
|
159
|
+
.filter((f) => f.endsWith('.jpg'))
|
|
117
160
|
.sort();
|
|
118
161
|
const frames = await Promise.all(framePaths.map((f) => fs.readFile(path.join(tempDir, f))));
|
|
119
162
|
return frames;
|
|
@@ -126,19 +169,20 @@ export async function extractFramesAtInterval(videoPath, intervalSec) {
|
|
|
126
169
|
* Extract frames at specific timestamps
|
|
127
170
|
* @param videoPath - Path to the video file
|
|
128
171
|
* @param timestamps - Array of timestamps in seconds
|
|
129
|
-
* @returns Array of
|
|
172
|
+
* @returns Array of JPEG buffers (same order as timestamps)
|
|
130
173
|
*/
|
|
131
174
|
export async function extractFramesAtTimestamps(videoPath, timestamps) {
|
|
132
175
|
const frames = [];
|
|
133
176
|
const tempDir = await mkdtemp(path.join(tmpdir(), 'video-mcp-'));
|
|
134
177
|
try {
|
|
135
178
|
for (let i = 0; i < timestamps.length; i++) {
|
|
136
|
-
const outputPath = path.join(tempDir, `frame-${i}.
|
|
179
|
+
const outputPath = path.join(tempDir, `frame-${i}.jpg`);
|
|
137
180
|
const timestamp = timestamps[i];
|
|
138
181
|
await new Promise((resolve, reject) => {
|
|
139
182
|
ffmpeg(videoPath)
|
|
140
183
|
.seekInput(timestamp)
|
|
141
184
|
.frames(1)
|
|
185
|
+
.outputOptions(['-q:v 2'])
|
|
142
186
|
.output(outputPath)
|
|
143
187
|
.on('end', () => resolve())
|
|
144
188
|
.on('error', reject)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ffmpeg.js","sourceRoot":"","sources":["../../src/services/ffmpeg.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,eAAe,CAAA;AAClC,OAAO,eAAe,MAAM,0BAA0B,CAAA;AACtD,OAAO,gBAAgB,MAAM,4BAA4B,CAAA;AACzD,OAAO,KAAK,EAAE,MAAM,aAAa,CAAA;AACjC,OAAO,KAAK,IAAI,MAAM,MAAM,CAAA;AAC5B,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAA;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,IAAI,CAAA;
|
|
1
|
+
{"version":3,"file":"ffmpeg.js","sourceRoot":"","sources":["../../src/services/ffmpeg.ts"],"names":[],"mappings":"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"}
|
|
@@ -49,13 +49,18 @@ export declare function getRuntimeFallbackChain(provider: VideoProvider, hasKimi
|
|
|
49
49
|
/**
|
|
50
50
|
* Get the maximum number of frames to extract for summarization.
|
|
51
51
|
*
|
|
52
|
-
*
|
|
53
|
-
*
|
|
52
|
+
* Pro users: unset or empty → default 100. `VIDEO_MCP_MAX_FRAMES=0` (or any
|
|
53
|
+
* non-positive value) → uncapped (`Infinity`; size guard still enforced).
|
|
54
|
+
* Any positive value ≥ 5 is used as-is.
|
|
55
|
+
*
|
|
56
|
+
* Free users: `0`, unset, or empty falls back to the default of 50.
|
|
57
|
+
* Explicit values are clamped to the 5–50 range.
|
|
54
58
|
*/
|
|
55
59
|
export declare function getMaxFrames(): number;
|
|
56
60
|
/**
|
|
57
|
-
* Returns true when the user
|
|
58
|
-
*
|
|
61
|
+
* Returns true when the user is not on pro and their `VIDEO_MCP_MAX_FRAMES`
|
|
62
|
+
* setting was silently capped (set to a value outside the free 5–50 range
|
|
63
|
+
* or set to 0 which is not allowed on free). Used by tool handlers to
|
|
59
64
|
* append a pro notice to the response.
|
|
60
65
|
*/
|
|
61
66
|
export declare function wasFramesCapped(): boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"providerRouter.d.ts","sourceRoot":"","sources":["../../src/services/providerRouter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,MAAM,MAAM,aAAa,GAAG,KAAK,GAAG,MAAM,GAAG,QAAQ,CAAA;AAErD;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,aAAa,EACvB,UAAU,EAAE,OAAO,EACnB,SAAS,EAAE,OAAO,EAClB,YAAY,GAAE,OAAe,GAC5B,aAAa,CAiBf;AAED;;;;GAIG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,EAAE,aAAa,CAAA;IACvB,YAAY,CAAC,EAAE,aAAa,CAAA;CAC7B,CAAA;AAED;;;;;;GAMG;AACH,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,aAAa,EACvB,UAAU,EAAE,OAAO,EACnB,SAAS,EAAE,OAAO,EAClB,YAAY,GAAE,OAAe,GAC5B,cAAc,CAgBhB;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,aAAa,CAUlD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,aAAa,EACvB,UAAU,EAAE,OAAO,EACnB,SAAS,EAAE,OAAO,EAClB,YAAY,GAAE,OAAe,GAC5B,aAAa,EAAE,CAejB;
|
|
1
|
+
{"version":3,"file":"providerRouter.d.ts","sourceRoot":"","sources":["../../src/services/providerRouter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,MAAM,MAAM,aAAa,GAAG,KAAK,GAAG,MAAM,GAAG,QAAQ,CAAA;AAErD;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,aAAa,EACvB,UAAU,EAAE,OAAO,EACnB,SAAS,EAAE,OAAO,EAClB,YAAY,GAAE,OAAe,GAC5B,aAAa,CAiBf;AAED;;;;GAIG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,EAAE,aAAa,CAAA;IACvB,YAAY,CAAC,EAAE,aAAa,CAAA;CAC7B,CAAA;AAED;;;;;;GAMG;AACH,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,aAAa,EACvB,UAAU,EAAE,OAAO,EACnB,SAAS,EAAE,OAAO,EAClB,YAAY,GAAE,OAAe,GAC5B,cAAc,CAgBhB;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,aAAa,CAUlD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,aAAa,EACvB,UAAU,EAAE,OAAO,EACnB,SAAS,EAAE,OAAO,EAClB,YAAY,GAAE,OAAe,GAC5B,aAAa,EAAE,CAejB;AAQD;;;;;;;;;GASG;AACH,wBAAgB,YAAY,IAAI,MAAM,CAerC;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,IAAI,OAAO,CAQzC"}
|
|
@@ -80,28 +80,52 @@ export function getRuntimeFallbackChain(provider, hasKimiKey, hasGLMKey, hasGemi
|
|
|
80
80
|
};
|
|
81
81
|
return candidates.filter((p) => keyMap[p]);
|
|
82
82
|
}
|
|
83
|
-
/** Free-tier cap for max frames.
|
|
84
|
-
const FREE_MAX_FRAMES =
|
|
83
|
+
/** Free-tier cap for max frames. Free users stay within 5–50. */
|
|
84
|
+
const FREE_MAX_FRAMES = 50;
|
|
85
|
+
/** Pro-tier default frames when VIDEO_MCP_MAX_FRAMES is unset. Set to 0 for uncapped. */
|
|
86
|
+
const PRO_DEFAULT_FRAMES = 100;
|
|
85
87
|
/**
|
|
86
88
|
* Get the maximum number of frames to extract for summarization.
|
|
87
89
|
*
|
|
88
|
-
*
|
|
89
|
-
*
|
|
90
|
+
* Pro users: unset or empty → default 100. `VIDEO_MCP_MAX_FRAMES=0` (or any
|
|
91
|
+
* non-positive value) → uncapped (`Infinity`; size guard still enforced).
|
|
92
|
+
* Any positive value ≥ 5 is used as-is.
|
|
93
|
+
*
|
|
94
|
+
* Free users: `0`, unset, or empty falls back to the default of 50.
|
|
95
|
+
* Explicit values are clamped to the 5–50 range.
|
|
90
96
|
*/
|
|
91
97
|
export function getMaxFrames() {
|
|
92
|
-
const
|
|
93
|
-
const
|
|
94
|
-
|
|
98
|
+
const raw = process.env.VIDEO_MCP_MAX_FRAMES ?? '';
|
|
99
|
+
const trimmed = raw.trim();
|
|
100
|
+
const envValue = parseInt(raw, 10);
|
|
101
|
+
const hasValue = trimmed !== '' && !isNaN(envValue);
|
|
102
|
+
if (isPro()) {
|
|
103
|
+
if (!hasValue)
|
|
104
|
+
return PRO_DEFAULT_FRAMES; // unset/empty → default 100
|
|
105
|
+
if (envValue <= 0)
|
|
106
|
+
return Infinity; // 0 or negative → uncapped
|
|
107
|
+
return Math.max(5, envValue); // positive → use it (min 5)
|
|
108
|
+
}
|
|
109
|
+
// Free tier: 0 / unset / empty → default 50, otherwise clamp 5–50
|
|
110
|
+
if (!hasValue || envValue <= 0)
|
|
111
|
+
return FREE_MAX_FRAMES;
|
|
112
|
+
return Math.max(5, Math.min(FREE_MAX_FRAMES, envValue));
|
|
95
113
|
}
|
|
96
114
|
/**
|
|
97
|
-
* Returns true when the user
|
|
98
|
-
*
|
|
115
|
+
* Returns true when the user is not on pro and their `VIDEO_MCP_MAX_FRAMES`
|
|
116
|
+
* setting was silently capped (set to a value outside the free 5–50 range
|
|
117
|
+
* or set to 0 which is not allowed on free). Used by tool handlers to
|
|
99
118
|
* append a pro notice to the response.
|
|
100
119
|
*/
|
|
101
120
|
export function wasFramesCapped() {
|
|
102
121
|
if (isPro())
|
|
103
122
|
return false;
|
|
104
|
-
const
|
|
105
|
-
|
|
123
|
+
const raw = process.env.VIDEO_MCP_MAX_FRAMES ?? '';
|
|
124
|
+
const envValue = parseInt(raw, 10);
|
|
125
|
+
const hasValue = raw.trim() !== '' && !isNaN(envValue);
|
|
126
|
+
// Capped if they set 0, a negative, or a value above the free max
|
|
127
|
+
if (!hasValue)
|
|
128
|
+
return false;
|
|
129
|
+
return envValue <= 0 || envValue > FREE_MAX_FRAMES;
|
|
106
130
|
}
|
|
107
131
|
//# sourceMappingURL=providerRouter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"providerRouter.js","sourceRoot":"","sources":["../../src/services/providerRouter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAA;AAI3C;;;;;;;GAOG;AACH,MAAM,UAAU,cAAc,CAC5B,QAAuB,EACvB,UAAmB,EACnB,SAAkB,EAClB,eAAwB,KAAK;IAE7B,IAAI,QAAQ,KAAK,QAAQ,IAAI,CAAC,YAAY,EAAE,CAAC;QAC3C,MAAM,IAAI,KAAK,CACb,+DAA+D,CAChE,CAAA;IACH,CAAC;IACD,IAAI,QAAQ,KAAK,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QACvC,MAAM,IAAI,KAAK,CACb,oEAAoE,CACrE,CAAA;IACH,CAAC;IACD,IAAI,QAAQ,KAAK,KAAK,IAAI,CAAC,SAAS,EAAE,CAAC;QACrC,MAAM,IAAI,KAAK,CACb,+DAA+D,CAChE,CAAA;IACH,CAAC;IACD,OAAO,QAAQ,CAAA;AACjB,CAAC;AAYD;;;;;;GAMG;AACH,MAAM,UAAU,2BAA2B,CACzC,QAAuB,EACvB,UAAmB,EACnB,SAAkB,EAClB,eAAwB,KAAK;IAE7B,IAAI,QAAQ,KAAK,KAAK,IAAI,CAAC,SAAS,EAAE,CAAC;QACrC,IAAI,UAAU;YAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,CAAA;QAChE,IAAI,YAAY;YAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,KAAK,EAAE,CAAA;IACtE,CAAC;IACD,IAAI,QAAQ,KAAK,MAAM,IAAI,CAAC,UAAU,IAAI,YAAY,EAAE,CAAC;QACvD,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,CAAA;IACrD,CAAC;IAED,MAAM,SAAS,GAAG,cAAc,CAC9B,QAAQ,EACR,UAAU,EACV,SAAS,EACT,YAAY,CACb,CAAA;IACD,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAA;AAChC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB;IAChC,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAA;IAC1D,IACE,WAAW,KAAK,KAAK;QACrB,WAAW,KAAK,MAAM;QACtB,WAAW,KAAK,QAAQ,EACxB,CAAC;QACD,OAAO,WAAW,CAAA;IACpB,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,uBAAuB,CACrC,QAAuB,EACvB,UAAmB,EACnB,SAAkB,EAClB,eAAwB,KAAK;IAE7B,MAAM,UAAU,GACd,QAAQ,KAAK,KAAK;QAChB,CAAC,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC;QAC3B,CAAC,CAAC,QAAQ,KAAK,MAAM;YACnB,CAAC,CAAC,CAAC,MAAM,EAAE,QAAQ,CAAC;YACpB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAA;IAElB,MAAM,MAAM,GAAmC;QAC7C,GAAG,EAAE,SAAS;QACd,IAAI,EAAE,UAAU;QAChB,MAAM,EAAE,YAAY;KACrB,CAAA;IAED,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;AAC5C,CAAC;AAED,
|
|
1
|
+
{"version":3,"file":"providerRouter.js","sourceRoot":"","sources":["../../src/services/providerRouter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extractFrames.js","sourceRoot":"","sources":["../../src/tools/extractFrames.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"extractFrames.js","sourceRoot":"","sources":["../../src/tools/extractFrames.ts"],"names":[],"mappings":"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"}
|
|
@@ -101,7 +101,7 @@ export const searchTimestampTool = async (params) => {
|
|
|
101
101
|
}
|
|
102
102
|
extractedFrames = rawFrames.map((buf) => ({
|
|
103
103
|
data: bufferToBase64String(buf),
|
|
104
|
-
mimeType: 'image/
|
|
104
|
+
mimeType: 'image/jpeg',
|
|
105
105
|
}));
|
|
106
106
|
}
|
|
107
107
|
const searchPrompt = [
|
|
@@ -160,7 +160,7 @@ export const searchTimestampTool = async (params) => {
|
|
|
160
160
|
content.push({
|
|
161
161
|
type: 'image',
|
|
162
162
|
data: responseImage,
|
|
163
|
-
mimeType: 'image/
|
|
163
|
+
mimeType: 'image/jpeg',
|
|
164
164
|
});
|
|
165
165
|
}
|
|
166
166
|
content.push({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"searchTimestamp.js","sourceRoot":"","sources":["../../src/tools/searchTimestamp.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"searchTimestamp.js","sourceRoot":"","sources":["../../src/tools/searchTimestamp.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"summarizeVideo.d.ts","sourceRoot":"","sources":["../../src/tools/summarizeVideo.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"summarizeVideo.d.ts","sourceRoot":"","sources":["../../src/tools/summarizeVideo.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAgEH,eAAO,MAAM,kBAAkB,GAAU,QAAQ,GAAG;;;;;;;;;;;;EA4QnD,CAAA"}
|
|
@@ -26,6 +26,20 @@ function buildSummaryPrompt() {
|
|
|
26
26
|
'4) Notable details',
|
|
27
27
|
].join('\n');
|
|
28
28
|
}
|
|
29
|
+
/**
|
|
30
|
+
* Trim trailing frames until the total base64 payload fits within maxBytes.
|
|
31
|
+
* Always keeps at least 1 frame. Returns the number of frames removed.
|
|
32
|
+
*/
|
|
33
|
+
function trimFramesToFitSize(frames, maxBytes) {
|
|
34
|
+
let totalBytes = frames.reduce((sum, f) => sum + f.data.length, 0);
|
|
35
|
+
let removed = 0;
|
|
36
|
+
while (frames.length > 1 && totalBytes > maxBytes) {
|
|
37
|
+
const dropped = frames.pop();
|
|
38
|
+
totalBytes -= dropped.data.length;
|
|
39
|
+
removed++;
|
|
40
|
+
}
|
|
41
|
+
return removed;
|
|
42
|
+
}
|
|
29
43
|
export const summarizeVideoTool = async (params) => {
|
|
30
44
|
let tempDir = null;
|
|
31
45
|
try {
|
|
@@ -67,6 +81,7 @@ export const summarizeVideoTool = async (params) => {
|
|
|
67
81
|
let enhancedPrompt = null; // lazy: first non-Gemini attempt
|
|
68
82
|
let isLongVideo = null; // lazy: once localPath is available
|
|
69
83
|
let longVideoFrames = null; // lazy
|
|
84
|
+
let sizeTrimmedCount = 0; // frames dropped by size guard
|
|
70
85
|
let summary;
|
|
71
86
|
let selectedProvider = firstProvider;
|
|
72
87
|
let lastError = '';
|
|
@@ -127,12 +142,28 @@ export const summarizeVideoTool = async (params) => {
|
|
|
127
142
|
else if (isLongVideo) {
|
|
128
143
|
// Long video — extract frames once and reuse across retries
|
|
129
144
|
if (!longVideoFrames) {
|
|
145
|
+
// Provider-aware size limits applied to the total base64 frame payload.
|
|
146
|
+
// The limit is intentionally conservative relative to the raw API limit
|
|
147
|
+
// to leave headroom for JSON structure overhead (content array, per-frame
|
|
148
|
+
// field names, data URI prefix, prompt text, model name, etc.).
|
|
149
|
+
// GLM practical limit: ~12 MB of frame data (~20 MB raw API limit minus overhead).
|
|
150
|
+
// Kimi conservative limit: ~80 MB.
|
|
151
|
+
const sizeLimitBytes = p === 'glm' ? 12 * 1024 * 1024 : 80 * 1024 * 1024;
|
|
152
|
+
// Cap extraction count to prevent OOM: extract at most ~1.5× what the
|
|
153
|
+
// provider can accept. Assumes ~100 KB per base64-encoded JPEG frame.
|
|
154
|
+
const extractionCap = Math.ceil((sizeLimitBytes / (100 * 1024)) * 1.5);
|
|
155
|
+
const framesToExtract = Math.min(getMaxFrames(), extractionCap);
|
|
130
156
|
await logProgress('Extracting keyframes...');
|
|
131
|
-
const rawFrames = await extractFramesEvenly(localPath,
|
|
157
|
+
const rawFrames = await extractFramesEvenly(localPath, framesToExtract);
|
|
132
158
|
longVideoFrames = rawFrames.map((buf) => ({
|
|
133
159
|
data: bufferToBase64String(buf),
|
|
134
|
-
mimeType: 'image/
|
|
160
|
+
mimeType: 'image/jpeg',
|
|
135
161
|
}));
|
|
162
|
+
// Apply size guard: trim trailing frames if payload still exceeds limit.
|
|
163
|
+
sizeTrimmedCount = trimFramesToFitSize(longVideoFrames, sizeLimitBytes);
|
|
164
|
+
if (sizeTrimmedCount > 0) {
|
|
165
|
+
await logProgress(`Size guard: dropped ${sizeTrimmedCount} frame(s) to fit within provider limit`);
|
|
166
|
+
}
|
|
136
167
|
}
|
|
137
168
|
await logProgress('Summarizing video...');
|
|
138
169
|
if (p === 'glm') {
|
|
@@ -189,7 +220,10 @@ export const summarizeVideoTool = async (params) => {
|
|
|
189
220
|
notices.push(proNotice('Audio-enhanced analysis'));
|
|
190
221
|
}
|
|
191
222
|
if (wasFramesCapped()) {
|
|
192
|
-
notices.push(proNotice('Extended frame extraction (
|
|
223
|
+
notices.push(proNotice('Extended frame extraction (uncapped for pro users)'));
|
|
224
|
+
}
|
|
225
|
+
if (sizeTrimmedCount > 0) {
|
|
226
|
+
notices.push(`Note: ${sizeTrimmedCount} frame(s) were dropped to keep the payload within the provider size limit.`);
|
|
193
227
|
}
|
|
194
228
|
if (wasResolutionCapped()) {
|
|
195
229
|
notices.push(proNotice('Extended download resolution (above 720p)'));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"summarizeVideo.js","sourceRoot":"","sources":["../../src/tools/summarizeVideo.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"summarizeVideo.js","sourceRoot":"","sources":["../../src/tools/summarizeVideo.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"videoUtils.d.ts","sourceRoot":"","sources":["../../src/utils/videoUtils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAwBH;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAElD;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAa5D;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,mBAAmB,CACvC,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"videoUtils.d.ts","sourceRoot":"","sources":["../../src/utils/videoUtils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAwBH;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAElD;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAa5D;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,mBAAmB,CACvC,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,MAAM,CAAC,CA2CjB;AA+BD;;GAEG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAUjD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAUlD;AAKD;;;GAGG;AACH,wBAAgB,yBAAyB,IAAI,IAAI,CAEhD;AAED;;GAEG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,OAAO,CAAC,CAgBzD;AAiCD;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,MAAM,CAAC,CAsFjB;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,IAAI,OAAO,CAI7C;AAMD,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,QAAQ,GAAG,UAAU,CAAA;AAEzD,MAAM,WAAW,kBAAkB;IACjC,YAAY,EAAE,MAAM,CAAA;IACpB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,MAAM,EAAE,WAAW,CAAA;CACpB;AAED;;;;;;;;GAQG;AACH,wBAAsB,iBAAiB,CACrC,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,kBAAkB,CAAC,CAkC7B"}
|
package/dist/utils/videoUtils.js
CHANGED
|
@@ -56,6 +56,22 @@ export async function downloadVideoToTemp(url, tempDir) {
|
|
|
56
56
|
await logProgress(`Cache hit: reusing ${path.basename(cached)}`);
|
|
57
57
|
return cached;
|
|
58
58
|
}
|
|
59
|
+
// ── HTML detection: fall back to yt-dlp for non-video responses ───────────
|
|
60
|
+
// Some yt-dlp-supported sites not listed in PLATFORM_DOMAINS serve HTML
|
|
61
|
+
// pages instead of raw video bytes. Detect this early via a HEAD request
|
|
62
|
+
// and reroute through yt-dlp when available.
|
|
63
|
+
try {
|
|
64
|
+
const headRes = await fetch(url, { method: 'HEAD' });
|
|
65
|
+
const ct = headRes.headers.get('content-type') ?? '';
|
|
66
|
+
if ((ct.includes('text/html') || ct.includes('text/xml')) &&
|
|
67
|
+
(await isYtDlpAvailable())) {
|
|
68
|
+
await logProgress('URL returned HTML instead of video — falling back to yt-dlp...');
|
|
69
|
+
return downloadWithYtDlp(url, tempDir);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
catch {
|
|
73
|
+
// HEAD not supported or network error — fall through to direct fetch
|
|
74
|
+
}
|
|
59
75
|
// ── Download ───────────────────────────────────────────────────────────────
|
|
60
76
|
const outputDir = isCachingEnabled() ? await ensureCacheDir() : tempDir;
|
|
61
77
|
const outputPath = path.join(outputDir, generateTempFilename('.mp4'));
|
|
@@ -91,6 +107,7 @@ const PLATFORM_DOMAINS = [
|
|
|
91
107
|
'fb.watch',
|
|
92
108
|
'twitch.tv',
|
|
93
109
|
'bilibili.com',
|
|
110
|
+
'linkedin.com',
|
|
94
111
|
];
|
|
95
112
|
/** Domains available on the free tier (YouTube only). */
|
|
96
113
|
const FREE_TIER_DOMAINS = ['youtube.com', 'youtu.be'];
|
|
@@ -206,7 +223,9 @@ export async function downloadWithYtDlp(url, tempDir) {
|
|
|
206
223
|
const maxRes = isPro() ? envMaxRes : Math.min(envMaxRes, FREE_MAX_RESOLUTION);
|
|
207
224
|
const format = `bestvideo[height<=${maxRes}][ext=mp4]+bestaudio[ext=m4a]` +
|
|
208
225
|
`/best[height<=${maxRes}][ext=mp4]` +
|
|
209
|
-
`/best[height<=${maxRes}]
|
|
226
|
+
`/best[height<=${maxRes}]` +
|
|
227
|
+
`/best[ext=mp4]` +
|
|
228
|
+
`/best`;
|
|
210
229
|
const outputDir = isCachingEnabled() ? await ensureCacheDir() : tempDir;
|
|
211
230
|
const filePrefix = `yt-${Date.now()}`;
|
|
212
231
|
const outputTemplate = path.join(outputDir, `${filePrefix}.%(ext)s`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"videoUtils.js","sourceRoot":"","sources":["../../src/utils/videoUtils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,IAAI,CAAA;AACtC,OAAO,KAAK,EAAE,MAAM,aAAa,CAAA;AACjC,OAAO,KAAK,IAAI,MAAM,MAAM,CAAA;AAC5B,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAA;AACnC,OAAO,EACL,SAAS,IAAI,aAAa,EAC1B,MAAM,IAAI,WAAW,GACtB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAA;AACpE,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AACzC,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,iBAAiB,EACjB,sBAAsB,GACvB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAE/C,wEAAwE;AACxE,MAAM,mBAAmB,GAAG,GAAG,CAAA;AAE/B;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,KAAa;IACvC,OAAO,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;AACpC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,SAAiB;IAClD,IAAI,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QACpC,wEAAwE;QACxE,wDAAwD;QACxD,uEAAuE;QACvE,iEAAiE;QACjE,IAAI,CAAC;YACH,OAAO,aAAa,CAAC,SAAS,CAAC,CAAA;QACjC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,kBAAkB,CAAC,SAAS,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC,CAAA;QACjE,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,GAAW,EACX,OAAe;IAEf,8EAA8E;IAC9E,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,GAAG,CAAC,CAAA;IAC3C,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,WAAW,CAAC,sBAAsB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;QAChE,OAAO,MAAM,CAAA;IACf,CAAC;IAED,8EAA8E;IAC9E,MAAM,SAAS,GAAG,gBAAgB,EAAE,CAAC,CAAC,CAAC,MAAM,cAAc,EAAE,CAAC,CAAC,CAAC,OAAO,CAAA;IACvE,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAA;IAErE,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAA;IACjC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,6BAA6B,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAA;IACrE,CAAC;IACD,MAAM,QAAQ,CAAC,QAAQ,CAAC,IAAW,EAAE,iBAAiB,CAAC,UAAU,CAAC,CAAC,CAAA;IAEnE,IAAI,gBAAgB,EAAE,EAAE,CAAC;QACvB,sBAAsB,CAAC,GAAG,EAAE,UAAU,CAAC,CAAA;IACzC,CAAC;IAED,OAAO,UAAU,CAAA;AACnB,CAAC;AAED,8EAA8E;AAC9E,oCAAoC;AACpC,8EAA8E;AAE9E;;;;GAIG;AACH,MAAM,gBAAgB,GAAG;IACvB,aAAa;IACb,UAAU;IACV,WAAW;IACX,iBAAiB;IACjB,QAAQ;IACR,YAAY;IACZ,aAAa;IACb,OAAO;IACP,eAAe;IACf,cAAc;IACd,UAAU;IACV,WAAW;IACX,cAAc;CACf,CAAA;AAED,yDAAyD;AACzD,MAAM,iBAAiB,GAAG,CAAC,aAAa,EAAE,UAAU,CAAC,CAAA;AAErD;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,GAAW;IACtC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,KAAK,CAAA;IAC5C,IAAI,CAAC;QACH,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAA;QACjC,OAAO,iBAAiB,CAAC,IAAI,CAC3B,CAAC,MAAM,EAAE,EAAE,CAAC,QAAQ,KAAK,MAAM,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,MAAM,EAAE,CAAC,CACnE,CAAA;IACH,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,GAAW;IACvC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,KAAK,CAAA;IAC5C,IAAI,CAAC;QACH,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAA;QACjC,OAAO,gBAAgB,CAAC,IAAI,CAC1B,CAAC,MAAM,EAAE,EAAE,CAAC,QAAQ,KAAK,MAAM,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,MAAM,EAAE,CAAC,CACnE,CAAA;IACH,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC;AAED,sDAAsD;AACtD,IAAI,mBAAmB,GAAmB,IAAI,CAAA;AAE9C;;;GAGG;AACH,MAAM,UAAU,yBAAyB;IACvC,mBAAmB,GAAG,IAAI,CAAA;AAC5B,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB;IACpC,IAAI,mBAAmB,KAAK,IAAI;QAAE,OAAO,mBAAmB,CAAA;IAC5D,IAAI,CAAC;QACH,4EAA4E;QAC5E,uEAAuE;QACvE,MAAM,KAAK,GAAG,CACZ,OAAO,CAAC,GAAG,CAAC,WAAW;YACrB,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC;YACtC,CAAC,CAAC,aAAa,CACM,CAAA;QACzB,MAAM,KAAK,CAAC,WAAW,EAAE,EAAE,OAAO,EAAE,IAAI,EAAS,CAAC,CAAA;QAClD,mBAAmB,GAAG,IAAI,CAAA;IAC5B,CAAC;IAAC,MAAM,CAAC;QACP,mBAAmB,GAAG,KAAK,CAAA;IAC7B,CAAC;IACD,OAAO,mBAAmB,CAAA;AAC5B,CAAC;AAED;;GAEG;AACH,SAAS,kBAAkB,CAAC,MAAc;IACxC,MAAM,CAAC,GAAG,MAAM,CAAC,WAAW,EAAE,CAAA;IAC9B,IACE,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC;QACrB,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC;QAC3B,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAC5B,CAAC;QACD,OAAO,CACL,sCAAsC;YACtC,uFAAuF,CACxF,CAAA;IACH,CAAC;IACD,IAAI,CAAC,CAAC,QAAQ,CAAC,+BAA+B,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACrE,OAAO,2EAA2E,CAAA;IACpF,CAAC;IACD,IACE,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC;QAC7B,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC;QACzB,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EACpB,CAAC;QACD,OAAO,CACL,uCAAuC;YACvC,qEAAqE,CACtE,CAAA;IACH,CAAC;IACD,OAAO,4BAA4B,MAAM,EAAE,CAAA;AAC7C,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,GAAW,EACX,OAAe;IAEf,0EAA0E;IAC1E,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC;QACnC,MAAM,IAAI,KAAK,CACb,SAAS,CAAC,kCAAkC,CAAC;YAC3C,oDAAoD;YACpD,kCAAkC,CACrC,CAAA;IACH,CAAC;IAED,8EAA8E;IAC9E,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,GAAG,CAAC,CAAA;IAC3C,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,WAAW,CAAC,sBAAsB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;QAChE,OAAO,MAAM,CAAA;IACf,CAAC;IAED,8EAA8E;IAC9E,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,GAAG,CAAC,CAAA;IAClE,MAAM,MAAM,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAA;IAC7E,MAAM,MAAM,GACV,qBAAqB,MAAM,+BAA+B;QAC1D,iBAAiB,MAAM,YAAY;QACnC,iBAAiB,MAAM,GAAG,CAAA;
|
|
1
|
+
{"version":3,"file":"videoUtils.js","sourceRoot":"","sources":["../../src/utils/videoUtils.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "video-context-mcp-server",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.18.0-beta",
|
|
4
4
|
"description": "A Model Context Protocol server that gives GitHub Copilot the ability to understand and analyze video content",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|