中文EN

dsh-libtv

toolsnpmMIT

把 LibTV 的画布与媒体生成能力接进 DeepSeek Harness,随包附带三个导演技能,首次使用微信扫码授权一次即可。

下载量 / Downloads
0

安装

dsh plugin --profile web add dsh-libtv

沙箱测试

这个插件还没测过。提交测试 →

README

dsh-libtv

LibTV 的 DeepSeek Harness 插件:一次安装,同时带来 LibTV 的 MCP 工具(画布、图片/视频/音频生成、剧本、剪辑、导出)和三个生产用技能。

不需要预装 Node(宿主自带的运行时足够)。首次使用时会自动打开浏览器,用微信扫码授权一次,之后长期有效。

<a id="install"></a>

安装

在 DSH 里任选一种:

# 1) 插件市场(dshmarket)里搜 dsh-libtv,点安装
# 2) CLI:从 npm 装(预构建,最快)
dsh plugin --profile web add dsh-libtv

也可以直接从 GitHub 源码装,不经过 npm:

dsh plugin --profile web add github:redkiller79/dsh-libtv

安装后无需重启:工具和技能会在当前会话内直接出现。

已向 awesome-dsh-plugin 精选清单提交收录(PR #9965),收录后可在插件市场里搜到并一键安装。

<a id="first-run"></a>

首次使用:扫一次码

第一次让模型做 LibTV 相关的事时,它会调用内置的 libtv_auth 工具,你的默认浏览器会自动打开 LibTV 授权页:

1. 浏览器里用微信扫码登录 / 确认授权;

2. 看到"授权成功",回到 DSH 继续说你要做的事即可。

凭据保存在 ~/.libtv/credentials.json(权限 0600),access token 约 1 小时到期,由 refresh token 自动续期,不需要再扫。换机器、删了凭据、或长期未用导致 refresh 失效时,重复上面这一次扫码即可。

也可以自己开口触发:告诉模型「用 libtv_auth 授权 LibTV」。

为什么必须扫码

LibTV Remote MCP 用的是 OAuth 2.1 授权码 + PKCE(https://mcp.liblib.tv/mcp),令牌只能由你本人的 LibTV 账户签发,插件无权代你登录。扫码是这套标准流程的自然界面,也是插件唯一无法替你完成的一步——正因如此,它不需要你填任何 API Key 或密码。

<a id="what-you-get"></a>

装完有什么

工具(mcp__libtv__*)

1 个本地工具 + 86 个 LibTV 远端工具:

类别 · 代表工具

授权 · libtv_auth(本地:status / start / logout)

账户与画布 · doctor、account_user、list_projects、target_project、read_project、create_node、update_node、manage_group

生成 · search_models、get_model、generation_submit、generate_video、task_status

上传与资产 · upload_ticket、upload_complete、upload_media、search_assets、apply_asset_to_canvas

剧本与分镜 · create_screenplay、read_screenplay、write_screenplay、create_script_v2、edit_script_v2

音频 · edit_audio、synthesize_speech、design_voice、register_voice

剪辑与导出 · apply_timeline_edit、read_timeline、export_readiness、export_video、export_status、prepare_project_delivery

Agent · run_agent、get_agent_status、steer_agent_run、resolve_agent_action

技能

  • libtv-to-treatment — 把画布成果整理成可翻页的导演提案
  • libtv-blender-live-action — 剧本 → Blender 白模预演 → Seedance 实拍视频
  • music-driven-product-ad — 20 秒音乐驱动产品广告

<a id="env"></a>

可选配置

一般不需要动。都是环境变量,改宿主环境即可:

变量 · 作用

LIBTV_HOME · 凭据目录,默认 ~/.libtv

LIBTV_OAUTH_PORT · 本地回调端口,默认 8765;被占用时换一个

LIBTV_OPEN_BROWSER=0 · 不自动开浏览器,只把授权链接打出来(远程/无头环境)

LIBTV_TOOL_FILTER · 只暴露指定工具,逗号分隔,如 doctor,list_projects,generate_video

LIBTV_MCP_URL / LIBTV_ISSUER · 指向自建网关时才需要

86 个工具的 schema 会常驻上下文。如果你只用其中几类,建议用 LIBTV_TOOL_FILTER 或写一行到 ~/.libtv/tools.allow(每行一个工具名,# 开头为注释)来瘦身。

<a id="how"></a>

它怎么工作

DSH 宿主
  └─ stdio: process.execPath lib/main.mjs           ← 不依赖系统 Node
       └─ lib/serve.mjs   协议桥 + OAuth 网关 + 工具过滤
            └─ https://mcp.liblib.tv/mcp           ← Bearer token,401 自动刷新重放
  • 未授权也能正常加载:宿主握手由本地应答,工具面板里只有 libtv_auth,模型一调它就开浏览器。授权成功后自动建立远端会话并刷新工具列表,无需重启。
  • 令牌不出本机:只写 ~/.libtv/credentials.json;不读任何环境变量里的 token(宿主会清洗 *_TOKEN 之类的子进程环境变量)。
  • 长任务不超时:toolCallTimeoutMs 设为 20 分钟,视频生成/导出不会被误判。

<a id="troubleshoot"></a>

排障

现象 · 处理

浏览器没弹出来 · 看 DSH 日志里的授权链接,手动打开;或 LIBTV_OPEN_BROWSER=0 后由模型转述链接

回调端口被占用 · 设 LIBTV_OAUTH_PORT=8766 后重新授权

工具报"尚未授权" · 调 libtv_auth 的 status,必要时 start 重新扫码

想换账号 · libtv_auth 的 logout,再 start

工具太多占上下文 · 用 LIBTV_TOOL_FILTER 或 ~/.libtv/tools.allow

无头环境可以直接跑 CLI(等价于 libtv_auth,只是不经过模型):

npx -p dsh-libtv libtv-auth login    # 打印授权链接并等待回调
npx -p dsh-libtv libtv-auth status
npx -p dsh-libtv libtv-auth logout

从源码跑的话(没有 npm 也能用),等价形式是 node lib/cli.mjs login|status|logout;已经装进 profile 的也可以直接跑已安装那份:

node "$HOME/.dsh/profiles/web/node_modules/dsh-libtv/lib/cli.mjs" status

(Windows 下把 $HOME 换成 %USERPROFILE%。)

<a id="dev"></a>

开发

git clone https://github.com/redkiller79/dsh-libtv && cd dsh-libtv
node lib/cli.mjs status          # 用本机凭据自检

改完本地联调:在 DSH 里把插件目录直接装上去

plugin_manager install_bundle target=<绝对路径>/dsh-libtv

License

MIT

以上内容来自 npm 上的 README,我们只做格式化,不改内容。

版本

npm 上共发布:2,最后更新 2026-11-04

链接

GitHub · Homepage · npm

同类插件