Youtube-Videos mit Elinks und Mplayer anschauen

Wer kennt nicht das Problem. Man möchte schnell mal ein interessantes Video auf Youtube anschauen, aber der Browser braucht wieder eine gefühlte Ewigkeit um es abzuspielen. Die CPU ächzt, das Surfen wird zur Qual, Browser abgestürzt, Moment mal! Sieht man von "ab und zu" auftretenden Sicherheitslücken in Flash ab und der Tatsache, dass man mit Flash- und Super-Cookies recht leicht das Benutzerverhalten erfassen kann, ohne dass die meisten Nutzer überhaupt etwas davon ahnen, bringt Flash einige wirklich hübsche visuelle Animationen auf den Bildschirm.
Fraglich bleibt nur, wozu man eigentlich Flash benötigt, wenn man nur ein Video im Netz anschauen möchte. Zwar ist HTML5 unterwegs, doch wer schon heute zum Videos anschauen auf Flash verzichten möchte, dem kann mit Hilfe eines simplen Textbrowsers namens Elinks und dem Multimedia-Alleskönner Mplayer geholfen werden.
Die Grundidee ist einfach. Ausführlich vorgestellt wurde sie Anfang des Jahres in Englisch von Urukrama. Gesucht ist eine Anwendung, welche schnell Suchergebnisse von Youtube zurückliefert, die URL des Videos auflöst und per Tastendruck diese an eine weitere Multimediaanwendung zur Darstellung übergibt. Dabei kommen drei verschiedene Programme zum Einsatz.

  1. youtube-dl
  2. Youtube-dl ist ein Skript, welches Videos von youtube direkt von der Kommandozeile herunterladen kann.

  3. elinks
  4. Ein hervorragender Textbrowser mit einer Vielzahl an Optionen.

  5. mplayer
  6. DER Multimediaabspieler unter Linux. Mplayer ohne GUI ist die ressourcenschonendste Möglichkeit Videos anzuschauen.

15.01.2011 Update:
Seit dem 10.12.2010 hat youtube.com neue Sicherheitsvorkehrungen getroffen. Cookies dienen nun der Identifikation des Clients. Die notwendigen Veränderungen habe ich in die Skripte eingetragen. Alles funktioniert wieder wie beabsichtigt 😉
Vielen Dank an diesen Post auf multimedia.cx für die Lösung.
Als Alternative für youtube-dl bietet sich auch clive an.

utube-Skript erstellen

Als erstes muss ein ausführbares Skript erstellt werden, welches mit Hilfe von youtube-dl die youtube Video-URL auflöst und diese an mplayer übergibt, damit es direkt abgespielt werden kann. Das Skript kann z.B. utube heißen und muss mit chmod+x utube ausführbar gemacht werden. Danach wird es nach /usr/local/bin oder /usr/bin kopiert, damit es systemweit auf der Konsole ausgeführt werden kann. Neu seit dem 10.12.2010 ist die Notwendigkeit ein Cookie abzuspeichern, mit welchem man sich beim youtube Server identifiziert.
 

#!/bin/sh
COOKIE_FILE=/var/tmp/youtube-dl-cookies.txt
mplayer -cookies -cookies-file ${COOKIE_FILE} $(youtube-dl -g --cookies ${COOKIE_FILE} $1) > /dev/null 2>&1

Elinks konfigurieren

In Elinks die Taste "O" drücken und der Optionsmanager öffnet sich. Unter Dokument(e)>URI Deligierung einen neuen Eintrag hinzufügen und ihm z.B. den Namen youtube geben. Als Wert trägt man utube %c ein. Alles sichern und den Optionsmanager schließen.
Anschließend mit der Taste "K" den Tastenbelegungsmanager öffnen. In der Haupttabelle bis zur Option "Die URI des aktuellen Links an ein externes Programm übergeben" scrollen. An dieser Stelle lässt sich der Name der Taste definieren, z.B. y, mit der das utube Skript aufgerufen wird, sobald man auf youtube.com einen Videolink ausgewählt hat. Damit sind die Videolinks gemeint, die nach einer Suchanfrage auf youtube erscheinen. Es genügt also mit der Tastatur auf einen dieser Links zu steuern und y zu drücken, wonach das Skript seine Arbeit verrichtet und mplayer sofort mit dem Abspielen beginnt.
Um ein Video abspielen zu können, wenn man sich direkt auf der Videoseite befindet, muss im Tastenbelegungsmanager die Option "Die URI der aktuellen Ansicht an ein externes Programm übergeben" mit einer Taste oder Tastenkombination belegt sein. Ich habe hier Alt-y gewählt.

Youtube-Videos suchen leicht gemacht

Elinks bietet die Möglichkeit mit Hilfe eines sogenannten smart prefix eine Zeichenfolge durch eine kürzere zu ersetzen. Innerhalb von elinks öffnet sich mit der Taste "G" die Adresszeile des Textbrowsers. Hier könnte man z.B. youtube.com eingeben und landet dann auf der Seite des Videoportals. Von dort aus lässt sich über das Suchfeld nach Videos suchen, mit der Tastatur auf einen Videolink steuern und mit y das Video abspielen. Einfacher geht es, wenn man direkt in der Adresszeile nach den Videos suchen kann. Die direkte URL für Suchanfragen bei youtube lautet:

http://www.youtube.com/results?search_query=

Die Zeichenkette nach dem = wird von youtube ausgewertet und man erhält eine Liste von Videos zurück. Um nicht jedesmal erneut diese URL eingeben zu müssen, lässt sich diese in elinks zu einem einzelnen Buchstaben, einem smart prefix, umdefinieren.
Dazu muss man im Optionsmanager unter Protokolle>URI Veränderung>Komplexe Präfixe ein neues Zeichen hinzufügen und als Wert die oben genannte Such-URL eintragen und den Parameter %s anfügen. Ich habe hier ebenfalls y gewählt. Drückt man nun in elinks "G" und gibt

