# ASMR-Spider
本项目改编自 [DiheChen/go-asmr-spider](https://github.com/DiheChen/go-asmr-spider/tree/python)
<div>
<a href="./LICENSE">
<img src="https://img.shields.io/github/license/tkgs0/asmr-spider.svg" alt="License">
</a>
<a href="https://pypi.python.org/pypi/asmr-spider">
<img src="https://img.shields.io/pypi/v/asmr-spider.svg" alt="PyPI">
</a>
<a href="https://www.python.org">
<img src="https://img.shields.io/badge/python-3.9+-blue.svg" alt="Python">
</a>
</div>
一个简单的 <https://asmr.one> 爬虫
## TODO
- [x] 文件检查 (通过时长)
- [x] 错误文件重新下载
- [x] 支持更多格式 (通过 `ffmpeg` 和 `ffprobe`)
- [ ] ffmpeg的分析很慢, 寻找更好的方式
- [ ] 指定下载路径
- [ ] 下载文件中途停止记录
- [ ] 断点续传
- [ ] 下载自动分类配置
## 使用
不使用 `ffmpeg` 和 `ffprobe` 时仅支持 `mp3` `wav` `flac` 格式的音频分析
[ffmpeg Documentation](https://www.ffmpeg.org/)
[ffprobe Documentation](https://www.ffmpeg.org/ffprobe.html)
目前 `ffmpeg` 分析很慢, 平均一个文件3s以上
### 已知问题
未安装**ffmpeg**时可能会报缺少**libsndfile**等运行库,
仍需要另外安装相关依赖.
<details>
<summary>Install ffmpeg or libsndfile</summary>
<br>
**Debian/Ubuntu安装:**
```zsh
apt update && apt install ffmpeg
```
**或者**:
```zsh
apt update && apt install libsndfile1
```
<br>
**ArchLinux安装:**
```zsh
pacman -Syu ffmpeg
```
**或者**:
```zsh
pacman -Syu libsndfile
```
<br>
**Mac安装:**
```zsh
brew install ffmpeg
```
<br>
**Windows安装:**
请参考 [ffmpeg Documentation](https://www.ffmpeg.org/) 自行解决
</details>
### Install
```bash
pip install -U asmr-spider
```
### Run
```bash
#直接下载, 默认检查重复
asmr RJ373001 RJ385913
#或者
asmr RJ373001 RJ385913 -a check
# `asmr` 后面接RJ号, 可输入多个, 使用空格隔开
#禁用检查, 跳过已下载的文件
asmr RJ373001 RJ385913 -a nocheck
#强制重新下载所有文件
asmr RJ373001 RJ385913 -a redownload
```
配置文件 `asmr_spider.yml` 和 音频目录 `Voice` 保存在命令执行时所在的路径
<details>
<summary>Import</summary>
```python3
from asmr_spider import dload
async def demo():
args = ['RJ373001', 'RJ385913']
action = 'check' # 'check', 'redownload', 'nocheck'
await dload(args, action)
```
`asmr_spider.yml` 和 `Voice` 将保存在你自己的项目根路径
</details>
## 致谢
- 感谢 [地河酱](https://github.com/DiheChen), 地河酱yyds🤗
- 感谢 <https://asmr.one>, 现在每天都有不同的女孩子陪我睡觉。
Raw data
{
"_id": null,
"home_page": "https://github.com/tkgs0/asmr-spider",
"name": "asmr-spider",
"maintainer": null,
"docs_url": null,
"requires_python": "<4.0,>=3.9",
"maintainer_email": null,
"keywords": "ASMR, ASMR Downloader",
"author": "\u6708\u30f6\u702c",
"author_email": null,
"download_url": "https://files.pythonhosted.org/packages/fc/87/e1f1f743ec319a760a984849e1edb945fed426a126cabda135902ee2b2f9/asmr_spider-0.2.1.tar.gz",
"platform": null,
"description": "# ASMR-Spider\n\n\u672c\u9879\u76ee\u6539\u7f16\u81ea [DiheChen/go-asmr-spider](https://github.com/DiheChen/go-asmr-spider/tree/python)\n\n<div>\n\n<a href=\"./LICENSE\">\n <img src=\"https://img.shields.io/github/license/tkgs0/asmr-spider.svg\" alt=\"License\">\n</a>\n<a href=\"https://pypi.python.org/pypi/asmr-spider\">\n <img src=\"https://img.shields.io/pypi/v/asmr-spider.svg\" alt=\"PyPI\">\n</a>\n<a href=\"https://www.python.org\">\n <img src=\"https://img.shields.io/badge/python-3.9+-blue.svg\" alt=\"Python\">\n</a>\n\n</div>\n\n\u4e00\u4e2a\u7b80\u5355\u7684 <https://asmr.one> \u722c\u866b\n\n\n## TODO\n\n- [x] \u6587\u4ef6\u68c0\u67e5 (\u901a\u8fc7\u65f6\u957f)\n- [x] \u9519\u8bef\u6587\u4ef6\u91cd\u65b0\u4e0b\u8f7d\n- [x] \u652f\u6301\u66f4\u591a\u683c\u5f0f (\u901a\u8fc7 `ffmpeg` \u548c `ffprobe`)\n- [ ] ffmpeg\u7684\u5206\u6790\u5f88\u6162, \u5bfb\u627e\u66f4\u597d\u7684\u65b9\u5f0f\n- [ ] \u6307\u5b9a\u4e0b\u8f7d\u8def\u5f84\n- [ ] \u4e0b\u8f7d\u6587\u4ef6\u4e2d\u9014\u505c\u6b62\u8bb0\u5f55\n- [ ] \u65ad\u70b9\u7eed\u4f20\n- [ ] \u4e0b\u8f7d\u81ea\u52a8\u5206\u7c7b\u914d\u7f6e\n\n\n## \u4f7f\u7528\n\n\u4e0d\u4f7f\u7528 `ffmpeg` \u548c `ffprobe` \u65f6\u4ec5\u652f\u6301 `mp3` `wav` `flac` \u683c\u5f0f\u7684\u97f3\u9891\u5206\u6790 \n \n[ffmpeg Documentation](https://www.ffmpeg.org/) \n[ffprobe Documentation](https://www.ffmpeg.org/ffprobe.html) \n \n\u76ee\u524d `ffmpeg` \u5206\u6790\u5f88\u6162, \u5e73\u5747\u4e00\u4e2a\u6587\u4ef63s\u4ee5\u4e0a \n \n \n### \u5df2\u77e5\u95ee\u9898\n\n\u672a\u5b89\u88c5**ffmpeg**\u65f6\u53ef\u80fd\u4f1a\u62a5\u7f3a\u5c11**libsndfile**\u7b49\u8fd0\u884c\u5e93, \n\u4ecd\u9700\u8981\u53e6\u5916\u5b89\u88c5\u76f8\u5173\u4f9d\u8d56.\n \n\n<details>\n <summary>Install ffmpeg or libsndfile</summary>\n <br>\n\n **Debian/Ubuntu\u5b89\u88c5:**\n ```zsh\n apt update && apt install ffmpeg\n ```\n **\u6216\u8005**:\n ```zsh\n apt update && apt install libsndfile1\n ```\n\n <br>\n\n **ArchLinux\u5b89\u88c5:**\n ```zsh\n pacman -Syu ffmpeg\n ```\n **\u6216\u8005**:\n ```zsh\n pacman -Syu libsndfile\n ```\n\n <br>\n\n **Mac\u5b89\u88c5:**\n ```zsh\n brew install ffmpeg\n ```\n\n <br>\n\n **Windows\u5b89\u88c5:** \n \n \u8bf7\u53c2\u8003 [ffmpeg Documentation](https://www.ffmpeg.org/) \u81ea\u884c\u89e3\u51b3\n\n</details>\n\n\n### Install\n\n```bash\npip install -U asmr-spider\n```\n\n\n### Run\n\n```bash\n#\u76f4\u63a5\u4e0b\u8f7d, \u9ed8\u8ba4\u68c0\u67e5\u91cd\u590d\nasmr RJ373001 RJ385913\n#\u6216\u8005\nasmr RJ373001 RJ385913 -a check\n# `asmr` \u540e\u9762\u63a5RJ\u53f7, \u53ef\u8f93\u5165\u591a\u4e2a, \u4f7f\u7528\u7a7a\u683c\u9694\u5f00\n\n#\u7981\u7528\u68c0\u67e5, \u8df3\u8fc7\u5df2\u4e0b\u8f7d\u7684\u6587\u4ef6\nasmr RJ373001 RJ385913 -a nocheck\n\n#\u5f3a\u5236\u91cd\u65b0\u4e0b\u8f7d\u6240\u6709\u6587\u4ef6\nasmr RJ373001 RJ385913 -a redownload\n```\n\n\u914d\u7f6e\u6587\u4ef6 `asmr_spider.yml` \u548c \u97f3\u9891\u76ee\u5f55 `Voice` \u4fdd\u5b58\u5728\u547d\u4ee4\u6267\u884c\u65f6\u6240\u5728\u7684\u8def\u5f84\n\n<details>\n <summary>Import</summary>\n\n```python3\nfrom asmr_spider import dload\n\nasync def demo():\n args = ['RJ373001', 'RJ385913']\n action = 'check' # 'check', 'redownload', 'nocheck'\n await dload(args, action)\n```\n\n`asmr_spider.yml` \u548c `Voice` \u5c06\u4fdd\u5b58\u5728\u4f60\u81ea\u5df1\u7684\u9879\u76ee\u6839\u8def\u5f84\n\n</details>\n\n## \u81f4\u8c22\n\n- \u611f\u8c22 [\u5730\u6cb3\u9171](https://github.com/DiheChen), \u5730\u6cb3\u9171yyds\ud83e\udd17\n- \u611f\u8c22 <https://asmr.one>, \u73b0\u5728\u6bcf\u5929\u90fd\u6709\u4e0d\u540c\u7684\u5973\u5b69\u5b50\u966a\u6211\u7761\u89c9\u3002\n\n",
"bugtrack_url": null,
"license": "GPL-3.0",
"summary": "asmr.one \u97f3\u58f0\u4e0b\u8f7d\u5668",
"version": "0.2.1",
"project_urls": {
"Homepage": "https://github.com/tkgs0/asmr-spider",
"Repository": "https://github.com/tkgs0/asmr-spider"
},
"split_keywords": [
"asmr",
" asmr downloader"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "d49d9c2bde4e20dd4d8f18b59463e85db6ab776ebf77c5bc3734323b680f1e57",
"md5": "573aa920e0e9a5ca6e6490f7956d3de7",
"sha256": "e32c21cac6e2c9e9f3958d62be805561f3825499bd7f5efc5618199a15701d9d"
},
"downloads": -1,
"filename": "asmr_spider-0.2.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "573aa920e0e9a5ca6e6490f7956d3de7",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<4.0,>=3.9",
"size": 19889,
"upload_time": "2024-04-08T04:01:45",
"upload_time_iso_8601": "2024-04-08T04:01:45.988361Z",
"url": "https://files.pythonhosted.org/packages/d4/9d/9c2bde4e20dd4d8f18b59463e85db6ab776ebf77c5bc3734323b680f1e57/asmr_spider-0.2.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "fc87e1f1f743ec319a760a984849e1edb945fed426a126cabda135902ee2b2f9",
"md5": "1fe0c1073300e16062cda57877db1983",
"sha256": "5963957beb90d4fd3d2eb4aa7367ad93f8732f1510607e7130a87c739f70b0d6"
},
"downloads": -1,
"filename": "asmr_spider-0.2.1.tar.gz",
"has_sig": false,
"md5_digest": "1fe0c1073300e16062cda57877db1983",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<4.0,>=3.9",
"size": 18499,
"upload_time": "2024-04-08T04:01:49",
"upload_time_iso_8601": "2024-04-08T04:01:49.139661Z",
"url": "https://files.pythonhosted.org/packages/fc/87/e1f1f743ec319a760a984849e1edb945fed426a126cabda135902ee2b2f9/asmr_spider-0.2.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-04-08 04:01:49",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "tkgs0",
"github_project": "asmr-spider",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [],
"lcname": "asmr-spider"
}