Web Analytics

asmr-downloader

⭐ 170 stars French by fireinrain

🌐 Langue

📖 Présentation du projet

ASMRoner est un outil en ligne de commande écrit en Go, permettant de rechercher, télécharger, synchroniser des œuvres audio de asmr.one, et offre une interface Web de lecture simple.

🌐 Projet dérivé : asmr.furina.in — Une page d’écoute ASMR en ligne simple et épurée

🚀 Démarrage rapide

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

📋 Commandes courantes

# 搜索
./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

📸 Captures d'écran

| Configuration | Recherche | |:---:|:---:| | Configuration | Recherche | | Téléchargement | Synchronisation | | Téléchargement | Synchronisation | | Téléchargement synchronisé | Statistiques | | Téléchargement synchronisé | Statistiques | | Interface Web | Interface Web 2 | | Interface Web | Interface Web 2 | | interface d'exportation | interface d'exportation 2 | | interface d'exportation | interface d'exportation 2 |

✨ Fonctionnalités

  • Recherche : Recherche RJID unique/lot, syntaxe avancée, exportation des résultats CSV/JSON
  • Téléchargement : Téléchargement unique/lot/populaire, limitation automatique, reprise, backoff exponentiel
  • Synchronisation : Synchronisation des métadonnées, gestion du téléchargement en lot, suivi d’état, reprise en cas d’échec
  • Interface Web : Navigation visuelle, lecture dans le navigateur, design réactif
  • Configuration : Initialisation interactive, support du proxy, limitation, jitter et autres réglages avancés

⚙️ Explications du fichier de configuration

Chemin du fichier de configuration : ~/.asmroner/config.toml (format 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

📋 Récapitulatif des options de commande

| Commande | Option | Description | |----------|--------|-------------| | search | -c | Nombre de résultats de recherche (par défaut 10) | | search download | -d, -s | Répertoire de téléchargement, nombre de téléchargements | | search export | -f, -n | Nom du fichier exporté (.csv/.json), nombre d'exports | | download | -d, -n | Répertoire de téléchargement, nombre hot100 | | sync download | -d | Répertoire de téléchargement | | sync retry | -d | Répertoire des fichiers échoués | | sync export | -s, -f | Statut (failed/success), fichier exporté | | listen | -p | Port (par défaut 9999) | | export | -o, -n | Répertoire d'export, nombre hot100 |

📁 Structure du projet

asmroner/
├── cmd/                # 命令行接口(config/download/search/sync/listen)
├── internal/
│   ├── engine/        # 核心下载引擎(限流、重试、并发控制)
│   ├── logger/        # 结构化日志系统
│   ├── model/         # 数据模型与查询参数解析
│   ├── database/      # SQLite 数据库
│   ├── consts/        # 常量定义
│   └── utils/         # 工具函数
├── webui/             # 内嵌 Web 界面(Tailwind + Plyr)
├── main.go
└── go.mod

🛠 Stack technique

| Composant | Usage | |------|------| | Cobra + Viper | Framework CLI + gestion de la configuration | | GORM + SQLite | Persistance des données | | Resty | Client HTTP (prise en charge des proxies HTTP/SOCKS5) | | Pond | Pool de travail concurrent | | x/time/rate | Limitation de débit par le système de jeton | | Gin | Service web | | Tailwind + Plyr | Interface frontend + lecture audio |

🔧 Questions fréquentes

Fichier de configuration introuvable → Exécutez ./asmroner config pour l'initialisation

Échec du téléchargement (erreur de flux) → Le programme réessaie automatiquement ; si l'échec persiste, utilisez sync retry pour réessayer ou consultez .asmroner-data/download_errors.log

Interface web inaccessible → Vérifiez que le port n’est pas utilisé, essayez de spécifier un autre port avec -p

Résultat de recherche vide → Vérifiez la syntaxe de la requête, essayez de simplifier les conditions

Méthode de téléchargement pour la commande export → Voir guide

🤝 Contribution

Les Pull Requests sont les bienvenus ! Fork → Créez une branche → Soumettez vos modifications → Ouvrez une PR.

📄 Licence

Ce projet utilise la licence MIT, veuillez consulter le fichier LICENSE pour plus de détails.

🙏 致谢

---

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

最后更新:2026 年 2 月

--- Tranlated By Open Ai Tx | Last indexed: 2026-05-05 ---