ubuntuusers.de

mps-youtube

Archivierte Anleitung

Dieser Artikel wurde archiviert. Das bedeutet, dass er nicht mehr auf Richtigkeit überprüft oder anderweitig gepflegt wird. Der Inhalt wurde für keine aktuell unterstützte Ubuntu-Version getestet. Wenn du Gründe für eine Wiederherstellung siehst, melde dich bitte in der Diskussion zum Artikel. Bis dahin bleibt die Seite für weitere Änderungen gesperrt.

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

Wiki/Icons/terminal.png mps-youtube 🇬🇧 ist ein in Python geschriebenes Kommandozeilenwerkzeug, welches Audio- und Video-Streams von YouTube 🇩🇪 in Video-Playern wie mpv, MPlayer oder VLC abspielen sowie ansonsten auch herunterladen kann.

Weitere Funktionen sind:

Alternative Programme sind in den Artikeln Streaming und Streams speichern zu finden.

Installation

Voraussetzungen

Das Programm benötigt Python und pip (beide in Version 3.x) und Archiv/Libav oder FFmpeg (konkret die Kommandozeilenprogramme avconv und avprobe bzw. ffmpeg und ffprobe). Diese Abhängigkeiten waren bei Ubuntu in der Vergangenheit bereits vorinstalliert. Leider trifft das bei Ubuntu 14.04 nicht mehr zu. Zum einen ist FFmpeg vorübergehend aus den offiziellen Paketquellen entfernt worden und steht erst ab Ubuntu 15.04 wieder zur Verfügung, zum anderen ist Libav nicht vorinstalliert. Zusammen mit anderen benötigten Abhängigkeiten (unter anderem für MPRIS2 🇬🇧-Unterstützung) sollte man daher zuerst die folgenden Pakete installieren [1]:

  • libav-tools (nur für Ubuntu 14.04 als Ersatz für ffmpeg, in universe, siehe aber auch den Abschnitt Problembehebung)

  • python3-pkg-resources

  • libnotify4

  • python3-dbus

  • python3-gi

  • xclip (universe)

Paketliste zum Kopieren:

sudo apt-get install libav-tools python3-pkg-resources libnotify4 python3-dbus python3-gi xclip 

Oder mit apturl installieren, Link: apt://libav-tools,python3-pkg-resources,libnotify4,python3-dbus,python3-gi,xclip

Um URLs von angezeigten mps-youtube-Ergebnis-Listen in die Zwischenablage kopieren zu können, muss man sich das Python-Modul pyperclip selbst installieren [2] (siehe auch den Abschnitt Bedienung aus dem Programm heraus).

Hinweis!

Fremdsoftware kann das System gefährden.

Außerdem wird eindringlich die Installation des Python-Modules youtube_dl empfohlen [2], da ansonsten das Abspielen bzw. Herunterladen von Audios bzw. Videos über das interne Backend nicht funktionieren könnte (siehe auch den Abschnitt youtube-dl-Fehler)!

Hinweis!

Fremdsoftware kann das System gefährden.

Außerdem wird ein Programm für die Medienwiedergabe benötigt. mpv ist bei mps-youtube voreingestellt, Alternativen wären z.B. MPlayer, SMPlayer, VLC, Dragon Player, Totem sowie GNOME MPlayer. mplayer2 ist bei Ubuntu 14.04 vorinstalliert.

pip-Paket

Das mps-youtube-Projekt 🇬🇧 empfiehlt die Installation via Python-Modul mps-youtube [2].

Hinweis!

Fremdsoftware kann das System gefährden.

Benutzung

Die Benutzung des Programmes erfolgt über die Kommandozeile [3]. Neben den in den beiden nachfolgenden Tabellen aufgeführten Hilfe-Möglichkeiten gibt es auch die offizielle Dokumentation 🇬🇧.

Für Konfigurations-Möglichkeiten des Programmes siehe den Abschnitt Konfiguration.

Man kann mps-youtube entweder mit mpsyt starten und dann aus dem Programm heraus weiter bedienen oder aber Aufrufe direkt von der Kommandozeile aus tätigen. Das Beenden geht in beiden Fällen mit Q . Für die zweitgenannte Bedienmöglichkeit sind nachfolgend einige Beispiele aufgeführt:

