Mein YouTube Terminal Workflow

[UPDATE] Es gibt zwei kleinere Änderungen zum Original-Artikel, die sind auf Mastodon vermerkt.

Terminal Hack Meme

In diesem Artikel soll es darum gehen, wie ich YouTube so Daten sparsam wie möglich konsumiere und dies noch in der Konsole. Warum YouTube und kein anderer Video Dienst? Nun ja, es werden immer noch sehr viel interessante Videos täglich auf dieser Plattform von Google veröffentlicht. PeerTube ist Großartig aber bietet bei weitem (noch) nicht den Content und die Vielfalt von YouTube. Da werden die einen oder anderen LBRY und Odysse als Alternativen einwerfen doch die sind genau so mit Trackern durchsetzt wie der Platzhirsch selber. Des weiteren ist meiner Meinung nach deren Krypto-Ansatz so wie Geschäftsmodell für mich (noch) undurchsichtig.

Motivation

Soweit erst zu den Gründen nun zur meiner Motivation. Ich bin außerdem mit der Motivation an dieses Projekt herangegangen, dass ich meinen Medienkonsum auf der Konsole ausüben möchte und dem Tracking so wie dem Bombardement von Werbung ausweichen wollte. Und siehe da, ich war anscheinend nicht der Einzige mit dieser Idee und andere haben dafür schon nützliche Tools geschrieben. Warum also diese nicht verwenden und verketten um damit einen Workflow im Terminal abzubilden. Des weiteren sehe ich durch die minimale Einschränkungen die dieser konzentrierter Workflow ergibt auch weniger Ablenkung. Das heißt in meinem Fall, dass man sich nicht im Strudel verliert, der einem vorgesetzt wird. Auch ist dies z.B. für Recherchen nützlich, da man nicht im Rabbit-Hole vom Algorithmus gefangen wird/ist.

Tools

Damit wir möglichst komfortabel unsere Videos ansehen können benötigen wir ein paar Tools die unser Leben auf der Konsole erleichtern. Am besten installierst du diese über dein Repo von deiner Linux Distribution. Da dies je nach Distro unterschiedlich ist, gehe ich nicht weiter darauf ein. Ich gehe sogar so weit, dass ich dir das zutraue wie das geht wenn du diesen Artikel liest. Ansonsten frage einfach und dir wird bestimmt jemand freundliche Unterstützung bieten.

Das scheinen nun schon einige Tools zu sein aber dies entspricht der Unix Philosophie, für jede Aufgabe ein Tool das genau eine Aufgabe erledigt und verkette diese.

Umsetzung

Eines mal vorweg, wenn es dir bis dahin Kompliziert erscheint: Ich muss einwenden, dass richten wir einmal gemeinsam ein und ab dann kannst du es komfortabel nutzen und wenn nötig nur noch ergänzen. Mit anderen Worten, der Initialaufwand ist vielleicht etwas aufwändig aber auch nur ein mal und nachher nicht mehr.

Als erstes installieren wir die oben erwähnten Tools und wie du dies am besten machst ist auf deren Webseiten gut beschrieben. Wie gesagt am besten über das Repo von deiner Linux Distribution aber ich werde dies doch noch Schritt für Schritt durchgehen.

Media Player

mpv - Media Player

Als erstes installieren wir mpv, ein schlanker und für die Konsole optimierter Media-Player. Unter Ubuntu z.B. sieht dies in der Konsole dann so aus.

sudo apt-get install mpv -y

Auf Apple macOS mit Homebrew so:

brew install mpv

Jetzt ergänzen wir mpv um weitere Funktionen um den Komfor und den Zugriff auf YouTube zu ermöglichen. Wieder stelle ich nur die Ubuntu & macOS Variante vor aber in anderen Distros funktioniert dies simular und ich traue dir das zu.

sudo apt-get install youtube-dl

Apple macOS mit Homebrew:

brew install youtube-dl

Nun haben wir den youtube-dl installiert und dieser ermöglicht uns YouTube Videos zu downloaden oder zu streamen. mpv unterstützt das Nutzen von youtube-dl und ist dadurch Streaming fähig. Anders als es der Name suggerieren mag, ist das Streaming von sehr unterschiedlichen Quellen möglich, auch unter anderem von den Mediatheken der Rechtlich-Öffentlichen. Machen wir doch gleich mal den Test und geben in der Konsole folgendes ein:

mpv https://www.ardmediathek.de/video/die-sendung-mit-der-maus/zeitreisen-mit-der-maus-xxl-die-10er-jahre/wdr-fernsehen/Y3JpZDovL3dkci5kZS9CZWl0cmFnLTQ1MTEyMzNkLTY5YTItNDc0OC05ZWM0LTE0ODk5MzNkYjRjYg/

Du siehst, der Befehl ist sehr simpel: Erst den Befehl mpv für den Player und dann die URL zum Video (deren Länge ist dem Anbieter ARD geschuldet). Mit der taste f kannst du zum Vollbild (fullscreen) wechseln. Mit der Taste q (quit) beendest du mpv vorzeitig.

