12. Dezember 2011

plowshare aria2c filesonic linux console

Heute mal was für die Freunde einer aufgeräumten Linux-Console. Wer unter Linux von Datendiensten downloaden möchte, der steht ein wenig auf dem Schlauch, sofern er ein Linuxsystem betreibt, das nur die grundlegende Software aufweist, also ohne Klickibunti-Benutzerschnittstelle.

Die Linux-Console ist das Werkzeug der Wahl, auf der im Prinzip alle anfallenden Arbeiten erledigt werden können, ohne daß eine Sichtkontrolle vorhanden ist.

Das Coding-Projekt "Plowshare" hat sich dem leidigen Thema des downloads von Datendiensten angenommen, scheitert in seiner Benutzerfreundlichkeit jedoch an dem strikten NoGo und geht-sowieso nicht, aria2c als download-Werkzeug der Wahl einzubinden. Plowshare kann von verschiedenen Diensten mit Captcha oder als registrierter Benutzer downloaden, bindet dazu jedoch curlein. Eine schlechte Wahl, da curl nur einen einzigen stream gleichzeitig lutschen kann, so daß man zuweilen auf der Datenautobahn wie auf einen Trampelpfad vorankommt. Schlecht.

Die auf der Projektseite aufgeführte Lösung zur Einbíndung von aria2c funktioniert ebenfalls nicht. Warum, das soll hier nicht interessieren. Man muß nur wissen, daß es unterschiedliche Authentifizierungsverfahren gibt, das klassische http-basic (Benutzername/Paßwort) oder via Cookie.

Greife ich als beliebiges Beispiel filesonic raus, da die mit cookies arbeiten, und stelle für jene, die eine solche Lösung suchen, einen Weg dar, wie man ganz auf plowshare verzichten kann, dafür aria2c mit seiner vollen Bandbreite ausnutzt. Statt etlicher Dateien und Kilobyte reduziert sich das dann auf einen Dreizeiler.

Die erste Zeile ist vollkommen uninteressant. In der zweiten wird curl benutzt, um sich bei filesonic einzuloggen und das Authentifizierungscookie abzuholen, das lokal in der Datei cookie.txt gespeichert wird. In der dritten Zeile schließlich schnorchelt aria2c das cookie ab, um damit eine beliebige URL auf filesonic abzuholen und lokal zwischenzulagern.

Das sollte genauso bei anderen Datenhalden funktionieren, die auf Cookies zur Authentifizierung setzen.

Das Ergebnis der Geschichte? Plowshare bleibt außen vor.

#!/bin/bash
curl --cookie-jar cookie.txt --data "email=username&password=userpass" --data "redirect=%2F" http://www.filesonic.com/user/login
aria2c -c -j 10 -s 10 --load-cookies "cookie.txt" http://www.filesonic.com/file/1234567890


Wie die Namen der variablen zur Übermittlung von username und password lauten, muß man im Quelltext der jeweiligen Login-Seite eruieren. Andere Datenhalden, andere Variablen in den Formularen.

Im vorgestellten Fall funktioniert übrigens der Schalter -i files.txt nicht, da jede Download-Adresse eine eigen Authentifizierung benötigt. Da muß man sich was für einfallen lassen, was mir wurscht ist. Macht euch selber einen Kopf.

Im Browser wäre dies das gleiche Verfahren. Man meldet sich auf der Seite an. Das Cookie wird im Browser abgespeichert. Wenn man nun eine Datei laden will, wird dieses Cookie zur Authentifizierung genutzt. Hat den Nachteil, daß man nur mit dem Browser und damit ebenfalls sehr trödelig downlädt.