dsh-ytdlp
Video/audio download tools for DeepSeek Harness, powered by yt-dlp (video_info / video_download)
- Stars
- 0
- Language
- JavaScript
- Created
- Aug 20, 2026
- Updated
- Aug 22, 2026
Introduction
dsh-ytdlp
Video/audio download tools for DeepSeek Harness (DSH), powered by yt-dlp. Registers two model-facing tools so the agent can inspect a video page before downloading and fetch the file to a local directory.
Channel-agnostic: the plugin only downloads to a local folder and returns absolute paths. Sending the file to the user is left to the session channel (e.g. Feishu: lark_send_media for files ≤30 MB, lark_send_bigfile for larger ones). Works in any DSH channel.
Tools
| Tool | Description |
|---|---|
video_info | Query video metadata (title, uploader, duration, resolution, size) before downloading — confirms the link is fetchable and gives a content preview |
video_download | Download a video or extract audio to a local directory, returns file paths and sizes |
Supports every site yt-dlp supports: YouTube, Bilibili, Douyin, Kuaishou, Weibo, X/Twitter, and more.
Install
Place the package under a DSH profile (plugins/ or node_modules/) and enable it in cordis.patch.yml:
- insert:
- id: ytdlp
name: dsh-ytdlp
config:
ytdlpBin: /path/to/yt-dlp # optional, auto-detected if omitted
Requirements: Node.js ≥ 20 and a yt-dlp executable (install with pip3 install --user yt-dlp or the official single-file binary). Audio extraction additionally needs ffmpeg.
Configuration
| Key | Default | Description |
|---|---|---|
ytdlpBin | auto-detect | Path to the yt-dlp executable (searched: config → ~/.dsh/bin/yt-dlp → ~/Library/Python/3.9/bin/yt-dlp → /usr/local/bin → /opt/homebrew/bin → PATH) |
outdir | ~/Downloads/yt-dlp | Default download directory |
downloadTimeoutMs | 1800000 | Download timeout in milliseconds (min 60000) |
Development
node --check lib/index.js
node test/self-test.mjs
License
MIT