Zum Wahrscheinlich 100. Mal: (feat.)


#1

Moin liebes Forum,

wahrscheinlich könnt ihr es nicht mehr lesen, aaaber ich kriege es einfach nicht gebacken eine Aktion so zu schreiben, dass alles nach meinen Vorstellungen klappt. Ich hätte gerne eine Aktion die folgendes macht:

  1. der Anfangsbuchstabe jedes Wortes soll groß sein, alle Unterstriche raus und evtl. Nummerierungen entfernen
  2. dj, Dj, dJ -> DJ / Vs., VS., Vs, VS, -> vs. / Mc., mc., mc -> MC
  3. Ft. Feat. Featuring usw. zu feat.
    4 alle feat. XX in (feat. XX)
    5.den (feat. XX) Teil an das Ende des Titels setzen
  4. eventuelle andere Klammern eckig setzten und vor den (feat. XX) Teil setzten
  5. den Titel "Toller Song [Endloser Supermix] (feat. Heidi)" zum Dateinamen 01. Toller Song [Endloser Supermix] (feat. Heidi) konvertieren

Den ersten Teil bis auf die Nummerierungen kriege ich hin. Jedoch spätestens ab den Klammern bin ich am Verzweifeln. Komischerweise treten dann immer irgendwelche Fehler auf, oder ich setzte die Klammer hinter die Dateiendung.

Über eine Hilfestellung würde ich mich sehr freuen. :grinning:


#2

Lass doch mal sehen, was Du bisher schon hast.


#3

Guckst du vielleicht hier:

Schrebweise ändern:
http://hilfe.mp3tag.de/options_format.html#case

Suchen und ersetzen: http://hilfe.mp3tag.de/options_format.html#replace
(Gilt für alle Änderungen von Textkonstanten wie Vs, VS, feat, Featuring etc.)

Dateien umbenennen mit Daten aus den Tag-Feldern:
vielleicht hier: Konverter

Hier was zum Ersetzen von Klammern:


Hier was zum Verschieben von (feat...) ans Ende:


#4

@LyricsLover

Also bisher habe ich eine Aktion erstellt die folgendes beinhaltet:

  1. Schreibweise Normal:
    Feld ALL
    Wortbeginn (-
    (obwohl ich nicht verstehe was dieser Ausdruck besagt)

  2. Standard:
    hier ist jetzt insgesamt 6 Mal Ersetzen: _ALL
    Original %20 (auch hier verstehe ich nicht wofür das Prozent Zeichen und die 20 stehen)
    Ersetzen durch nichts
    Original _
    Ersetzen durch nichts
    Original Dj (kann ich hier mehrere Schreibweisen angeben? Mit " | "hat es irgendwie nicht geklappt)
    Ersetzen durch DJ
    Original Feat (auch hier dieselber Frage: Kann ich hier mehrere Schreibweisen angeben?)
    Ersetzen durch feat
    Original Mc
    Ersetzen durch MC (kann man das so Filtern, dass das nur greift wenn vor und nach Mc, mc etc. ein Leerzeichen steht?)
    Original Vs (wieder die Frage nach den Schreibweisen)
    Ersetzen durch vs (am liebsten hätte ich da noch einen Punkt, also " vs. ")

Die folgenden drei regulärer Ausdruck ersetzen:

Original feat
Ersetzen durch feat. (kann man das so einstellen, dass das nur greift, wenn es noch keinen Punkt gibt?)
Original feat.
Ersetzen durch (feat. (Wie kann ich jetzt elegant die Klammer vor der Dateiendung schließen? Mit " $ " und " ) " setzte ich immer die Klammer hinter der Dateiendung)

  1. Artist aus Dateinamen entfernen: _FILENAME
    Original Led Zeppelin -
    Ersetzen durch nichts (Gibt es hier eine Möglichkeit, dass automatisch die Zeichenfolge "Leerzeichen-Bindestrich" erkannt wird und alles davor bis zu einem Punkt entfernt wird?
    Beispiel: 13. Led Zeppelin - Stairway To Heaven -> 13. Stairway To Heaven

Um das Verschieben der Featuring-Klammern und die eckige Klammern für besondere Informationen habe ich mich noch nicht gekümmert.

@ohrenkino
Danke erstmal dür die ausführliche Antwort. :+1:
Leider komme ich nicht ganz mit der Dokumentation von "Ersetzen mit regulärem Ausdruck" zurecht, da ich nicht wirklich weiß, was ich wann brauche.


#5

@dobby: @ohrenkino hat Dir schon verschiedene Links genannt, da findest Du die Erklärung zu den meisten Fragen.

z.B. Zur Schreibweise "Normal" .
%20 ist der HTML-Code für einen Leerschlag

Mehrere Schreibweisen kannst Du schon angeben, dass funktioniert am besten mit "regulären Ausdrücken". Es sei hier schon vorweg erwähnt, dass es keine 100% immer funktionierenden Lösungen gibt.

Ein Beispiel:
Wenn Du wirklich "Mc" durch "MC" ersetzt, dann wird z.B. aus "Amy McDonald" fälschlicherweise neu "Amy MCDonald". Mit dem Leerschlag vorher und nachher kannst Du das eingrenzen, aber "Bomfunk Mc's" oder "Rebel Mc" wird dadurch immer noch nicht erkannt. :wink:


#6

Wortbeginn beschreibt, nach welchem Buchstaben wieder groß geschrieben werden soll. Wenn du jetzt also (demnächst) eckige Klammern hinzufügst, sollten die hier mit aufgenommen werden.

Man kann für ein Feld mehrere Begriffe angeben, dann nimmt man aber nicht eine Aktion vom Typ "Ersetzen", sondern "Tag-Feld formatieren" (geht nur jeweils für 1 Tag-Feld, nicht _ALL)
Format String: $replace(%feldname%,Dj,DJ,dj,DJ,featuring,feat.,ft.,feat.,Featuring,feat.)
Diese Aktion achtet auf die Schreibweise.

Ich würde nie mit dem Dateinamen an sich rumfummeln, sondern den immer aus den Tag-Daten erzeugen. Entweder mit dem Konverter>Tag-Dateiname oder eine Aktion vom Typ "Tag-Feld formatieren" für _FILENAME:
Format string: $num(%track%,2). %title%

Aktion vom Typ "Ersetzen mit regulärem Ausdruck" für TITLE
Such-String: (.*) (feat\..*)
Ersetzen: $1 ($2)

Nur so: wenn du jetzt sowieso runde klammern um das "feat" packst, später dann auch noch andere runde Klammern durch was anderes ersetzen willst, warum machst du es dir nicht im ersten Schritt einfach und packst das "feat" erst mal in Zeichen, die es noch nicht gibt. Dann bleiben die anderen runden Klammern erst mal übrig und können ersetzt werden und dann ersetzt du das feat-Zeichen durch die runden Klammern.
Die Aktion für feat könnte also statt dessen so aussehen:
Aktion vom Typ "Tag-Feld formatieren"für TITLE
Format String: $regexp('Toller Song (Endloser Supermix) feat. Heidi','(.*) (feat\..*)','$1 ==$2==')

Resultat: Toller Song (Endloser Supermix) ==feat. Heidi==