Transmission

Door Mar2zz op woensdag 15 december 2010 10:15 - Reacties (9)
CategorieŽn: Addons, Downloaden, Transmission, Views: 8.062

Dit is de achtste post van een serie artikelen die beschrijven hoe je een dedicated mediacenter installeert. Het doel is om stapsgewijs uit te werken hoe je een pc kunt inzetten voor het kijken en verzamelen van allerlei soorten media.

Op verzoek wordt dit een blog over torrents downloaden. Ik doe zelf nauwelijks torrents, maar het is altijd handig bij de hand te hebben voor zaken die op Usenet niet te vinden zijn, al gebeurt dat zelden als je een Usenetprovider hebt met een flinke retentie (=bewaartijd). Disclaimer, het uploaden (=verspreiden) van auteursrechtelijk beschermde content is niet legaal. Je zult je uploadsnelheid dus in principe op 0 moeten zetten om legaal torrents te kunnen doen voor het verkrijgen van films en dergelijke (daar gaat het filesharingprincipe mee kapot natuurlijk).

Er zijn meerdere headless torrentprogramma's voor een linux-systeem die dus werken op serverinstalls en te beheren zijn vanaf een andere pc via een webinterface. Torrentflux, rTorrent en Transmission. Voor torrentflux moet er een complete php server opgezet worden. rTorrent is wat spartaans maar er zijn zeer veel GUI's voor beschikbaar. Transmission is het makkelijkst te installeren en ook flink uitbreidbaar met addons en te koppelen aan Firefox met een addon zoals ook Sabnzbdplus dat is. Deze gebruik ik daarom ook zelf.

Verder tipte Phyxion Deluge. Deze ziet er ook uitgebreid uit, hier staan installatiehandleidingen ervoor.

Korte geschiedenis Transmission
Transmission is een downloadprogramma dat eigenlijk onafhankelijk draait van een interface. De backend, libTransmission, de softwarekern die al het werk verricht, is crossplatform. Dit heeft als voordeel dat het op bijna alle systemen draait, en dat er voor elke ander systeem een eigen frontend geschreven kan worden. Een ander voordeel ervan is dat je de backend, de daemon, kan draaien op een ander systeem dan die waar de frontend, de GUI draait.

Transmission is al tijden de standaard voorgeinstalleerde torrentsoftware op veel desktoplinux-distributies. Het is stabiel en makkelijk in gebruik. Een nadeel van deze crossplatform-techniek is dat de nieuwe features van Transmission soms eerder op het ene platform verschijnt en pas later op andere. Staar je dus niet blind op features in de meuktracker, de nieuwste features zitten meestal in de Mac-desktopclient, de rest volgt later.

Transmission installeren
Op een desktop gaat de installatie heel anders. De GUI's en dergelijke zien er heel anders uit en de installatie gaat dan gewoon via download, uitvoeren of GUI-driven-installatiemanagers. Ik focus me op een headless install op een Ubuntu-server/XBMC Live omgeving. Daarom ga ik terminalcommands spammen. Deze kan je in principe gewoon kopiŽren en plakken in jouw terminal en dan uitvoeren.

Op je servermachine wil je alleen de daemon draaien. Een simpel commando:
sudo apt-get install transmission-daemon

Transmission wordt automatisch gestart, maar we willen onder andere voorwaarden gebruiken dus we stoppen deze service even. Doe:
/etc/init.d/transmission-daemon stop

Hierna ga je het startupscript aanpassen.
sudo nano /etc/init.d/transmission-daemon

Vervang "USER=debian-transmission" door "USER=jouwgebruikersnaam" en sluit af met CTRL+X en dan Y, Enter.
Vervolgens gaan we de configuratie verplaatsen naar de home-map. Zo kan je er makkelijker bij. Doe:
sudo nano /etc/default/transmission-daemon

Vervang "CONFIG_DIR="/var/lib/transmission-daemon/info" door "CONFIG_DIR="/home/gebruikersnaam/.transmission".

Nu kun je Transmission starten op de server met:
/etc/init.d/transmission-daemon start

