Skip to content

fireinrain/asmr-downloader

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

125 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📖 项目简介

ASMRoner 是一款 Go 语言命令行工具,用于搜索、下载、同步 asmr.one 音声作品,并提供简易 Web 播放界面。

🌐 衍生作品:asmr.furina.in — 一个简洁干净的在线 ASMR 听音页面

🚀 快速开始

git clone https://github.com/fireinrain/asmroner.git && cd asmroner
go build -o asmroner
./asmroner config   # 交互式初始化配置

📋 常用命令

# 搜索
./asmroner search "护士" -c 20
./asmroner search "护士,-中出@duration:1h" -c 50

# 下载
./asmroner download RJ01037721 -d ./downloads
./asmroner download RJ01037721,RJ02000001 -d ./downloads
./asmroner download hot100 -n 10 -d ./downloads

# 搜索 + 下载/导出
./asmroner search download "护士" -d ./downloads -s 20
./asmroner search export "护士" -n 100 -f data.json

# 同步元数据 & 批量下载
./asmroner sync
./asmroner sync download -d ./downloads
./asmroner sync retry -d ./downloads
./asmroner sync report

# Web 播放界面
./asmroner listen -p 8080 ./syncdata

📸 截图

配置 搜索
配置 搜索
下载 同步
下载 同步
同步下载 统计
同步下载 统计
Web 界面 Web 界面 2
Web界面 Web界面2
✨ 功能特性
  • 搜索:单个/批量 RJID、高级搜索语法、结果导出 CSV/JSON
  • 下载:单个/批量/热门作品下载,自动限流、重试、指数退避
  • 同步:元数据同步、批量下载控制、状态跟踪、失败重试
  • Web 界面:可视化浏览、浏览器内播放、响应式设计
  • 配置:交互式初始化,支持代理、限流、抖动等高级配置
⚙️ 配置文件说明

配置文件路径:~/.asmroner/config.toml(TOML 格式)

[user]
account = "guest"
password = "guest"

[downloader]
api_url = ""                # 留空自动获取最快站点
proxy_url = ""              # 支持 http / socks5
max_workers = 5
max_retries = 3
sync_data_folder = "./syncdata"
sync_wanted_size = "200MB"  # 同步容量限制
prefer_media = "all"        # all | mp3>wav>flac

[limit]
sync_qps = 2
sync_jitter_min = 100       # ms
sync_jitter_max = 500
download_qps = 0.2
download_jitter_min = 2000
download_jitter_max = 5000
📋 命令选项速查
命令 选项 说明
search -c 搜索结果数量(默认 10)
search download -d, -s 下载目录、下载数量
search export -f, -n 导出文件名(.csv/.json)、导出数量
download -d, -n 下载目录、hot100 数量
sync download -d 下载目录
sync retry -d 失败文件所在目录
sync export -s, -f 状态(failed/success)、导出文件
listen -p 端口(默认 9999)
📁 项目结构
asmroner/
├── cmd/                # 命令行接口(config/download/search/sync/listen)
├── internal/
│   ├── engine/        # 核心下载引擎(限流、重试、并发控制)
│   ├── logger/        # 结构化日志系统
│   ├── model/         # 数据模型与查询参数解析
│   ├── database/      # SQLite 数据库
│   ├── consts/        # 常量定义
│   └── utils/         # 工具函数
├── webui/             # 内嵌 Web 界面(Tailwind + Plyr)
├── main.go
└── go.mod
🛠 技术栈
组件 用途
Cobra + Viper CLI 框架 + 配置管理
GORM + SQLite 数据持久化
Resty HTTP 客户端(支持 HTTP/SOCKS5 代理)
Pond 并发工作池
x/time/rate 令牌桶限流
Gin Web 服务
Tailwind + Plyr 前端界面 + 音频播放
🔧 常见问题

配置文件未找到 → 运行 ./asmroner config 初始化

下载失败(stream error) → 程序会自动重试;若仍失败,用 sync retry 重试,或查看 .asmroner-data/download_errors.log

Web 界面无法访问 → 确认端口未被占用,尝试 -p 指定其他端口

搜索结果为空 → 检查查询语法,尝试简化条件

🤝 贡献

欢迎提交 Pull Request!Fork → 新建分支 → 提交更改 → 开启 PR。

📄 许可证

本项目采用 MIT 许可证,详情请查看 LICENSE 文件。

🙏 致谢


ASMRoner — 每天晚上都有不同的妹妹陪你入睡 :)

最后更新:2026 年 2 月

About

A tool for download asmr media from asmr.one(Thanks for the asmr.one)

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors