- chalblog - https://blog.is-a-geek.org -

JDownloader headless mit Web-Interface auf Ubuntu Server 10.04

JDownloader headless mit Web-Interface auf Ubuntu Server 10.04 [1]

Hat man keinen Premium-Account der verschiedenen DDL Anbieter kann es durch die Wartezeiten etwas länger dauern, bis man die gewünschten Files geladen hat. Daher bietet sich ein Server, der im Dauerbetrieb läuft dazu an diese Aufgabe zu übernehmen. Da jedoch die meisten Server ohne Monitor auskommen müssen und Jdownloader über ein Web-Interface bedienbar sein muss hier die Intallationsanleitung.

Der beste Weg dies zu bewerkstelligen ist, den virtuellen Framebuffer Xvfb (fake X-Server) zu benutzen.

Vorbereitung des Servers

Folgende Pakete werden benötigt:


sudo apt-get install screen xvfb x11vnc sun-java6-jre

Nun überprüfen wir ob die korrekte Java-Version auch benutzt wird:

sudo update-alternatives --list java

Der Befehl sollte folgendes liefern:

/usr/lib/jvm/java-6-sun/jre/bin/java

Erscheint hier etwas anderes muss mit folgender Eingabe die zu benutzende Java festgelegt werden.

sudo update-alternatives --config java

Auf einem anderen Rechner benötigen wir noch einen VNC-Client wie z.B. UltraVNC [2]

Jetzt haben wir alle Vorbereitungen getroffen und können mit der Installation von JDownloader beginnen.

JDownloader Installation

Nachdem ich schon einige Howtos gelesen habe ist mir aufgefallen, dass in jedem empfohlen wurde den JDownloader in “/usr/local/jdownloader” zu installieren.
Somit erstellen wir das Verzeichnis jdownloader und wechseln in dieses.

sudo mkdir /usr/local/jdownloader
cd /usr/local/jdownloader

Dort laden wir dann das Installscript “jd.sh” herunter und geben Berechtigung zum Ausführen.

sudo wget http://212.117.163.148/jd.sh
sudo chmod u+x jd.sh

In der “jd.sh” ist es noch notwendig den Installationspfad anzupassen.

sudo nano /usr/local/jdownloader/jd.sh

(Nano Hilfe: Speichern Strg+O, Verlassen Strg+X)
Diese zwei Zeilen:

.
#JD Installation folder (adjust to your needs)
JDDIR=~/.jd
.

ersetzen wir durch diese:

.
#JD Installation folder (adjust to your needs)
JDDIR=/usr/local/jdownloader/
.

Da man zur Installation schon einen X-Framebuffer braucht müssen wir diesen vorher starten. Man könnte den Xvfb im Hintergrund starten, was nicht wirklich empfehlenswert ist, oder man verwendet Screen.

Kurze Anleitung für Screen

Um Screen zu starten und die Session zu benennen gebt folgendes in die Konsole ein:

screen -S SESSIONNAME

Ob eine Screen-Session noch läuft kann man mit ls herausfinden:

screen -ls

Hat man die SSH-Session beendet und will nachher wieder auf diese Screen-Session gibt man folgendes ein:

sudo screen -r SESSIONNAME

Screen komplett beenden ;):

sudo killall screen

Um in Screen in den Kommandomodus zu kommen muss man “STRG+a” drücken. Danach lässt man die Tasten wieder los und kann den Buchstaben für das gewünschte Kommando eingeben.

Kommandos:
c Erstellt ein neues Screen-Fenster.
k Schließt das aktuelle Fenster (oder “exit” ins aktuelle Fenster eingeben).
Zeigt alle erstellten Fenster an.
A Benennen des aktuellen Fensters.
d Mit diesem Befehl kommt man aus Screen heraus, beendet es jedoch nicht.

Achtung die Kommandos sind Case-Sensitive also achtet auf Gross- und Kleinschreibung! Dieses kleine Tutorial sollte mehr als ausreichend für unser Vorhaben sein.

JDownloader Installation – Fortsetzung

Zur weiteren Installation brauchen wir 3 Screen-Fenster, deshalb öffnen wir jetzt eine Screen-Session mit dem Namen JD.

screen -S JD

Da wir noch 2 zusätliche Fenster brauchen werden geben wir zwei mal “Strg+a” dann “c” ein. Mit “Strg+a” und “” überprüfen wir ob wir jetzt drei Fenster zur Verfügung haben.

Num Name
  0 Xvfb
  1 JD
  2 x11vnc

Hier sieht man, dass ich die Fenster auch umbenannt habe um sie nicht zu verwechseln (“Strg+a” und “A“).

Jetzt benutzen wir das erste Fenster um Xvfb zu starten.

sudo Xvfb :1

Dann starten wir im Fenster “JD” die Installation in Verwendung des zuvor erstellten Display 1.

sudo DISPLAY=:1 /usr/local/jdownloader/jd.sh

Im Fenster “x11vnc” starten wir den Namensgeber um uns mit UltraVNC darauf verbinden zu können. Achtung: Sobald man disconnected wird auch der x11vnc beendet und man muss in wieder starten.

x11vnc -display :1 -xkb

Danach verbinden wir uns mit UltaVNC oder einem anderen Client auf den Server um die Installationsabfragen zu beantworten.

Ist der Download der Installationsdateien abgeschlossen (Bild 1) kann man die Sprache und den Downloadordner wählen (Bild 2). Flashgot wollen wir, da wir keinen Firefox installiert haben nicht mitinstallieren (Bild 3).

Ubuntu Headless Jdownloader 1 [3]

Bild 1

Ubuntu Headless Jdownloader 1 [4]

Bild 2

Ubuntu Headless Jdownloader 3 [5]

Bild 3

Ubuntu Headless Jdownloader 4 [6]

Bild 4

JDownloader Einstellungen

Bevor wir mit dem Downloaden losstarten können müssen wir noch diverse Einstellungen machen. Um das Webinterface zu aktivieren klickt man in der Karteikarte “Settings” auf “Extensions” und aktiviert dort “JD Webinterface” (Bild 5).

Jetzt erscheint in den Extensions der Punkt “JD Webinterface” in dem wir für dieses ebenfalls noch Einstellungen vornehmen müssen (Bild 6).

Als erstes sollte man das Passwort und den Benutzernamen ändern und ebenso das Auto-Refresh deaktivieren oder zumindest auf ca 30 Sekunden setzen (Bild 7). Hat man sehr viele Dateien oder ruft das Webinterface über das Internet auf kann die Seite sonst nicht aufgebaut werden bevor der nächste Reload ansteht und einmal “F5” zur Aktualisierung istv nicht viel Aufwand ;).

Eine der wichtigsten Einstellungen wenn man JDownloader wirklich nur über Webinterface betreiben will ist das Akzeptieren aller “Terms of Service”. Ansonsten muss man sich jedes mal per VNC verbinden und für jeden Anbieter die TOS annehmen damit der Download beginnt.

Um dies zu tun klickt man auf “Hosts” und setzt bei jedem DDL-Provider in der Spalte “Accepted” einen Haken (Bild 8).

Ubuntu Headless Jdownloader 5 [7]

Bild 5

Ubuntu Headless Jdownloader 6 [8]

Bild 6

Ubuntu Headless Jdownloader 7 [9]

Bild 7

Ubuntu Headless Jdownloader 8 [10]

Bild 8

Jetzt nur noch einen Neustart des JDownloaders mit Hilfe des Interfaces (Bild 9) und wir können versuchen das Webinterface zu erreichen (Bild 10). Das Webinterface kann man wie folgt aufrufen (Standardport: 8765):

http://serverip:port

Zu beachten ist, dass der JDownloader erst zum Laden startet wenn man den Play-Button klickt (Bild 10) und Downloads die Hinzugefügt wurden müssen in der Karteikarte “Add Links” erst zur Downloadliste geadded werden (Bild 11).

Ubuntu Headless Jdownloader 9 [11]

Bild 9

Ubuntu Headless Jdownloader 10 [12]

Bild 10

Ubuntu Headless Jdownloader 11 [13]

Bild 11

JDownloader starten

Um JDownloader zu starten muss Xvfb laufen, auch wenn in vielen anderen Howtos das Gegenteil behauptet wird. Zum Starten sollte man also zwei Screenfenster öffen:

1. Fenster:

sudo Xvfb :1

2. Fenster:

sudo DISPLAY=:1 /usr/local/jdownloader/jd.sh

Jdownloader Autostart

Da mich einige Leser um eine Lösung für den automatischen Start beim Boot gebeten haben, gibt es hier ein Beispielscript, welches ihr in das “init.d” Verzeichnis kopieren könnt. Es werden Xvfb und der Jdownloader in Screen-Sessions gestartet.

jdownloader [14]

#!/bin/sh
#
JDSTART="sudo DISPLAY=:1 /usr/local/jdownloader/jd.sh"
XVFBSTART="sudo Xvfb :1"
case "$1" in
 start)
  echo "Starting Xvfb ..."
  screen -AmdS xvfb $XVFBSTART
  echo "Starting Jdownloader ..."
  screen -AmdS jdownloader $JDSTART
  echo "done ..."
 ;;
 stop)
  echo "Terminating jDownloader screen-session ..."
  sudo screen -S jdownloader -X quit
  echo "Terminating xvfb screen-session ..."
  sudo screen -S xvfb -X quit
  echo "done ..."
 ;;
 remote)
  echo "Starting x11"
  sudo x11vnc -display :1 -xkb
 ;;
 *)
  echo "Usage: /etc/init.d/jdownloader {start|stop|remote}"
  exit 1
 ;;
esac

exit 0

Script in den “init.d”-Ordner laden und Rechte anpassen:

cd /etc/init.d
sudo wget http://blog.is-a-geek.org/downloads/jdownloader
sudo chmod +x /etc/init.d/jdownloader

Mögliche Befehle sind “start” (erstellt die Screen-Sessions mit Xvfb und jDownloader), “stop” (terminiert diese) und “remote” (startet x11vnc).

sudo service jdownloader start|stop|remote

jDownloader automatisch beim Boot starten:

sudo update-rc.d jdownloader defaults

Will man diesen nicht mehr beim Neustart ausführen:

sudo update-rc.d jdownloader remove

Zusätzliche Anmerkungen

Um das Webinterface von aussen erreichen zu können muss das Port am Router weitergeleitet werden (Standardport: 8765).
JDownloader sollte nur bedingt auf Produktivserver eingesetzt werden, da bei hoher Downloadanzahl auch schnell der Swap gefüllt werden kann.

Viel Spaß mit JDownloader und vielen Dank an die Entwickler!