Nu draait je daemon en zijn de mappen in je homefolder aangemaakt. Maar je moet nog zoveel aanpassen voordat je er echt wat mee kunt. Bovendien is het aan te raden om een blocklist te gebruiken die nieuwsgierige IP's weert en je wilt natuurlijk e.e.a. beveiligen. Je kunt de daemon beter weer stoppen, gaan configureren, en dan opnieuw starten.

Transmission configureren
Als het goed is heb je in je homefolder nu een map .transmission. Hierin staan de configuratiebestanden. De belangrijkste is settings.json. Die gaan we dus aanpassen. Ik geef mijn eigen als voorbeeld, gegevens kan je overnemen en toevoegen. Hier staan alle mogelijkheden voor de instellingen. Met een tekstverwerken kun je er zo mee aan de slag, dus ook met Nano in de terminal.

Een voorbeeld van een geconfigureerde settings.json:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
{
    "alt-speed-down": 50, 
    "alt-speed-enabled": false, 
    "alt-speed-time-begin": 540, 
    "alt-speed-time-day": 127, 
    "alt-speed-time-enabled": false, 
    "alt-speed-time-end": 1020, 
    "alt-speed-up": 50, 
    "bind-address-ipv4": "0.0.0.0", 
    "bind-address-ipv6": "::", 
    "blocklist-enabled": true, 
    "dht-enabled": true, 
    "download-dir": "/home/gebruiker/torrentdownloads", 
    "download-limit": 100, 
    "download-limit-enabled": 0,
    "encryption": 1, 
    "incomplete-dir": "home/gebruiker/.torrentdownloads_inc",
    "incomplete-dir-enabled": true,
    "lazy-bitfield-enabled": true,
    "max-peers-global": 200, 
    "message-level": 2, 
    "open-file-limit": 32, 
    "peer-limit-global": 240, 
    "peer-limit-per-torrent": 60, 
    "peer-port": 51413, 
    "peer-port-random-high": 65535, 
    "peer-port-random-low": 49152, 
    "peer-port-random-on-start": true,
    "peer-socket-tos": 0, 
    "pex-enabled": true, 
    "port-forwarding-enabled": true,
    "preallocation": 1, 
    "proxy": "", 
    "proxy-auth-enabled": false, 
    "proxy-auth-password": "", 
    "proxy-auth-username": "", 
    "proxy-enabled": false, 
    "proxy-port": 80, 
    "proxy-type": 0, 
    "ratio-limit": 1.0000, 
    "ratio-limit-enabled": true, 
    "rpc-authentication-required": true, 
    "rpc-bind-address": "0.0.0.0", 
    "rpc-enabled": true, 
    "rpc-password": "wachtwoord_webinterface", 
    "rpc-port": 9091, 
    "rpc-username": "gebruikersnaam_webinterface", 
    "rpc-whitelist": "127.0.0.1,192.168.1.*", 
    "rpc-whitelist-enabled": true,
    "speed-limit-down": 100, 
    "speed-limit-down-enabled": false, 
    "speed-limit-up": 0, 
    "speed-limit-up-enabled": true, 
    "umask": 0, 
    "upload-limit": 100, 
    "upload-limit-enabled": 0, 
    "upload-slots-per-torrent": 14
}



