This is a fork of hydrati/libaria2-ts.
Node.js TypeScript library for aria2.
Introduction
libaria2 uses Aria2 JSON-RPC Interface to control it.
Features
- Multiple Transports
- Promise-based API
- Full-Typing, JSDoc
Getting Started
Install this package
npm install libaria2
Start aria2 with rpc, example
aria2c --enable-rpc --rpc-listen-all=true --rpc-allow-origin-all
Usage
Create client
import { WebSocket as Aria2WebSocket } from "libaria2-ts";
const aria2 = new Aria2WebSocket({
host: 'localhost',
port: 6800
});
import { Http as Aria2Http } from "libaria2-ts";
const aria2 = new Aria2Http({
host: 'localhost',
port: 6800
});
Example options
{
host: 'localhost',
port: 6800,
path: '/jsonrpc',
auth: {
secret: 'hello'
}
}
Methods
const version = await aria2.getVersion();
const resl = await aria2.system.multicall(
{ methodName: 'aria2.getVersion', params: [] },
{ methodName: 'aria2.addUri', params: ['http://example.com/qwer.zip'] }
);
aria2.on('aria2.onDownloadStart', (event: IAria2NotificationEvent) => {
console.log(`Download ${event.gid} Started`);
});
aria2.onceDownloadStart().then((event: IAria2NotificationEvent) => {
console.log(`Download ${event.gid} Started`);
});
await aria2.closeConnection();
More methods, see Aria2ClientBaseClient
License
MIT License © 2021 Oxygen
MIT License © 2023 XLor