Im letzten Beitrag habe ich euch das kleine Programm yt-dlp vorgestellt. Diese Anleitung soll euch einen Weg aufzeigen, wie ihr die Downloads nun nicht mehr über die Kommandozeile beziehen müsst, sondern über eine Weboberfläche im Browser steuern und verwalten könnt. Dank dem Youtube-dl Web UI ist die Integration in wenigen Schritten auf eurem Linux Hostsystem erledigt.
Die Installation sollte unter allen gängigen Distributionen funktionieren. Wir beginnen in diesem kurzen Tutorial mit der Installation eines Webservers und der neusten Version von PHP. Anschließend installieren wir erneut das yt-dlp Programm. Hast du das bereits im vorherigen Artikel durchgeführt, kannst du diesen Schritt in der Regel überspringen, sofern es keine Probleme bei der Bedienung innerhalb der Weboberfläche gibt.
Anschließend werden wir die aktuellste Version vom Youtube-dl WebUI von Github herunterladen und ein Passwort für den Zugriff auf die Webseite generieren. Zum Abschluss erstellen wir noch eine Virtualhostdatei für Apache und deaktivieren die Default-Webseite, sodass ein Zugriff über die IP-Adresse möglich wird.
Sobald die Installation von yt-dlp und der darauf aufbauenden Weboberfläche mit dem Youtube-dl WebUI abgeschlossen ist, zeige ich dir im letzten Schritt dieser Anleitung, wie du Videos und Audios aus dem Internet herunterladen kannst. Aktuell werden Video-Downloads von über 1000 verschiedenen Webseiten und Videoportalen unterstützt. Der meiner Ansicht nach größte Vorteil bei der Benutzung des WebUI’s ist der, dass wir die Dateien direkt vom Server auf dem Client herunterladen können, ohne einen weiteren Dienst oder ein Netzprotokoll (NFS/SMB) implementieren zu müssen.
Installation von Apache und PHP für die Webseitenausgabe mit Youtube-dl WebUI
Die Befehle können auf einem Hostsystem mit Linux Debian direkt ausgeführt werden. Falls du eine Linux Ubuntu Distribution verwendest, führe die Befehle mit dem sudo-Prompt aus oder wechsle für die Implementierung auf den Root-Benutzer: sudo su root
Bevor du mit der Installation des Webservers und PHP beginnst, sollten die Paketquellen deiner Linux Distribution aktualisiert werden. Beginne mit dem folgenden Befehl.
Aktualisierungen durchführen:
apt update && apt upgrade -y
Apache und PHP auf deinem Server installieren:
apt install apache2 php -y
Damit alles ordnungsgemäß funktioniert, sollte die richtige Zeitzone in die dafür zuständige PHP-Datei eingepflegt werden. Dafür verwenden wir den beliebten Nano-Editor.
Öffne die Datei (php.ini) mit dem Nano-Editor und trage die Zeitzone ein:
nano /etc/php/8.1/apache2/php.ini
Hinweis: Der Pfad kann bei einer unterschiedlichen PHP-Version abweichen!
Verwende die Suchfunktion STRG+W und suche nach „timezone“. Trage die Zeitzone wie im Beispiel ersichtlich ein:
;date.timezone = Europe\/Berlin
Speichere die Änderungen ab (STRG +S) und verlasse den Editor wieder (STRG + X). Fahre im nächsten Abschnitt mit der Installation fort.
yt-dlp herunterladen und installieren
Jetzt laden wir die notwendige Software herunter und installieren das Programm yt-dlp auf dem Host. Das Programm basiert auf das freie Multimedia-Softwareprojekt FFmpeg.
FFmpeg für Linux installieren:
apt install ffmpeg -y
yt-dlp herunterladen:
curl -L https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp -o /usr/local/bin/yt-dlp
Notwendige Berechtigungen erteilen:
chmod a+rx /usr/local/bin/yt-dlp
Youtube-dl WebUI: Download und Implementierung der Weboberfläche für yt-dlp
Zunächst navigieren wir in das HTML-Verzeichnis unseres Webservers und laden die aktuellste Version von Youtube-dl WebUI herunter.
Navigiere in das WWW-Verzeichnis:
cd /var/www
Youtube-dl WebUI herunterladen und eine Kopie vom Template erstellen:
git clone https://github.com/timendum/Youtube-dl-WebUI.git
cd Youtube-dl-WebUI
cp config/config.php.TEMPLATE config/config.php
Berechtigungen festlegen:
chown -R www-data: downloads/ logs/
Passwort vergeben und einen Hashwert generieren:
echo -n DEIN-PASSWORT | md5sum | sed 's/ .*//'
Hinweis: Ergänze den Hashwert in der Zeile „DEIN-PASSWORT“ und trage ein von dir gewähltes Passwort ein. Das Passwort wird benötigt, um auf die Weboberfläche zugreifen zu können.
Kopiere den Hashwert, der nun in deinem Terminal ausgegeben wird (Beispiel):
1a5c6559x1023347ea1gla50zo291s72
Hinweis: Nicht diesen Hash übernehmen, sondern deinen! Ich muss es noch einmal erwähnen, ich kenne die Kommentare mit „Funktioniert nicht…“
Öffne die Konfigurationsdatei und trage den generierten Hashwert ein:
nano /var/www/Youtube-dl-WebUI/config/config.php
Entferne den Default Hashwert innerhalb dieser Datei und füge in die Zeile Password zwischen den Gänsefüßen deinen Hashwert ein.
"password" => "Hashwert",
Speichere die Änderungen (STRG+S) und verlasse die Datei wieder (STRG+X). Fahre im nächsten Schritt mit der abschließenden Einrichtung fort.
Eine Virtual Host-Datei für Apache anlegen und abschließende Konfiguration vornehmen
Erstelle eine Virtualhost-Datei für die Webseiten-Ausgabe und konfiguriere diese mit dem Nano-Editor wie angegeben.
Erstelle eine neue Datei mit Nano:
nano /etc/apache2/sites-available/ytdlp.conf
Kopiere die folgende Konfiguration und füge sie in die noch leere Datei ein:
<VirtualHost *:80>
ServerAdmin admin@mail.de
DocumentRoot /var/www/Youtube-dl-WebUI
ServerName example.com
ErrorLog /var/log/apache2/ytdlp-error.log
CustomLog /var/log/apache2/ytdlp-access.log combined
<Directory /var/www/Youtube-dl-WebUI/>
Options +FollowSymlinks
AllowOverride All
Require all granted
SetEnv HOME /var/www/Youtube-dl-WebUI
SetEnv HTTP_HOME /var/www/Youtube-dl-WebUI
<IfModule mod_dav.c>
Dav off
</IfModule>
</Directory>
</VirtualHost>
Hinweis: Wichtig ist die Einpflegung der eigenen E-Mail-Adresse in der Zeile „ServerAdmin“. Alternativ noch den ServerNamen (Domain), falls du ausschließlich über die IP-Adresse auf die Webanwendung zugreifen möchtest, reicht hier die Änderung der Mail-Adresse völlig aus.
Speichere die Änderungen ab (STRG +S) und verlasse die Datei wieder (STRG +X). Nun deaktivieren wir die Apache-Default-Landingpage mit dem folgenden Befehl.
Die Beispielseite von Apache deaktivieren:
a2dissite 000-default.conf
Berechtigungen auf das Webverzeichnis erteilen:
chmod -R 755 /var/www/Youtube-dl-WebUI
Aktiviere die Webseite:
a2ensite ytdlp.conf
Starte den Apache-Dienst jetzt neu, damit die Änderungen wirksam werden:
systemctl restart apache2
Herzlichen Glückwunsch. Die Installation von yt-dlp und die Web-Erweiterung „YouTube-dl WebUI“ ist jetzt vollständig abgeschlossen. Im nächsten Abschnitt folgen einige Beispiele, wie die Weboberfläche über den Browser bedient werden kann.
Die Weboberfläche über den Browser aufrufen und Medien herunterladen
Die Weboberfläche kann jetzt über die IP-Adresse deines Servers aufgerufen werden. Da wir einen Virtualhost angelegt haben und den Port 80 verwenden, reicht hierbei die Eingabe der IP-Adresse vom Hostsystem.
Webinterface: IP-Adresse über den Browser aufrufen (Beispiel-IP-Adresse):
http://172.18.193.251
Im Bereich URLs kannst du die Links zu den gewünschten Medien hineinkopieren. Wie bereits erwähnt, können Downloads nicht nur von der YouTube-Plattform, sondern von sämtlichen Internetseiten und Mediatheken erfolgen. Du kannst auch die Links von ganzen Playlisten einfügen, um z.B. alle Lieder oder Videos von einem bestimmten Kanal herunterzuladen. Letzteres eignet sich sehr gut für Backups eines auf YouTube geführten Kanals.
Medien, die erfolgreich auf deinem Server heruntergeladen wurden, werden im Bereich „List of available files“ aufgelistet. Klickst du mit dem Mauszeiger auf einen Download-Titel, lädst du die Datei vom Server über den Webbrowser auf deinem Client herunter. Deshalb ist es jetzt nicht mehr notwendig, Freigaben zwischen dem Client und den Download-Verzeichnis vom Server einzupflegen.