yutto


Nameyutto JSON
Version 2.0.1 PyPI version JSON
download
home_pageNone
Summary🧊 一个可爱且任性的 B 站视频下载器
upload_time2025-02-18 17:37:12
maintainerNone
docs_urlNone
authorNone
requires_python>=3.9
licenseGPL-3.0
keywords bilibili danmaku downloader python video
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # yutto

<p align="center">
   <img src="./docs/public/logo.png" width="400px">
</p>

<p align="center">
   <a href="https://python.org/" target="_blank"><img alt="PyPI - Python Version" src="https://img.shields.io/pypi/pyversions/yutto?logo=python&style=flat-square"></a>
   <a href="https://pypi.org/project/yutto/" target="_blank"><img src="https://img.shields.io/pypi/v/yutto?style=flat-square" alt="pypi"></a>
   <a href="https://pypi.org/project/yutto/" target="_blank"><img alt="PyPI - Downloads" src="https://img.shields.io/pypi/dm/yutto?style=flat-square"></a>
   <a href="LICENSE"><img alt="LICENSE" src="https://img.shields.io/github/license/yutto-dev/yutto?style=flat-square"></a>
   <br/>
   <a href="https://github.com/astral-sh/uv"><img alt="uv" src="https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/uv/main/assets/badge/v0.json&style=flat-square"></a>
   <a href="https://github.com/astral-sh/ruff"><img alt="ruff" src="https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json&style=flat-square"></a>
   <a href="https://gitmoji.dev"><img alt="Gitmoji" src="https://img.shields.io/badge/gitmoji-%20😜%20😍-FFDD67?style=flat-square"></a>
   <a href="https://discord.gg/5cQGyFwsqC"><img src="https://img.shields.io/badge/chat-discord-5d24a3?logo=discord&style=flat-square" alt="discord chat"></a>
</p>

<p align="center"><strong>🧊 yutto,一个可爱且任性的 B 站视频下载器(CLI)</strong></p>

