Transmission
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.

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.

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.
12-'10 Ouderlijk toezicht
12-'10 Een kleuter achter de pc
Reacties
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]
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]
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).
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.Phyxion schreef op woensdag 15 december 2010 @ 11:22:
Je vergeet Deluge, deze heeft veel meer opties dan Transmission heeft
[Reactie gewijzigd op woensdag 15 december 2010 11:42]
De hoofddeveloper van Transmission heeft gezegd dat RSS er nooit in gaat komen. Dat zal altijd met een plug-in moeten.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.
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!
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]
Als daemon draaien waarschijnlijk zoiets:
sudo apt-get install openjdk-jre-6
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]
Om te kunnen reageren moet je ingelogd zijn. Via deze link kun je inloggen als je al geregistreerd bent. Indien je nog geen account hebt kun je er hier één aanmaken.