Beispiele für Aufrufe direkt von der Kommandozeile aus
Kommando Erklärung
mpsyt -h den ausführlichen Hilfe-Text aufrufen
mpsyt dlurl <url or id> ein YouTube-Video herunterladen, entweder durch Angabe der vollen Internet-Adresse oder der YouTube-ID
mpsyt playurl <url or id> dito ein YouTube-Video abspielen
mpsyt /mozart nach Ergebnissen mit dem Begriff "mozart" (groß oder klein geschrieben) suchen
mpsyt //best songs of 2010 nach YouTube-Wiedergabelisten suchen die "best songs of 2010" enthalten
mpsyt play <playlist name or ID> eine lokale Wiedergabeliste abspielen, entweder durch Angabe des Wiedergabelisten-Namens oder der Wiedergabelisten-ID
mpsyt lsFormatierter Text lokale Wiedergabelisten auflisten
Für weitere Automation kann eine Serie von Kommandos, welche durch Kommata (,) voneinander abgetrennt werden, eingegeben werden:
mpsyt open 1, 2-4 die Einträge 2-4 der ersten lokalen Wiedergabeliste abspielen
mpsyt //the doors, 1, all -a nach YouTube-Wiedergabelisten suchen die "the doors" enthalten und von der ersten aufgefundenen alle Einträge abspielen, jedoch lediglich den Ton
Falls man auf der Kommandozeile ein tatsächliches Komma eingeben möchte, so nimmt man statdessen ,,

Bedienung aus dem Programm heraus

Der Aufruf von mpsyt liefert im Terminal einen interaktiven Prompt zurück, über den man mit dem Programm interagieren kann.

Man stellt den Such-Begriffen ein / oder . voran, z.B. /pink floyd um nach Ergebnissen mit dem Begriff "pink floyd" (groß oder klein geschrieben) zu suchen oder dito //pink floyd für dessen YouTube-Wiedergabelisten.

Dann, wenn Such-Ergebnisse angezeigt werden:

Optionen
Option Bedeutung
H kurze Übersicht der Hilfe-Themen anzeigen, wovon man dann eines durch Eingabe des entsprechenden der aufgeführten Begriffe genauer angezeigt bekommt
n und p Suche fortsetzen nach der nächsten / vorhergehenden Ergebnis-Seite
p <Nummer> zur Ergebnis-Seite <Nummer> springen
<Nummer(n)> Abspielen von ausgewählten Eintra(e)g(en), welche durch Kommata (,) voneinander abgetrennt werden; z.B. 1-3,5 gibt die Einträge 1, 2, 3 und 5 wieder; zum jeweils nächsten Eintrag springt man, indem man das Player-Fenster schließt

bei YouTube-Wiedergabelisten geht nur jeweils eine Nummer und zeigt dann die in der jeweiligen Wiedergabeliste befindlichen Einträge an
all oder * alle angezeigten Einträge abspielen
repeat <Nummer(n)> Abspielen und Wiederholen von ausgewählten Eintra(e)g(en)...
shuffle <Nummer(n)> Abspielen von ausgewählten Eintra(e)g(en) in zufälliger Reihenfolge
i <Nummer> Informationen zum Video bzw. zur YouTube-Wiedergabeliste <Nummer> ansehen
c <Nummer> Kommentare zum Video <Nummer> ansehen
d <Nummer> verfügbare Download-Möglichkeiten (Qualitäten) für Eintrag <Nummer> anzeigen und danach aus den dann angezeigten Qualitäten eine Nummer zum Herunterladen auswählen (mit kommt man zurück zur Ergebnisliste). Falls als selbige eine vom Typ "video" in der Spalte "Media" genommen wird, gibt das Programm eine Warnung aus: "Warning - the filetype you selected (mp4) has no audio! – Select [1-5] to mux audio or [Enter] to download without audio – This feature is experimental!" Dann muss man entweder mit das Video ohne Ton herunterladen oder aber aus den angebotenen Audio-Dateien eine auswählen, am Besten die mit dem höchsten k-Wert in der Spalte "Quality". Danach werden wieder die ursprünglichen Such-Ergebnisse angezeigt, und darunter steht der Abspeicherort samt Namen: Saved to : ... Falls diese Datei jedoch 0 Bytes groß sein sollte, wiederholt man die Prozedur mit d <Nummer> und wählt aus den angebotenen Audio-Dateien eine Qualitäts-Stufe schlechter usw. bis die abgespeicherte Datei größer als 0 Bytes ist! ⇒ Siehe dazu auch den Absatz mit den nicht-kompatiblen Video- und Audio-Formaten im Abschnitt Unterschiedliche Video-Qualitäten. ⇒ Mit A bis Z kommt man wieder zurück zur Ergebnisliste, und es wird No download selected / invalid input ausgegeben.
dv <Nummer(n)> Herunterladen der jeweiligen bestmöglichen Qualitäts-Stufe (Video & Audio vom Typ "normal" in der Spalte "Media") von ausgewählten Eintra(e)g(en) analog zum Tabellen-Eintrag <Nummer(n)>; wobei bei mehreren Einträgen der erste, falls hinter ihm ein Komma kommt, dieser nur einstellig sein darf!
da <Nummer(n)> dito von dv <Nummer(n)>; es wird die bestmögliche "DASH audio"-Spur ausgewählt
r <Nummer> Videos ähnlich zum Video <Nummer> anzeigen
u <Nummer> Videos anzeigen, die von derjenigen Person hochgeladen wurden, welche auch Video <Nummer> hochgeladen hat
x <Nummer> kopiert die URL des Eintrages <Nummer> in die Zwischenablage (diese Funktion benötigt die Installation des Python-Modules pyperclip 🇬🇧, siehe auch den Abschnitt Voraussetzungen)
save oder save <Name> die angezeigten Einträge als eine lokale Wiedergabeliste abspeichern, falls kein Name angegeben wird, werden die ersten 18 Buchstaben des ersten angezeigten Eintrages als Name verwendet
open <Name oder ID> eine lokale Wiedergabeliste als die momentane Wiedergabeliste öffnen, entweder durch Angabe des Wiedergabelisten-Namens oder der Wiedergabelisten-ID
Q mps-youtube beenden

