这里是 yutto 的 gradio-webui!
原仓库:https://github.com/yutto-dev/yutto.
我先前用过 downkyi,JJdown.共同的问题就是,我自己没能力改源代码。downkyi 是C#
开发的,而 JJdown 似乎是闭源的。每次 b 站上的朋友问我说"为啥子突然不行了",我也只能说我去向作者反馈一下,然后去提一个 Issue。
但对于 yutto,我觉得我行了。
yutto-uiya/
│
├── yutto/ # 把yutto shell指令使用python调用,形成最小模块
│ └── __init__.py
│
├── utils/ # 这里是我们的工具包,只依赖于python标准库,以及一些第三方库,不依赖我们自己写的代码
│
├── configs/ # ffmpeg 等等配置文件我们会尝试放在这里.
│
└── webui.py # 这个是我们的 webui 入口文件
你需要ffmpeg
,我正在研究如何为windows
用户指定相对路径里的ffmpeg
。或者在每次使用的时候export
本地的ffmpeg
到环境变量。
对于mac/linux
用户:
brew install ffmpeg # mac
sudo apt install ffmpeg # linux
然后配置python
环境:
python >=3.9
pip install yutto
pip install -r requirements.txt
启动:
python webui.py
参见./configs/
:
args.yaml
:
SESSDATA: "" # SESSDATA,用来伪装登陆信息
download_dir: "./downloads" # 下载后保存的路径
no_danmaku: true # 不下载弹幕。
# 这两个决定能下哪些视频,清晰度,用户有访问哪些视频的权限,就能下哪些视频,
# 比如大会员视频就需要大会员登陆的SESSDATA
# 而无登陆用户最高只能下载480p
login_strict: true # 仅当SESSDATA不为空时生效,严格校验登陆信息是否有效
# 如果SESSDATA填写错误,会导致校验失败。
vip_strict: false # 仅当SESSDATA不为空时生效,严格校验大会员,
# 如果不是大会员,请设置false,否则会无法下载。
# 如果是大会员,请设置true,否则有时候会被当成普通用户拦截。
chrome.yaml
: 配置chrome-driver
来获取sess_data
,如果你可以手动获取sess_data
,那么这个文件可以不用配置。
chrome_driver: './chromedriver-linux64/chromedriver' # chrome-driver 路径
chrome: './chrome-linux64/chrome' # chrome 路径
# 如果你还没有使用过它们,你可以到这里下载你系统对应的版本:
# https://googlechromelabs.github.io/chrome-for-testing/#stable
# 然后解压,指定正确路径即可
target_url: 'https://www.bilibili.com/'
sess_data
的获取:
你可以先下载chrome-driver
和chrome
然后根据你的路径配置./configs/chrome.yaml
,然后运行:
python webrowser_config.py
第一次打开后需要在打开的chrome
页面中登陆你的bilibili
账号,然后关闭页面,再次运行webrowser_config.py
。在终端中找到你对应的SESSDATA
然后写入到args.yaml
中。
我为每个功能都在webui
中写了说明,放心食用~
- 提供单独下载音频、视频、弹幕的勾选项。放在webui中。