Downloaddir
Dit eerste stuk kun je aanpassen naar wens. Je geeft op waar de incomplete en complete torrents heen moeten. Als je torrents wilt koppelen aan Sickbeard, dan kun je de Downloaddir ook opgeven in Sickbeard, zodat sickbeard deze folder zal 'watchen' en tv-shows zal verwerken en verplaatsen. (het is verstandig om daar een andere downloadmap voor te gebruiken dan Sabnzbdplus gebruikt om conflicten te voorkomen als je sabtosickbeard.py als script gebruikt.

Je kunt eventueel meerdere daemons maken installeren van tranmission, bijvoorbeeld een speciale voor tv-shows en 1 voor andere downloads. Daarvoor moet je de scripts in init.d een andere naam geven en ook opgeven in de scripts zelf. Maar dat is wel omslachtig en bedenk dat je dan qua upload en aantal actieve torrents de configuratiefiles flink moet tunen, anders gaat het een zware wissel op je verbinding trekken.

Watchdir
Ik gebruik deze optie zelf niet, omdat ik de firefoxplugin Autotrans gebruikt. Als ik ergens een torrent download, dan gaat ie daarmee automatisch naar Transmission toe. Transmission kan wel torrent-files verwerken die in een bepaalde directory worden geplaatst. Hier kijkt Tranmission dan om de zoveel tijd of er een torrent aanwezig is. Je kan Sickbeard bijvoorbeeld zulke files laten plaatsen zodat de tvshows door Sickbeard aan Transmission worden gevoed. Daarvoor voeg je het volgende toe aan de settings.json, gewoon ergens tussenin, bijvoorbeeld voor het overzicht tussen de andere codes die over directory's gaan:
code:
1
2
"watch-dir": "/home/gebruiker/torrentbewaakmap",    
"watch-dir-enabled": true,



Peer-port
Hier geef je op welke poorten Tranmission gebruikt om te verbinden met de seeders en leechers van de torrent. Als je router UPnP gebruikt dan is het aan te raden om randomport @ start aan te zetten en portforwarding enabled op Ja. Het is veiliger om random ports te gebruiken en je hoeft verder niet te klooien in je router met poorten forwarden. Echter, als je server nooit herstart dan kan je ook vaste poorten nemen natuurlijk.

RPC-authentication
Dit gaat over de webinterfaces en/of frontends die tranmission aan mogen sturen. Je whitelist IP-adressen. Dat betekent dus dat als een ip niet genoemd staat, je met geen mogelijkheid op de webinterface komt met dat IP. IP-adressen kun je kommagescheiden ingeven en je kunt een * als wildcard gebruiken. In het voorbeeld hierboven mogen alle pc's in mijn thuisnetwerk en de pc waar transmission op staat gebruik maken van de webinterface voor aansturing. Gebruik deze settings voor je veiligheid. Er staat immers een poort open naar buiten toe en het nadeel van torrentprogramma's is dat je ip-adres aan de buitenwereld aan velen kenbaar wordt gemaakt, samen met de poort (de poort is wel een andere dan de webinterface). Dat is een security-risk, besef dat goed. Timmer het dus dicht met een sterk wachtwoord.

Blocklist
Voor een hogere anonimiteit wil je nieuwsgierige instanties en fileshare-fakers blokkeren. Daarvoor heb je een blocklist nodig. "blocklist-enabled": true, moet daarom op true staan. Vervolgens ga je een blocklist ophalen van internet en deze gooi je in je .transmission/blocklists. Om je op weg te helpen:
cd /home/gebruiker/.transmission/blocklists
wget http://rps8755.ovh.net/blocklists/level1.gz
gunzip level1.gz

Als je klaar bent met het instellen van de settings dan moet je de daemon weer starten. De nieuwe settings worden dan geladen.

De Interface
Nu ga je met een browser simpel naar http://computernaam:poort. En daar is de webinterface van tranmission. Leeg natuurlijk als er geen torrents draaien. Hier kan je ook nog wat dingetjes aanpassen, zoals de poort waarop trans draait, de downloadmap en dergelijke. Maar het is very basic, puur voor het monitoren van downloads.
Transmission default webinterface

In XBMC zit een ander frontend voor transmission, de addon Transmission. Deze is ook very basic, maar je kunt dus wel even snel kijken hoe het staat je met downloads vanaf de luie stoel.
XBMC Transmission add-on

Er zijn ook andere webinterface's beschikbaar, en ook addons. Transmission kan er dus ook nog heel anders uitzien dan default. Deze addons kun je hier vinden. Flexget is noemenswaardig voor de mensen die gebruik willen maken van een RSS-feed voor download-automation. Hier staat een uitgebreide installatiehandleiding, engelstalig, dat wel, maar duidelijk genoeg.

Afsluiting
As requested, een installatiehandleiding voor Transmission. Laat de terminal en settings.json je niet afschrikken. Eenmaal geconfigureerd is transmission een stabiele daemon die je nooit in de steek zal laten. Postprocessing kan eventueel met Sickbeard gedaan worden. Kijk daarvoor in de instellingen van Sickbeard. Het bijhouden van series met Sickbeard is volgens mij maar via 1 provider mogelijk, hun focus ligt immers op Usenet. Maar met Flexget kan je volgens mij erg ver komen als je een leuke RSS-feed ergens te pakken krijgt. Sickbeard zal files voor je postprocessen als het ze vind in de downloadmap.

Een feature die ik erg mis in transmission is het opgeven van verschillende eindlocaties, dat je zoals bij Sabnzbd een categorie mee kan geven en opgeeft waar die categorische download uiteindelijk moet belanden. Dit zit al wel in de meest recente mac-client. Het is een kwestie van tijd voordat dit verschijnt in de daemon.

Volgende: Ouderlijk toezicht 12-'10 Ouderlijk toezicht
Volgende: Een kleuter achter de pc 12-'10 Een kleuter achter de pc

Reacties


Door Tweakers user MAX3400, woensdag 15 december 2010 11:19

Fijn leesbaar stukje over hoe je transmission-daemon in de basis installeert.

Grote probleem vind ik nog steeds, met veel *nix-based torrentclients, dat de RSS-ondersteuning niet zit ingebakken en dat je als gebruiker aan de gang moet met FlexRSS. Daar is weer Python voor nodig met een aantal extra's en daarna mag je de hele bende configureren in een text-file die ook nog eens indent-gevoelig is.

Mocht je ideeen hebben hoe RSS op een *nix-based systeem simpeler, beter, overzichtelijker te configureren is (alhoewel dat mogelijk weinig met jouw blog te maken heeft of je het zelf niet gebruikt), lijkt het me erg zinvol om hier ook een stukje aan te wijden.

Succes met je blogs verder! :*)

