DSH HUB
HomePlugin StorePlugin PacksCommunityRankingsResourcesPublish Guide
Plugin source
Back to catalog

DorododoG11 /

DorododoG11/bili-whale-studio

Verified

大肥鱼工作室:DSH 插件——在 B 站自学、整理自己的声音、把内容做成动态和视频,草稿经人点头才发

★ 0 Stars0 Forks0 IssuesN/A Community rating0 Confirmed installs
View on GitHub
READMESource: main@607c7ab3

大肥鱼工作室 · dsh-bili-whale-studio

一个 DeepSeek Harness(DSH)插件:让 agent 在 B 站自学、有自己的声音、把内容做成动态和视频——但发出去之前必须过草稿箱。

它不是又一个"自动发帖机"。三件事分开做,每件都能单独验证:

能力 做什么 落点
学 搜教程 → 看全一条(AI 总结 / 字幕 / 章节 / 评论)→ 写成笔记 ~/.dsh/bili-studio/knowledge/
声 从自己号的视频里取干声 → 音色素材;公共音色按参数调音 ~/.dsh/bili-studio/voices/
发 动态 / 投稿 → 草稿箱 → 人点头 → 发 ~/.dsh/bili-studio/drafts/

底层不重造轮子:B 站操作全部走 bili-cli(bili 命令),音视频处理走 ffmpeg,语音用系统 SAPI,插件只负责编排、留痕和兜底。


为什么这样设计

1. 学习要能变成"下次能直接用"的东西。 studio_learn action=fetch 会把整条视频的原始数据存成 json,笔记存成带 frontmatter 的 md。写动态时 studio_note action=list 一搜就知道自己学过什么,不用重新看一遍视频。

2. 声音的边界写在代码里。 studio_voice action=pull 只接受:

  • 自己号(~/.dsh/bili-whale.config.json 里的 self.mid),或
  • config.allowedOwnerMids 里显式列出的号,或
  • 调用时显式 authorized=true(会连同来源一起记进 meta.json)。

别人的视频一律拒绝。原因不是技术:声纹是人格标识,拿别人的声音去直播/唱歌/发视频,等于用别人的身份说话,平台按侵权处理。

想"像"某个人的说话方式,有另一条正路:studio_style action=analyze 从字幕里统计语速、句长、标点习惯、口头禅,存成风格卡,再用自己的声音 + tune 出来的参数去演。风格是公共的,声纹不是。

3. 发布默认要人点头。 草稿状态只往一个方向走:draft → approved → publishing → published。requireApproval 打开时(默认),没 approved 的草稿调 studio_publish 直接报错。另外还有:每日配额(按 publish-log.jsonl 记账)、投稿强制 AI 声明、失败也记账。


安装

前提:DSH ≥ 0.4,bili CLI 已登录(bili auth status 返回 logged_in: true),系统有 ffmpeg。

# 1. 放到任意工作目录
git clone <this-repo> bili-studio && cd bili-studio

# 2. 装进当前 profile(DSH 会自己 apply patch)
#    在 DSH 里对 agent 说:
#    「把 C:\path\to\bili-studio 作为 bundle 安装到当前 profile」
#    或直接调用 plugin_manager install_bundle(target: <绝对路径>)

装完 studio_status 应该能回答:B 站登没登、ffmpeg 在不在、今天还能发几条、本地攒了多少东西。

配置

首次运行会生成 ~/.dsh/bili-studio/config.json,改完不用重启(每次调用都重读):

{
  "biliPath": "C:\\Users\\you\\.local\\bin\\bili.exe",
  "ffmpegPath": "C:\\Users\\you\\.dsh\\bili-whale\\bin\\ffmpeg.exe",
  "maxPublishPerDay": 3,
  "requireApproval": true,
  "allowedOwnerMids": [],
  "voice": {
    "engine": "sapi",              // sapi | command
    "sapiVoice": "Microsoft Huihui Desktop",
    "rate": 0,                     // -10 ~ 10
    "pitch": 1.0,                  // 0.8 ~ 1.25
    "cloneCommand": ""             // engine=command 时:"{input}" 文本文件 → "{out}" wav
  },
  "compose": { "width": 1920, "height": 1080, "fps": 30 }
}

voice.engine = "command" 是给外部 TTS/克隆引擎留的口子:任何"文本文件进、wav 出"的命令行都能接,比如本地跑的 GPT-SoVITS、Fish-Speech 之类。接什么由你决定,插件不替你下载模型。


工具

工具 一句话
studio_status 自检:登录、依赖、配额、库存
studio_learn search 找教程 / fetch 看全一条并落盘
studio_note save / list / read 笔记
studio_voice pull / list / remove / ref / voices / tune
studio_style analyze / save / list 声音风格卡
studio_say 文字 → wav(语速、音高可调)
studio_video 图片 + 配音 → 1080p mp4
studio_queue 草稿:new / list / show / preview / approve / reject
studio_publish 发出去(只认 approved,带配额)
studio_history 发布记账

一条完整链路

studio_learn  search  "DeepSeek Harness 插件"
studio_learn  fetch   BV1xxxx
studio_note   save    title="DSH 插件的最小骨架"  body="……"
studio_say    text="今天学了插件骨架……"  pitch=1.06
studio_video  audio=out/say-xxx.wav  images=["cover.png"]
studio_queue  new     kind=video title="……" tags=["DSH"] video=out/video-xxx.mp4
studio_queue  preview id=dr_xxx      # 人看一眼
studio_queue  approve id=dr_xxx      # 人点头
studio_publish id=dr_xxx

没做的 / 做不了的

  • 直播推流:bili 没有开播能力,v0.1 不做。真要做需要拿推流地址 + ffmpeg -f flv,那是 v0.2 的事,而且要你自己决定露什么。
  • 声纹克隆:不做。见上文。
  • 自动审核:点赞/投币/评论不在这套工具的职责里,仍然由 bili 本身的规则约束(见 bili-cli 的 safety 文档)。

数据与隐私

所有数据都在 ~/.dsh/bili-studio/,不上传。凭据只读不写,读的是 ~/.bili-ai/credentials.json(bili 自己维护的那份),插件不复制、不回显。

License

MIT

—/ 5

No ratings yet

Verified DSH bundle

Commit 607c7ab326e9

Community comments

No comments yet. Be the first to write one.

DSH HUB

A community index for DSH plugins. Not an official GitHub or DeepSeek AI product.

CommunityResourcesAPIAbout