Konfiguration

mps-youtube kennt einige Konfigurationsmöglichkeiten welche man – am Besten aus dem Programm heraus – nach dem Muster set <Schlüssel> <Wert> vornimmt. Besonders relevant sind hierfür wohl die Schlüssel player, overwrite und show_video. Die nachfolgende Tabelle gibt über deren sowie die Bedeutung von anderen Schlüsseln Aufschluss:

Konfigurations-Optionen
Einstellung Erklärung
set die derzeitige Konfiguration anzeigen
set <Schlüssel> default den angegebenen Schlüssel auf seinen Standard-Wert zurücksetzen
set all default alle Standard-Werte setzen
true|false Wert ist "Ein" bzw. "Aus" ("wahr"|"falsch"); stattdessen geht auch 1|0
set checkupdate true|false Vor Verlassen nach Programm-Aktualisierungen suchen
set columns <columns> Extra-Spalten in den Suchergebnissen anzeigen; möglich sind views für Aufrufe, comments für die Anzahl der Kommentare, rating für Bewertung, date für Datum, user für den Benutzer welcher das Video eingestellt hat, likes für Anzahl von "Mag ich", dislikes für Anzahl von "Mag ich nicht" sowie category für die Kategorie
set ddir <download direcory> das Verzeichnis, in das heruntergeladen wird, einstellen
set download_command <command> der Befehl help dl-command zeigt nähere Infos an
set encoder <number> einen voreingestellten Encoder für Download-Dateien wählen
set fullscreen true|false bei den Playern MPlayer und mpv die Vollbildvideoausgabe einstellen
set max_res <number> Abspielen bzw. Herunterladen von maximalem Wert der Höhe der Videoauflösung
set notifier <notifier app> bei jedem neuen Lied-Titel eine bestimmte Benachrichtigungsanwendung aufrufen
set order <relevance|date|views|rating> die Sortierung der Such-Ergebnisse
set user_order <<nothing>|relevance|date|views|rating> die Sortierung der Ergebnisse der Benutzer-Hochlade-Listen; freilassen um dasselbe einzustellen wie bei "set order"
set overwrite true|false beim Herunterladen bereits existierende gleichnamige Dateien überschreiben; Abbrechen bei false
set player <player app> zur Wiedergabe eine bestimmte Anwendung wählen
set playerargs <args> die angegebenen Argumente zusammen mit dem Player benutzen
set search_music true|false suche nur nach "Musik" (alle Kategorien bei false)
set show_mplayer_keys true|false Tastatur-Hilfe bei MPlayer und mpv anzeigen
set show_status true|false Status- und Fortschritts-Meldungen anzeigen
set show_video true|false die Video-Ausgabe anzeigen; nur Audio bei false
set window_pos <top|bottom>-<left|right> die Position des Player-Fensters; "<oben|unten>-<links|rechts>"
set window_size <number>x<number> die Breite und Höhe des Player-Fensters
set audio_format <auto|m4a|webm> das voreingestellte Audio-Format der Musik
set api_key <key> eine andere Programmierschnittstelle für den Zugriff auf die YouTube Data API benutzen