/edit: ik vind http://code.google.com/p/transmisson-remote-gui/ een erg fijne web-interface voor transmission; aanzienlijk overzichtelijker ook dan de standaard interface.

[Reactie gewijzigd op woensdag 15 december 2010 11:23]


Door Tweakers user Phyxion, woensdag 15 december 2010 11:22

Je vergeet Deluge, deze heeft veel meer opties dan Transmission heeft :)

Door Tweakers user himlims_, woensdag 15 december 2010 11:24

draai deze ook, werkt ideaal

Door Tweakers user Mar2zz, woensdag 15 december 2010 11:27

Wat betreft de RSS mogelijkheid (en uiteindelijke downloadbestemmingen) vind ik dat ook jammer. Ik gebruik torrents eigenlijk zo weinig dat ik tranmission gepauzeerd start, dus hij doet helemaal niets als ik hem niet unpause.

Wat transmission betreft is het voor deze zaken wachten op nieuwere versies. Een andere mogelijkheid is natuurlijk om een windows-client te draaien met Wine. Ik geloof dat uTorrent prima draait in Wine, maar volgens mij heb je dan wel een probleem met USB-harddisks.

Een blog schrijven kost aardig wat tijd, ik was hier een uur aan kwijt. Omdat ik het zelf nauwelijks gebruik dat torrentnetwerk, ga ik er ook niet meer over schrijven, deze was al op 'verzoek' zeg maar. Sowieso vind ik dat Usenet hiervoor veel geschikter is en meestal een stuk sneller.

Wel kun je Sickbeard koppelen aan transmission, via de Watch-dir-optie in transmission en de 'Torrent Blackhole' onder Episode Downloads in Sickbeard. Zo kan je via een omweg toch series regelen zonder gedoe met torrents. Maar er zijn wel beperkingen (beperkte backlog en niet alle kwaliteitsopties worden aangeboden, er is maar 1 provider voor torrents in Sickbeard op dit moment.

@Phyxion:
Die kende ik helemaal niet! Ziet er inderdaad goed uit! Goeie tip, ik gooi 'm erbij.

[Reactie gewijzigd op woensdag 15 december 2010 11:29]


Door Tweakers user MAX3400, woensdag 15 december 2010 11:34

@Mar2zz: duidelijk verhaal; uTorrent draait wel onder Wine maar het backlog aan "fixme-meldingen" is aanzienlijk en net afhankelijk van de kernel-build en de Wine-build, loopt bijna elke gebruiker wel tegen wat zooi aan. Maar inderdaad, out-of-the-box, is uTorrent, naar mijn mening, nog steeds het meest snelle pakket om mee te werken zowel lokaal als via een web-interface en met geintegreerde RSS-ondersteuning.

Desondanks, ik ga het weekend nog wel eens vechten met FlexGet maar zowel voor Deluge als rTorrent heb ik het nog niet voor elkaar gekregen (ondanks dat beide daemons en dergelijke netjes op een headless server draaien).
Phyxion schreef op woensdag 15 december 2010 @ 11:22:
Je vergeet Deluge, deze heeft veel meer opties dan Transmission heeft :)
Mocht je toevallig eens zin hebben in een discussie, ik vind de lange scrape-tijden van Deluge heel erg vervelend alsmede de traagheid van de GTK-koppeling... DM wordt altijd op prijs gesteld. ;)

