download, manage and play the voices on asmr.one
Project description
ASMRManager
→目录←
功能介绍
下载
- 支持网站所支持的所有索引方式(关键词,标签,会社,价格,声优,日期,时长,年龄分级等等)以及排序方式。
- (仅)支持调用 IDM 或 aria2 下载。
- 支持高度自定义的过滤规则,可实现对作品的标签,文件名进行过滤,按需下载。
- 支持音频文件与字幕文件的格式转换。
管理
下载的音声作品元数据会存储在本地 SQLite 数据库中,基于此提供了以下功能(仅本地):
- 对作品进行评分,评论。
- 使用预定义的SQL脚本进行查询(仓库提供了一些模板,例如 search.sql)
同时也提供网站以下API接口的CLI实现:
- 管理用户播放列表
- 对作品标签进行投票
播放
非常简陋的终端播放界面,支持歌词显示,按照歌词信息快进,切换歌曲,可以预见的将来应该会完善一下(但感觉够用了应该不会再加啥功能了),且不会再添加更多功能。如需更高级的播放功能,请使用第三方播放器,配合asmr view add 命令使用。
使用方法
[!NOTE] 推荐使用
pipx替代pip进行安装,以避免环境污染。 安装方法:pip install pipx
本工具支持 python >= 3.12,安装方法如下:
pip install ASMRManager[依赖]
可选则的依赖项有 idm,aria2,player,tui,subtitle,image,all,多个依赖使用逗号分隔,其中all为安装所有依赖。
具体功能如下:
- 下载:
idm或aria2二选一,idm为 windows 平台专用,aria2为跨平台。 - 播放:
player使用内置的命令行播放器,使用sounddevice库作为后端。 - 其他:
tui为可视化命令行界面。image提供在支持图像显示协议终端渲染作品封面的功能。subtitle使用faster-whisper生成字幕文件。
其中,idm 与 aria2 至少安装其一,以实现最基础的下载功能,其余选项可随意按需添加。
示例: pip install ASMRManager[idm,tui]
之后再运行 asmr 命令,会生成示例的配置文件和 sql 文件,此处以 windows 举例:
2023-10-22 14:36:21 - INFO - First time to run, copy default sqls to C:\Users\slqy\AppData\Local\asmrmanager\asmrmanager\sqls
2023-10-22 14:36:21 - INFO - An example config file has been copied to C:\Users\slqy\AppData\Local\asmrmanager\asmrmanager\config.toml, please modify it and run this command again
之后按照说明修改 config.toml 文件即可。
如果使用 sql 的话,也可以对 sql 文件夹进行修改。若有不明白的地方可使用 sqlite 数据库工具查看目录下的 data.db 文件。
完成后使用 asmr -h 查看各命令的使用说明,对于子命令不清楚的同样可以查看帮助,例如 asmr dl -h。
常用的命令有:
dl search搜索并下载。info搜索某个 RJID 的具体信息file check检查下载目录下的文件是否按照规则被正确下载,并验证文件完整性file store将下载文件转移到存储目录(STORAGE_PATH),并执行相应文件格式转换(详情见config.toml的before_store字段)view将选择文件并移动到 VIEW_PATHpl add将某个音声添加到用户的云端播放列表(配合pl create使用)pl vote up/down/add对相关标签进行投票,或添加新标签review为某个作品评分并评论(本地)
更多使用示例可参考这一小节。
使用命令时,如果不输入 RJID ,将会自动使用上一次命令的RJID。
另外本工具提供基于 trogon 的可视化命令行界面,在安装tui依赖后使用 asmr tui 即可打开。
命令行补全
仅支持 Bash/Fish/Zsh,详情可参考官方文档。
# fish
_ASMR_COMPLETE=fish_source asmr > ~/.config/fish/completions/asmr.fish
# bash
_ASMR_COMPLETE=bash_source asmr > ~/.asmr-complete.bash
echo '. ~/.asmr-complete.bash' >> ~/.bashrc
# zsh
_ASMR_COMPLETE=zsh_source asmr > ~/.asmr-complete.zsh
echo '. ~/.asmr-complete.zsh' >> ~/.zshrc
使用示例
搜索最近更新的40个(一页)作品并下载:
asmr dl search -o release --desc # 选择并下载
asmr dl search -o release --desc --all # 下载全部
下载治愈标签下销量大于等于5000的全部的作品:
asmr dl search --tags 治愈 --sell 5000: --page 0 --all # --page 0 会遍历下载所有页,否则默认只会下载第一页
下载某个社团下的全年龄并包含中文字幕的作品:
asmr dl search --circle Yostar --age general --subtitle
预览搜索结果(不下载)
asmr dl search --preview --all # 返回表格
# 也可以返回可解析的json数据,自定义下载规则,例如:
asmr dl search --json --all | jq '.[].id' | awk '$1 % 2 == 0' | xargs asmr dl get
# 将下载所有RJ号为偶数的作品
根据RJ/VJ/BJ号下载(下述输入格式适用于一切需要输入单个或多个ID的场合):
asmr dl get RJ299717
asmr dl get 299717 # RJ可以省略;对于8位RJ号,第一位的0也可以省略
asmr dl get VJ015443
asmr dl get 100000029 # 对于BJ与VJ,网站为了兼容RJ所使用的特殊ID
asmr dl get 300015443 # 本项目存储VJ与BJ所使用的ID("3" + 8位VJ号,BJ则为"4" + 8位BJ号)
检查下载目录下文件是否下载完全(默认会计算hash并向服务器验证,较为耗时。可使用 --offline 跳过)
asmr file check --all
asmr file check --all --list | xargs asmr dl get --force --replace # 重新下载所有不完整的文件,以bash shell为例
将下载的文件转移到存储目录(STORAGE_PATH),并执行相应文件格式转换(详情见config.toml的before_store字段)
asmr file store --all --check offline
# --check none,默认值,表示不检查文件完整性直接存储
# --check offline 只检查本地文件是否存在
# --check online 同时会向服务器验证hash
比较本地文件与服务器文件的差异:
打开音声所在文件夹(linux 上调用xdg-open,windows使用explorer.exe):
asmr which --show <ID>
简单的关键词搜索(本地数据库):
asmr query 治愈 --limit 3 # 搜索字段有:标题,社团名和标签名
asmr query 治愈 --limit 3 --raw | jq .[].id | xargs -n1 asmr info # 输出为json格式,获取详细信息
标签投票(对于*nix用户,安装命令行补全后可以更快捷地找到想要的tag;windows用户也可以选择不传入tag,交互式选择tag)
asmr vote up -t ASMR
asmr vote down -t 497
asmr vote up # 不传入-t参数,会进入交互式选择模式
播放列表管理
asmr pl list # 列出所有播放列表
asmr pl create myplaylist --desc "An example playlist" --privacy PRIVATE # 创建一个播放列表,并将权限设置为私密。
asmr pl add myplaylist RJ123456 # 将音声添加到myplaylist播放列表中
asmr pl show myplaylist # 展示myplaylist播放列表中的音声
生成字幕文件,目前仅支持LRC格式:
asmr utils subtitle
常见问题与使用提示
IDM 不会自动下载,只能一个一个文件下载
默认不自动开始下载是预期内行为,IDM目前开放的API好像不支持后台静默下载。想要自动下载的话就无法在后台下载,也无法控制同时下载的文件数。
本应用会将下载任务发送到IDM的主要下载队列中,你需要打开IDM,点击开始队列才能下载。
如果想控制同时下载的文件数,可以找到主要下载队列,右键编辑队列即可修改。
Windows CMD 中的显示错误问题(选项重复,无高亮显示)
Windows CMD缺少非常多的终端高级特性的支持,如需获得正确的显示效果,推荐使用 Windows Terminal + PowerShell。 其中 Windows Terminal 为 win11 的默认终端,win10 也可以直接从微软商店安装。
关于dl search/get的使用(作品,标签,文件的过滤细节)
命令执行过程中会进行如下的检查与过滤操作:
- 开始下载前:检查RJ号是否应该下载,如果本地文件不存在或者数据库无记录都会执行下载操作。可以通过
--force强制执行下载。 - 获取音声信息后:检查音声的tags,如果包含tag_filters里指定的tag,则跳过下载。可以通过
--ignore-tag来强制下载。 - 获取下载文件后:检查文件的名称和路径,如果不符合filename_filters里指定的规则,则跳过下载。可以通过
--ignore-name来强制下载。 - 添加下载任务时:如果检测到下载目录有同名文件,则跳过该文件的下载。可以通过
--replace来强制覆盖存在的文件。
多线程下载相关
由于网站对下载并无相关限制,因此没必要设置过高的线程数,一般来说单文件1~2即可。
对于 IDM 设置方法如下:
对于 aria2 修改配置 max-connection-per-server = 2 即可:
其他
感谢 https://asmr.one丰富了我的夜生活。 另外网站运营不易,请合理使用本工具。
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file asmrmanager-2.9.1.tar.gz.
File metadata
- Download URL: asmrmanager-2.9.1.tar.gz
- Upload date:
- Size: 80.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: pdm/2.26.6 CPython/3.14.3 Linux/6.18.6-arch1-1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
35b1a7f6f8637fcf6d1c44d5d1f0b3e0f5cc89fc3ae1ea939d500ccc9296f915
|
|
| MD5 |
c191f7c6cd0ea3547f692a1af1395c69
|
|
| BLAKE2b-256 |
6b8ad200e037a21fce18eddb615d660ab032166c855d7d00a98a495b94024e7d
|
File details
Details for the file asmrmanager-2.9.1-py3-none-any.whl.
File metadata
- Download URL: asmrmanager-2.9.1-py3-none-any.whl
- Upload date:
- Size: 98.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: pdm/2.26.6 CPython/3.14.3 Linux/6.18.6-arch1-1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
69cf28f8d9ad93a7b6fa0375204ab27dd4b6d252960f67c66034ac9f8d4287e3
|
|
| MD5 |
6562daeb3c48856f173757061e0b1094
|
|
| BLAKE2b-256 |
fdf982fa2955ea27e12df85fb2c3af46447848ce554ac63ff85225b30b6f9183
|