Skip to content

一个 bilibili 视频下载器,基于 yutto 开发的 gradio-webui✨

License

Notifications You must be signed in to change notification settings

MrXnneHang/yutto-uiya

Repository files navigation

yutto-uiya

PyPI - Python Version pypi Gradio
uv ruff Gitmoji

这里是 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

预览:

alt text alt text

一些配置:

参见./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/'

如何使用:

下载更高的清晰度或者大会员视频(你需要SESSDATA)

sess_data的获取:

你可以先下载chrome-driverchrome然后根据你的路径配置./configs/chrome.yaml,然后运行:

python webrowser_config.py

第一次打开后需要在打开的chrome页面中登陆你的bilibili账号,然后关闭页面,再次运行webrowser_config.py。在终端中找到你对应的SESSDATA然后写入到args.yaml中。

如何用它下载视频:

我为每个功能都在webui中写了说明,放心食用~

待开发:

  • 提供单独下载音频、视频、弹幕的勾选项。放在webui中。

About

一个 bilibili 视频下载器,基于 yutto 开发的 gradio-webui✨

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •