## RSS Downloader
---
一个 RSS 订阅下载工具,配合 Aria2 / qBittorrent / Transmission 自动追番。
### 1. 安装 🚀
需要 Python 环境。
```bash
# pipx
pipx install rss-downloader
# or uv
uv tool install rss-downloader
# or pip (不推荐)
pip install --user rss-downloader
```
更新
```bash
# pipx
pipx upgrade rss-downloader
# uv
uv tool upgrade rss-downloader
# pip
pip install --user --upgrade rss-downloader
```
### 2. 配置 ⚙️
首次运行时,程序会自动在标准配置目录下创建一个 `config.yaml` 文件(一般在 `~/.config/rss-downloader/`)。您也可以手动创建它。
```yaml
# config.yaml
log:
  level: INFO # 日志级别 (DEBUG, INFO, WARNING, ERROR)
web:
  enabled: true # 是否启用 Web 界面
  host: 127.0.0.1
  port: 8000
  interval_hours: 6 # RSS 自动更新间隔(小时)
# Aria2 配置 (如果不用可以留空或删除)
aria2:
  rpc: http://localhost:6800/jsonrpc
  secret: your_secret
  dir: null # aira2 下载位置
# qBittorrent 配置 (如果不用可以留空或删除)
qbittorrent:
  host: http://localhost:8080
  username: admin
  password: password
# Transmission 配置 (如果不用可以留空或删除)
transmission:
  host: http://localhost:9091/
  username: admin
  password: password
# Webhook 配置 (如果不用可以留空或删除)
webhooks:
  - name: Discord
    url: https://discord.com/api/webhooks/xxx
    enabled: true
# RSS 源配置列表
feeds:
  - name: Mikan
    url: https://mikanime.tv/RSS/MyBangumi?token=
    include:    # 匹配规则
      - chs
      - 简体
    exclude:     # 排除规则
      - 720p
      - \d{2,}\s*[-|~]\s*\d{2,}
    downloader: aria2 # or qbittorrent / transmission
  - name: Nyaa
    url: https://nyaa.si/?page=rss&q=
```
### 3. 运行 🎉
配置 `web.enabled` 为 `true`,或者指定运行参数 `-w`,启动 Web 界面和后台服务,浏览器访问 `http://127.0.0.1:8000`。
```bash
> rss-downloader
options:
  -h, --help  显示帮助信息
  -w, --web   启动 Web 界面
```


            
         
        Raw data
        
            {
    "_id": null,
    "home_page": null,
    "name": "rss-downloader",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.10",
    "maintainer_email": null,
    "keywords": "rss, downloader, aria2, qbittorrent, automation, anime",
    "author": "GrassSand",
    "author_email": "GrassSand <grasssand@users.noreply.github.com>",
    "download_url": "https://files.pythonhosted.org/packages/a2/a8/633096633b25614982f899286b7823bea88eb338b0831bab7f909570bf18/rss_downloader-0.3.0.tar.gz",
    "platform": null,
    "description": "## RSS Downloader\n---\n\n\u4e00\u4e2a RSS \u8ba2\u9605\u4e0b\u8f7d\u5de5\u5177\uff0c\u914d\u5408 Aria2 / qBittorrent / Transmission \u81ea\u52a8\u8ffd\u756a\u3002\n\n\n### 1. \u5b89\u88c5 \ud83d\ude80\n\n\u9700\u8981 Python \u73af\u5883\u3002\n```bash\n# pipx\npipx install rss-downloader\n# or uv\nuv tool install rss-downloader\n# or pip (\u4e0d\u63a8\u8350)\npip install --user rss-downloader\n```\n\n\u66f4\u65b0\n```bash\n# pipx\npipx upgrade rss-downloader\n# uv\nuv tool upgrade rss-downloader\n# pip\npip install --user --upgrade rss-downloader\n```\n\n### 2. \u914d\u7f6e \u2699\ufe0f\n\n\u9996\u6b21\u8fd0\u884c\u65f6\uff0c\u7a0b\u5e8f\u4f1a\u81ea\u52a8\u5728\u6807\u51c6\u914d\u7f6e\u76ee\u5f55\u4e0b\u521b\u5efa\u4e00\u4e2a `config.yaml` \u6587\u4ef6\uff08\u4e00\u822c\u5728 `~/.config/rss-downloader/`\uff09\u3002\u60a8\u4e5f\u53ef\u4ee5\u624b\u52a8\u521b\u5efa\u5b83\u3002\n\n```yaml\n# config.yaml\nlog:\n  level: INFO # \u65e5\u5fd7\u7ea7\u522b (DEBUG, INFO, WARNING, ERROR)\n\nweb:\n  enabled: true # \u662f\u5426\u542f\u7528 Web \u754c\u9762\n  host: 127.0.0.1\n  port: 8000\n  interval_hours: 6 # RSS \u81ea\u52a8\u66f4\u65b0\u95f4\u9694\uff08\u5c0f\u65f6\uff09\n\n# Aria2 \u914d\u7f6e (\u5982\u679c\u4e0d\u7528\u53ef\u4ee5\u7559\u7a7a\u6216\u5220\u9664)\naria2:\n  rpc: http://localhost:6800/jsonrpc\n  secret: your_secret\n  dir: null # aira2 \u4e0b\u8f7d\u4f4d\u7f6e\n\n# qBittorrent \u914d\u7f6e (\u5982\u679c\u4e0d\u7528\u53ef\u4ee5\u7559\u7a7a\u6216\u5220\u9664)\nqbittorrent:\n  host: http://localhost:8080\n  username: admin\n  password: password\n\n# Transmission \u914d\u7f6e (\u5982\u679c\u4e0d\u7528\u53ef\u4ee5\u7559\u7a7a\u6216\u5220\u9664)\ntransmission:\n  host: http://localhost:9091/\n  username: admin\n  password: password\n\n# Webhook \u914d\u7f6e (\u5982\u679c\u4e0d\u7528\u53ef\u4ee5\u7559\u7a7a\u6216\u5220\u9664)\nwebhooks:\n  - name: Discord\n    url: https://discord.com/api/webhooks/xxx\n    enabled: true\n\n# RSS \u6e90\u914d\u7f6e\u5217\u8868\nfeeds:\n  - name: Mikan\n    url: https://mikanime.tv/RSS/MyBangumi?token=\n    include:    # \u5339\u914d\u89c4\u5219\n      - chs\n      - \u7b80\u4f53\n    exclude:     # \u6392\u9664\u89c4\u5219\n      - 720p\n      - \\d{2,}\\s*[-|~]\\s*\\d{2,}\n    downloader: aria2 # or qbittorrent / transmission\n\n  - name: Nyaa\n    url: https://nyaa.si/?page=rss&q=\n```\n\n\n### 3. \u8fd0\u884c \ud83c\udf89\n\n\u914d\u7f6e `web.enabled` \u4e3a `true`\uff0c\u6216\u8005\u6307\u5b9a\u8fd0\u884c\u53c2\u6570 `-w`\uff0c\u542f\u52a8 Web \u754c\u9762\u548c\u540e\u53f0\u670d\u52a1\uff0c\u6d4f\u89c8\u5668\u8bbf\u95ee `http://127.0.0.1:8000`\u3002\n\n```bash\n> rss-downloader\noptions:\n  -h, --help  \u663e\u793a\u5e2e\u52a9\u4fe1\u606f\n  -w, --web   \u542f\u52a8 Web \u754c\u9762\n```\n\n\n\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "A Simple RSS Download Manager",
    "version": "0.3.0",
    "project_urls": {
        "Bug Tracker": "https://github.com/grasssand/rss-downloader/issues",
        "Homepage": "https://github.com/grasssand/rss-downloader",
        "Repository": "https://github.com/grasssand/rss-downloader"
    },
    "split_keywords": [
        "rss",
        " downloader",
        " aria2",
        " qbittorrent",
        " automation",
        " anime"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "0547f69af9d835027239bac3797bd5b0c27b21760788051a5c11ec4b16f2f8fe",
                "md5": "6ce455376d0f9d6bf8a6e02753a56082",
                "sha256": "2f857276f2813cd781bfde4cd051673748916a61c32737ff4d094e332b4bd46a"
            },
            "downloads": -1,
            "filename": "rss_downloader-0.3.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "6ce455376d0f9d6bf8a6e02753a56082",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.10",
            "size": 46165,
            "upload_time": "2025-10-11T14:49:13",
            "upload_time_iso_8601": "2025-10-11T14:49:13.068682Z",
            "url": "https://files.pythonhosted.org/packages/05/47/f69af9d835027239bac3797bd5b0c27b21760788051a5c11ec4b16f2f8fe/rss_downloader-0.3.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "a2a8633096633b25614982f899286b7823bea88eb338b0831bab7f909570bf18",
                "md5": "6160dd1a0b46f6505f8f1c75cf12b1e0",
                "sha256": "796d1db04ebe3ac5eddc7b99e30358763667dbe5678c825c34bd4769183f0e6b"
            },
            "downloads": -1,
            "filename": "rss_downloader-0.3.0.tar.gz",
            "has_sig": false,
            "md5_digest": "6160dd1a0b46f6505f8f1c75cf12b1e0",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.10",
            "size": 37458,
            "upload_time": "2025-10-11T14:49:14",
            "upload_time_iso_8601": "2025-10-11T14:49:14.637464Z",
            "url": "https://files.pythonhosted.org/packages/a2/a8/633096633b25614982f899286b7823bea88eb338b0831bab7f909570bf18/rss_downloader-0.3.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-10-11 14:49:14",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "grasssand",
    "github_project": "rss-downloader",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "rss-downloader"
}