| Package Data | |
|---|---|
| Maintainer Username: | vohof | 
| Maintainer Contact: | david@jcyr.us (Cyrus David) | 
| Package Create Date: | 2013-07-21 | 
| Package Last Update: | 2019-01-01 | 
| Language: | PHP | 
| License: | Unknown | 
| Last Refreshed: | 2025-10-26 03:18:02 | 
| Package Statistics | |
|---|---|
| Total Downloads: | 1,713 | 
| Monthly Downloads: | 0 | 
| Daily Downloads: | 0 | 
| Total Stars: | 18 | 
| Total Watchers: | 4 | 
| Total Forks: | 2 | 
| Total Open Issues: | 4 | 
A fully-tested PHP JSON-RPC client library for Transmission
Install through Composer:
{
  "require": {
    "vohof/transmission": "1.0.*"
  }
}
$config = array(
    'host'     => 'http://127.0.0.1',
    'endpoint' => '/transmission/rpc',
    'username' => 'foo', // Optional
    'password' => 'bar' // Optional
);
$transmission = new Vohof\Transmission($config);
// Add a torrent
$torrent = $transmission->add('magnet:?xt=urn:btih:335990d615594b9be409ccfeb95864e24ec702c7&dn=Ubuntu+12.10+Quantal+Quetzal+%2832+bits%29&tr=udp%3A%2F%2Ftracker.openbittorrent.com%3A80&tr=udp%3A%2F%2Ftracker.publicbt.com%3A80&tr=udp%3A%2F%2Ftracker.istole.it%3A6969&tr=udp%3A%2F%2Ftracker.ccc.de%3A80&tr=udp%3A%2F%2Fopen.demonii.com%3A1337');
// or
$content = base64_encode(file_get_contents('MyTorrent.torrent'));
$torrent = $transmission->add($content, true);
// Stop a torrent
$transmission->action('stop', $torrent['id']);
// Limit download speed
$transmission->set($torrent['id'], array('downloadLimit' => 100));
// Get torrent size
$transmission->get($torrent['id'], array('totalSize'));
// Remove torrent
$transmission->remove($torrent['id']););
// Remove torrent and its files
$transmission->remove($torrent['id'], true);
// Stats
$transmission->getStats();
See the tests for more usage
Add the service provider and alias the package in config/app.php
'providers' => array(
    ...
    'Vohof\TransmissionServiceProvider'
),
'aliases' => array(
    ...
    'Transmission' => 'Vohof\TransmissionFacade'
)
Publish config and modify app/config/packages/transmission/config.php
$ php artisan config:publish transmission --path=vendor/vohof/transmission/src/config
Use the library:
Transmission::add($base64EncodedTorrent, true);
Torrent::stats();
The library uses Guzzle as it's HTTP Client but you can choose to swap it with something else if you want (eg. Buzz)
class BuzzClient extends \Vohof\ClientAbstract {
    ...
}
$transmission = new Vohof\Transmission($config, new BuzzClient);
See LICENSE