laravel-aria2

RPC client

The fluent builder covers most applications. When you need a single JSON-RPC call, use the client:

use Dasundev\LaravelAria2\Facades\Aria2;
 
$gid = Aria2::client()->addUri(['https://example.com/file.iso'], ['dir' => '/tmp']);
$status = Aria2::client()->tellStatus($gid);
$files = Aria2::client()->getFiles($gid);
Aria2::client()->forceRemove($gid);
Aria2::client()->removeDownloadResult($gid);

addUri()

Start a download and return its GID.

$gid = Aria2::client()->addUri(
['https://example.com/file.iso'],
['dir' => '/tmp', 'continue' => 'true'],
);

tellStatus()

Get the current status. Pass an optional list of keys to limit the payload.

Aria2::client()->tellStatus($gid, ['status', 'completedLength', 'totalLength']);

getFiles()

List files belonging to a download.

Aria2::client()->getFiles($gid);

forceRemove()

Force-remove a download from aria2.

Aria2::client()->forceRemove($gid);

removeDownloadResult()

Remove a completed result from aria2 memory. The RPC result must be OK.

Aria2::client()->removeDownloadResult($gid);

call()

Call an arbitrary JSON-RPC method. The RPC secret is prepended automatically.

Aria2::client()->call('aria2.getGlobalStat');
Aria2::client()->call('aria2.tellActive');

When ARIA2_RPC_SECRET (or aria2.rpc.secret) is set, every request prepends token:<secret> as the first JSON-RPC parameter.

HTTP failures, malformed JSON, JSON-RPC error objects, and missing result fields throw RpcException. The exception exposes method() and payload() for diagnostics.

The client talks to a daemon that is already running. It does not install aria2c, write aria2.conf, or register Artisan commands such as aria2:start. Keep process supervision in the host application.