Kubespider
A global resource download orchestration system, build your home download center.
Install / Use
/learn @opennaslab/KubespiderREADME
Kubespider
<p align="center"> <img src="./docs/images/logo.png" width="200" alt="Kubespider logo"> </p>💥 A global resource download orchestration system
English | 简体中文
Installation | Configuration | Developer Group
We are a community of individuals who share a passion for life and have come together based on shared interests and needs. In our free time, we collaborated to develop Kubespider.
Kubespider is developed to utilize an idle server in a local area network as a NAS, enabling automatic downloads of TV series, triggering downloads from a local laptop, and adapting to various websites such as YouTube and BiliBili, as well as different types of resources such as TV series, movies, music and more.
After being exposed to Terraform and its great versatility, we were inspired to create Kubespider as a general download orchestration system that is compatible with various resource platforms and download software. Kubespider supports multiple download methods, including request trigger, cycle trigger, and update trigger, making it the most comprehensive and unified solution for resource downloads.
⛵ System architecture
To realize a general download orchestration system, it is necessary to adapt various resource websites and download software, so these two parts are abstracted from the core functions:

kubespider-core: The core module of Kubespider accepts the trigger download request, calls the resource provider for resolution (it will eventually be resolved into a standard mode, such as the user enters the bilibili blogger address, and the corresponding resource provider outputs the mp4 file address download list), and finally calls the download provider to implement Download; this module will also periodically call providers (such as TV series provider) to download additional resources.source-provider:The provider of each resource website accepts input of general resource addresses, and outputs standard resource address URLs, such as the personal homepage of a YouTuber, and outputs all mp4 download addresses of the blogger’s videos. The configuration file is in.config/source_provider.yaml.download-provider:The provider of each download software receives the request task fromkubespider-core, and calls the corresponding service to realize the download. The configuration file is in.config/download_provider.yaml.
💽 Installation
To adapt to multiple resource platforms, Kubespider provides many adapters. Enable or disable these adapters according to your needs. The configuration file is in the .config folder.
Premise
- The operating computer and your server are on the same LAN. (I haven't tried the installation not in the same LAN yet)
- The server is a Linux system.
- Docker is installed on the server.
Default installation (with docker)
Installing with built-in command can download and config anything needed automatically.
1.Download the repository and install
# Define KUBESPIDER_HOME to specify the installation path
# export KUBESPIDER_HOME=xxx
git clone https://github.com/opennaslab/kubespider.git
cd kubespider
bash hack/install_kubespider.sh
Output like:
root@cesign [09:01:34 PM] [+22.0°C] [~/git/kubespider] [main *]
-> # bash hack/install_kubespider.sh
_ _ _ _
| | ___ _| |__ ___ ___ _ __ (_) __| | ___ _ __
| |/ / | | | '_ \ / _ \/ __| '_ \| |/ _` |/ _ \ '__|
| <| |_| | |_) | __/\__ \ |_) | | (_| | __/ |
|_|\_\\__,_|_.__/ \___||___/ .__/|_|\__,_|\___|_|
|_|
[INFO] Start to deploy with default configuration...
b13820946878c4f00635e7fa3db64ea83506850ebb7d07ff77b62814db1d894a
9c0aa1059f1546a4f1a2accac445ce1389f1c400b96328f3e18c8af03f0bbc70
[INFO] Deploy successful, check the information:
*******************************************
Kubespider config path: /root/kubespider/.config/
Download file path: /root/kubespider/nas/
Kubespider webhook address: http://<server_ip>:3080
Aria2 server address: http://<server_ip>:6800/jsonrpc, you can use any gui or webui to connect it
Aria2 default secret is:kubespider
*******************************************
- This step will install
KubespideandAria2resource downloader as the default downloader. - After installation, all downloaded files will be stored in
${HOME}/kubespider/nasby default. - Configuration files are located in
${HOME}/kubespider/.configby default.
2.Connect to aria2
For checking the download tasks on your server conveniently, go to the chrome store to download AriaNg plugin.
Then connect, the plugin configuration is as follows(shown at the end of the script install_kubespider.sh execution output):

Of course, it is not necessary, you can also use the desktop program to connect: AriaNg
3.Install Chrome plugin
With Kubespider Chrome plugin, you can get a better experience.
After step 1 has been done, open chrome, then install Kubespider plugin, and configure it as follows(The server address is http://<server_ip>:3080):

For example, if I want to download a torrent-related file, I can right click and send the download task to Kubespider(demo website):

Then with aria2 chrome plugin, you can see the download task starts:

4.More (Optional)
- Install Plex, watch videos on multiple platforms, install now.
- Install Jellyfin, watch videos on multiple platforms, install now.
- Install Baidu network disk(only in china), download in the background, install now.
Other installation
- Install with docker-cli/docker-compose command mannually, see link.
- Install Kubespider on Synology, see link.
- Install Kubespider on TerraMaster, see link.
- Install Kubespider on Asustor, see link.
- Install Kubespider on UGreen NAS, see link.
- Install Kubespider on Unraid NAS, see link.
📝 Configuration
The global configuration file is located at .config/kubespider.yaml, which is installed under ${HOME}/kubespider/.config/kubespider.yaml by default. The description of each configuration item is as follows:
| Configuration Item | Required | Function |
| :------------------------------ | -------: | ----------------------------------------------------------------------------------------------------------------------------------------------------------------: |
| proxy | No | The request proxy, such as http://192.168.1.5:1087 |
| auth_token | No | Authentication token, used for authentication when triggering download requests. If public network access is required, it can be configured to increase security. |
| auto_change_download_provider | No | Swith to control whether to change download provoider for failed/long-time-pending download tasks automatically. |
| server_port | No | The port used to provider API service |
🔧 Feature list
Source provider(Configured as needed)
As mentioned before, the source provider is used to adapt to different websites, and download related resources based on the conditions: | Source Provider | Support | Purpose | Configuration | | :----------------------------------------- | ------: | -------------------------------------------------------------------------: | --------------------------------------------------------------------------------: | | mikanani source provider | Yes | Automatically download updated anime | link | | btbtt12 source provider | Yes | Trigger download resource in btbtt12 website | [link](./docs/zh/user_guide/btbtt12_d
Related Skills
imsg
339.1kiMessage/SMS CLI for listing chats, history, and sending messages via Messages.app.
node-connect
339.1kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
oracle
339.1kBest practices for using the oracle CLI (prompt + file bundling, engines, sessions, and file attachment patterns).
lobster
339.1kLobster Lobster executes multi-step workflows with approval checkpoints. Use it when: - User wants a repeatable automation (triage, monitor, sync) - Actions need human approval before executing (s