**完整静态文档在这里喔 → [yutto](https://yutto.nyakku.moe/)**

> [!TIP]
>
> 如果在使用过程中遇到问题,请通过 [Issues](https://github.com/yutto-dev/yutto/issues) 反馈功能正确性问题和功能请求,其他问题请通过 [Discussions](https://github.com/yutto-dev/yutto/discussions) 反馈~

## 什么是 yutto?

yutto 是一个 B 站视频下载器,它可以帮助你下载 B 站上的投稿视频、番剧、课程等资源,支持单个视频下载、批量下载等功能,就像这样:

```bash
❯ yutto https://www.bilibili.com/video/BV1ZEf9YiE2h/
 INFO  发现配置文件 yutto.toml,加载中……
 大会员  成功以大会员身份登录~
 投稿视频  植物大战僵尸融合版2.2正式版宣传片
 INFO  开始处理视频 植物大战僵尸融合版2.2正式版宣传片
 INFO  共包含以下 15 个视频流:
 INFO  * 0 [AVC ] [1920x1080] <1080P 60帧> #3
 INFO    1 [HEVC] [1920x1080] <1080P 60帧> #3
 INFO    2 [AV1 ] [1920x1080] <1080P 60帧> #3
 INFO    3 [AVC ] [1920x1080] <1080P 高清> #3
 INFO    4 [HEVC] [1920x1080] <1080P 高清> #3
 INFO    5 [AV1 ] [1920x1080] <1080P 高清> #3
 INFO    6 [AVC ] [1280x720 ] <720P 高清 > #3
 INFO    7 [HEVC] [1280x720 ] <720P 高清 > #3
 INFO    8 [AV1 ] [1280x720 ] <720P 高清 > #3
 INFO    9 [AVC ] [ 852x480 ] <480P 清晰 > #3
 INFO   10 [HEVC] [ 852x480 ] <480P 清晰 > #3
 INFO   11 [AV1 ] [ 852x480 ] <480P 清晰 > #3
 INFO   12 [AVC ] [ 640x360 ] <360P 流畅 > #3
 INFO   13 [HEVC] [ 640x360 ] <360P 流畅 > #3
 INFO   14 [AV1 ] [ 640x360 ] <360P 流畅 > #3
 INFO  共包含以下 3 个音频流:
 INFO  * 0 [MP4A] <320kbps >
 INFO    1 [MP4A] < 64kbps >
 INFO    2 [MP4A] <128kbps >
 弹幕  ASS 弹幕已生成
 INFO  开始下载……
━━━━━━━━━━━━━━━━━━━━━━━━━━━╸━━━━━━━━━━━━━━━━━━━━━━  39.05 MiB/ 72.13 MiB 32.22 MiB/⚡
```

## 从安装开始~

### 包管理器一键安装啦

目前 yutto 已经可以通过部分包管理器直接安装~

使用 Homebrew 的用户可以尝试下下面的命令:

```bash
brew tap siguremo/tap
brew install yutto
```

使用 [paru](https://github.com/Morganamilo/paru)(Arch 上的 AUR 包管理器)的用户可以尝试下这样的命令(感谢 @ouuan):

```bash
paru -S yutto
```

### 使用 Docker

你也可以尝试使用 docker 直接运行 yutto(具体如何运行需要参考下后面的内容~)

```bash
docker run --rm -it -v /path/to/download:/app siguremo/yutto <url> [options]
```

与直接运行 yutto 不同的是,这里的下载目标路径是通过 `-v <path>:/app` 指定的,也就是说 docker 里的 yutto 会将内容下载到 docker 里的 `/app` 目录下,与之相对应的挂载点 `<path>` 就是下载路径。你也可以直接挂载到 `$(pwd)`,此时就和本机 yutto 的默认行为一致啦,也是下载到当前目录下~

### pip/pipx/uv 安装

> [!TIP]
>
> 在此之前请确保安装 Python3.9 及以上版本,并配置好 FFmpeg(参照 [bilili 文档](https://bilili.nyakku.moe/guide/getting-started.html))

```bash
pip install yutto
```

当然,你也可以通过 [pipx](https://github.com/pypa/pipx)/[uv](https://github.com/astral-sh/uv) 来安装 yutto(当然,前提是你要自己先安装它)

```bash
pipx install yutto      # 使用 pipx
uv tool install yutto   # 或者使用 uv
```

pipx/uv 会类似 Homebrew 无感地为 yutto 创建一个虚拟环境,与其余环境隔离开,避免污染 pip 的环境,因此相对于 pip,pipx/uv 是更推荐的安装方式(uv 会比 pipx 更快些~)。

### 体验 main 分支最新特性

> [!TIP]
>
> 这同样要求你自行配置 Python 和 FFmpeg 环境

有些时候有一些在 main 分支还没有发布的新特性或者 bugfix,你可以尝试直接安装 main 分支的代码,最快的方式仍然是通过 pip 安装,只不过需要使用 git 描述符

```bash
pip install git+https://github.com/yutto-dev/yutto@main                 # 通过 pip
pipx install git+https://github.com/yutto-dev/yutto@main                # 通过 pipx
uv tool install git+https://github.com/yutto-dev/yutto.git@main         # 通过 uv
```

## 主要功能

### 基本命令

yutto 的基本命令如下:

```bash
yutto <url>
```

你可以通过 `yutto -h` 查看详细命令参数。

如果你需要下载**单个**视频,只需要使用 yutto 加上这个视频的地址即可。它支持 av/BV 号以及相应带 p=n 参数的投稿视频页面,也支持 ep 号(episode_id)的番剧页面。

比如只需要这样你就可以下载[《転スラ日記》](https://www.bilibili.com/bangumi/play/ep395211)第一话:

```bash
yutto https://www.bilibili.com/bangumi/play/ep395211
```

yutto 还支持直接使用能够唯一定位资源的 id 来作为 `<url>`,刚刚的功能与下面的简化后的命令功能是完全一样的

```bash
yutto ep395211
```

不过有时你可能想要批量下载很多剧集,因此 yutto 提供了用于批量下载的参数 `-b/--batch`,它不仅支持前面所说的单个视频所在页面地址(会解析该单个视频所在的系列视频),还支持一些明确用于表示系列视频的地址,比如 md 页面(media_id)、ss 页面(season_id)。

比如像下面这样就可以下载《転スラ日記》所有已更新的剧集:

```bash
yutto --batch https://www.bilibili.com/bangumi/play/ep395211
```

### 更多功能

yutto 还支持很多功能,限于篇幅不在 `README` 中展示,你可以前往 [yutto 文档](https://yutto.nyakku.moe/) 查看更多详细内容~

## 其他应用

你也可以通过这些应用来使用 yutto

-  [KubeSpider](https://github.com/opennaslab/kubespider): 一个多功能全局资源编排下载系统,支持下载、订阅各类资源网站~

## Roadmap

### 2.0.0

-  [x] feat: 支持弹幕字体、字号、速度等设置
-  [x] feat: 配置文件支持
-  [x] feat: 配置文件功能优化,支持自定义配置路径
-  [x] docs: issue template 添加配置引导
-  [x] docs: 优化 biliass rust 重构后的贡献指南

### future

-  [x] docs: 可爱的静态文档(WIP in [#86](https://github.com/yutto-dev/yutto/pull/86))
-  [ ] feat: 新的基于 toml 的任务列表
-  [ ] refactor: 配置参数复用 pydantic 验证
-  [ ] refactor: 针对视频合集优化路径变量
-  [ ] refactor: 优化杜比视界/音效/全景声选取逻辑(Discussing in [#62](https://github.com/yutto-dev/yutto/discussions/62))
-  [ ] refactor: 直接使用 rich 替代内置的终端显示模块
-  [ ] feat: 更多批下载支持
-  [ ] feat: 以及更加可爱~

## 参与贡献

请阅读 [CONTRIBUTING.md](CONTRIBUTING.md)

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "yutto",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.9",
    "maintainer_email": null,
    "keywords": "bilibili, danmaku, downloader, python, video",
    "author": null,
    "author_email": "Nyakku Shigure <sigure.qaq@gmail.com>",
    "download_url": "https://files.pythonhosted.org/packages/24/a9/49ce8b2d28c58d4431fc5bc077cd6d3ae180dd395bbec13bb7d15bedbbed/yutto-2.0.1.tar.gz",
    "platform": null,
    "description": "# yutto\n\n<p align=\"center\">\n   <img src=\"./docs/public/logo.png\" width=\"400px\">\n</p>\n\n<p align=\"center\">\n   <a href=\"https://python.org/\" target=\"_blank\"><img alt=\"PyPI - Python Version\" src=\"https://img.shields.io/pypi/pyversions/yutto?logo=python&style=flat-square\"></a>\n   <a href=\"https://pypi.org/project/yutto/\" target=\"_blank\"><img src=\"https://img.shields.io/pypi/v/yutto?style=flat-square\" alt=\"pypi\"></a>\n   <a href=\"https://pypi.org/project/yutto/\" target=\"_blank\"><img alt=\"PyPI - Downloads\" src=\"https://img.shields.io/pypi/dm/yutto?style=flat-square\"></a>\n   <a href=\"LICENSE\"><img alt=\"LICENSE\" src=\"https://img.shields.io/github/license/yutto-dev/yutto?style=flat-square\"></a>\n   <br/>\n   <a href=\"https://github.com/astral-sh/uv\"><img alt=\"uv\" src=\"https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/uv/main/assets/badge/v0.json&style=flat-square\"></a>\n   <a href=\"https://github.com/astral-sh/ruff\"><img alt=\"ruff\" src=\"https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json&style=flat-square\"></a>\n   <a href=\"https://gitmoji.dev\"><img alt=\"Gitmoji\" src=\"https://img.shields.io/badge/gitmoji-%20\ud83d\ude1c%20\ud83d\ude0d-FFDD67?style=flat-square\"></a>\n   <a href=\"https://discord.gg/5cQGyFwsqC\"><img src=\"https://img.shields.io/badge/chat-discord-5d24a3?logo=discord&style=flat-square\" alt=\"discord chat\"></a>\n</p>\n\n<p align=\"center\"><strong>\ud83e\uddca yutto\uff0c\u4e00\u4e2a\u53ef\u7231\u4e14\u4efb\u6027\u7684 B \u7ad9\u89c6\u9891\u4e0b\u8f7d\u5668\uff08CLI\uff09</strong></p>\n\n**\u5b8c\u6574\u9759\u6001\u6587\u6863\u5728\u8fd9\u91cc\u5594 \u2192 [yutto](https://yutto.nyakku.moe/)**\n\n> [!TIP]\n>\n> \u5982\u679c\u5728\u4f7f\u7528\u8fc7\u7a0b\u4e2d\u9047\u5230\u95ee\u9898\uff0c\u8bf7\u901a\u8fc7 [Issues](https://github.com/yutto-dev/yutto/issues) \u53cd\u9988\u529f\u80fd\u6b63\u786e\u6027\u95ee\u9898\u548c\u529f\u80fd\u8bf7\u6c42\uff0c\u5176\u4ed6\u95ee\u9898\u8bf7\u901a\u8fc7 [Discussions](https://github.com/yutto-dev/yutto/discussions) \u53cd\u9988\uff5e\n\n## \u4ec0\u4e48\u662f yutto\uff1f\n\nyutto \u662f\u4e00\u4e2a B \u7ad9\u89c6\u9891\u4e0b\u8f7d\u5668\uff0c\u5b83\u53ef\u4ee5\u5e2e\u52a9\u4f60\u4e0b\u8f7d B \u7ad9\u4e0a\u7684\u6295\u7a3f\u89c6\u9891\u3001\u756a\u5267\u3001\u8bfe\u7a0b\u7b49\u8d44\u6e90\uff0c\u652f\u6301\u5355\u4e2a\u89c6\u9891\u4e0b\u8f7d\u3001\u6279\u91cf\u4e0b\u8f7d\u7b49\u529f\u80fd\uff0c\u5c31\u50cf\u8fd9\u6837\uff1a\n\n```bash\n\u276f yutto https://www.bilibili.com/video/BV1ZEf9YiE2h/\n INFO  \u53d1\u73b0\u914d\u7f6e\u6587\u4ef6 yutto.toml\uff0c\u52a0\u8f7d\u4e2d\u2026\u2026\n \u5927\u4f1a\u5458  \u6210\u529f\u4ee5\u5927\u4f1a\u5458\u8eab\u4efd\u767b\u5f55\uff5e\n \u6295\u7a3f\u89c6\u9891  \u690d\u7269\u5927\u6218\u50f5\u5c38\u878d\u5408\u72482.2\u6b63\u5f0f\u7248\u5ba3\u4f20\u7247\n INFO  \u5f00\u59cb\u5904\u7406\u89c6\u9891 \u690d\u7269\u5927\u6218\u50f5\u5c38\u878d\u5408\u72482.2\u6b63\u5f0f\u7248\u5ba3\u4f20\u7247\n INFO  \u5171\u5305\u542b\u4ee5\u4e0b 15 \u4e2a\u89c6\u9891\u6d41\uff1a\n INFO  * 0 [AVC ] [1920x1080] <1080P 60\u5e27> #3\n INFO    1 [HEVC] [1920x1080] <1080P 60\u5e27> #3\n INFO    2 [AV1 ] [1920x1080] <1080P 60\u5e27> #3\n INFO    3 [AVC ] [1920x1080] <1080P \u9ad8\u6e05> #3\n INFO    4 [HEVC] [1920x1080] <1080P \u9ad8\u6e05> #3\n INFO    5 [AV1 ] [1920x1080] <1080P \u9ad8\u6e05> #3\n INFO    6 [AVC ] [1280x720 ] <720P \u9ad8\u6e05 > #3\n INFO    7 [HEVC] [1280x720 ] <720P \u9ad8\u6e05 > #3\n INFO    8 [AV1 ] [1280x720 ] <720P \u9ad8\u6e05 > #3\n INFO    9 [AVC ] [ 852x480 ] <480P \u6e05\u6670 > #3\n INFO   10 [HEVC] [ 852x480 ] <480P \u6e05\u6670 > #3\n INFO   11 [AV1 ] [ 852x480 ] <480P \u6e05\u6670 > #3\n INFO   12 [AVC ] [ 640x360 ] <360P \u6d41\u7545 > #3\n INFO   13 [HEVC] [ 640x360 ] <360P \u6d41\u7545 > #3\n INFO   14 [AV1 ] [ 640x360 ] <360P \u6d41\u7545 > #3\n INFO  \u5171\u5305\u542b\u4ee5\u4e0b 3 \u4e2a\u97f3\u9891\u6d41\uff1a\n INFO  * 0 [MP4A] <320kbps >\n INFO    1 [MP4A] < 64kbps >\n INFO    2 [MP4A] <128kbps >\n \u5f39\u5e55  ASS \u5f39\u5e55\u5df2\u751f\u6210\n INFO  \u5f00\u59cb\u4e0b\u8f7d\u2026\u2026\n\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2578\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501  39.05 MiB/ 72.13 MiB 32.22 MiB/\u26a1\n```\n\n## \u4ece\u5b89\u88c5\u5f00\u59cb\uff5e\n\n### \u5305\u7ba1\u7406\u5668\u4e00\u952e\u5b89\u88c5\u5566\n\n\u76ee\u524d yutto \u5df2\u7ecf\u53ef\u4ee5\u901a\u8fc7\u90e8\u5206\u5305\u7ba1\u7406\u5668\u76f4\u63a5\u5b89\u88c5\uff5e\n\n\u4f7f\u7528 Homebrew \u7684\u7528\u6237\u53ef\u4ee5\u5c1d\u8bd5\u4e0b\u4e0b\u9762\u7684\u547d\u4ee4\uff1a\n\n```bash\nbrew tap siguremo/tap\nbrew install yutto\n```\n\n\u4f7f\u7528 [paru](https://github.com/Morganamilo/paru)\uff08Arch \u4e0a\u7684 AUR \u5305\u7ba1\u7406\u5668\uff09\u7684\u7528\u6237\u53ef\u4ee5\u5c1d\u8bd5\u4e0b\u8fd9\u6837\u7684\u547d\u4ee4\uff08\u611f\u8c22 @ouuan\uff09\uff1a\n\n```bash\nparu -S yutto\n```\n\n### \u4f7f\u7528 Docker\n\n\u4f60\u4e5f\u53ef\u4ee5\u5c1d\u8bd5\u4f7f\u7528 docker \u76f4\u63a5\u8fd0\u884c yutto\uff08\u5177\u4f53\u5982\u4f55\u8fd0\u884c\u9700\u8981\u53c2\u8003\u4e0b\u540e\u9762\u7684\u5185\u5bb9\uff5e\uff09\n\n```bash\ndocker run --rm -it -v /path/to/download:/app siguremo/yutto <url> [options]\n```\n\n\u4e0e\u76f4\u63a5\u8fd0\u884c yutto \u4e0d\u540c\u7684\u662f\uff0c\u8fd9\u91cc\u7684\u4e0b\u8f7d\u76ee\u6807\u8def\u5f84\u662f\u901a\u8fc7 `-v <path>:/app` \u6307\u5b9a\u7684\uff0c\u4e5f\u5c31\u662f\u8bf4 docker \u91cc\u7684 yutto \u4f1a\u5c06\u5185\u5bb9\u4e0b\u8f7d\u5230 docker \u91cc\u7684 `/app` \u76ee\u5f55\u4e0b\uff0c\u4e0e\u4e4b\u76f8\u5bf9\u5e94\u7684\u6302\u8f7d\u70b9 `<path>` \u5c31\u662f\u4e0b\u8f7d\u8def\u5f84\u3002\u4f60\u4e5f\u53ef\u4ee5\u76f4\u63a5\u6302\u8f7d\u5230 `$(pwd)`\uff0c\u6b64\u65f6\u5c31\u548c\u672c\u673a yutto \u7684\u9ed8\u8ba4\u884c\u4e3a\u4e00\u81f4\u5566\uff0c\u4e5f\u662f\u4e0b\u8f7d\u5230\u5f53\u524d\u76ee\u5f55\u4e0b\uff5e\n\n### pip/pipx/uv \u5b89\u88c5\n\n> [!TIP]\n>\n> \u5728\u6b64\u4e4b\u524d\u8bf7\u786e\u4fdd\u5b89\u88c5 Python3.9 \u53ca\u4ee5\u4e0a\u7248\u672c\uff0c\u5e76\u914d\u7f6e\u597d FFmpeg\uff08\u53c2\u7167 [bilili \u6587\u6863](https://bilili.nyakku.moe/guide/getting-started.html)\uff09\n\n```bash\npip install yutto\n```\n\n\u5f53\u7136\uff0c\u4f60\u4e5f\u53ef\u4ee5\u901a\u8fc7 [pipx](https://github.com/pypa/pipx)/[uv](https://github.com/astral-sh/uv) \u6765\u5b89\u88c5 yutto\uff08\u5f53\u7136\uff0c\u524d\u63d0\u662f\u4f60\u8981\u81ea\u5df1\u5148\u5b89\u88c5\u5b83\uff09\n\n```bash\npipx install yutto      # \u4f7f\u7528 pipx\nuv tool install yutto   # \u6216\u8005\u4f7f\u7528 uv\n```\n\npipx/uv \u4f1a\u7c7b\u4f3c Homebrew \u65e0\u611f\u5730\u4e3a yutto \u521b\u5efa\u4e00\u4e2a\u865a\u62df\u73af\u5883\uff0c\u4e0e\u5176\u4f59\u73af\u5883\u9694\u79bb\u5f00\uff0c\u907f\u514d\u6c61\u67d3 pip \u7684\u73af\u5883\uff0c\u56e0\u6b64\u76f8\u5bf9\u4e8e pip\uff0cpipx/uv \u662f\u66f4\u63a8\u8350\u7684\u5b89\u88c5\u65b9\u5f0f\uff08uv \u4f1a\u6bd4 pipx \u66f4\u5feb\u4e9b\uff5e\uff09\u3002\n\n### \u4f53\u9a8c main \u5206\u652f\u6700\u65b0\u7279\u6027\n\n> [!TIP]\n>\n> \u8fd9\u540c\u6837\u8981\u6c42\u4f60\u81ea\u884c\u914d\u7f6e Python \u548c FFmpeg \u73af\u5883\n\n\u6709\u4e9b\u65f6\u5019\u6709\u4e00\u4e9b\u5728 main \u5206\u652f\u8fd8\u6ca1\u6709\u53d1\u5e03\u7684\u65b0\u7279\u6027\u6216\u8005 bugfix\uff0c\u4f60\u53ef\u4ee5\u5c1d\u8bd5\u76f4\u63a5\u5b89\u88c5 main \u5206\u652f\u7684\u4ee3\u7801\uff0c\u6700\u5feb\u7684\u65b9\u5f0f\u4ecd\u7136\u662f\u901a\u8fc7 pip \u5b89\u88c5\uff0c\u53ea\u4e0d\u8fc7\u9700\u8981\u4f7f\u7528 git \u63cf\u8ff0\u7b26\n\n```bash\npip install git+https://github.com/yutto-dev/yutto@main                 # \u901a\u8fc7 pip\npipx install git+https://github.com/yutto-dev/yutto@main                # \u901a\u8fc7 pipx\nuv tool install git+https://github.com/yutto-dev/yutto.git@main         # \u901a\u8fc7 uv\n```\n\n## \u4e3b\u8981\u529f\u80fd\n\n### \u57fa\u672c\u547d\u4ee4\n\nyutto \u7684\u57fa\u672c\u547d\u4ee4\u5982\u4e0b\uff1a\n\n```bash\nyutto <url>\n```\n\n\u4f60\u53ef\u4ee5\u901a\u8fc7 `yutto -h` \u67e5\u770b\u8be6\u7ec6\u547d\u4ee4\u53c2\u6570\u3002\n\n\u5982\u679c\u4f60\u9700\u8981\u4e0b\u8f7d**\u5355\u4e2a**\u89c6\u9891\uff0c\u53ea\u9700\u8981\u4f7f\u7528 yutto \u52a0\u4e0a\u8fd9\u4e2a\u89c6\u9891\u7684\u5730\u5740\u5373\u53ef\u3002\u5b83\u652f\u6301 av/BV \u53f7\u4ee5\u53ca\u76f8\u5e94\u5e26 p=n \u53c2\u6570\u7684\u6295\u7a3f\u89c6\u9891\u9875\u9762\uff0c\u4e5f\u652f\u6301 ep \u53f7\uff08episode_id\uff09\u7684\u756a\u5267\u9875\u9762\u3002\n\n\u6bd4\u5982\u53ea\u9700\u8981\u8fd9\u6837\u4f60\u5c31\u53ef\u4ee5\u4e0b\u8f7d[\u300a\u8ee2\u30b9\u30e9\u65e5\u8a18\u300b](https://www.bilibili.com/bangumi/play/ep395211)\u7b2c\u4e00\u8bdd\uff1a\n\n```bash\nyutto https://www.bilibili.com/bangumi/play/ep395211\n```\n\nyutto \u8fd8\u652f\u6301\u76f4\u63a5\u4f7f\u7528\u80fd\u591f\u552f\u4e00\u5b9a\u4f4d\u8d44\u6e90\u7684 id \u6765\u4f5c\u4e3a `<url>`\uff0c\u521a\u521a\u7684\u529f\u80fd\u4e0e\u4e0b\u9762\u7684\u7b80\u5316\u540e\u7684\u547d\u4ee4\u529f\u80fd\u662f\u5b8c\u5168\u4e00\u6837\u7684\n\n```bash\nyutto ep395211\n```\n\n\u4e0d\u8fc7\u6709\u65f6\u4f60\u53ef\u80fd\u60f3\u8981\u6279\u91cf\u4e0b\u8f7d\u5f88\u591a\u5267\u96c6\uff0c\u56e0\u6b64 yutto \u63d0\u4f9b\u4e86\u7528\u4e8e\u6279\u91cf\u4e0b\u8f7d\u7684\u53c2\u6570 `-b/--batch`\uff0c\u5b83\u4e0d\u4ec5\u652f\u6301\u524d\u9762\u6240\u8bf4\u7684\u5355\u4e2a\u89c6\u9891\u6240\u5728\u9875\u9762\u5730\u5740\uff08\u4f1a\u89e3\u6790\u8be5\u5355\u4e2a\u89c6\u9891\u6240\u5728\u7684\u7cfb\u5217\u89c6\u9891\uff09\uff0c\u8fd8\u652f\u6301\u4e00\u4e9b\u660e\u786e\u7528\u4e8e\u8868\u793a\u7cfb\u5217\u89c6\u9891\u7684\u5730\u5740\uff0c\u6bd4\u5982 md \u9875\u9762\uff08media_id\uff09\u3001ss \u9875\u9762\uff08season_id\uff09\u3002\n\n\u6bd4\u5982\u50cf\u4e0b\u9762\u8fd9\u6837\u5c31\u53ef\u4ee5\u4e0b\u8f7d\u300a\u8ee2\u30b9\u30e9\u65e5\u8a18\u300b\u6240\u6709\u5df2\u66f4\u65b0\u7684\u5267\u96c6\uff1a\n\n```bash\nyutto --batch https://www.bilibili.com/bangumi/play/ep395211\n```\n\n### \u66f4\u591a\u529f\u80fd\n\nyutto \u8fd8\u652f\u6301\u5f88\u591a\u529f\u80fd\uff0c\u9650\u4e8e\u7bc7\u5e45\u4e0d\u5728 `README` \u4e2d\u5c55\u793a\uff0c\u4f60\u53ef\u4ee5\u524d\u5f80 [yutto \u6587\u6863](https://yutto.nyakku.moe/) \u67e5\u770b\u66f4\u591a\u8be6\u7ec6\u5185\u5bb9\uff5e\n\n## \u5176\u4ed6\u5e94\u7528\n\n\u4f60\u4e5f\u53ef\u4ee5\u901a\u8fc7\u8fd9\u4e9b\u5e94\u7528\u6765\u4f7f\u7528 yutto\n\n-  [KubeSpider](https://github.com/opennaslab/kubespider): \u4e00\u4e2a\u591a\u529f\u80fd\u5168\u5c40\u8d44\u6e90\u7f16\u6392\u4e0b\u8f7d\u7cfb\u7edf\uff0c\u652f\u6301\u4e0b\u8f7d\u3001\u8ba2\u9605\u5404\u7c7b\u8d44\u6e90\u7f51\u7ad9\uff5e\n\n## Roadmap\n\n### 2.0.0\n\n-  [x] feat: \u652f\u6301\u5f39\u5e55\u5b57\u4f53\u3001\u5b57\u53f7\u3001\u901f\u5ea6\u7b49\u8bbe\u7f6e\n-  [x] feat: \u914d\u7f6e\u6587\u4ef6\u652f\u6301\n-  [x] feat: \u914d\u7f6e\u6587\u4ef6\u529f\u80fd\u4f18\u5316\uff0c\u652f\u6301\u81ea\u5b9a\u4e49\u914d\u7f6e\u8def\u5f84\n-  [x] docs: issue template \u6dfb\u52a0\u914d\u7f6e\u5f15\u5bfc\n-  [x] docs: \u4f18\u5316 biliass rust \u91cd\u6784\u540e\u7684\u8d21\u732e\u6307\u5357\n\n### future\n\n-  [x] docs: \u53ef\u7231\u7684\u9759\u6001\u6587\u6863\uff08WIP in [#86](https://github.com/yutto-dev/yutto/pull/86)\uff09\n-  [ ] feat: \u65b0\u7684\u57fa\u4e8e toml \u7684\u4efb\u52a1\u5217\u8868\n-  [ ] refactor: \u914d\u7f6e\u53c2\u6570\u590d\u7528 pydantic \u9a8c\u8bc1\n-  [ ] refactor: \u9488\u5bf9\u89c6\u9891\u5408\u96c6\u4f18\u5316\u8def\u5f84\u53d8\u91cf\n-  [ ] refactor: \u4f18\u5316\u675c\u6bd4\u89c6\u754c/\u97f3\u6548/\u5168\u666f\u58f0\u9009\u53d6\u903b\u8f91\uff08Discussing in [#62](https://github.com/yutto-dev/yutto/discussions/62)\uff09\n-  [ ] refactor: \u76f4\u63a5\u4f7f\u7528 rich \u66ff\u4ee3\u5185\u7f6e\u7684\u7ec8\u7aef\u663e\u793a\u6a21\u5757\n-  [ ] feat: \u66f4\u591a\u6279\u4e0b\u8f7d\u652f\u6301\n-  [ ] feat: \u4ee5\u53ca\u66f4\u52a0\u53ef\u7231\uff5e\n\n## \u53c2\u4e0e\u8d21\u732e\n\n\u8bf7\u9605\u8bfb [CONTRIBUTING.md](CONTRIBUTING.md)\n",
    "bugtrack_url": null,
    "license": "GPL-3.0",
    "summary": "\ud83e\uddca \u4e00\u4e2a\u53ef\u7231\u4e14\u4efb\u6027\u7684 B \u7ad9\u89c6\u9891\u4e0b\u8f7d\u5668",
    "version": "2.0.1",
    "project_urls": {
        "Documentation": "https://github.com/yutto-dev/yutto",
        "Homepage": "https://github.com/yutto-dev/yutto",
        "Issues": "https://github.com/yutto-dev/yutto/issues",
        "Repository": "https://github.com/yutto-dev/yutto"
    },
    "split_keywords": [
        "bilibili",
        " danmaku",
        " downloader",
        " python",
        " video"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "6aed29df43c9a32dcce8f46ec7469c0101d9ae9789dd4a39dc074393a413a612",
                "md5": "1cdcfbb9f982472a7688cbe7313401c1",
                "sha256": "f6ed739c7d5bfcc45747fd30b47b6d38e8b9adba8d4185f2427a7bf12c9713ab"
            },
            "downloads": -1,
            "filename": "yutto-2.0.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "1cdcfbb9f982472a7688cbe7313401c1",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.9",
            "size": 103434,
            "upload_time": "2025-02-18T17:37:09",
            "upload_time_iso_8601": "2025-02-18T17:37:09.886864Z",
            "url": "https://files.pythonhosted.org/packages/6a/ed/29df43c9a32dcce8f46ec7469c0101d9ae9789dd4a39dc074393a413a612/yutto-2.0.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "24a949ce8b2d28c58d4431fc5bc077cd6d3ae180dd395bbec13bb7d15bedbbed",
                "md5": "7a47ba6749c9f84d310fd1a43e9a2637",
                "sha256": "c420ddf217aafe0a0f073bdf2a4cd5eccc7e982d52b23038c9ae50268373d579"
            },
            "downloads": -1,
            "filename": "yutto-2.0.1.tar.gz",
            "has_sig": false,
            "md5_digest": "7a47ba6749c9f84d310fd1a43e9a2637",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.9",
            "size": 326958,
            "upload_time": "2025-02-18T17:37:12",
            "upload_time_iso_8601": "2025-02-18T17:37:12.000560Z",
            "url": "https://files.pythonhosted.org/packages/24/a9/49ce8b2d28c58d4431fc5bc077cd6d3ae180dd395bbec13bb7d15bedbbed/yutto-2.0.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-02-18 17:37:12",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "yutto-dev",
    "github_project": "yutto",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "yutto"
}
        
Elapsed time: 0.46609s