| Crates.io | osynic_downloader |
| lib.rs | osynic_downloader |
| version | 0.1.2 |
| created_at | 2025-03-12 14:05:42.992152+00 |
| updated_at | 2025-03-13 13:15:02.688685+00 |
| description | A osu beatmapsets downloader lib & TUI application based on vielpork |
| homepage | |
| repository | https://github.com/osynicite/osynic_downloader |
| max_upload_size | |
| id | 1589788 |
| size | 248,818 |
Rust编写的多线程osu!谱面下载器库,下载队列基于vielpork。
osynic_downloader 是一款高效的osu!谱面下载工具,基于vielpork开发,支持两种输入格式和并行下载,专为音游玩家和多设备谱面同步打造。

推荐搭配osynic_serializer使用,实现osu!谱面的快速序列化。

cargo install osynic_downloader
git clone https://github.com/osynicite/osynic_downloader
cd osynic_downloader
cargo build --release
# 原生模式(ID列表)
osynic-dl --beatmapsets json/sets.json -o ./osu_maps -c 8
# Osynic模式(歌曲元数据)
osynic-dl --osynic-songs json/songs.json --output ./music
sets.json(Beatmapsets模式):
{
"beatmapset_ids": ["114514", "1919810", "1538879"]
}
songs.json(Songs模式)(Osynic):
[
{
"song_id": 1985060,
"artist_name": "ヒトリエ",
"mapper_name": "flake",
"song_name": "日常と地球の額縁 (wowaka x 初音ミク Edit)",
"no_video": false
},
{
"song_id": 1997071,
"artist_name": "ナブナ",
"mapper_name": "Ryuusei Aika",
"song_name": "始発とカフカ",
"no_video": false
}
]
| 参数 | 简写 | 默认值 | 说明 |
|---|---|---|---|
| --beatmapsets | -b | - | 原生模式JSON文件路径 |
| --osynic-songs | -n | - | Osynic模式JSON文件路径 |
| --source | -s | SayoApi | osu!谱面下载源 |
| --username | -u | - | osu!账号(仅OsuDirect/OsuApiV2需要) |
| --password | -p | - | osu!密码(仅OsuDirect/OsuApiV2需要) |
| --output | -o | beatmapsets | 下载目录(自动创建) |
| --concurrency | -c | 4 | 下载并发数(1-16) |
| --help | -h | - | 显示帮助信息 |
{{filename}}命名规则Ctrl+C中断下载进程后,可重新运行恢复下载其实其中最有用的应该就osynic_downloader::resolver::OsuBeatmapsetResolver和osynic_downloader::sources::DownloadSourceType了,前者提供了osu!谱面集的解析器(文档参见https://hakochest.github.io/vielpork-cn/custom-resolver/osu-beatmap-resolver.html),后者提供了4个下载源的枚举。
首先在你的Cargo.toml中添加依赖,通常情况下,还是推荐和vielpork一起使用。
[dependencies]
osynic_downloader = { version="0.1.2", default-features = false, features = ["cli"]}
vielpork = "0.1.2"
然后就可以为你的vielpork下载器添加osu!谱面的解析器了!
use vielpork::downloader::Downloader;
use vielpork::base::structs::DownloadOptions;
use vielpork::reporters::cli_boardcast_mpsc::CliReporterBoardcastMpsc;
use osynic_downloader::resolver::OsuBeatmapsetResolver;
// 在具体业务中
let options = DownloadOptions::default();
let reporter = CliReporterBoardcastMpsc::new(128);
let resolver = OsuBeatmapsetResolver::new();
let downloader = Downloader::new(options, Box::new(resolver), Box::new(reporter.clone()));
欢迎通过Issue提交建议或Pull Request参与开发!请确保:
cargo fmt和cargo clippy本项目基于 MIT License 开源,请尊重原作者的著作权。使用osu!相关资源时请遵守osu!社区准则。