{"id":13572173,"url":"https://github.com/opennaslab/kubespider","last_synced_at":"2025-04-05T10:08:54.809Z","repository":{"id":65236362,"uuid":"573420887","full_name":"opennaslab/kubespider","owner":"opennaslab","description":"A global resource download orchestration system, build your home download center. ","archived":false,"fork":false,"pushed_at":"2025-02-10T03:33:15.000Z","size":118742,"stargazers_count":2116,"open_issues_count":37,"forks_count":121,"subscribers_count":15,"default_branch":"main","last_synced_at":"2025-03-28T19:21:37.931Z","etag":null,"topics":["aria2","asustor","automation","bt","chrome-extension","container","docker","download","kubespider","linux","magnet","nas","pt","python","qbittorrent","qnap","synology","terramaster","torrent","xunlei"],"latest_commit_sha":null,"homepage":"https://kubespider.netlify.app/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/opennaslab.png","metadata":{"files":{"readme":"README-CN.md","changelog":"CHANGELOG/template.md","contributing":"CONTRIBUTING-CN.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"ko_fi":"richardli1598"}},"created_at":"2022-12-02T12:28:02.000Z","updated_at":"2025-03-26T12:51:57.000Z","dependencies_parsed_at":"2023-02-15T16:15:57.749Z","dependency_job_id":"ab93be53-8ae8-418b-8f47-c379518a34a5","html_url":"https://github.com/opennaslab/kubespider","commit_stats":{"total_commits":520,"total_committers":44,"mean_commits":"11.818181818181818","dds":0.7480769230769231,"last_synced_commit":"0762661dce94ff62c0f7b315dcad241d12d96094"},"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opennaslab%2Fkubespider","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opennaslab%2Fkubespider/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opennaslab%2Fkubespider/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opennaslab%2Fkubespider/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/opennaslab","download_url":"https://codeload.github.com/opennaslab/kubespider/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247318744,"owners_count":20919484,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aria2","asustor","automation","bt","chrome-extension","container","docker","download","kubespider","linux","magnet","nas","pt","python","qbittorrent","qnap","synology","terramaster","torrent","xunlei"],"created_at":"2024-08-01T14:01:15.431Z","updated_at":"2025-04-05T10:08:54.782Z","avatar_url":"https://github.com/opennaslab.png","language":"Python","funding_links":["https://ko-fi.com/richardli1598"],"categories":["Python"],"sub_categories":[],"readme":"# Kubespider\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"./docs/images/logo.png\" width=\"200\" alt=\"Kubespider logo\"\u003e\n\u003c/p\u003e\n\n## 💥 一款全局资源编排下载系统\n![Python](https://img.shields.io/badge/python-3.11-blue)\n[![GitHub release](https://img.shields.io/github/v/release/opennaslab/kubespider.svg)](https://github.com/opennaslab/kubespider/releases)\n[![Total Downloads](https://img.shields.io/docker/pulls/cesign/kubespider.svg)](https://hub.docker.com/repository/docker/cesign/kubespider/general)\n[![GitHub stars](https://img.shields.io/github/stars/opennaslab/kubespider?style=plastic)](https://github.com/opennaslab/kubespider/stargazers)\n[![GitHub license](https://img.shields.io/github/license/opennaslab/kubespider?style=plastic)](https://github.com/opennaslab/kubespider/blob/master/LICENSE)\n\n[English](./README.md) | 简体中文\n\n[安装](#-安装) | [配置](#-特性列表) | [开发者群](https://t.me/opennaslab)\n\n我们是一群热爱生活的人，因兴趣和共同需求聚集在一起，利用空闲时间共同开发了 Kubespider。\n\n开发Kubespider的出发点是：局域网有一台空闲的服务器，想把它作为NAS，实现自动追剧下载，本地笔记本电脑触发下载，同时适配各种网站资源（Youtube、Bilibili等）和资源类型（电视剧、电影、音乐等）。\n\n之前接触到Terraform，惊讶于其通用性。Kubespider受到Terraform启发，旨在构建一个通用的下载编排系统，兼容各种资源平台和下载软件，兼容多种下载方式（请求触发，周期触发，更新触发），做资源下载最完美的统一解决方案。\n\n## ⛵ 系统架构\n为了实现一个通用的下载编排系统，需要适配各种资源网站和下载软件，所以将这两部分从核心功能中抽象出来：\n![image](./docs/images/kubespider-architecture.png)\n* `kubespider-core`：Kubespider核心模块，接受触发下载请求，调用资源提供器provider解析（最终会解析为标准模式，如用户输入bilibili博主地址，对应资源提供器输出mp4文件地址下载列表），最后调用下载提供器provider实现下载；此模块同时也会周期调用providers(如追剧provider)，下载增加的资源。\n* `source-provider`：各资源网站的提供器，接受通用资源地址输入，输出为标准资源地址url，如输入为某个bilibili博主的个人主页，输出为博主视频的所有mp4下载地址。配置文件在`.config/source_provider.yaml`。\n* `download-provider`：各下载软件的提供器，接收`kubespider-core`的请求Task，调用对应的服务实现下载。配置文件在`.config/download_provider.yaml`。\n\n## 💽 安装\n\nKubespider为了适配多种资源平台，提供了许多适配器，按你的需要开启或关闭这些适配器，配置文件在`.config`文件夹。\n\n### 前提\n\n1. 操作电脑和你的服务器在同一局域网。（暂时还没有试过不在同一局域网的安装）\n2. 服务器为linux系统。\n3. 服务器已安装Docker。\n\n### 默认安装（使用Docker部署）\n\n使用本项目预设脚本安装，可以自动化下载并配置所需项目。\n\n#### 1.下载代码库并且安装\n\n```sh\n# 定义如下环境变量指定安装路径\n# export KUBESPIDER_HOME=xxx\n# 如果镜像无法下载或速度较慢请设置此环境变量\n# export CHINA_MAINLAND=TRUE\ngit clone https://github.com/opennaslab/kubespider.git\ncd kubespider\nbash hack/install_kubespider.sh\n```\n输出类似：\n```sh\nroot@cesign [09:01:34 PM] [+22.0°C] [~/git/kubespider] [main *]\n-\u003e # bash hack/install_kubespider.sh\n _          _                     _     _\n| | ___   _| |__   ___  ___ _ __ (_) __| | ___ _ __\n| |/ / | | | '_ \\ / _ \\/ __| '_ \\| |/ _` |/ _ \\ '__|\n|   \u003c| |_| | |_) |  __/\\__ \\ |_) | | (_| |  __/ |\n|_|\\_\\\\__,_|_.__/ \\___||___/ .__/|_|\\__,_|\\___|_|\n                           |_|\n[INFO] Start to deploy with default configuration...\nb13820946878c4f00635e7fa3db64ea83506850ebb7d07ff77b62814db1d894a\nWARNING: Published ports are discarded when using host network mode\n9c0aa1059f1546a4f1a2accac445ce1389f1c400b96328f3e18c8af03f0bbc70\n[INFO] Deploy successful, check the information:\n*******************************************\nKubespider config path: /root/kubespider/.config\nDownload file path: /root/kubespider/nas/\nKubespider webhook address: http://\u003cserver_ip\u003e:3080\nAria2 server address: http://\u003cserver_ip\u003e:6800/jsonrpc, you can use any gui or webui to connect it\nAria2 default secret is:kubespider\n*******************************************\n```\n* 此步骤会安装`Kubespide`和`Aria2`资源下载程序，作为默认的下载器。\n* 安装后，默认**所有下载文件会存储到 `${HOME}/kubespider/nas`**。\n* 配置文件默认在 `${HOME}/kubespider/.config`。\n\n#### 2.连接aria2\n为了便于查看下载任务，需要下载Chrome插件AriNg:(1)如果你能访问外网，在chrome商店下载[AriaNg](https://chrome.google.com/webstore/detail/aria2-for-chrome/mpkodccbngfoacfalldjimigbofkhgjn)；(2)如果不能，在Crx4Chrome下载[AriaNg](https://www.crx4chrome.com/crx/85196/)。\n\n然后连接，插件配置如下(显示在脚本`install_kubespider.sh`执行输出最后)：\n![img](./docs/images/aria2-for-chrome-config-zh.jpg)\n\n当然，非必需的，你也可以使用桌面程序连接：[AriaNg](https://github.com/mayswind/AriaNg-Native/releases/)\n\n#### 3.安装Chrome插件\nKubespider结合chrome插件，能获得更好的体验。\n\n在步骤1下载代码后，打开Chrome，按如下步骤安装Kubespider Chrome插件并且设置(其中地址为`http://\u003cserver_ip\u003e:3080`):\n![img](./docs/images/kubespider-chrome-ext-install.gif)\n\n例如，我想要下载一个torrent的大文件，直接右键，发送给Kubespider即可([示例网站](https://ubuntu.com/download/alternative-downloads)):\n![img](./docs/images/kubespider-chrome-ext-usage.png)\n\n然后，使用aria2 Chrome插件查看下载任务，你可以看见下载任务已开始：\n![img](./docs/images/kubespider-chrome-ext-aria2.png)\n\n#### 4.更多（可选）\n* 安装Plex，多平台观看视频，[立即安装](./docs/zh/user_guide/plex_install_config/README.md)。\n* 安装Jellyfin，多平台观看视频，[立即安装](./docs/zh/user_guide/jellyfin_install_config/README.md)。\n* 安装百度网盘，后台下载，[立即安装](TODO)。\n\n### 其他安装方式\n\n* 使用docker-cli或者docker-compose部署，请参考 [link](./docs/zh/user_guide/install_with_command/README.md)。\n* 在群辉上安装Kubespider，请参考 [link](./docs/zh/user_guide/synology_installation/README.md)。\n* 在铁威马上安装Kubespider，请参考 [link](./docs/zh/user_guide/terramaster_installation/README.md)。\n* 在asustor上安装Kubespider，请参考 [link](./docs/zh/user_guide/asustor_installation/README.md)。\n* 在绿联NAS上安装Kubespider, 请参考 [link](./docs/zh/user_guide/ugreen_installation/README.md)。\n* 在Unraid NAS上安装Kubespider, 请参考 [link](./docs/zh/user_guide/unraid_installation/README.md)。\n\n## 📝 配置\n全局配置文件在`.config/kubespider.yaml`，安装后默认位于`${HOME}/kubespider/.config/kubespider.yaml`，各配置项解释如下：\n| 配置项                          | 是否必配 |                                                                    功能 |\n| :------------------------------ | -------: | ----------------------------------------------------------------------: |\n| `proxy`                         |       否 |                                   请求代理，如`http://192.168.1.5:1087` |\n| `auth_token`                    |       否 | 认证token，用于下载触发请求认证，如果需要公网访问可以配置，以增加安全性 |\n| `auto_change_download_provider` |       否 |                              控制是否为失败和长时阻塞任务切换下载提供器 |\n| `server_port`                   |       否 |                                                       提供API服务的端口 |\n\n## 🔧 特性列表\n### 资源提供器(按需配置)\n如前面所述，资源提供器用于对接各种资源网站，条件触发下载相关资源：\n| 资源提供器                 | 是否支持 |                            用途 |                                                                          配置手册 |\n| :------------------------- | -------: | ------------------------------: | --------------------------------------------------------------------------------: |\n| mikanani资源提供器         |       是 |                  全自动动漫追番 |                   [link](./docs/zh/user_guide/mikanani_source_provider/README.md) |\n| btbtt12资源提供器          |       是 |  实现链接触发下载，简化下载流程 |         [link](./docs/zh/user_guide/btbtt12_disposable_source_provider/README.md) |\n| meijutt资源提供器          |       是 |                      自动追美剧 |                    [link](./docs/zh/user_guide/meijutt_source_provider/README.md) |\n| YouTube资源提供器          |       是 |             触发下载YouTube视频 |                    [link](./docs/zh/user_guide/youtube_source_provider/README.md) |\n| Bilibili资源提供器         |       是 |            触发下载Bilibili视频 |                   [link](./docs/zh/user_guide/bilibili_source_provider/README.md) |\n| Bilibili博主追更资源提供器 |       是 |       自动下载B站博主更新的视频 | [link](./docs/zh/user_guide/bilibili_vlogger_subscribe_source_provider/README.md) |\n| 通用rss资源提供器          |       是 |             自动下载rss订阅资源 |                [link](./docs/zh/user_guide/general_rss_source_provider/README.md) |\n| 魔法资源提供器             |       是 | 触发下载通过xpath配置的内容资源 |                      [link](./docs/zh/user_guide/magic_source_provider/README.md) |\n| 抖音资源提供器             |       是 |        触发下载带水印的抖音视频 |                     [link](./docs/zh/user_guide/tiktok_source_provider/README.md) |\n| alist资源提供器            |       是 |    自动下载网盘中新增或更新文件 |                      [link](./docs/zh/user_guide/alist_source_provider/README.md) |\n| ANi资源提供器              |       是 |         自动下载ANi项目番剧资源 |                        [link](./docs/zh/user_guide/ani_source_provider/README.md) |\n\n\n### 下载提供器(按需配置)\n为了充分利用开源社区已有的下载软件(如YouTube有专门的下载软件)，目前支持如下下载软件：\n| 下载软件     | 是否支持 |                                                              配置手册 |\n| :----------- | -------: | --------------------------------------------------------------------: |\n| aria2        |       是 |        [link](./docs/zh/user_guide/aria2_download_provider/README.md) |\n| 迅雷         |       是 |         [link](./docs/zh/user_guide/thunder_install_config/README.md) |\n| qBittorrent  |       是 |  [link](./docs/zh/user_guide/qbittorrent_download_provider/README.md) |\n| you-get      |       是 |       [link](./docs/zh/user_guide/youget_download_provider/README.md) |\n| yt-dlp       |       是 |        [link](./docs/zh/user_guide/ytdlp_download_provider/README.md) |\n| transmission |       是 | [link](./docs/zh/user_guide/transmission_download_provider/README.md) |\n| yutto        |       是 |        [link](./docs/zh/user_guide/yutto_download_provider/README.md) |\n\n### 消息通知提供器(按需配置)\n为了充分利用开源社区已有的消息通知软件，目前支持如下消息通知软件：\n| 通知软件 | 是否支持 |                                                              配置手册 |\n| :------- | -------: | --------------------------------------------------------------------: |\n| Pushdeer |       是 | [link](./docs/zh/user_guide/pushdeer_notification_provider/README.md) |\n| Telegram |       是 | [link](./docs/zh/user_guide/telegram_notification_provider/README.md) |\n| QQ       |       是 |       [link](./docs/zh/user_guide/qq_notification_provider/README.md) |\n| Bark     |       是 |     [link](./docs/zh/user_guide/bark_notification_provider/README.md) |\n\n### 基本特性\n目前支持如下文件触发下载：\n| 下载类型             | 是否支持 |\n| :------------------- | -------: |\n| magnet               |       是 |\n| torrent              |       是 |\n| 通用文件(jpg, mp4等) |       是 |\n\n触发下载使用方法请查看 [link](./docs/zh/user_guide/trigger_download/README.md)。\n\n### 其他\n* 支持资源网站(NexusPHP框架)账号维护，请查看 [link](./docs/zh/user_guide/nexusphp_pt_provider/README.md)。\n\n## 🙋 常见问题\n\n我们列举了使用过程中[可能遇到的问题](docs/zh/faq.md)供您参考，也欢迎您记录您的问题和解决方案，共同完善文档。\n\n## 🤝 参与共建 [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat)](http://makeapullrequest.com)\n\n如果你有兴趣参与共同开发，欢迎 STAR/FORK/PR，Roadmap请查看 [link](./docs/zh/roadmap.md)。\n* 如何开发调试Kubespider，请看 [link](./CONTRIBUTING-CN.md)。\n* 如何编写资源网站的资源提供器，请看 [link](./docs/zh/contribute/implement_source_provider_cn.md)。\n* 如何编写下载软件的下载提供器，请看 [link](./docs/zh/contribute/implement_download_provider_cn.md)。\n* 如何开发调试chrome插件webhook，请看 [link](./docs/zh/contribute/develop_chrome_extension.md)。\n* 如何开发其他webhook触发工具, 请看 [link](./docs/zh/user_guide/api_docs/README.md)。\n\n如果你想更多的参与社区，欢迎加入我们的 [Telegram开发者群](https://t.me/opennaslab).\n\n## ❤️ 赞助\n感谢以下公司赞助开发工具，排名不分先后：\n\u003ctable\u003e\n  \u003cthead\u003e\n    \u003ctr\u003e\n      \u003cth align=\"center\" height=\"60px\"\u003e\n        \u003ca href=\"https://www.jetbrains.com/\"\u003e\n          \u003cimg align=\"center\" src=\"./docs/images/sponsor/jetbrains.png\" height=\"40px\"\u003e\u003cbr\u003e\n        \u003c/a\u003e\n      \u003c/th\u003e\n      \u003cth align=\"center\" height=\"60px\"\u003e\n        \u003ca href=\"https://www.synology.cn/\"\u003e\n          \u003cimg align=\"center\" src=\"./docs/images/sponsor/synology.png\" height=\"40px\"\u003e\u003cbr\u003e\n        \u003c/a\u003e\n      \u003c/th\u003e\n      \u003cth align=\"center\" height=\"60px\"\u003e\n        \u003ca href=\"https://www.terra-master.com/\"\u003e\n          \u003cimg align=\"center\" src=\"./docs/images/sponsor/terramaster.svg\" height=\"40px\"\u003e\u003cbr\u003e\n        \u003c/a\u003e\n      \u003c/th\u003e\n      \u003cth align=\"center\" height=\"60px\"\u003e\n        \u003ca href=\"https://www.qnap.com.cn/\"\u003e\n          \u003cimg align=\"center\" src=\"./docs/images/sponsor/qnap.svg\" height=\"40px\"\u003e\u003cbr\u003e\n        \u003c/a\u003e\n      \u003c/th\u003e\n      \u003cth align=\"center\" height=\"60px\"\u003e\n        \u003ca href=\"https://www.asustor.com/\"\u003e\n          \u003cimg align=\"center\" src=\"./docs/images/sponsor/asustor.png\" height=\"40px\"\u003e\u003cbr\u003e\n        \u003c/a\u003e\n      \u003c/th\u003e\n      \u003cth align=\"center\" height=\"60px\"\u003e\n        \u003ca href=\"https://www.ugnas.com/\"\u003e\n          \u003cimg align=\"center\" src=\"./docs/images/sponsor/ugnas.png\" height=\"40px\"\u003e\u003cbr\u003e\n        \u003c/a\u003e\n      \u003c/th\u003e\n      \u003cth align=\"center\" height=\"60px\"\u003e\n        \u003ca href=\"https://www.jonsbo.com/\"\u003e\n          \u003cimg align=\"center\" src=\"./docs/images/sponsor/jonsbo.png\" height=\"40px\"\u003e\u003cbr\u003e\n        \u003c/a\u003e\n      \u003c/th\u003e\n  \u003c/thead\u003e\n\u003c/table\u003e\n\n## 📃 免责声明\n一切下载及使用软件时均被视为已经仔细阅读并完全同意以下条款：\n* 软件仅供个人学习与交流使用，严禁用于不良用途。\n* 如有发现任何不良用途，软件作者有权撤销使用权。\n* 使用本软件所存在的风险将完全由其本人承担，软件作者不承担任何责任。\n* 软件注明之服务条款外，其它因不当使用本软件而导致的任何意外、疏忽、合约毁坏、诽谤、版权或其他知识产权侵犯及其所造成的任何损失，本软件作者概不负责，亦不承担任何法律责任。\n* 对于因不可抗力或因黑客攻击、通讯线路中断等不能控制的原因造成的服务中断或其他缺陷，导致用户不能正常使用，软件作者不承担任何责任，但将尽力减少因此给用户造成的损失或影响。\n* 本声明未涉及的问题请参见国家有关法律法规，当本声明与国家有关法律法规冲突时，以国家法律法规为准。\n* 本软件相关声明版权及其修改权、更新权和最终解释权均属软件作者所有。\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopennaslab%2Fkubespider","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopennaslab%2Fkubespider","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopennaslab%2Fkubespider/lists"}