[[Vorlage(Archiviert, )]] {{{#!vorlage Wissen [:Pakete_installieren: Installation von Programmen] [:pip: Installation von Python-Modulen via pip] [:Terminal: Ein Terminal öffnen] }}} [[Inhaltsverzeichnis(4)]] [[Bild(Wiki/Icons/terminal.png, 48, align=left)]] [github:mps-youtube/mps-youtube:mps-youtube] {en} ist ein in [:Python:] geschriebenes Kommandozeilenwerkzeug, welches Audio- und Video-Streams von [youtube::YouTube] {de} in Video-Playern wie [:mpv:], [:MPlayer:] oder [:VLC:] abspielen sowie ansonsten auch herunterladen kann. Weitere Funktionen sind: * die Suche nach Album-Stücken per Album-Titel * Suchen nach sowie der Import von YouTube-Wiedergabelisten * das Erstellen sowie Speichern von lokalen [wikipedia:Wiedergabeliste:Wiedergabelisten] * das Umwandeln nach MP3 oder anderen [wikipedia:Codec:Formaten] (erfordert [:FFmpeg:] bzw. [:Archiv/avconv:] (aus dem [:Archiv/Libav:]-Projekt)) * sowie das Ansehen von Video-Kommentaren 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 [:Trusty:Ubuntu 14.04] nicht mehr zu. Zum einen ist FFmpeg vorübergehend aus den offiziellen Paketquellen entfernt worden und steht erst ab [:Vivid:Ubuntu 15.04] wieder zur Verfügung, zum anderen ist Libav nicht vorinstalliert. Zusammen mit anderen benötigten Abhängigkeiten (unter anderem für [https://specifications.freedesktop.org/mpris-spec/latest/ MPRIS2] {en}-Unterstützung) sollte man daher zuerst die folgenden Pakete installieren [1]: {{{#!vorlage Paketinstallation libav-tools, nur für Ubuntu 14.04 als Ersatz für ffmpeg, in universe, siehe aber auch den Abschnitt [#Ubuntu-14-04 Problembehebung] python3-pkg-resources libnotify4 python3-dbus python3-gi xclip, universe }}} Um [wikipedia:Uniform_Resource_Locator:URL]s 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 Bedienung aus dem Programm heraus]). [[Vorlage(Fremd, Software)]] 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 youtube-dl-Fehler])! [[Vorlage(Fremd, Software)]] 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 [:MPlayer/#GNOME-MPlayer:GNOME MPlayer]. mplayer2 ist bei [:Trusty:Ubuntu 14.04] vorinstalliert. == pip-Paket == Das [github:mps-youtube/mps-youtube:mps-youtube-Projekt] {en} empfiehlt die Installation via Python-Modul `mps-youtube` [2]. [[Vorlage(Fremd, Software)]] = 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 [github:mps-youtube/mps-youtube:offizielle Dokumentation] {en}. Für Konfigurations-Möglichkeiten des Programmes siehe den Abschnitt [#Konfiguration 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 [[Vorlage(Tasten, q)]]. Für die zweitgenannte Bedienmöglichkeit sind nachfolgend einige Beispiele aufgeführt: {{{#!vorlage Tabelle <-2 rowclass="titel"> Beispiele für Aufrufe direkt von der Kommandozeile aus +++ Kommando Erklärung +++ `mpsyt -h` den ausführlichen Hilfe-Text aufrufen +++ `mpsyt dlurl ` ein YouTube-Video herunterladen, entweder durch Angabe der vollen Internet-Adresse oder der YouTube-ID +++ `mpsyt playurl ` 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 ` eine lokale Wiedergabeliste abspielen, entweder durch Angabe des Wiedergabelisten-Namens oder der Wiedergabelisten-ID +++ mpsyt ls`Formatierter Text` lokale Wiedergabelisten auflisten +++ <-4> 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 +++ <-4> 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: {{{#!vorlage Tabelle <-2 rowclass="titel"> Optionen +++ Option Bedeutung +++ [[Vorlage(Tasten, 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 ` zur Ergebnis-Seite springen +++ `` 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 [[BR]] [[BR]] 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 ` Abspielen und Wiederholen von ausgewählten Eintra(e)g(en)... +++ `shuffle ` Abspielen von ausgewählten Eintra(e)g(en) in zufälliger Reihenfolge +++ `i ` Informationen zum Video bzw. zur YouTube-Wiedergabeliste ansehen +++ `c ` Kommentare zum Video ansehen +++ `d ` verfügbare Download-Möglichkeiten (Qualitäten) für Eintrag anzeigen und danach aus den dann angezeigten Qualitäten eine Nummer zum Herunterladen auswählen (mit [[Vorlage(Tasten, enter)]] 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 [[Vorlage(Tasten, enter)]] 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 ` 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 [:youtube-dl/#nicht-kompatibel:Absatz] mit den nicht-kompatiblen Video- und Audio-Formaten im Abschnitt [:youtube-dl/#Unterschiedliche-Video-Qualitaeten:Unterschiedliche Video-Qualitäten]. => Mit [[Vorlage(Tasten, a)]] bis [[Vorlage(Tasten, z)]] kommt man wieder zurück zur Ergebnisliste, und es wird `No download selected / invalid input` ausgegeben. +++ `dv ` 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 ``; wobei bei mehreren Einträgen der erste, falls hinter ihm ein Komma kommt, dieser nur einstellig sein darf! +++ `da ` dito von dv ``; es wird die bestmögliche "DASH audio"-Spur ausgewählt +++ `r ` Videos ähnlich zum Video anzeigen +++ `u ` Videos anzeigen, die von derjenigen Person hochgeladen wurden, welche auch Video hochgeladen hat +++ `x ` kopiert die URL des Eintrages in die [:Zwischenablage:] (diese Funktion benötigt die Installation des Python-Modules [https://pypi.python.org/pypi/pyperclip pyperclip] {en}, siehe auch den Abschnitt [#Voraussetzungen Voraussetzungen]) +++ `save` oder `save ` 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 ` eine lokale Wiedergabeliste als die momentane Wiedergabeliste öffnen, entweder durch Angabe des Wiedergabelisten-Namens oder der Wiedergabelisten-ID +++ [[Vorlage(Tasten, q)]] mps-youtube beenden }}} == Konfiguration == mps-youtube kennt einige Konfigurationsmöglichkeiten welche man – am Besten aus dem Programm heraus – nach dem Muster `set ` 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: {{{#!vorlage Tabelle <-2 rowclass="titel"> Konfigurations-Optionen +++ Einstellung Erklärung +++ `set` die derzeitige Konfiguration anzeigen +++ `set 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 ` 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 ` das Verzeichnis, in das heruntergeladen wird, einstellen +++ `set download_command ` der Befehl `help dl-command` zeigt nähere Infos an +++ `set encoder ` 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 ` Abspielen bzw. Herunterladen von maximalem Wert der Höhe der Videoauflösung +++ `set notifier ` bei jedem neuen Lied-Titel eine bestimmte Benachrichtigungsanwendung aufrufen +++ `set order ` die Sortierung der Such-Ergebnisse +++ `set user_order <|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 ` zur Wiedergabe eine bestimmte Anwendung wählen +++ `set playerargs ` 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 -` die Position des Player-Fensters; "-" +++ `set window_size x` die Breite und Höhe des Player-Fensters +++ `set audio_format ` das voreingestellte Audio-Format der Musik +++ `set api_key ` eine andere [wikipedia: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 Voraussetzungen] und [#Installation 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 [packages:youtube-dl:offiziellen Paketquellen] {en} oder manuell [:youtube-dl/#Installation: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/'''. [packages:python3-pafy:] {en} bzw. [https://pypi.python.org/pypi/pafy pafy] {en} 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]. [[Vorlage(Fremd, Software)]] == Ubuntu 14.04 == Wenn bei [:Trusty: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 [:FFmpeg/#Ubuntu-14-04-2:Ubuntu 14.04] aufgeführten [:ln:Symlink] löschen und außerdem das Paket '''libav-tools''' (siehe [:Archiv/Libav:]) deinstallieren [1]. Danach installiert man FFmpeg entweder [:FFmpeg#Aus-dem-Quellcode:Aus dem Quellcode] oder über die [:FFmpeg#Linux-Static-Builds:Linux Static Builds]. = Links = == Intern == * [:Multimedia:] * [:Codecs:] * [:Streaming:] {Übersicht} Grundlegendes zum Thema; Audio- und Videostreams mit Browser-Plugins oder eigenständigen Programmen abspielen * [:Streams_speichern:] {Übersicht} Übersichtsartikel * [:Internetradio:] {Übersicht} Übersichtsartikel * [:Internetradio_aufzeichnen:] * [:Internet-TV:] {Übersicht} Übersichtsartikel == Extern == * [github:mps-youtube/mps-youtube:Projektseite] {en} * [github:mps-youtube/pafy/issues/154:Getting Warning:youtube-dl not found #154] {en} – Thread bei GitHub #tag: Shell, Python, Internet, Netzwerk, Multimedia, Streaming, Streams sichern, YouTube