y beethoven mondscheinsonate

ein, erhält man eine Liste mit Videos zu Beethovens berühmter Sonate zurück und kann diese mit der Tastatur auswählen und durch Drücken von y abspielen, ohne den Umweg über youtube.com und das Suchfeld gehen zu müssen.

Youtube-Videos herunterladen

Natürlich funktioniert auch der direkte Download eines Videos. Folgendes Miniskript ebenfalls in /usr/local/bin/ abspeichern und wie oben beschrieben mit dem Optionsmanager in Elinks z.B. unter dem Namen "download" verfügbar machen. Danach erscheint ein weiterer Menüeintrag "download" sobald die Taste "y" bei ausgewähltem youtube Link gedrückt wird.

#!/bin/sh
cd ~/Videos/youtube/
youtube-dl -t $1 > /dev/null 2>&1

Zum Schluss

Es gibt zwar tolle Addons für den Firefox, mit denen sich Videos leicht von youtube herunterladen und dann mit einem Player der Wahl abspielen lassen. Auch bietet z.B. Totem mit Plugins die Möglichkeit Videos direkt aus dieser Multimediaanwendung abzuspielen.
Wer aber eine sehr effiziente und leichtgewichtige Lösung sucht um Youtube Videos auf nahezu jedem Rechner abzuspielen, ohne sie vorher herunterzuladen, sollte youtube-dl, elinks und mplayer eine Chance geben. Die oben genannte Lösung funktionierte sogar auf meinem Toshiba Laptop mit 64 MB RAM und 300 MHz CPU. Wer schafft es außer mplayer youtube Videos im Framebuffer abspielen zu können? 😛

Meine elinks.conf

elinks.conf.tar

17 Replies to “Youtube-Videos mit Elinks und Mplayer anschauen”

  1. Wie übergibst Du denn dem mplayer das er im framebuffer abspielen soll?
    Habe es gerade auf meinen TP 600 getestet (baugleich mit Deinem, etwas mehr Speicher).
    mit „-vo fbdev“ im utube script hängt das Bild dem Ton doch etwas hinterher…

  2. Also bei meinem Framebuffer-Setup auf dem Thinkpad kann ich die Einstellungen genauso wie hier beschrieben beibehalten, muss also nicht -vo fbdev extra übergeben. Mplayer findet automatisch die richtigen Werte.
    Das Problem liegt an dem Videoformat, welches Youtube mittlerweile benutzt. Youtube-dl wählt automatisch das beste Format, also webm in höchster Auflösung. Damit kann natürlich der Pentium II nichts mitanfangen. 🙂
    Ich benutze dann immer die -f Option und wähle ein weniger anspruchsvolleres Format. Mit -f worst wird immer das schlechteste heruntergeladen.
    Das Youtube-Video der algorithmischen Konsolensymphonie lässt sich problemlos auf dem Thinkpad 600 abspielen, was aber hauptsächlich an dem statischen Video liegt. 🙂
    Bei anderen Videos kommt der Prozessor nicht mehr hinterher.

  3. Ich habe diesen Trick auf meinem Raspberry versucht, aber bei mir erscheint immer ‚Permission denied‘. Da ich mir nicht erklären kann, welche Rechte da fehlen (chmod u+x hab ich ja gemacht), wollte ich mal fragen, ob hier jemand die Lösung parat hat.

  4. Welche Schritte hast du genau ausgeführt? Welches Programm gibt „Permission denied“ zurück? Wenn es Elinks ist, dann schau auch mal, ob dein normaler Benutzer im Besitz de „utube-Skripts“ in /usr/local/bin ist.

  5. Ausgeführt habe ich alle und es ist auch in /usr/local/bin.
    Der Fehler kommt, wenn ich auch einen Youtube-Link gehe und y drücke. Es steht dann: sh: 1: ‚utube: Permission denied‘ da.

  6. Ich habe meine elinks.conf hochgeladen und diesem Artikel hinzugefügt. Vielleicht funktioniert es ja damit. Möglicherweise ist /usr/local/bin bei dir auch nicht im $PATH. Schau doch mal was passiert, wenn du es nach /usr/bin/ kopierst. Das Skript müsste dann auch vom Terminal aus aufrufbar sein.
    Die Dateirechte müssen so aussehen: -rwxr–r–

  7. Ich hab jetzt mal ein wenig daran rumgespielt und einfach allen erlaubt dieses Skript zu nutzen und nun geht es auch. Ehrlich gesagt habe ich aber keine Ahnung woran es liegt, dass es nicht funktioniert (die Rechte waren wie oben beschrieben)

  8. Weißt du zufällig wie das auf den omxplayer portiert aussehen würde (der mplayer nutzt beim Raspberry leider nicht die Möglichkeiten der GPU und daher ist alles sehr zerstückelt.)

  9. Ok. Gut zu wissen. 🙂
    Mit dem omxplayer kenne ich mich nicht aus. Aber Mplayer sollte im Prinzip alles abspielen, was ihm vor die Füße geworfen wird. Helfen vielleicht diese Optionen weiter?
    https://www.gambaru.de/blog/2010/11/24/nutzliche-mplayer-optionen-fur-altersschwache-rechner/
    Wahrscheinlich ist es nur die Suche nach der richtigen Option bei Mplayer, das kann unter Umständen länger dauern. Der omxPlayer müsste irgendwie mit den Cookies umgehen können.

  10. Schön dass ich endlich etwas dazu im Netz gefunden habe. Jetzt ist die Wiedergabe auf meinem Laptop nicht mehr so eine Qual (Lüfter) 🙂

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.