? Crunchyroll 的命令行下载器。
用途?️ • 免责声明? • 许可证 ⚖
我们与 Crunchyroll LLC 或其任何子公司或附属公司没有任何隶属关系、维护、授权、赞助或正式关联。 Crunchyroll 的官方网站可以在 www.crunchyroll.com 上找到。
.mkv
文件中。查看发布选项卡并从最新(预)版本中获取二进制文件。
尿素尿率
如果您使用 Arch 或基于 Arch 的 Linux 发行版,您可以安装我们的 AUR 软件包。您需要像 yay 这样的 AUR 助手来安装它。
# this package builds crunchy-cli manually (recommended)
$ yay -S crunchy-cli
# this package installs the latest pre-compiled release binary
$ yay -S crunchy-cli-bin
舀
对于 Windows 用户,我们支持 scoop 命令行安装程序。
$ scoop bucket add extras
$ scoop install extras/crunchy-cli
自制
对于 macOS/linux 用户,我们支持brew 命令行安装程序。软件包由 homebrew 项目编译,还将安装openssl@3
和ffmpeg
依赖项。
$ brew install crunchy-cli
支持的架构: x86_64_linux
、 arm64_monterey
、 sonoma
、 ventura
尼克斯
这需要 nix 并且您可能需要--extra-experimental-features "nix-command flakes"
,具体取决于您的配置。
$ nix < run | shell | develop > github:crunchy-labs/crunchy-cli
由于我们不支持所有平台和架构,您可能必须自己构建项目。这需要 git 和 Cargo。
$ git clone https://github.com/crunchy-labs/crunchy-cli
$ cd crunchy-cli
# either just build it (will be available in ./target/release/crunchy-cli)...
$ cargo build --release
# ... or install it globally
$ cargo install --force --path .
所有显示的命令都是示例???
crunchy-cli 要求您登录。虽然您可以使用非高级帐户,但如果没有订阅,您将无法访问高级内容。您可以使用您的凭据(电子邮件:密码)或使用刷新令牌进行身份验证。
证书
$ crunchy-cli --credentials " email:password " < command >
保持匿名
没有帐户登录(您将无法访问优质内容):
$ crunchy-cli --anonymous < command >
您可以设置具体的设置
详细输出
如果要在输出中包含调试信息,请使用-v
/ --verbose
标志来显示它。
$ crunchy-cli -v < command >
此标志不能与-q
/ --quiet
结合使用。
静音输出
如果您想隐藏所有输出,请使用-q
/ --quiet
标志来执行此操作。如果您想将输出视频传输到外部程序(例如视频播放器),这尤其有用。
$ crunchy-cli -q < command >
此标志不能与-v
/ --verbose
结合使用。
语言
默认情况下,生成的元数据(如标题或描述)以您的系统语言显示(如果 Crunchyroll 支持,则以英语显示)。如果您想以另一种语言显示结果,请使用--lang
标志来设置它。
$ crunchy-cli --lang de-DE < command >
实验性修复
Crunchyroll 不断改变和破坏其服务,或者只是提供错误的答案。 --experimental-fixes
标志尝试修复其中一些问题。正如--experimental-fixes
中的实验所述,这些修复可能会也可能不会破坏其他功能。
$ crunchy-cli --experimental-fixes < command >
有关此标志影响哪些部分的概述,请参阅底层 Crunchyroll 库的文档,所有以stabilization_
的函数都适用。
代理人
--proxy
标志支持 https 和ocks5 代理来路由所有流量。这可能有助于绕过 Crunchyroll 对某些系列的地理限制。您还可以设置应在 cli 的哪个部分使用代理。除了普通的 url,您还可以使用:
仅代理 api 请求)、: :
(仅代理下载流量)、
(通过第一个 url 代理 api 请求和下载流量通过第二个网址)。
$ crunchy-cli --proxy socks5://127.0.0.1:8080 < command >
确保代理可以转发 TLS 请求(这是绕过 (cloudflare) 机器人保护所需的),或者对其进行配置以便代理可以绕过保护本身。
用户代理
在某些情况下,可能需要自定义用户代理,例如绕过 cloudflare 机器人保护 (#104)。在这种情况下, --user-agent
标志可用于设置自定义用户代理。
$ crunchy-cli --user-agent " Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0) " < command >
默认是用户代理,在底层库中定义。
速度极限
如果您想限制请求/下载的速度,可以使用--speed-limit
标志。允许的单位为B
(字节)、 KB
(千字节)和MB
(兆字节)。
$ crunchy-cli --speed-limit 10MB
login
命令可以存储您的会话,因此您不必每次执行命令时都进行身份验证。
# save the refresh token which gets generated when login with credentials.
# your email and password won't be stored at any time on disk
$ crunchy-cli login --credentials " email:password "
存储会话后,当您想要执行命令时,不再需要传递--credentials
/ --anonymous
。
download
命令可让您下载具有特定音频语言和可选字幕的剧集。
支持的网址
$ crunchy-cli download https://www.crunchyroll.com/watch/GRDQPM1ZY/alone-and-lonesome
$ crunchy-cli download https://www.crunchyroll.com/series/GY8VEQ95Y/darling-in-the-franxx
选项
音频语言
使用-a
/ --audio
标志设置音频语言。仅当 url 指向系列时此方法才有效,因为剧集 url 是特定于语言的。
$ crunchy-cli download -a de-DE https://www.crunchyroll.com/series/GY8VEQ95Y/darling-in-the-franxx
默认是您的系统区域设置。如果 Crunchyroll 不支持,则默认为en-US
(美式英语)。
字幕语言
除了音频之外,您还可以使用-s
/ --subtitle
标志指定字幕语言。在支持它的格式(.mp4、.mov 和 .mkv)中,字幕存储为软字幕。所有其他格式都是硬字幕:字幕将被刻录到视频轨道中(参见硬字幕),因此无法关闭。
$ crunchy-cli download -s de-DE https://www.crunchyroll.com/series/GY8VEQ95Y/darling-in-the-franxx
默认为无。
输出模板
使用-o
/ --output
标志定义输出模板。
$ crunchy-cli download -o " ditf.mp4 " https://www.crunchyroll.com/watch/GRDQPM1ZY/alone-and-lonesome
默认为{title}.mp4
。有关更多选项,请参阅下面的模板选项部分。
特别剧集的输出模板
通过使用--output-special
标志定义一个输出模板,仅当剧集为特殊剧集(剧集编号为 0 或小数位非零)时才使用该模板。
$ crunchy-cli download --output-specials " Special EP - {title} " https://www.crunchyroll.com/watch/GY8D975JY/veldoras-journal
默认是模板,由-o
/ --output
标志设置。有关更多选项,请参阅下面的模板选项部分。
通用输出
可以通过--universal-output
标志强制对输出模板选项进行清理,以便在所有受支持的操作系统中有效(Windows 有很多文件名中不允许的字符...)。
$ crunchy-cli download --universal-output -o https://www.crunchyroll.com/watch/G7PU4XD48/tales-veldoras-journal-2
解决
视频的分辨率可以通过-r
/ --resolution
标志设置。
$ crunchy-cli download -r worst https://www.crunchyroll.com/watch/GRDQPM1ZY/alone-and-lonesome
默认是best
。
语言标记
您可以使用--language-tagging
标志强制在输出文件中使用特定语言标记。这可能很有用,因为某些视频播放器无法识别 Crunchyroll 内部使用的语言标记。
$ crunchy-cli download --language-tagging ietf https://www.crunchyroll.com/watch/GRDQPM1ZY/alone-and-lonesome
FFmpeg 预设
您可以使用--ffmpeg-preset
标志指定特定的内置预设,以便在下载时将视频转换为特定编码。可以使用多个预定义的预设如何编码视频(h264、h265、av1...),您可以使用crunchy-cli download --help
查看它们。如果您需要更具体的 ffmpeg 自定义,您可以手动转换输出文件或使用 ffmpeg 输出参数作为此标志的值。
$ crunchy-cli download --ffmpeg-preset av1-lossless https://www.crunchyroll.com/watch/GRDQPM1ZY/alone-and-lonesome
FFmpeg 线程
如果您想手动设置 FFmpeg 应使用多少个线程,可以使用--ffmpeg-threads
标志。这不适用于每个编解码器/预设,并且在指定自定义 ffmpeg 输出参数而不是--ffmpeg-preset
的预设时完全跳过。
$ crunchy-cli download --ffmpeg-threads 4 https://www.crunchyroll.com/watch/GRDQPM1ZY/alone-and-lonesome
跳过现有的
如果您重新下载一个系列但想要跳过已经下载的剧集,则--skip-existing
标志会跳过已经存在/下载的文件。
$ crunchy-cli download --skip-existing https://www.crunchyroll.com/series/GY8VEQ95Y/darling-in-the-franxx
跳过特价
如果您不想下载特别剧集,请使用--skip-specials
标志跳过下载。
$ crunchy-cli download --skip-specials https://www.crunchyroll.com/series/GYZJ43JMR/that-time-i-got-reincarnated-as-a-slime[S2]
包括章节
Crunchyroll 有时会提供有关可跳过事件的信息,例如介绍或制作人员名单。这些信息可以通过--include-chapters
标志作为章节存储在生成的视频文件中。
$ crunchy-cli download --include-chapters https://www.crunchyroll.com/watch/G0DUND0K2/the-journeys-end
是的
有时,不同的季节具有相同的季节编号(例如,《刀剑神域Alicization》和《黑道战争Alicization》都标记为第3季),在这种情况下,会显示交互式提示,需要用户进一步输入来决定下载哪个季节。 --yes
标志抑制此交互式提示并仅下载所有季节。
$ crunchy-cli download --yes https://www.crunchyroll.com/series/GR49G9VP6/sword-art-online
如果您已传递-q
/ --quiet
全局标志,则会自动设置此标志。
强制硬低音
如果您想刻录字幕,即使输出格式/容器支持软字幕(例如.mp4
),也可以使用--force-hardsub
标志来执行此操作。
$ crunchy-cli download --force-hardsub -s en-US https://www.crunchyroll.com/watch/GRDQPM1ZY/alone-and-lonesome
线程数
为了提高下载速度,通过创建多个线程同时下载视频片段。如果您想手动指定下载时使用的线程数,请使用-t
/ --threads
标志来执行此操作。
$ crunchy-cli download -t 1 https://www.crunchyroll.com/series/GY8VEQ95Y/darling-in-the-franxx
默认线程数是您的电脑的 CPU 线程数。
archive
命令可让您下载具有多个音频和字幕的剧集,并将其合并到.mkv
文件中。
支持的网址
$ crunchy-cli archive https://www.crunchyroll.com/watch/GRDQPM1ZY/alone-and-lonesome
$ crunchy-cli archive https://www.crunchyroll.com/series/GY8VEQ95Y/darling-in-the-franxx
选项
音频语言
使用-a
/ --audio
标志设置音频语言。可以多次使用。
$ crunchy-cli archive -a ja-JP -a de-DE https://www.crunchyroll.com/series/GY8VEQ95Y/darling-in-the-franxx
默认值是您的系统区域设置(如果 Crunchyroll 不支持,则使用en-US
(美式英语)和ja-JP
(日语))。
字幕语言
除了音频之外,您还可以使用-s
/ --subtitle
标志指定字幕语言。
$ crunchy-cli archive -s de-DE https://www.crunchyroll.com/series/GY8VEQ95Y/darling-in-the-franxx
默认为all
字幕。
输出模板
使用-o
/ --output
标志定义输出模板。 Crunchy-cli专门使用.mkv
容器格式,因为它能够同时存储多个音频、视频和字幕轨道。
$ crunchy-cli archive -o " {title}.mkv " https://www.crunchyroll.com/series/GY8VEQ95Y/darling-in-the-franxx
默认为{title}.mkv
。有关更多选项,请参阅下面的模板选项部分。
特别剧集的输出模板
通过使用--output-special
标志定义一个输出模板,仅当剧集为特殊剧集(剧集编号为 0 或小数位非零)时才使用该模板。 Crunchy-cli专门使用.mkv
容器格式,因为它能够同时存储多个音频、视频和字幕轨道。
$ crunchy-cli archive --output-specials " Special EP - {title} " https://www.crunchyroll.com/watch/GY8D975JY/veldoras-journal
默认是模板,由-o
/ --output
标志设置。有关更多选项,请参阅下面的模板选项部分。
通用输出
可以通过--universal-output
标志强制对输出模板选项进行清理,以便在所有受支持的操作系统中有效(Windows 有很多文件名中不允许的字符...)。
$ crunchy-cli archive --universal-output -o https://www.crunchyroll.com/watch/G7PU4XD48/tales-veldoras-journal-2
解决
视频的分辨率可以通过-r
/ --resolution
标志设置。
$ crunchy-cli archive -r worst https://www.crunchyroll.com/series/GY8VEQ95Y/darling-in-the-franxx
默认是best
。
合并行为
由于审查制度或额外的介绍,某些剧集针对不同语言有多种长度。在最好的情况下,当使用多个音频和字幕轨道时,只有一个视频轨道,所有其他语言都可以存储为纯音频。但是,如前所述,情况并非总是如此。使用-m
/ --merge
标志,您可以定义剧集的视频轨道长度不同时的行为。有效选项是audio
- 将一个视频和所有其他语言仅存储为音频; video
- 存储每种语言的视频+音频; auto
- 检测视频长度是否不同:如果是,则表现得像video
- 否则像audio
; sync
- 检测视频长度是否不同:如果是这样,它会尝试找到匹配音频部分的偏移量并从开头删除偏移量,否则它的行为类似于audio
。字幕将始终与主要音频和视频匹配。
$ crunchy-cli archive -m audio https://www.crunchyroll.com/series/GY8VEQ95Y/darling-in-the-franxx
默认为auto
。
合并时间容差
有时,两个视频轨道会在--merge
设置为auto
情况下下载,即使它们的长度仅相差几毫秒,观看者不会注意到这一点。为了防止这种情况,您可以使用--merge-time-tolerance
标志指定一个以毫秒为单位的范围,如果长度差异在给定范围内,则仅下载一个视频。
$ crunchy-cli archive -m auto --merge-time-tolerance 100 https://www.crunchyroll.com/series/GY8VEQ95Y/darling-in-the-franxx
默认值为200
毫秒。
合并同步容差
有时,两个视频轨道会在--merge
设置为sync
情况下下载,因为音频指纹无法识别匹配的音频部分(例如打开)。为了防止这种情况,您可以使用--merge-sync-tolerance
标志来指定两个指纹被视为相等的差异。
$ crunchy-cli archive -m sync --merge-sync-tolerance 3 https://www.crunchyroll.com/watch/GRDQPM1ZY/alone-and-lonesome
默认值为6
。
合并同步精度
如果您使用--merge
设置为sync
,并且同步似乎不够准确或需要很长时间,则可以使用--sync-precision
标志来指定计算最终偏移量的偏移量确定运行量。
$ crunchy-cli archive -m sync --merge-sync-precision 3 https://www.crunchyroll.com/watch/GRDQPM1ZY/alone-and-lonesome
默认值为4
。
语言标记
您可以使用--language-tagging
标志强制在输出文件中使用特定语言标记。这可能很有用,因为某些视频播放器无法识别 Crunchyroll 内部使用的语言标记。
$ crunchy-cli archive --language-tagging ietf https://www.crunchyroll.com/series/GY8VEQ95Y/darling-in-the-franxx
FFmpeg 预设
您可以使用--ffmpeg-preset
标志指定特定的内置预设,以便在下载时将视频转换为特定编码。可以使用多个预定义的预设如何编码视频(h264、h265、av1...),您可以使用crunchy-cli archive --help
查看它们。如果您需要更具体的 ffmpeg 自定义,您可以手动转换输出文件或使用 ffmpeg 输出参数作为此标志的值。
$ crunchy-cli archive --ffmpeg-preset av1-lossless https://www.crunchyroll.com/watch/GRDQPM1ZY/alone-and-lonesome
FFmpeg 线程
如果您想手动设置 FFmpeg 应使用多少个线程,可以使用--ffmpeg-threads
标志。这不适用于每个编解码器/预设,并且在指定自定义 ffmpeg 输出参数而不是--ffmpeg-preset
的预设时完全跳过。
$ crunchy-cli archive --ffmpeg-threads 4 https://www.crunchyroll.com/watch/GRDQPM1ZY/alone-and-lonesome
默认字幕
--default-subtitle
设置将哪种字幕语言标记为默认和强制。
$ crunchy-cli archive --default-subtitle en-US https://www.crunchyroll.com/series/GY8VEQ95Y/darling-in-the-franxx
默认为无。
包括字体
您可以使用--include-fonts
标志将字幕所需的字体直接包含到输出文件中。当在支持它的视频播放器中播放视频时,这将使用嵌入的字幕字体而不是系统字体。
$ crunchy-cli archive --include-fonts https://www.crunchyroll.com/series/GY8VEQ95Y/darling-in-the-franxx
包括章节
Crunchyroll 有时会提供有关可跳过事件的信息,例如介绍或制作人员名单。这些信息可以通过--include-chapters
标志作为章节存储在生成的视频文件中。仅当--merge
设置为audio
时此标志才有效,因为章节无法映射到特定视频流。
$ crunchy-cli archive --include-chapters https://www.crunchyroll.com/watch/G0DUND0K2/the-journeys-end
跳过现有的
如果您重新下载一个系列但想要跳过已经下载的剧集,则--skip-existing
标志会跳过已经存在/下载的文件。
$ crunchy-cli archive --skip-existing https://www.crunchyroll.com/series/GY8VEQ95Y/darling-in-the-franxx
跳过现有方法
默认情况下,已存在的文件由其名称确定,并跳过相应剧集的下载。但有时 Crunchyroll 会在已有的剧集中添加配音或字幕,而这些更改不会被识别,而--skip-existing
只是会跳过它。可以通过--skip-existing-method
标志更改此行为。有效选项是audio
和subtitle
(如果文件已存在,但音频/字幕少于应下载的内容,则剧集将被下载并覆盖文件)。
$ crunchy-cli archive --skip-existing-method audio --skip-existing-method video https://www.crunchyroll.com/series/GY8VEQ95Y/darling-in-the-franxx
跳过特价
如果您不想下载特别剧集,请使用--skip-specials
标志跳过下载。
$ crunchy-cli archive --skip-specials https://www.crunchyroll.com/series/GYZJ43JMR/that-time-i-got-reincarnated-as-a-slime[S2]
是的
有时,不同的季节具有相同的季节编号(例如,《刀剑神域Alicization》和《黑道战争Alicization》都标记为第3季),在这种情况下,会显示交互式提示,需要用户进一步输入来决定下载哪个季节。 --yes
标志抑制此交互式提示并仅下载所有季节。
$ crunchy-cli archive --yes https://www.crunchyroll.com/series/GR49G9VP6/sword-art-online
如果您已传递-q
/ --quiet
全局标志,则会自动设置此标志。
线程数
为了提高下载速度,通过创建多个线程同时下载视频片段。如果您想手动指定下载时使用的线程数,请使用-t
/ --threads
标志来执行此操作。
$ crunchy-cli archive -t 1 https://www.crunchyroll.com/series/GY8VEQ95Y/darling-in-the-franxx
默认线程数是您的电脑的 CPU 线程数。
search
命令是查询 Crunchyroll 库的强大工具。它的行为类似于网站上的常规搜索,但能够进一步处理结果并返回它能找到的所有内容,从系列标题到原始流 URL。将此命令与--anonymous
标志或非高级帐户一起使用可能会返回不完整的结果。
支持的网址/输入
$ crunchy-cli search https://www.crunchyroll.com/watch/GRDQPM1ZY/alone-and-lonesome
$ crunchy-cli search https://www.crunchyroll.com/series/GY8VEQ95Y/darling-in-the-franxx
$ crunchy-cli search " darling in the franxx "
选项
声音的
通过--audio
标志设置要搜索的音频语言。可以多次使用。
$ crunchy-cli search --audio en-US https://www.crunchyroll.com/series/GY8VEQ95Y/darling-in-the-franxx
默认是您的系统区域设置。
结果限制
如果您输入的是搜索词而不是网址,则您有多个选项来控制要处理的结果。 --search-top-results-limit
标志设置要处理的热门搜索结果的限制。 --search-series-limit
仅设置系列的限制, --search-movie-listing-limit
仅设置电影列表, --search-episode-limit
仅设置剧集, --search-music-limit
仅设置音乐会和音乐视频。
$ crunchy-cli search --search-top-results-limit 10 " darling in the franxx "
# only return series which have 'darling' in it. do not return top results which might also be non-series items
$ crunchy-cli search --search-top-results-limit 0 --search-series-limit 10 " darling "
# this returns 2 top results, 3 movie listings, 5 episodes and 1 music item as result
$ crunchy-cli search --search-top-results-limit 2 --search-movie-listing-limit 3 --search-episode-limit 5 --search-music-limit 1 " test "
--search-top-results-limit
的默认值为5
,所有其他的默认值为0
。
输出模板
搜索命令旨在仅显示您想要的特定信息。这是通过-o
/ --output
标志完成的。您可以以特定模式指定关键字,它们将在输出文本中被替换。所需的模式以{{
,然后是关键字,并以}}
结束(例如{{episode.title}}
)。例如,如果您想获取剧集的标题,可以使用Title: {{episode.title}}
并且{{episode.title}}
将被替换为剧集标题。您可以使用crunchy-cli search --help
查看所有支持的关键字。
$ crunchy-cli search -o " {{series.title}} " https://www.crunchyroll.com/series/GY8VEQ95Y/darling-in-the-franxx
默认为S{{season.number}}E{{episode.number}} - {{episode.title}}
。
您可以使用各种模板选项来更改文件名的处理方式。以下标签可用:
{title}
→ 视频标题{series_name}
→ 系列名称{season_name}
→ 季节名称{audio}
→ 视频的音频语言{width}
→ 视频的宽度{height}
→ 视频的高度{season_number}
→ 季节编号{episode_number}
→ 剧集编号{relative_episode_number}
→ 相对于季节的剧集编号{sequence_number}
→ 与{episode_number}
类似,但没有可能的非数字字符{relative_sequence_number}
→ 与{relative_episode_number}
类似,但支持第 0 集和 0.5 集{release_year}
→ 视频的发布年份{release_month}
→ 视频的发布月份{release_day}
→ 视频的发布日期{series_id}
→ 系列 ID{season_id}
→ 赛季 ID{episode_id}
→ 剧集 ID例子:
$ crunchy-cli archive -o " [S{season_number}E{episode_number}] {title}.mkv " https://www.crunchyroll.com/series/G8DHV7W21/dragon-ball
# Output file: '[S01E01] Secret of the Dragon Ball.mkv'
过滤器模式可用于下载单个系列中特定范围的剧集。
过滤器模式可以由季节、剧集或两者的组合组成。组合使用时,季节S
必须在剧集E
之前定义。
有许多可能的模式,例如:
...[E5]
- 下载第五集。...[S1]
- 下载整个第一季。...[-S2]
- 下载前两季。...[S3E4-]
- 下载第三季第四集以后的所有内容。...[S1E4-S3]
- 下载第一季,从第四集开始,然后下载第二季和第三季。...[S3,S5]
- 下载第三季和第五季。...[S1-S3,S4E2-S4E6]
- 下载第一季到第三季,然后下载第四季的第二集到第六集。实际上,它看起来像这样:
https://www.crunchyroll.com/series/GY8VEQ95Y/darling-in-the-franxx[E1-E5]
该工具仅供私人使用。您需要订阅 Crunchyroll Premium 才能访问优质内容。
您对使用 crunchy-cli 时发生的情况承担全部责任。
该项目已获得 MIT 许可证的许可 - 有关更多详细信息,请参阅许可证文件。