{"id":647,"date":"2009-11-29T18:01:06","date_gmt":"2009-11-29T17:01:06","guid":{"rendered":"https:\/\/wpethzprd.ethz.ch\/frank\/?p=647"},"modified":"2009-11-29T18:01:06","modified_gmt":"2009-11-29T17:01:06","slug":"ein-grauer-sonntagnachmittag","status":"publish","type":"post","link":"https:\/\/blogs.ethz.ch\/frank\/archives\/647","title":{"rendered":"Ein grauer Sonntagnachmittag"},"content":{"rendered":"<p>Schon lange wollte ich mal ein kleines Programm schreiben, das mir eine etwas l\u00e4stige Arbeit abnehmen soll, n\u00e4mlich das Umbennen von flac-Dateien. <a href=\"http:\/\/flac.sourceforge.net\/\">flac<\/a> ist ein frei erh\u00e4ltlicher Audiocodec, der verlustfrei Musikdateien komprimiert. Viele Abspielger\u00e4te k\u00f6nnen diese Dateien abspielen, Hauptausnahme sind diejenigen mit dem Obst drauf (wobei ich mir habe sagen lassen, dass dies mit einigen Kniffen doch geht). Der Hauptgrund, weshalb ich denn flac und nicht etwas anderes benutze, ist die Tatsache, dass der Codec im Quellcode frei verf\u00fcgbar ist. Und das hat sich jetzt als sehr n\u00fctzlich erwiesen. flac kennt ein flexibles und leistungsf\u00e4higes Metadatenformat. Mit einigen Scripts habe ich die Files mit den Metadaten wie Komponist, Musiker etc. versehen bzw. habe die Angaben aus der cddb vereinheitlicht. Da fragt sich wohl mancher, weshalb ich Scripts benutze. Ganz einfach: Auch mir sind einige Metadateneditoren bekannt, doch ein ausreichend geschickt angelegtes Textfile ist schneller editiert als der wohl beste GUI-Metadateneditor mir die gleiche T\u00e4tigkeit erlauben w\u00fcrde.<\/p>\n<p>Nun wollte ich anhand der erfassten Daten meine Dateien umbenennen, und zwar so dass keine Spezialzeichen wie Leerzeichen, Umlaute etc. enthalten sind. Da gibt es einige Tools im Netz, die das auch k\u00f6nnen, jedoch hat mich keines so wirklich befriedigt. Nun kam der heutige graue Sonntag und dank OpenSource war es nicht wirklich schwierig, ein solches Programm zu schreiben. Die Herausforderung lag auch weniger im Prinzip als in den Details, d.h. wie man welche Zeichen ersetzen kann und wie man mit Unicode umgeht. Tja, eine erste Version ist nun hier und kann sicher noch verbessert werden: <a href=\"http:\/\/n.ethz.ch\/~frmeier\/download\/code\/flacrenamer.tar.bz2\">flacrenamer.tar.bz2<\/a> :w<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Schon lange wollte ich mal ein kleines Programm schreiben, das mir eine etwas l\u00e4stige Arbeit abnehmen soll, n\u00e4mlich das Umbennen von flac-Dateien. flac ist ein frei erh\u00e4ltlicher Audiocodec, der verlustfrei Musikdateien komprimiert. Viele Abspielger\u00e4te k\u00f6nnen diese Dateien abspielen, Hauptausnahme sind diejenigen mit dem Obst drauf (wobei ich mir habe sagen lassen, dass dies mit einigen [&hellip;]<\/p>\n","protected":false},"author":55,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-647","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/blogs.ethz.ch\/frank\/wp-json\/wp\/v2\/posts\/647","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.ethz.ch\/frank\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.ethz.ch\/frank\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.ethz.ch\/frank\/wp-json\/wp\/v2\/users\/55"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.ethz.ch\/frank\/wp-json\/wp\/v2\/comments?post=647"}],"version-history":[{"count":0,"href":"https:\/\/blogs.ethz.ch\/frank\/wp-json\/wp\/v2\/posts\/647\/revisions"}],"wp:attachment":[{"href":"https:\/\/blogs.ethz.ch\/frank\/wp-json\/wp\/v2\/media?parent=647"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.ethz.ch\/frank\/wp-json\/wp\/v2\/categories?post=647"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.ethz.ch\/frank\/wp-json\/wp\/v2\/tags?post=647"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}