Werbung & Sponsoren

Wir können nun zwar YouTube und andere Videos streamen und durch das umgehen der Weboberfläche wird auch nicht die Werbung von YouTube vor, nach und während den Videos hinein geschoben, doch das geht noch besser. Viele Creater lassen sich mittlerweile Sponsern und diese Werbung kann auch unnötig nerven und unnötig Zeit in Anspruch nehmen, gut dass es dafür auch eine Lösung gibt und die heißt SponsorBlock. Das ist eigentlich eine Browsererweiterung, die es aber auch als mpv Plugin gibt. Die wollen wir nun installieren doch dazu müssen wir Python 3 sowie Git auf unserem System haben. Wenn du das noch nicht hast so installiere dies jetzt und komme dann wieder hierher zurück.

Das SponsorBlock Script müssen wir in das script Verzeichnis von unserem mpv Konfiguration einfügen. Auf meinem Manjaro Linux sieht dies folgendermaßen aus:

git clone https://github.com/po5/mpv_sponsorblock.git ~/.config/mpv/scripts/

Um dieses Script aktuell zu halten benötigen wir nur den Befehl git pull und die markierten Blöcke werden immer automatisch aktuell aus dem Internet gezogen.

Abos per RSS/Atom Feed

newsboat - RSS/Atom reader

Jetzt haben wir zwar keine nervende Werbung mehr aber immer noch keine Abos oder Suche im Terminal. Um ein Video mittels mpv ansehen zu können benötigen wir immer noch seine URL und diese wollen wir ja eben nicht auf YouTube suchen.

Gehen wir erst die Channel Abos an und werden die mittels Newsboat über den RSS Feed auflisten und anzeigen lassen. Dazu müssen wir Newsboat ein wenig umkonfigurieren doch das ist kein Hexenwerk. Auch diesmal zeige ich wie ich es auf meinem Manjaro Linus gelöst habe und auf deinem wird es sehr ähnlich sein und auch da installieren wir erst Newsboat über das Repository (Ubuntu z.B.):

sudo apt-get install newsboat

...und macOS:

brew install newsboat

Nun nehmen wir die Konfiguration in Angriff und erstellen erst einmal die Abos. Dazu erstellen wir erst mal ein neues File nachdem wir in das Verzeichnis wechseln cd ~/.newsboat und nennen es schlicht youtube. Nun öffnen wir es in einem beliebigen Texteditor wie nano, vim oder emacs. Wir fügen in diese neue lehre Datei folgendes ein:

https://www.youtube.com/feeds/videos.xml?channel_id=<channel-id> "<kategorie>" downloaded

Dies machen wir für jeden zu abonnierenden Channel und ersetzten <channel-id> mit der ID (kryptische Zeichenfolge) und das findest du, wenn du auf YouTube auf die Kanalseite des gewünschten Kanals gehst und in der URL https://www.youtube.com/channel/UCPiI104i7lyG--fkr3LZTtA den letzten Abschnitt nach dem letzten / kopierst, in diesem Fall UCPiI104i7lyG--fkr3LZTtA. Das ist auch das einzige mal, dass du auf YouTube musst und nachher nicht mehr.

Die Kategorie kannst du frei wählen, wie es dir beliebt, hier können wir z.B. <kategorie> durch Kino ersetzen, wichtig ist dass es in doppelten Anführungszeichen steht und ist eigentlich nur für den Export nötig. Am Schluss der Zeile steht noch downloadet und markiert den Feed dazu bei Programmstart diesen zu aktualisieren.

Nun müssen wir nur noch die Konfiguration für die Videowiedergabe ändern und auch nur das werde ich hier beleuchten, Newsboat ist hoch konfigurierbar aber das ist nicht das Thema in diesem Artikel. Gut gehen wir es an und erstellen wieder eine lehre Textdatei im Verzeichnis ~/newsboat und diese nennen wir nun avconfig für Audio-Video-Konfiguration doch eigentlich kannst du einen beliebigen Namen außer config wählen, da dieser als Standard schon vorgegeben ist. Nun editieren wir diese neue Datei wie folgt:

auto-reload yes
browser     mpv

Wir haben den Browser auf den mpv Player gesetzt und das die Feeds sich selber wieder neu laden und wir so immer auf den neusten Stand sind.

Nun können wir Newsboat in der Konsole aufrufen mittels newsboat -u youtube -C avconfig oder wir schreiben gleich ein Alias im .bashrc oder .zshrc oder wo du es benötigst.

alias avnews="newsboat -u ~/.newsboat/youtube -C ~/.newsboat/avconfig"

Sobald du das Terminal neu startest kannst du mit dem Befehl avnews deine Abos durchsehen. Mit den Pfeiltasten navigierst du durch die Feeds und mit Enter siehst du sie dir an. Videos kannst du mit den Pfeiltasten auswählen und mit Enter deren Beschreibung ansehen und dann durch die Taste o öffnest du du mpv und spielst das Video ab. Mit q gehst du immer einen Schritt zurück bis du Newsboat verlässt.