Tipps für Fortgeschrittene

  • -w, -f oder -a können nach Belieben benutzt werden, um die jeweiligen voreingestellten Werte außer Kraft zu setzen und damit Einträge im Fenster-, Vollbild- oder Audio-Modus abzuspielen; z.B. 1-4 -a

  • wenn Extra-Spalten mit dem set columns-Kommando gesetzt werden, kann man ":N" anhängen um die Weite zu bestimmen; z.B. set columns date views user:17 likes

  • wenn man open, view oder play benutzt, um auf eine lokale Wiedergabeliste zuzugreifen, braucht man anstelle des ganzen Namens lediglich die ersten paar Buchstaben einzutippen

  • man kann 5- eintippen, um Einträge 5 und oberhalb auszuwählen sowie -5 für 5 und darunter. Dies kann zusammen mit anderen Auswahlen benutzt werden; z.B. 5,3,7-,-2

    • auch kann man Leerstellen anstatt Kommas benutzen; z.B. 5 3 7- -2

    • umgekehrte Bereiche gehen auch; z.B. 5-2

  • dump zeigt den gesamten Inhalt einer geöffneten YouTube-Wiedergabeliste an (nützlich zum Abspielen oder Speichern von vollständigen Wiedergabelisten; undump zum Rückgängig-Machen)

  • set player mpv oder set player mplayer – ändert die Player-Anwendung

  • man kann 1 und 0 oder anstelle von true und false benutzen beim set-Kommando

Problembehebung

Siehe auch die Abschnitte Voraussetzungen und Installation!

youtube-dl-Fehler

Falls beim Programmstart von mps-youtube (kurz) die folgende Warnung erscheint:

WARNING:root:pafy: youtube-dl not found; falling back to internal backend. This is not as well maintained as the youtube-dl backend. To hide this message, set the environmental variable PAFY_BACKEND to "internal".

dann kommt das daher, dass man youtube-dl entweder überhaupt nicht oder nicht via pip, sondern über die offiziellen Paketquellen 🇬🇧 oder manuell installiert hat.

In diesen Fällen befindet sich zwar dessen Binärdatei in /usr/bin/, ~/.bin/, ~/bin/ bzw. /usr/local/bin/ , es fehlt jedoch ein entsprechender Eintrag in einem der Python-Modul-Verzeichnisse /usr/lib/python3.VERSION/dist-packages/ bzw. /usr/local/lib/python3.VERSION/dist-packages/.

python3-pafy 🇬🇧 bzw. pafy 🇬🇧 bemerkt, wenn sich das Python-Modul von youtube-dl nicht in einem der vorstehend aufgeführten Verzeichnisse befindet. In diesem Fall schaltet pafy um auf das interne Backend, worüber jedoch das Abspielen bzw. Herunterladen von Audios bzw. Videos häufig nicht funktioniert!

Abhilfe kann adurch geschaffen werden, dass man sich via pip das Python-Modul youtube_dl installiert [2].

Hinweis!

Fremdsoftware kann das System gefährden.

Ubuntu 14.04

Wenn bei Ubuntu 14.04 die folgenden Fehler bzw. Warnungen herausgegeben werden:

  • "ERROR: ffprobe or avprobe not found. Please install one."
  • WARNING: Your copy of avconv is outdated and unable to properly mux separate video and audio files, youtube-dl will download single file media. Update avconv to version 10-0 or newer to fix this.

so sollte man zunächst den im FFmpeg-Abschnitt Ubuntu 14.04 aufgeführten Symlink löschen und außerdem das Paket libav-tools (siehe Archiv/Libav) deinstallieren [1]. Danach installiert man FFmpeg entweder Aus dem Quellcode oder über die Linux Static Builds.

Intern

Extern

Diese Revision wurde am 9. Februar 2020 13:46 von Heinrich_Schwietering erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Internet, Shell, Netzwerk, Streaming, Python, Multimedia, Streams sichern, YouTube