[Reactie gewijzigd op woensdag 15 december 2010 11:42]


Door Tweakers user Vanx, woensdag 15 december 2010 12:19

Mar2zz schreef op woensdag 15 december 2010 @ 11:27:
Wat betreft de RSS mogelijkheid (en uiteindelijke downloadbestemmingen) vind ik dat ook jammer. Ik gebruik torrents eigenlijk zo weinig dat ik tranmission gepauzeerd start, dus hij doet helemaal niets als ik hem niet unpause.

Wat transmission betreft is het voor deze zaken wachten op nieuwere versies.
De hoofddeveloper van Transmission heeft gezegd dat RSS er nooit in gaat komen. Dat zal altijd met een plug-in moeten.

Toevallig was ik de week voor je blogserie al bezig met een ubuntu server, heb door jou nog wat leuke ideeŽn opgedaan. Nu ik mijn boxje een beetje verprutst hebt, kan ik mooi opnieuw beginnen en de tips in jouw blogs meenemen. Bedankt! _/-\o_

Door Tweakers user Mar2zz, woensdag 15 december 2010 13:08

Dat wist ik niet, maar dat is geen probleem. Nu moet er alleen nog iemand een simpele RSS plugin schrijven en dan is dat ook klaar. Maar goed, FlexRSS is er al dus die kan mooi gebruikt worden. Bovendien is Sickbeard er ook!

Ik zag nog een crossplatform programma TED. Deze kan op een desktop gedraaid worden. Deze download torrents uit RSS feeds en slaat ze op in een map. Als dat de Watch-dir van Transmission is dan is dat ook klaar.

Eventueel zou je alles kunnen configureren, de hele map verplaatsen naar je server en daar automatisch laten starten. Alleen dan is het serie-toevoegen alweer wat lastiger.
http://ted.nu/download.php

[Reactie gewijzigd op woensdag 15 december 2010 13:46]


Door Tweakers user MAX3400, woensdag 15 december 2010 13:14

:) TED... Ziet er goed uit dus zal die vanavond zeker een gaan testen in combinatie met Transmission & Deluge; zie in de bijgeleverde Wiki niet meteen de optie om TED als daemon/resident te draaien maar daar moet wel omheen te komen zijn.

Door Tweakers user Mar2zz, woensdag 15 december 2010 13:40

Je moet wel java op je server installeren dan. Maar het is makkelijker om TED gewoon lokaal te draaien op een laptoppie ofzo. De watchdir van je torrentapplicaties gewoon ff sharen via samba ofzo en die mounten / koppelen aan je laptoppie. Aanwijzen aan Ted en klaar ben je.

Als daemon draaien waarschijnlijk zoiets:
sudo apt-get install openjdk-jre-6
(of openjdk-jre-6-headless, maar weet niet of dat gaat werken met Ted).
sudo nano /etc/init.d/ted.sh


code:
1
2
#!/bin/bash
java -jar /pad_naar_ted/ted.jar noTray localSave


sudo chmod a+x /etc/init.d/ted.sh
/etc/init.d/ted.sh start


Let erop dat je als je configureert op je desktop dat je dan ook met localSave moet starten zodat de hele configuratie bij ted.jar in de map komt, anders dan neem je die configuratie niet mee naar je server.

[Reactie gewijzigd op woensdag 15 december 2010 13:47]


Reageren is niet meer mogelijk