Videos suchen & finden

ytfzf - find YouTube Videos

Bis jetzt sind wir relativ weit gekommen doch Videos auf YouTube suchen, ohne dass wir YouTube selber besuchen und so wieder getrackt werden (auch ohne Anmeldung) geht immer noch nicht. Doch auch dafür gibt es ein Lösung und das ist ytfzf. Wie soll es anders sein auch den müssen wir erst installieren, doch die wichtigsten Abhängigkeiten haben wir schon über die andern Pakete installiert, außer fzf, jq und Überzug. Installiere diese vorher und dann machen wir hier weiter. ytfzf ist vielleicht noch nicht in deinem Software Repo, deswegen nutzen wir hierzu Git.

git clone https://github.com/pystardust/ytfzf
cd ytfzf
sudo make install

Auf dem macOS übrigens ebenfalls wie oben mittels Git.

Nun kannst du direkt aus der Konsole heraus auf YouTube suchen und die Videos direkt über mpv ansehen, dazu genügt nur einen einfachen Befehl in der Konsole ytfzf -t best new video. Die Option -t weißt an die Thumbnails der Videos über Überzug anzuzeigen und alles dahinter ist der Suchbegriff. Klar kannst du ytfzf noch nach deinem Geschmack konfigurieren, lese dazu einfach mehr auf deren Website.

Tracking & IP

Somit hätten wir eigentlich meinen Workflow für YouTube Videos auf dem Terminal durch. Wahrscheinlich hast du noch die Frage was denn mit dem Tracking und dem Suchalgorithmus auf sich hat? Da kann ich so weit beruhigen, dass YouTube in dieser Form nur deine IP & Suchanfrage sieht, zusätzlich umgehen wir dadurch fast jede Werbung. Die IP kannst du z.B. über einen VPN oder dem Tor-Netzwerk verschleiern. Der Client wird beim ytfzf cURL angezeigt & genutzt. Die Suchanfragen sieht YouTube ganz klar, wie soll es da auch dein gewünschtes Video finden. Du fällst aber nicht in das Rabbit-Hole da die Suchanfrage nicht mit dem Verlauf in Verbindung gebracht wird. Du kommst nicht in einer Spirale der immer gleichen Thematik.

Tipps & Tricks

Ein paar Tricks sind sicherlich nicht schlecht um noch mehr aus dieser Konfiguration raus zu holen. Da wäre sicherlich einmal in jedem Programm die Konfiguration so anzupassen, dass diese deine eigenen Bedürfnisse entsprechen. Ich habe dies z.B. für mpv folgendermaßen gemacht.

Mein Bildschirm am Laptop hat eine Auflösung von 1920x1080 und Videos die größer sind machen in meinem Fall keinen Sinn. Also weise ich mpv an über youtube-dl keine Videos zu laden, die eine höhere Auflösung als 1080 Pixel in der Höhe haben, doch ich will die beste zur Verfügung gestellten Audio Qualität.

Auf meinem Manjaro Linux finde ich die Konfigurationsdatei für mpv unter ~/.config/mpv/mpv.conf und in der schreibe ich:

ytdl-format=bestvideo[height<=?1080]+bestaudio/best

So vermeide ich auch, dass mir zu große Videos downloade, die der Bildschirmgröße überhängen und ich außerdem zu viel Datentransfer verbrauch ohne wirklich die Daten zu benötigen.

Des weiteren kann man mit youtoube-dl auch Videos für den offline Betrieb runter laden, indem man einfach ytfzf -td deine suchbegriffe für video eingibt.

Über MediathekViewWeb kann man auch ohne Tracker nach Videos aus der Mediatheken der deutschsprachigen Rechtlich-Öffentlichen Sendeanstalten suchen und dann lokal über mpv streamen, teilweise umgeht dies sogar das Geofencing.

Alternativen

Jetzt wird sicher die eine oder andere einwerfen, das es einfachere Lösungen für mehr Datenschutz & Privatsphäre gibt doch ich wollte mit Absicht eine Lösung auf der Konsole. Ich Arbeite gerne auf der Konsole und empfinde das Zirkeln & Klicken eher mühsam. Wie schon oben erwähnt ist das einmalige Einrichten evt. etwas mühsamer aber danach läuft es ohne weiteres.

Ich zähle diese mal kurz hier auf, welche Alternativen es sonst noch gibt, damit ihr einen kleinen Überblick habt:

Schlusswort

Ich hoffe einigen von euch da was gezeigt zu haben oder habt ihr noch Verbesserungsvorschläge? Wie schaut ihr eure Videos an und möchtet ihr mehr solche ausführliche Anleitungen und auch mit dem Fokus Konsole & Terminal? Lasst es mich wissen und schreibt es mir in die Kommentare oder auf Mastodon.

[UPDATE]

Weiter Einstelllungen, YouTube Playlists, PeerTube so wie TV im Terminal findest du in diesem nachfolge Artikel: »Mediatheken und TV im Terminal«