It's me again
Could someone adapt this renaming .flac files script to .m4a files (artist - tracktitle) ?
Thanks
status "Début du script...", "0000FF", "ready";
$items = get("SelectedItemsPathNames", <crlf>);
if ($items == "") {
status "Aucun fichier sélectionné !", "FF0000", "stop";
end true;
}
$renamed = 0;
$total = 0;
$ignored = 0;
foreach($item, $items, <crlf>) {
if (exists($item) != 1) { continue; }
$ext = gpc($item, "ext");
if ($ext != "flac" && $ext != "FLAC") { continue; }
$total++;
$basename = gpc($item, "base");
$folder = gpc($item, "path");
// --- LIRE LES TAGS AVEC property("#tag.") ---
$title = property("#tag.title", $item);
$artist = property("#tag.artist", $item);
// --- FALLBACK SI LES TAGS SONT VIDES ---
if ($title == "") {
if (regexmatches($basename, "^\d+")) {
$title = regexreplace($basename, "^\d+\s*[-_\.]\s*", "");
if ($title == $basename) {
$title = regexreplace($basename, "^\d+\s+", "");
}
} else {
$title = $basename;
}
$title = regexreplace($title, "_", " ");
}
if ($artist == "") {
$parent = gpc($item, "path");
$parentname = gpc($parent, "base");
if (strpos($parentname, " - ") > 0) {
$artist = gettoken($parentname, 1, " - ");
} else {
$artist = "Artiste Inconnu";
}
}
// --- NETTOYER LE TITRE ---
$title = regexreplace($title, '^' . regexreplace($artist, '([.*+?^=!:${}()|\[\]\/\\])', '\\$1') . ' - ', '');
// --- CONSTRUIRE LE NOUVEAU NOM ---
$newname = $artist . " - " . $title . ".flac";
$newname = regexreplace($newname, '[<>:"/\\|?*]', '');
// --- VÉRIFIER SI LE NOM EST DÉJÀ CORRECT ---
$basename_clean = regexreplace($basename, '\.flac$', '');
$newname_clean = regexreplace($newname, '\.flac$', '');
if ($basename_clean == $newname_clean) {
$ignored++;
continue;
}
// --- RENOMMER ---
if ($newname != $basename . ".flac") {
$fullnewname = $folder . "\" . $newname;
if (exists($fullnewname) == 1) {
status "⚠ Existe déjà: " . $newname, "FFA500", "ready";
continue;
}
$result = renameitem($newname, $item);
if ($result == 1) {
$renamed++;
status "✓ " . $renamed . "/" . $total . " - " . $newname, "008000", "ready";
} else {
status "✗ Échec: " . $basename . ".flac", "FF0000", "stop";
}
}
}
status "

" . $renamed . " renommés, " . $ignored . " ignorés sur " . $total . " fichiers.", "008000", "ready";