Scripts

Il existe deux types de scripts utilisés dans Picard: le script de nommage des fichiers et les scripts de marquage. Ils sont gérés à partir des sections « Nommage des fichiers » et « Scripting » du menu « Options ‣ Options… ». Tous les scripts sont écrits en utilisant le Langage de script Picard. Les scripts sont souvent discutés dans le Forum communautaire de MetaBrainz, et il y a un fil spécifique au nommage des fichiers et aux extraits de scripts.

Script de dénomination de fichier

Il n’y a qu’un seul script de dénomination de fichier défini dans les paramètres d’un utilisateur, bien qu’il puisse varier d’un simple script sur une ligne tel que %album%/%title% à un script très complexe utilisant différents formats de dénomination de fichier basés sur différents Critères. Dans tous les cas, les fichiers seront enregistrés en utilisant le texte sorti par le script.

Note

Les nouveaux ensembles de balises ou les balises modifiées par le script de dénomination de fichier ne seront pas écrites dans les métadonnées des fichiers de sortie.

Scripts de balisage

Plusieurs scripts de balisage peuvent être définis dans les paramètres d’un utilisateur. Des scripts individuels peuvent être activés ou désactivés, et l’ordre d’exécution des scripts peut être défini. Chaque fois qu’un script est exécuté automatiquement (c’est-à-dire lorsqu’un album est chargé), il est traité une fois pour chaque piste de l’album qui a déclenché la lecture. Par exemple, si deux scripts de balisage sont activés (A et B) et qu’un album avec trois pistes est chargé, les scripts seront traités dans l’ordre suivant:

  1. Script A Track 1;

  2. Script A Track 2;

  3. Script A Track 3;

  4. Script B Track 1;

  5. Script B Track 2;

  6. Script B Track 3.

Les mises à jour des métadonnées ne sont pas partagées entre les pistes, vous ne pouvez donc pas ajouter de données d’une piste à une balise dans une autre piste.

Tout nouveau jeu de balises ou balises modifiées par les scripts de balisage sera écrit dans les métadonnées des fichiers de sortie, sauf si le nom de balise commence par un trait de soulignement. Ces balises « masquées » sont généralement utilisées comme variables pour contenir des valeurs temporaires qui seront utilisées ultérieurement dans les scripts de balisage ou de dénomination de fichier. Les scripts de balisage sont exécutés une fois pour chaque piste dans les données, en utilisant les métadonnées de cette piste.

Les scripts de balisage peuvent également être exécutés manuellement en cliquant avec le bouton droit sur un album ou une piste dans le volet de droite de Picard. S’il est exécuté à partir de l’entrée de l’album, le script est exécuté pour chaque piste de l’album. S’il est exécuté à partir d’une piste individuelle, le script n’est exécuté que pour cette piste.

Exemples de scripts de marquage

Les exemples de script suivants montrent comment les scripts du tagger peuvent être utilisés pour résoudre certains cas d’utilisation spécifiques. Veuillez vous référer à Langage de script Picard pour une description détaillée des variables et des fonctions utilisées dans ces exemples.

Déplacer la désambiguïsation vers le titre de l’album

Ajoute le commentaire de désambiguïsation d’une sortie au titre de l’album:

$set(album,%album%$if(%_releasecomment%, \(%_releasecomment%\)))

Libérer la langue en tant que langue

La variable %_releaselanguage% spécifie la langue de la liste des pistes, alors que la variable %language% est supposée être la langue des paroles. Le script suivant utilisera la variable %_releaselanguage% à la place si %language% est vide:

$if($not(%language%),$set(language,%_releaselanguage%))

Utiliser la date de sortie originale

Par défaut, Picard fournit un tag date qui contient la date de sortie d’une version spécifique et originaldate qui fournit la date de sortie la plus ancienne de cette version. Par exemple, vous pouvez avoir une réédition en 2020 d’un album qui est sorti en 1992. Dans ce cas, date sera mis à « 2020 » et originaldate à « 1992 ». Si vous préférez avoir toujours la date de sortie originale comme date principale dans les balises de votre fichier, vous pouvez utiliser le script suivant:

$set(date,$if2(%originaldate%,%date%))

L’utilisation de $if2 garantit que si originaldate est vide, il reviendra à date.

De plus, Picard fournit une variable %_recording_firstreleasedate%, qui essaie de fournir la première date de sortie par enregistrement (qui peut être différente pour chaque piste dans une sortie). Si vous préférez cela, vous pouvez utiliser le script suivant:

$set(date,$if2(%_recording_firstreleasedate%,%originaldate%,%date%))

Ou si vous voulez garder le date pour la date de sortie réelle de la version spécifique, mais utiliser la date de première sortie de l’enregistrement comme originaldate:

$set(originaldate,$if2(%_recording_firstreleasedate%,%originaldate%))

Définir le nom de tri de l’album

La balise albumsort n’est pas remplie par Picard par défaut. Vous pouvez lui donner une valeur significative avec les préfixes « The » et « A » déplacés à la fin avec le script suivant:

$set(albumsort,$swapprefix(%album%))

Par exemple, le nom de tri de la version « The Best of Muddy Waters » deviendra « Best of Muddy Waters, The ».

Définir la compilation pour les sorties multi-artistes

Par défaut, la balise compilation sera mise à 1 uniquement pour les sorties Various Artists. Le script suivant le définira pour toutes les sorties avec plus d’un artiste (comme c’était le comportement par défaut dans Picard 1.2 et antérieur):

$if(%_multiartist%,$set(compilation,1))

Supprimer le featuring de l’artiste de l’album

Cela supprime toujours les artistes en vedette de l’artiste de l’album:

$set(albumartist,$rreplace(%albumartist%,\\s+feat\\..*,))

Déplacer le featuring de l’artiste au titre

Selon les directives de MusicBrainz, les artistes en featuring font partie du nom de l’artiste, par exemple « Artist A feat. Artist B ». Certains utilisateurs préfèrent que le featuring soit ajouté au titre de l’album ou de la piste. Le script suivant déplace les artistes en vedette vers le titre de la piste:

$set(_feat_title,$rsearch(%artist%,\\s+\\\(?\(f\(ea\)?t\\.[^\)]*\)))
$set(artist,$rreplace(%artist%,\\s+\\\(?f\(ea\)?t\\.[^\)]*\\\)?,))
$set(title,$if(%_feat_title%,%title% \(%_feat_title%\),%title%))

On peut faire de même pour déplacer les artistes vedettes de l’artiste de l’album au titre de l’album:

$set(_feat_album,$rsearch(%albumartist%,\\s+\\\(?\(f\(ea\)?t\\.[^\)]*\)))
$set(albumartist,$rreplace(%albumartist%,\\s+\\\(?f\(ea\)?t\\.[^\)]*\\\)?,))
$set(album,$if(%_feat_album%,%album% \(%_feat_album%\),%album%))

Conserver le nom de fichier original

La balise originalfilename est censée contenir le nom de fichier que le fichier avait à l’origine. Par défaut, Picard ne définit ni ne modifie cette balise. Si vous voulez sauvegarder cette information, le script suivant peut être utilisé:

$set(originalfilename,$if2(%originalfilename%,%_filename%.%_extension%))

Ceci gardera toute balise existante originalfilename. Mais si cette balise n’est pas encore présente, elle sera remplacée par le nom du fichier courant. Comme cela se produit avant que le fichier ne soit enregistré, le nom original du fichier avant que Picard ne le modifie peut être préservé.