Introduction

The design philosophy of DeepSeek Harness (DSH) is “everything is a plugin”. When an agent needs to process video resources on the web, developers usually need to write additional scripts or prepare local files. The dsh-vidfetch plugin solves this need by registering a tool named fetch_video directly with the DSH Agent, allowing the agent to download videos directly from a URL without developers manually writing download logic.

Plugin Overview

This plugin is maintained by user anaksunamu and is released under the MIT license. Its core value lies in simplifying the workflow: the agent only needs to provide a URL and a directory, and the plugin automatically invokes the underlying logic (depending on yt-dlp) to download the best available audio+video stream and returns the file path to the agent.

Core Features

  1. Tool Registration: Registers the fetch_video tool with DSH for the model to invoke.
  2. Stream Downloading: Automatically downloads the best available audio+video stream.
  3. Result Feedback: Returns the operation status (ok or an error reason) and the list of written files.
  4. Zero Configuration: No additional configuration files or complex Agent-side settings are required.

Installation and Activation

After confirming the environment meets the requirements, install it from the official catalog:

dsh plugin --profile web add dsh-vidfetch

Usage

When the agent calls fetch_video, it must provide two parameters:

Parameter Type Description
url string The URL address where the video is located.
dir string The output directory for the downloaded file.

Example

Example of an invocation request initiated by the agent:

{ "url": "https://example.com/watch/abc123", "dir": "~/downloads" }

Output Format

On success:

{ "message": "ok", "files": ["downloads/video.mp4"] }

On failure (e.g., unsupported URL):

{ "message": "Unsupported URL", "files": [] }

Environment and Permissions

Before using this plugin, note the following dependency and permission requirements:

  1. Dependency Versions:
    * DSH: Must be tested and pass on the 0.1.1-rc.x version line.
    * Node.js: Must satisfy ^22.19.0 or >=24.0.0.
    * yt-dlp: Provided through plugin dependencies; no separate installation is required.

  2. Network and File Permissions:
    * Outbound Network: Each invocation downloads content based on the URL provided by the agent. The plugin itself does not send telemetry data and does not proactively contact external services.
    * File System Write: Files are written to the dir specified by the agent (current working directory if empty). Ensure the directory is writable, and restrict write paths in untrusted scenarios.
    * Subprocess: Each invocation starts a yt-dlp process.

  3. Security Notes:
    * Video files fetched from arbitrary URLs are untrusted content; do not pass them directly to execution pipelines or command-line tools.