-
Seit einigen Jahren wird das Tool yt-backup (GitHub) benutzt, um simple Sicherungen einiger Youtube-Kanäle anzulegen: Damit werden alle Videos der Kanäle heruntergeladen und im Filesystem abgelegt. Das Tool nutzt die Youtube-API, um an die Video-Details zu kommen und youtube-dl[1], um die Video-Dateien herunterzuladen.
yt-backup benötigt eine MySQL-Datenbank, um die Informationen über bereits heruntergeladene Videos zu speichern, verlangt regelmäßig manuell den nervigen Headless-oAuth-Flow für die YouTube-API zu durchlaufen und ist überhaupt viel zu komplex für das was es tun soll.
Es war von Anfang an eher unbequem zu bedienen und funktionierte oft auch nicht wie gewünscht. Da wurden dann schon mal alle Videos als heruntergeladen markiert, obwohl das nicht den Fakten entsprach usw.
Da es offenbar keine einfach und gut funktionierende Alternative gibt – ich habe jedenfalls keine gefunden – habe ich mich entschlossen, schnell selbst eine stabile Lösung zu bauen. Ich benötige jetzt keinen API-Zugriff und auch keine MySQL-Datenbank mehr. Die Liste der Files hole ich mir aus dem RSS-Feed, den es zum Glück immer noch gibt (mit den 15 neuesten öffentlichen Videos[2]).
Das Backup läuft jetzt als simples Python-Skript, welches zwei Schleifen hat: Zuerst iteriert es über die Kanäle und lädt den jeweiligen RSS-Feed. Die zweite Schleife iteriert dann über die Einträge des Feeds (=die Videos des Kanals). Für jedes Video wird geprüft, ob es bereits heruntergeladen wurde. Wenn nicht, wird es heruntergeladen und zusammen mit Titelbild und Metadaten (JSON) im Dateisystem gespeichert. Alles in einen Cronjob gepackt und fertig.
Das eigene Youtube-Backup … läuft. -
In einem Blogpost werden ein paar wirklich nützliche Tipps für die Bedienung von Firefox erklärt. Meine Highlights, neu gelernt und mittlerweile auch täglich genutzt:
*
im Adressfeld, gefolgt von einem Suchbegriff: Sucht in den Bookmarks und zeigt Vorschläge im Dropdown 🚀^
im Adressfeld, gefolgt von einem Suchbegriff: Sucht in der History zeigt Vorschläge im Dropdown- → es gibt noch weitere Suchpräfixe, die genannten beiden sind aber derart nützlich, dass ich sie hier hervorheben möchte.
- ⌥ und Klicken in einen Link lässt den Text selektieren ohne den Link zu öffnen
- ⌘ + T gefolgt von ⌘ + Z[3], öffnet ein neues Tab mit der URL des aktuellen Tabs, ohne diese aber zu laden. Der Cursor steht direkt im Adressfeld, sodass die URL sofort editiert werden kann.
Der Post listet noch eine Menge weiterer Tricks auf, viele davon dürften den meisten Firefox-Nutzern aber bereits bekannt sein.
-
🪓 Ein schönes Stück Eiche hat als neuer Hauklotz den Weg in unseren Haushalt gefunden. Hoffentlich hält dieser etwas länger.
-
Ich hatte letzte Woche eine Web-Applikation mit Multi-Language-Support auszurüsten. Erster Schritt hierbei: statische Strings im Markup durch Funktions-Aufrufe für die Lokalisierung zu ersetzen. Gewöhnliches Suchen/Ersetzen funktioniert auf Grund der Vielzahl und Vielfalt möglicher Vorkommen nicht, es war also Handarbeit angesagt.
Damit es nicht ganz so nervig wird, habe ich nach einer Möglichkeit gesucht, per Tastatur-Shortcut einen markierten Text in diesen Funktionsaufruf einzuschließen. Aus
Hello World
sollte also{{ __('Hello World') }}
werden. Das geht mit der Raycast-Extension Text Shortcuts ganz einfach:Einfache String-Manipulation mit einem Tastatur-Shortcut. Der Umweg über das Raycast-Fenster ist allerdings erstmal nicht viel weniger nervig, als wenn man alles per Hand ersetzt: Erst mit der Zuweisung einer Tastenkombination auf diese Aktion ergibt plötzlich alles Sinn: Text auswählen, ♦ + S[4] tippen, fertig.
-
⌨️ Es gibt hier jetzt CSS-Styling für das
<kbd>
-Element und ich finde es sehr gelungen: ⌘ + ⌥ + ⌃ + O -
Wenn es mal kein passendes Emoji für die hier verwendeten Bulletpoints gibt, füge ich ein Inline-SVG ein – damit findet sich auf Garantie etwas passendes. Sogar für diesen Absatz hier. Da ich das Sudoku-Icon nun schon mehrfach verwendet habe, gibt es jetzt einen Hugo-Shortcode dafür:
{{< icon/sudoku >}}
.Damit der Shortcode funktioniert, habe ich einfach in
layouts/shortcodes/icon/sudoku.html
eine Datei mit dem SVG-Markup als Inhalt angelegt:1
<span><svg style="height: 1em; width: 1em; margin-bottom: 2px;" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linecap:round;stroke-linejoin:round;" > <path d="M17.5,5.5L17.5,42.5M30.5,5.5L30.5,42.5M5.5,30.5L42.5,30.5M5.5,17.5L42.5,17.5M40.5,5.5L7.5,5.5C6.403,5.5 5.5,6.403 5.5,7.5L5.5,40.5C5.5,41.597 6.403,42.5 7.5,42.5L40.5,42.5C41.597,42.5 42.5,41.597 42.5,40.5L42.5,7.5C42.5,6.403 41.597,5.5 40.5,5.5Z" style="fill:white;fill-rule:nonzero;stroke:black;stroke-width:1px;" /></svg></span>
Im Post rendert es dann so:
-
Wo wir gerade beim Thema Sudoku sind: Es ist so unglaublich wichtig, die Regeln für ein Varianten-Sudoku genau zu lesen und zu verstehen. Ich habe diese Woche ein Rätsel dreimal neu anfangen müssen, weil ich nicht weiterkam und nichts zusammenpasste. Es stellt sich heraus: Ich habe die Regeln falsch interpretiert. Sobald ich dahinter kam, war das Rätsel ziemlich einfach und überzeugte mit einem richtig guten Flow. Selbst knobeln: „Searching For Secrets“:
Varianten-Sudoku „Searching For Secrets“ -
🔊 In dieser Woche gehört (gleich drei Mal weil’s so gut ist): Konfusia – Live @ Sisyphos Berlin, 2022-11-04
-
In diesem Fall ist es yt-dlp (GitHub), welches einfach nach
youtube-dl
umbenannt wurde. -
Das ist der einzige Knackpunkt: wenn es mehr als 15 Videos gibt, werden die älteren Videos nicht heruntergeladen. Da wir alle älteren Videos aber sowieso schon mit yt-backup gesichert hatten, war das kein Problem.
-
Cmd, Ctrl oder Strg als Modifier-Taste – was immer euer Keyboard hergibt
-
♦ meint dabei die „Hyper“-Taste, was eine Kombination der Modifier ⌘ + ⌥ + ⌃ + ⇧ ist. Für macOS gibt es das Tool Hyperkey, welches die Hyper-Taste auf die Caps Lock legt. Siehe auch den Wochenrückblick 2023-31.