ich wollte mich schon länger hier registrieren, da ich eifrig mitlese.
Nun nutze ich mal die Gelegenheit, mein Open-Source Projekt hier vorzustellen:
tone
Es ist ein Kommandozeilenprogramm zum Anzeigen und Bearbeiten von Audio-Metadaten und Tags, das unter allen gängigen Betriebssystemen als einzelne Binary laufen müsste - sprich: Runterladen und ausführen, ohne Abhängigkeiten (abgesehen vom M1 Mac, da scheint es noch Probleme zu geben). Ich habe es hauptsächlich geschrieben, um fehlende Features speziell für Hörbücher existierender Programme zu ergänzen, inzwischen hat es sich aber zu einem für mich echt brauchbaren Tool für alles Mögliche an Audio-Files gemausert.
Habe auch schon überlegt, es im Bereich Code-Review zu posten, da es noch ein recht junges Projekt ist. Ich freue mich also über jegliche Art von Feedback (Benutzung, Verbesserungsvorschläge, Code-Kommentare, etc.).
Worauf ich noch hinweisen möchte: Ich lasse das Projekt automatisch auf github über Github-Actions bauen und veröffentlichen. Falls also jemand ein Template für so etwas sucht, darf er sich gerne bedienen.
Features:
- Unterstützung diverser Datei- und Metadatenformate (id3, ape, mp4, etc.)
- Sehr viele Meta-Felder inkl. benutzerdefinierter Felder, Kapitel und Cover (Artist, Album, etc.)
- Taggen über Pfade (Metadaten werden über Templates aus Dateipfad geschrieben, z.B. --path-pattern="audiobooks/%g/%a/%s/%p - %n.m4b")
- JavaScript-Engine + API zum Erweitern um eigene selbstgeschriebene Features
Langfristig plane ich noch folgende Erweiterungen:
- Erweiterung von dump um JavaScript-Engine Unterstützung um benutzerdefinierte Ausgabeformate oder Exporte zu erzeugen
- rename - Audio-Dateien anhand von Tags umbenennen
- split - um eine Audio-Datei anhand von Kapitel aufzuteilen
- merge - mehrere Audio-Dateien zu einer zusammenfügen
- convert - Audio-Dateien konvertieren
Nutzen möchte ich dazu ffmpeg und fdkaac über eine Prozess-Integration (CliWrap).
Im Code genutzt werden:
- c# 6
- spectre.console als Kommandozeilen-Bibliothek
- Dependency Injection
- jint als JavaScript interpreter
- z440.atl.core für das Audio-Tagging
Würde mich sehr über Feedback jeglicher Art freuen (solange es konstruktiv ist :-).