这里是 yutto 的 gradio-webui!
原仓库:https://github.com/yutto-dev/yutto.
我先前用过 downkyi,JJdown.共同的问题就是,我自己没能力改源代码。downkyi 是C#
开发的,而 JJdown 似乎是闭源的。每次 b 站上的朋友问我说"为啥子突然不行了",我也只能说我去向作者反馈一下,然后去提一个 Issue。
但对于 yutto,我觉得我行了。
src/yutto-uiya/
│
├── yutto/ # 把yutto shell指令使用python调用,形成最小模块
│ └── __init__.py
│
├── utils/ # 这里是我们的工具包,只依赖于python标准库,以及一些第三方库,不依赖我们自己写的代码
│
└── __main__.py # 这个是我们的 webui 入口文件
│
└── api.py # 封装好的各个交互事件
│
└── _typing.py # 记录一些变量含义
│
└── _dataclass.py # 存放一些特殊的数据结构
yutto_uiya.yaml # 配置文件,存放在 workdir 或者 user_home/.config/ 下
你需要ffmpeg
,我正在研究如何为windows
用户指定相对路径里的ffmpeg
。或者在每次使用的时候export
本地的ffmpeg
到环境变量。
对于mac/linux
用户:
brew install ffmpeg # mac
sudo apt install ffmpeg # linux
然后你可以直接从我的仓库安装。
# python >=3.10
git clone https://github.com/MrXnneHang/yutto-uiya.git
# 用 uv 安装, 更快。
uv pip install git+https://github.com/MrXnneHang/yutto-uiya.git@gradio-webui
# 或者用 pip 安装
pip install git+https://github.com/MrXnneHang/yutto-uiya.git@gradio-webui
(test-uiya) xnne@xnne-PC:~/code/test-uiya$ uiya
* Running on local URL: http://127.0.0.1:7860
To create a public link, set `share=True` in `launch()`
./yutto_uiya.yaml
如果你保持在这个目录下使用,你可以直接修改这个文件。如果你希望在任何地方都可以使用,那么可以考虑把该文件复制到你的USER_HOME/.config/
下方.有时候.config
文件夹需要自己创建。
对于 linux/mac 用户来说: ~/.config/yutto_uiya.yaml
对于 windows 用户来说: C:/User/Zhouyuan(你的用户名)/.config/yutto_uiya.yaml
并且把考虑把download_dir
改成绝对目录。
SESS_DATA: "" # SESSDATA,用来伪装登陆信息
download_dir: "./downloads" # 下载后保存的路径
# 这两个决定能下哪些视频,清晰度,用户有访问哪些视频的权限,就能下哪些视频,
# 比如大会员视频就需要大会员登陆的SESSDATA
# 而无登陆用户最高只能下载480p
login_strict: true # 仅当SESSDATA不为空时生效,严格校验登陆信息是否有效
# 如果SESSDATA填写错误,会导致校验失败。
vip_strict: false # 仅当SESSDATA不为空时生效,严格校验大会员,
# 如果不是大会员,请设置false,否则会无法下载。
# 如果是大会员,请设置true,否则有时候会被当成普通用户拦截。
SESSDATA是用来伪装登陆的,它会决定你的访问权限,如果需要下载更高分辨率或者对于需要大会员才能下载的资源则需要获取SESSDATA。
具体方式参考./SESS_DATA/README.md
.
yutto_uiya.yaml
:
SESSDATA: "" # SESSDATA,用来伪装登陆信息
download_dir: "./downloads" # 下载后保存的路径
no_danmaku: true # 不下载弹幕。
# 这两个决定能下哪些视频,清晰度,用户有访问哪些视频的权限,就能下哪些视频,
# 比如大会员视频就需要大会员登陆的SESSDATA
# 而无登陆用户最高只能下载480p
login_strict: true # 仅当SESSDATA不为空时生效,严格校验登陆信息是否有效
# 如果SESSDATA填写错误,会导致校验失败。
vip_strict: false # 仅当SESSDATA不为空时生效,严格校验大会员,
# 如果不是大会员,请设置false,否则会无法下载。
# 如果是大会员,请设置true,否则有时候会被当成普通用户拦截。
我为每个功能都在webui
中写了说明,放心食用~
- 提供单独下载音频、视频、弹幕、封面的勾选项。放在webui中。
- 结合 nfo 显示部分视频信息。
- 提供手动选集。
- 提供不同的保存格式。
- 加入覆盖下载。(目前当下载已下载的视频不同清晰度,会跳过。无法下载不同清晰度。)
- 首次运行自动创建配置文件
- Typing,优化代码结构,让代码变得优雅.
- release as a python lib
- 加入
画面
、音频
、弹幕
、封面
的下载选项。15种组合可以自由选择。封面+弹幕
的形式在yutto层面暂不支持,我到时候还需要PR一下。
当画面和音频同时选择的时候,会把画面和音频合并成一个视频。
画面单独选择的时候,会生成无声mp4。音频单独选择,会单独音频的m4a。 - 你可以直接从我的仓库安装。
# python >=3.10
# 用 pip
pip install git+https://github.com/MrXnneHang/yutto-uiya@gradio-webui
# 用 uv, 更快
uv pip install git+https://github.com/MrXnneHang/yutto-uiya@gradio-webui
但你需要关注配置文件相关的部分。
- 优化代码结构。
感谢
yutto
仓库,抄作业成功 =-=。