Wow, sieht super aus. Werd ich definitiv mal ausprobieren.
Bisher hat es bei mir gereicht die Ordner mit for
zu durchlaufen und einen counter mitlaufen zu lassen. Bei find
hatte ich z.T. Probleme mit der Reihenfolge der Dateien.
Es gab dieses Thema schonmal:
Oje, warum bin ich da nicht früher drauf gekommen… Danke für den Hinweis!
Ich hoffe, der nachfolgende output bringt etwas Licht ins Dunkel… ID3 Tags sind nicht zwingend notwendig, aber durchaus sinnvoll. Das war auch einer der Gründe für die Entwicklung des Scriptes. Ich finde es gut, wenn ich später mal schnell/einfach sehe, was auf der Karte wo abgelegt ist. Mann/Frau könnte das Script im nächsten Schritt entsprechend erweitern, um alte Inhalte zu löschen/ersetzen und die Struktur dann zu reorganisieren.
Ohne ID3 Tags werden die Dateien auf Basis des Schleifenzählers durch nummeriert. Dies kann auch mit dem Parameter -n forciert werden, falls man einen Ordner mit gemischten Inhalten (mit und ohne Tags) hat. Denn sonst werden ggf. schon kopierte Dateien überschrieben, wenn deren Name aus einem vorhandenem Tag übernommen wurde und gerade zufällig dem Schleifenzähler gleicht der für eine Datei ohne Tag benutzt würde. Der Zähler selbst läuft stur hoch, während die vom find Kommando gelieferten Dateien in nicht sortierter Reihenfolge abgearbeitet werden. Eine Sortierung auf Basis von Dateinamen erschien mir an dieser Stelle nicht sinnvoll, da jeder Benutzer / jedes Programm die Namen beliebig vergeben kann.
Ist nicht optimal gelöst, zumindest wenn die Reihenfolge wichtig ist, z.B. bei Hörbüchern. Deshalb die klare Tendenz zu den ID3 Tags.
# Hilfe zum Script
$ tonuino-sdcard
Usage: tonuino-sdcard [-h] || [-v] -l <path to sdcard> || [-v] [-n] -c <music folder> <path to sdcard>
-h|--help show help/usage
-v|--verbose show detailed information about executed commands
-l|--list list content of sdcard based on ID3v2 tags
-c|--copy copy content of music folder to sdcard, reflecting folder structure and naming convention
-n|--num enumerate files mannually (e.g. in case of missing ID3v2 tags or mixed files
# Dateien aus Music/tmp, ... auf die SD-Karte übertragen, -v ist etwas geschwätziger
$ tonuino-sdcard -c Music/tmp /tmp/sdcard
$ tonuino-sdcard -c Music/Die\ Fantastischen\ Vier/Captain\ Fantastic /tmp/sdcard
$ tonuino-sdcard -c Music/Judith\ Holofernes/Ein\ leichtes\ Schwert /tmp/sdcard -v
cp Music/Judith Holofernes/Ein leichtes Schwert/Judith_Holofernes_-_Ein_leichtes_Schwert_-_12_-_John_Irving.mp3 /tmp/sdcard/02/012.mp3 ... DONE
cp Music/Judith Holofernes/Ein leichtes Schwert/Judith_Holofernes_-_Ein_leichtes_Schwert_-_09_-_Hasenherz_.mp3 /tmp/sdcard/02/009.mp3 ... DONE
cp Music/Judith Holofernes/Ein leichtes Schwert/Judith_Holofernes_-_Ein_leichtes_Schwert_-_06_-_Opossum.mp3 /tmp/sdcard/02/006.mp3 ... DONE
cp Music/Judith Holofernes/Ein leichtes Schwert/Judith_Holofernes_-_Ein_leichtes_Schwert_-_11_-_Havarie.mp3 /tmp/sdcard/02/011.mp3 ... DONE
cp Music/Judith Holofernes/Ein leichtes Schwert/Judith_Holofernes_-_Ein_leichtes_Schwert_-_07_-_M.I.L.F.mp3 /tmp/sdcard/02/007.mp3 ... DONE
cp Music/Judith Holofernes/Ein leichtes Schwert/Judith_Holofernes_-_Ein_leichtes_Schwert_-_02_-_Pechmarie.mp3 /tmp/sdcard/02/002.mp3 ... DONE
cp Music/Judith Holofernes/Ein leichtes Schwert/Judith_Holofernes_-_Ein_leichtes_Schwert_-_10_-_Platz_da.mp3 /tmp/sdcard/02/010.mp3 ... DONE
cp Music/Judith Holofernes/Ein leichtes Schwert/Judith_Holofernes_-_Ein_leichtes_Schwert_-_05_-_Liebe_Teil_2_-_Jetzt_erst_recht_.mp3 /tmp/sdcard/02/005.mp3 ... DONE
cp Music/Judith Holofernes/Ein leichtes Schwert/Judith_Holofernes_-_Ein_leichtes_Schwert_-_03_-_Ein_leichtes_Schwert__.mp3 /tmp/sdcard/02/003.mp3 ... DONE
cp Music/Judith Holofernes/Ein leichtes Schwert/Judith_Holofernes_-_Ein_leichtes_Schwert_-_04_-_Danke,_ich_hab_schon.mp3 /tmp/sdcard/02/004.mp3 ... DONE
cp Music/Judith Holofernes/Ein leichtes Schwert/Judith_Holofernes_-_Ein_leichtes_Schwert_-_01_-_Nichtsnutz.mp3 /tmp/sdcard/02/001.mp3 ... DONE
cp Music/Judith Holofernes/Ein leichtes Schwert/Judith_Holofernes_-_Ein_leichtes_Schwert_-_08_-_Brennende_Brücken.mp3 /tmp/sdcard/02/008.mp3 ... DONE
# Struktur auf der Karte nach obigen Aktionen
$ find /tmp/sdcard
/tmp/sdcard
/tmp/sdcard/02
/tmp/sdcard/02/008.mp3
/tmp/sdcard/02/009.mp3
/tmp/sdcard/02/001.mp3
/tmp/sdcard/02/002.mp3
/tmp/sdcard/02/003.mp3
/tmp/sdcard/02/007.mp3
/tmp/sdcard/02/012.mp3
/tmp/sdcard/02/006.mp3
/tmp/sdcard/02/010.mp3
/tmp/sdcard/02/004.mp3
/tmp/sdcard/02/005.mp3
/tmp/sdcard/02/011.mp3
/tmp/sdcard/00
/tmp/sdcard/00/001.mp3
/tmp/sdcard/00/002.mp3
/tmp/sdcard/00/003.mp3
/tmp/sdcard/00/004.mp3
/tmp/sdcard/00/005.mp3
/tmp/sdcard/01
/tmp/sdcard/01/008.mp3
/tmp/sdcard/01/009.mp3
/tmp/sdcard/01/015.mp3
/tmp/sdcard/01/001.mp3
/tmp/sdcard/01/014.mp3
/tmp/sdcard/01/002.mp3
/tmp/sdcard/01/016.mp3
/tmp/sdcard/01/003.mp3
/tmp/sdcard/01/007.mp3
/tmp/sdcard/01/013.mp3
/tmp/sdcard/01/012.mp3
/tmp/sdcard/01/006.mp3
/tmp/sdcard/01/010.mp3
/tmp/sdcard/01/004.mp3
/tmp/sdcard/01/005.mp3
/tmp/sdcard/01/011.mp3
# Zusammenfassung des Karteninhaltes unter Verwendung von ID3 tags auflisten (falls verfügbar)
$ tonuino-sdcard -l /tmp/sdcard
/tmp/sdcard/00: various artists/albums
/tmp/sdcard/01: various artists/albums
/tmp/sdcard/02: Artist: Judith Holofernes, Album: Ein leichtes Schwert
# Details zum Karteninhalt unter Verwendung von ID3 tags auflisten (falls verfügbar)
$ tonuino-sdcard -l /tmp/sdcard -v
/tmp/sdcard/00
001.mp3 => No ID3 tag
002.mp3 => No ID3 tag
003.mp3 => Artist: Ennio Morricone, Album: Il Etait une Fois dans L'Ouest, Title: The Man with the Harmonica
004.mp3 => No ID3 tag
005.mp3 => No ID3 tag
/tmp/sdcard/01
001.mp3 => Artist: Die Fantastischen Vier, Album: Captain Fantastic, Title: Captain Fantastic
002.mp3 => Artist: Die Fantastischen Vier, Album: Captain Fantastic, Title: Tunnel
003.mp3 => Artist: Die Fantastischen Vier feat. Clueso, Album: Captain Fantastic, Title: Zusammen
004.mp3 => Artist: Die Fantastischen Vier, Album: Captain Fantastic, Title: Fantanamera
005.mp3 => Artist: Die Fantastischen Vier, Album: Captain Fantastic, Title: Moduland.Y
006.mp3 => Artist: Die Fantastischen Vier, Album: Captain Fantastic, Title: Hitisn
007.mp3 => Artist: Die Fantastischen Vier, Album: Captain Fantastic, Title: Watchmen
008.mp3 => Artist: Die Fantastischen Vier, Album: Captain Fantastic, Title: Alle (Skit)
009.mp3 => Artist: Die Fantastischen Vier, Album: Captain Fantastic, Title: Endzeitstimmung
010.mp3 => Artist: Die Fantastischen Vier feat. Flo Mega, Album: Captain Fantastic, Title: Hot
011.mp3 => Artist: Die Fantastischen Vier, Album: Captain Fantastic, Title: Henson J.J. Barkley (Skit)
012.mp3 => Artist: Die Fantastischen Vier, Album: Captain Fantastic, Title: Aller Anfang ist Yeah
013.mp3 => Artist: Die Fantastischen Vier, Album: Captain Fantastic, Title: Das ist mein Ding
014.mp3 => Artist: Die Fantastischen Vier, Album: Captain Fantastic, Title: Affen mit Waffen
015.mp3 => Artist: Die Fantastischen Vier feat. Tom Gaebel, Album: Captain Fantastic, Title: Hitisn Reprise
016.mp3 => Artist: Die Fantastischen Vier feat. Damion, Album: Captain Fantastic, Title: Weitermachen
/tmp/sdcard/02
001.mp3 => Artist: Judith Holofernes, Album: Ein leichtes Schwert, Title: Nichtsnutz
002.mp3 => Artist: Judith Holofernes, Album: Ein leichtes Schwert, Title: Pechmarie
003.mp3 => Artist: Judith Holofernes, Album: Ein leichtes Schwert, Title: Ein leichtes Schwert
004.mp3 => Artist: Judith Holofernes, Album: Ein leichtes Schwert, Title: Danke, ich hab schon
005.mp3 => Artist: Judith Holofernes, Album: Ein leichtes Schwert, Title: Liebe Teil 2 - Jetzt erst recht
006.mp3 => Artist: Judith Holofernes, Album: Ein leichtes Schwert, Title: Opossum
007.mp3 => Artist: Judith Holofernes, Album: Ein leichtes Schwert, Title: M.I.L.F
008.mp3 => Artist: Judith Holofernes, Album: Ein leichtes Schwert, Title: Brennende Br�cken
009.mp3 => Artist: Judith Holofernes, Album: Ein leichtes Schwert, Title: Hasenherz
010.mp3 => Artist: Judith Holofernes, Album: Ein leichtes Schwert, Title: Platz da
011.mp3 => Artist: Judith Holofernes, Album: Ein leichtes Schwert, Title: Havarie
012.mp3 => Artist: Judith Holofernes, Album: Ein leichtes Schwert, Title: John Irving
Am besten würde man mal 'ne GUI bauen um die SD-Karte zu verwalten
Aber das Script ist schon echt super und sinnvoll.
Hallo Zusammen,
ich habe gleichzeitig ein ähnliches Script entwickelt (hab @Michi 's Skript nicht gesehen). Allerdings in Python. Das ist hier zu finden:
Es verwendet allerdings (noch) keine ID3-Tags.
Mittlerweile sind die wichtigsten Teile angekommen und mein erster TonUINO läuft auf dem Steckbrett…
Deshalb mal ein Update zum Script (jetzt auch auf GitHub):
In die Reihe der MP3-Tagging/Renaming Tools würde ich gerne EasyTag mit einreihen. Damit lassen sich Massenumbenennungen im Handumdrehen durchführen. Gibts für Windows als Installer, unter den Debian-Derivaten wie Ubuntu reicht ein sudo apt-get install easytag
für die Installation.
bYe Martin
Hallo @Michi, vielen Dank für dein Skript, ich nutze es unter Mac OS. Leider habe ich ein Problem die ID3 Tags anzuzeigen und keine mich mit dem ganzen zu wenig aus. Es scheint mir, dass meine mp3s nur Tags mit ID3v2 haben nicht ID3v1? …kann ich irgendwie auch mit v2 arbeiten? Denke es liegt irgendwo im Bereich der Zeilen 126 ff, allerdings bin ich nicht so fit mit ‚sed‘ etc.
Hier ein paar Infos:
./tonuino-sdcard.sh -l data/TONUINO-F/04/ -v
data/TONUINO-F/04/
001.mp3 => No ID3v1 tag
002.mp3 => No ID3v1 tag
003.mp3 => No ID3v1 tag
004.mp3 => No ID3v1 tag
005.mp3 => No ID3v1 tag
006.mp3 => No ID3v1 tag
007.mp3 => No ID3v1 tag
008.mp3 => No ID3v1 tag
009.mp3 => No ID3v1 tag
010.mp3 => No ID3v1 tag
011.mp3 => No ID3v1 tag
012.mp3 => No ID3v1 tag
Meine Version:
id3v2 --version
id3v2 0.1.12
Uses id3lib-3.8.3
This program adds/modifies/removes/views id3v2 tags,
and can convert from id3v1 tags
Direkter Output von id3v2:
id3v2 -l data/TONUINO-F/04/001.mp3
id3v2 tag info for data/TONUINO-F/04/001.mp3:
TT2 (Title/songname/content description): Schokolade
TP1 (Lead performer(s)/Soloist(s)): Deine Freunde
TP2 (Band/orchestra/accompaniment): Deine Freunde
TCM (Composer): Florian Sump, Lukas Nimscheck & Markus Pauli
TAL (Album/Movie/Show title): Ausm H?uschen
TRK (Track number/Position in set): 1/12
TYE (Year): 2012
TCO (Content type): Children's (255)
COM (Comments): (iTunPGAP)[eng]: 0
TEN (Encoded by): Musik 12.10.1.37
COM (Comments): (iTunNORM)[eng]: 000011A9 0000130B 000082F8 000089DE 0001ED78 0002015E 000085F0 000085B9 00011868 0000FFD0
COM (Comments): (iTunSMPB)[eng]: 00000000 00000210 00000B1C 0000000000791454 00000000 0036DEF0 00000000 00000000 00000000 00000000 00000000 00000000
PIC (Attached picture): ()[JPG, 0]: , 115106 bytes
data/TONUINO-F/04/001.mp3: No ID3v1 tag
Würde mich über einen Hinweis freuen.
Servus @mzeecedric! Ich benutze das selbst auch unter macOS und mir ist kürzlich beim auflisten aufgefallen, dass da irgendwas faul ist. Leider hab’ ich das noch nicht weiter verfolgt. Aber Du hast schon mal Recht, die sed patterns matchen nicht (matche derzeit 4-stellige, dein Beispiel und mein Test auf die Schnelle zeigen aber 3-stellige pattern). Ich schau mal, ob ich mir das morgen vornehmen kann. Bin mir nicht sicher, ob das an den ID3-Tag Versionen oder dem id3v2 tool liegt. Würde das dann mal flicken und upstream bringen. Grüße, @Michi
@mzeecedric es ist vollbracht - git pull
bitte testen und gerne noch Feedback, falls was nicht funktioniert und/oder zu verbessern ist…
ähm, war was mit der add
Funktion…? Danke. Werd die Tage nochmal testen. Wundere mich nur gerade, was eigentlich mit meinen Umlauten futsch ist, „Ausm H?uschen“. Naja, kommt jedenfalls direkt so aus id3v2 raus…
die angezeigt baumstruktur der speicherkarte kann man, finde ich, noch schön erweitern. so sieht es aus wie bei jedem anderen auch und enthält wenig zusätzliche information als zusammenfassung. es wäre doch viel informativer, würde man die struktur noch mit id3-tag informationen oder den ursprünglichen namen anzeigen. aber du wirst das sicher einfach mit tree oder so machen…
@quotschmacher verstehe ich nicht ganz… hast Du Dir mal die Readme im repo angeschaut? erhelle mich gerne noch mal
@mzeecedric So, ich hab noch mal eine „Verbesserung“ vorgenommen, die mir persönlich schon länger unter den Nägeln brennt. Jetzt gibt es im folder summary listing -l
ohne -v
IMHO bessere Ergebnisse. Das mag subjektiv sein aber ich habe einige Ordner, bei denen zwar komplette Alben drin sind, aber bei einzelnen files die artist/album Infos manchmal leicht verschieden sind (kommt vermutlich durch „schlechte“ Daten bei freedb.org, etc. beim Rippen). So bekomme ich jetzt in 99.9% der Fälle wenigsten eine der beiden Information *g*
ich bezog mich auf das hier:
show sdcard content nicely (using system tool)
aber steht ja auch da - system tool. dachte, das wäre aus deinem script. mein vorschlag bleibt aber trotzdem: vielleicht so eine ausgabe wie die von tree, nur mit zusatzinformationen (welcher ordner war das ursprünglich mal, wie heißt das lied, das sich hinter 001.mp3 verbirgt. einfach, das man eine überischt hat.
oder wenigstens ein „tree“, welches die id3-tags ausliest und dann einfach nur die entsprechenden titel anzeigt (eben in der baumstruktur)
Dafür hatte ich eigentlich den „verbose“ switch beim listing vorgesehen: -l -v
. Mit nur einer Verzeichnisebene gibt es auf der Karte ja keine wirkliche Baumstruktur, das ist ja sowas von Bonsai
$ tonuino-sdcard -l /Volumes/TONUINO
/Volumes/TONUINO/01: Artist: Reinhard Lakomy & Monika Ehrhardt, Album: Der Traumzauberbaum
/Volumes/TONUINO/02: Artist: Die Toten Hosen, Album: Alles ohne Strom
/Volumes/TONUINO/03: Artist: unknown, Album: unknown
vs.
$ tonuino-sdcard -l /Volumes/TONUINO -v
/Volumes/TONUINO/01
001.mp3 => Artist: Reinhard Lakomy & Monika Ehrhardt, Album: Der Traumzauberbaum, Title: Traumzauberbaum
002.mp3 => Artist: Reinhard Lakomy & Monika Ehrhardt, Album: Der Traumzauberbaum, Title: Küsschenlied
003.mp3 => Artist: Reinhard Lakomy & Monika Ehrhardt, Album: Der Traumzauberbaum, Title: Der Pfannkuchenschreck
004.mp3 => Artist: Reinhard Lakomy & Monika Ehrhardt, Album: Der Traumzauberbaum, Title: Der Eierbecher
005.mp3 => Artist: Reinhard Lakomy & Monika Ehrhardt, Album: Der Traumzauberbaum, Title: Gespensterduett
006.mp3 => Artist: Reinhard Lakomy & Monika Ehrhardt, Album: Der Traumzauberbaum, Title: Liebkoselied
007.mp3 => Artist: Reinhard Lakomy & Monika Ehrhardt, Album: Der Traumzauberbaum, Title: Mary Lu
008.mp3 => Artist: Reinhard Lakomy & Monika Ehrhardt, Album: Der Traumzauberbaum, Title: Frühlingslied
009.mp3 => Artist: Reinhard Lakomy & Monika Ehrhardt, Album: Der Traumzauberbaum, Title: Ich Bin Doch Kein Schneemann
010.mp3 => Artist: Reinhard Lakomy & Monika Ehrhardt, Album: Der Traumzauberbaum, Title: Frosch-Rock'n'Roll
011.mp3 => Artist: Reinhard Lakomy & Monika Ehrhardt, Album: Der Traumzauberbaum, Title: Kleine Wolke
012.mp3 => Artist: Reinhard Lakomy & Monika Ehrhardt, Album: Der Traumzauberbaum, Title: Lied Von Der Anstrengung, Böse Zu Sein
013.mp3 => Artist: Reinhard Lakomy & Monika Ehrhardt, Album: Der Traumzauberbaum, Title: Neidlied
014.mp3 => Artist: Reinhard Lakomy & Monika Ehrhardt, Album: Der Traumzauberbaum, Title: Regenlied
015.mp3 => Artist: Reinhard Lakomy & Monika Ehrhardt, Album: Der Traumzauberbaum, Title: Wie Riesen Niesen
016.mp3 => Artist: Reinhard Lakomy & Monika Ehrhardt, Album: Der Traumzauberbaum, Title: Klopsemops
017.mp3 => Artist: Reinhard Lakomy & Monika Ehrhardt, Album: Der Traumzauberbaum, Title: Das Bächlein
018.mp3 => Artist: Reinhard Lakomy & Monika Ehrhardt, Album: Der Traumzauberbaum, Title: Mondsilbertaufe
019.mp3 => Artist: Reinhard Lakomy & Monika Ehrhardt, Album: Der Traumzauberbaum, Title: Eine Kleine Stadt
020.mp3 => Artist: Reinhard Lakomy & Monika Ehrhardt, Album: Der Traumzauberbaum, Title: Traumreise
/Volumes/TONUINO/02
001.mp3 => Artist: Die Toten Hosen, Album: Alles ohne Strom, Title: Entschuldigung, es tut uns leid!
002.mp3 => Artist: Die Toten Hosen, Album: Alles ohne Strom, Title: Strom
003.mp3 => Artist: Die Toten Hosen, Album: Alles ohne Strom, Title: Urknall
004.mp3 => Artist: Die Toten Hosen, Album: Alles ohne Strom, Title: Laune der Natur
005.mp3 => Artist: Die Toten Hosen, Album: Alles ohne Strom, Title: Das ist der Moment
006.mp3 => Artist: Die Toten Hosen, Album: Alles ohne Strom, Title: Kamikaze
007.mp3 => Artist: Die Toten Hosen, Album: Alles ohne Strom, Title: Ein guter Tag zum Fliegen
008.mp3 => Artist: Die Toten Hosen, Album: Alles ohne Strom, Title: Ohne Dich
009.mp3 => Artist: Die Toten Hosen, Album: Alles ohne Strom, Title: Schwere (-los)
010.mp3 => Artist: Die Toten Hosen, Album: Alles ohne Strom, Title: Altes Fieber
011.mp3 => Artist: Die Toten Hosen, Album: Alles ohne Strom, Title: Politische Lieder
012.mp3 => Artist: Die Toten Hosen, Album: Alles ohne Strom, Title: 1000 gute Gründe
013.mp3 => Artist: Die Toten Hosen, Album: Alles ohne Strom, Title: Everlong
014.mp3 => Artist: Die Toten Hosen, Album: Alles ohne Strom, Title: Alles mit nach Hause
015.mp3 => Artist: Die Toten Hosen, Album: Alles ohne Strom, Title: Paradies
016.mp3 => Artist: Die Toten Hosen, Album: Alles ohne Strom, Title: Sorgenbrecher (Auf Euch)
017.mp3 => Artist: Die Toten Hosen, Album: Alles ohne Strom, Title: Achterbahn
018.mp3 => Artist: Die Toten Hosen, Album: Alles ohne Strom, Title: Liebeslied
019.mp3 => Artist: Die Toten Hosen, Album: Alles ohne Strom, Title: Feiern im Regen
020.mp3 => Artist: Die Toten Hosen, Album: Alles ohne Strom, Title: Hier kommt Alex
021.mp3 => Artist: Die Toten Hosen, Album: Alles ohne Strom, Title: Tage wie diese
/Volumes/TONUINO/03
001.mp3 => No ID3 tag
002.mp3 => No ID3 tag
003.mp3 => No ID3 tag
004.mp3 => No ID3 tag
Nee, das liegt am character encoding… die tags sind offensichtlich ISO-8859-1 (Latin 1) codiert, dein terminal emulator (iTerm2?) UTF8. Wenn du das entsprechend umstellst, passen auch die Umlaute wieder
008.mp3 => Artist: Reinhard Lakomy & Monika Ehrhardt, Album: Der Traumzauberbaum, Title: Fr�hlingslied
vs.
008.mp3 => Artist: Reinhard Lakomy & Monika Ehrhardt, Album: Der Traumzauberbaum, Title: Frühlingslied
Ich habe in iTerm2 für solche Fälle ein separates Profil Besser wäre natürlich, die tags auch in UTF8 zu haben. Vielleicht gibt es da eine gute Möglichkeit, seine Sammlung per batch dahingehend zu prüfen und die tags per re-encode zu flicken…
Händisch mag das sicher niemand machen