Youtube, DASH, youtube-dl und mpv

Seit Ewigkeiten nutze ich mpv, um Videos von Youtube und anderen Plattformen in einem eigenen Fenster abzuspielen; denn im Browser ist das bei mir immer so ruckelig.

Um an die URL zu gelangen, die man mit mpv abspielen kann, wird youtube-dl benutzt.

Seit dem letzten Update von youtube-dl (von gestern?) funktionierte mein „Script“ plötzlich nicht mehr, weil der Parameter -g jetzt zwei URLs zurückliefert, eine für das Video ohne Ton und die zweite für den Ton ohne Video (siehe DASH).

Manche Videos beinhalten in der ersten URL auch noch zusätzlich den Ton, aber neuere anscheinend nicht mehr.

Um zum Video auch den Ton zu bekommen, muss man deshalb beide URLs „mischen“; das macht youtube-dl beim Herunterladen von Videos automatisch.

Beim Abspielen ohne zu Speichern muss man mpv deshalb entweder zusätzlich die Audiodatei (zweite URL) mit dem Parameter --audio-file mitgeben oder man nutzt die Fähigkeit von mpv, das Programm youtube-dl selbst aufzurufen und das ganze automatisch zu machen, und zwar mit:

mpv --ytdl-format=bestvideo+bestaudio "YOUTUBE_VIDEO_URL"

Mein aktuelles „Script“, das über Win+y aufgerufen wird, sieht jetzt so aus:

xterm -e mpv --ytdl-format=bestvideo+bestaudio "$(xsel)"

Man könnte xterm auch weglassen, aber dann sieht man nicht den aktuellen Status des Videos.

Habe den Hinweis auf die Option ytdl hier gefunden.

Für weitere Informationen siehe man mpv.

Passt wieder :)

Ähnliche Themen...

11 Gedanken zu „Youtube, DASH, youtube-dl und mpv“

  1. Ach wie schön, dass es noch mehr so „Bekloppte“ gibt, die so ihre Videos abspielen. Hat jetzt nichts mit yt-videos zu tun, aber was ich bei mpv richtig gut finde, ist „resume-play“ wenn man statt „q“ das video- oder die audio-Datei mit „Q“ (shift+q) verlässt. Dann speichert mpv das ab und setzt anschliessendbei Neuaufruf das Medium ab exakt dieser Stelle fort. Das ist so cool.

  2. Klingt spannend, aber ich komme nicht zum Ziel. Was genau macht der Einzeiler? Markierst du in Youtube den Teilen-Link und drückst dann Win+Y?

    Hast du den Einzeiler in der .bashrc als alias hinterlegt? Und wo in KDE hinterlegst du die Tastenkombi?

    Ich habe die Befehlsfolge als Alias ytdl in der .bashrc hinterlegt.
    Für diesen Alias habe ich einen Shortkey angelegt:

    Systemsteuerung => Kurzbefehle + Gestensteuerung => Eigene Kurzbefehle => neue Gruppe => neu => globaler Kurzbefehl => Befehl Adresse

    Auslöser: Meta + Y
    Aktion: ytdl

    Markiere ich nun eine Youtube-URL und betätige ich Win+Y passiert leider gar nix. Wo ist mein Denkfehler?

    1. Den Shortcut habe ich so erstellt wie du es beschreibst. Nur als Befehlszeile wird direkt das Script aufgerufen.

      Das Problem wird sein, dass KDE/Plasma deine .bashrc nicht ausführt/kennt. Versuche mal das in ein Shell-Script zu packen, welches in deinem PATH drin ist. So habe ich das und es funktioniert.

      Vielleicht kann man das Script auch mit dem ganzen Pfad ausführen bei der Aktion in den Einstellungen.

      1. In der Tat: Mache ich ein Script draus und lege es z.B. in /usr/local/bin ab (filename=ytdl) klappt’s auf Anhieb. Klasse Sache! Kleiner Verbesserungstipp:

        Statt:
        xterm -e mpv –ytdl “$(xsel)”

        Besser:
        xterm -e mpv –ytdl-format=best “$(xsel)”

        Gibt dir immer das Youtube-Video mit der besten Qualität (also i.d.R. in der höchsten Auflösung).

        1. Hatte daran auch schon gedacht. Das aber explizit anzugeben, ist gar nicht notwendig. In der Manpage von mpv steht drin, dass –ytdl-format=best die Voreinstellung ist, wenn man keine Qualität auswählt :)

  3. Stimmt.

    Ich habe noch ein bisschen rumprobiert und 4k-Videos aufgerufen. Mir ist es immer wieder passiert, dass der Cache leerläuft und das Video eine Weile pausiert. Auch dafür gibt’s wohl einen Parameter:

    –cache-initial=n

    Ich habe den Wert mal auf 1000 (=1000kb) eingestellt und schon laufen auch 4k Videos sauber durch. Dann noch ein kleines –fs hinterher und ich habe das Ganze im Vollbild. xterm -e habe ich rausgenommen, funktioniert in der Tat auch ohne.

  4. okay.. nachdem jetzt youtube da ja einiges geaendert hat, und man ja auch in firefox zum beispiel keine videos ueber 720p mehr ansehen kann, funktioniert das nun auch in mpv nicht mehr so „out of the box“
    umd also videos in voller qualitaet inkl. audio abzuspieln sollte die befehlszeile nun so aussehen:

    mpv –ytdl-format=bestvideo+bestaudio „https://www.youtube.com/watch?v=U76OX0M6f4w“

    und zum beispiel so wenn man videos nur bis zu einer bestimmten aufloesung abspielen moechte

    mpv –ytdl-format=bestvideo[height=1080]+bestaudio „https://www.youtube.com/watch?v=U76OX0M6f4w“

    ps: danke neti

  5. noch was.. in dem fall mit den 1080 p werden keine videos abgespielt die keine 1080p haben.. also funzt nicht mit einem 720p video.. dann im script besser schreiben

    –ytdl-format=bestvideo[height<=1080]+bestaudio

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.