📖 프로젝트 소개
ASMRoner는 Go 언어로 개발된 커맨드라인 도구로, asmr.one 음성 작품을 검색, 다운로드, 동기화하며 간단한 웹 재생 인터페이스를 제공합니다.
🌐 파생 프로젝트: asmr.furina.in — 심플하고 깔끔한 온라인 ASMR 청취 페이지
🚀 빠른 시작
https://github.com/MIKANOoOo/asmr-downloader.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 # 导出单个作品或指定数量热门榜链接 & 导出到指定目录
./asmroner export RJ01544940 -o ./downloads
./asmroner export hot100 -n 20 -o ./downloads
./asmroner export hot100 -n 10 -o ./downloads
更多内容参考常见问题中的guide
Web 播放界面
./asmroner listen -p 8080 ./syncdata📸 스크린샷
| 설정 | 검색 |
|:---:|:---:|
|
|
|
| 다운로드 | 동기화 |
|
|
|
| 동기화 다운로드 | 통계 |
|
|
|
| Web 인터페이스 | Web 인터페이스 2 |
|
|
|
| export 인터페이스 | export 인터페이스 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) |
| export | -o, -n | 내보낼 디렉토리, hot100 개수 |
📁 프로젝트 구조
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 | 웹 서비스 | | Tailwind + Plyr | 프론트엔드 인터페이스 + 오디오 재생 |
🔧 자주 묻는 질문
설정 파일을 찾을 수 없음 → ./asmroner config 실행하여 초기화
다운로드 실패(stream error) → 프로그램이 자동 재시도; 계속 실패 시 sync retry로 재시도하거나 .asmroner-data/download_errors.log 확인
웹 인터페이스 접속 불가 → 포트 점유 여부 확인, -p로 다른 포트 지정 시도
검색 결과 없음 → 쿼리 구문 확인, 조건을 단순화하여 시도
export 명령어와 연계된 다운로드 방식 → guide 참고
🤝 기여
Pull Request 제출을 환영합니다! Fork → 새 브랜치 생성 → 변경 사항 커밋 → PR 생성.
📄 라이선스
본 프로젝트는 MIT 라이선스를 사용합니다. 자세한 내용은 LICENSE 파일을 확인하세요.
🙏 致谢
- 特别感谢 go-asmr-spider
- 感谢所有贡献者和用户!
ASMRoner — 每天晚上都有不同的妹妹陪你入睡 :)
最后更新:2026 年 2 月
--- Tranlated By Open Ai Tx | Last indexed: 2026-05-05 ---