GoGPT Best VPN GoSearch

Icône de favori OnWorks

mp3info2p - En ligne dans le Cloud

Exécutez mp3info2p dans le fournisseur d'hébergement gratuit OnWorks sur Ubuntu Online, Fedora Online, l'émulateur en ligne Windows ou l'émulateur en ligne MAC OS

Il s'agit de la commande mp3info2p qui peut être exécutée dans le fournisseur d'hébergement gratuit OnWorks en utilisant l'un de nos multiples postes de travail en ligne gratuits tels que Ubuntu Online, Fedora Online, l'émulateur en ligne Windows ou l'émulateur en ligne MAC OS

PROGRAMME:

Nom


mp3info2 - obtenir/définir les balises MP3 ; utilise MP3::Tag pour obtenir les valeurs par défaut.

SYNOPSIS


# Imprimez les informations dans les balises et les informations autodéduites
mp3info2 *.mp3

# De plus, définissez le champ de l'année sur 1981
mp3info2 -y 1981 *.mp3

# Idem sans impression des infos, récursivement dans le répertoire courant
mp3info2 -R -p "" -y 1981 .

# Ne déduisez aucun champ, imprimez les informations (normalisées) à partir des balises uniquement
mp3info2 -C autoinfo=ID3v2,ID3v1 *.mp3

# Comme ci-dessus, mais sans normalisation/remplissage automatique, les informations brutes dans les balises
mp3info2 -N *.mp3

# Comme ci-dessus, mais uniquement avec la lecture de la balise ID2v1
mp3info2 -NC autoinfo=ID3v1 *.mp3

# Obtenir l'artiste à partir de CDDB_File, déduire automatiquement d'autres informations, les écrire dans les balises
mp3info2 -C artiste=CDDB_File -u *.mp3

# Pour le titre, préférez les informations du fichier .inf ; autodéduire le repos, mettre à jour
mp3info2 -C titre=Inf,ID3v2,ID3v1,nom de fichier -u *.mp3

# Idem, et récupérez l'artiste à partir du fichier CDDB
mp3info2 -C title=Inf,ID3v2,ID3v1,filename -C artiste=CDDB_File -u *.mp3

# Écrivez un script pour la conversion de .wav en .mp3, balises autodéductrices
mp3info2 -p "lame -h --vbr-new --tt '%t' --tn %n --ta '%a' --tc '%c' --tl '%l' --ty '% y' '%f'\n" *.wav >xxx.sh

DESCRIPTION


Le programme imprime un message résumant les informations sur les balises (obtenues via le module MP3::Tag) pour
fichiers spécifiés.

Il peut également mettre à jour les informations dans les balises ID3. Cela se produit dans trois cas différents.

· Si les informations fournies dans les options de ligne de commande "talygcn" diffèrent des
contenu des balises ID3 correspondantes (ou il n'y a pas de balises ID3 correspondantes).

· Si les options "-d" ou "-F" ont été données.

· si "MP3::Tag" obtient les informations d'autres moyens que les balises MP3, et "-u" force le
mise à jour des balises ID3.

(Tous ces moyens sont désactivés par l'option "-D".) La balise ID3v2 est écrite si nécessaire, ou si "-2"
option est donnée. (Remplissage automatique des champs déductibles (via la méthode
id3v2_frames_autofill()) est effectuée à moins que les options "-d" ou "-N" ne soient données.)

L'option "-u" écrit ("u"dates) les informations récupérées dans les balises MP3 ID3. Cette
L'option est supposée s'il existe des options de ligne de commande qui définissent explicitement les éléments de balise
("-a", "-t" etc., et "-F", "-d"). (Les effets de cette option peuvent être annulés en donnant
Option "-D".) Si l'option "-2" est également donnée, force l'écriture de la balise ID3v2 même si les informations
correspond à la balise ID3v1 (de plus, cette option permet la mise à jour automatique du "nom personnel"
champs, et les titres correspondants selon les valeurs de "translate_person",
"person_frames" etc. paramètres de configuration ; voir "Normalisation des champs"). Cette option
est ignoré si aucune modification des balises n'est détectée ; cependant, on peut forcer une mise à jour en répétant
cette option (utile si vous attendez le changement du "format" de la balise, par opposition à son
"teneur").

L'option "-p" imprime un message en utilisant l'argument suivant comme format (par défaut "\\", "\t",
"\n" sont remplacés par une barre oblique inverse, une tabulation et une nouvelle ligne ; régie par la valeur de l'option « -E »);
voir "interpoler" dans MP3::Tag pour plus de détails sur le format de sprintf()-comme des évasions. Sinon
l'option "-p" est donnée, le message au format par défaut sera émis. La valeur de l'option "-e"
est l'encodage utilisé pour la sortie ; si la valeur est un nombre, l'encodage spécifique au système est
deviné (et utilisé pour la sortie si le bit 0x1 est défini) ; si le bit 0x2 est défini, alors, la ligne de commande
les options sont supposées être dans l'encodage deviné ; si le bit 0x4 est défini, alors, la ligne de commande
les arguments sont supposés être dans l'encodage deviné. Utilisez la valeur "binary" pour faire du binaire
sortie.

Avec l'option "-D" (dry run) aucune mise à jour n'est effectuée, quelles que soient les autres options.
Avec cette option, aucune analyse des balises n'est effectuée à moins que cela ne soit nécessaire.

Utiliser les options

talygcn

pour écraser les informations (titre artiste album année genre commentaire piste-numéro) obtenues
via l'heuristique "MP3::Tag" (le commutateur "-u" est implicite si l'un de ces arguments diffère
de ce qui se trouverait autrement ; utilisez le commutateur "-D" pour désactiver la mise à jour automatique). Par défaut,
les valeurs de ces options ne sont pas interpolées en "%" ; cela peut être modifié par l'option "-E".

L'option "-d" doit contenir la liste séparée par des virgules des trames ID3v2 à supprimer. UNE
la spécification de trame est la même que ce qui pourrait être donné à l'interpolation de trame "%{...}"
commande, par exemple, "TIT3", "COMM03", "COMM(fra)[titre court]" ; la différence avec modifier-
l'accès est que TOUTES (et pas le premier of) les cadres correspondants sont supprimés. (L'option -d peut être
répété.)

Par exemple, "-d APIC" supprimerait tous les cadres d'image. De plus, si la liste contient
"ID3v1" ​​ou "ID3v2", les balises entières seront supprimées.

De même, l'option "-F" permet de paramétrer des trames "ID3v2" arbitraires : si l'on a besoin de paramétrer
un cadre, utilisez la directive "FRAME_spec=VALUE":

-F TIT2=Le_nouveau_titre

Encore une fois, sur modifier, TOUTES les cadres correspondants sont supprimés en premier, alors soyez prudent avec

-F COMM=MonCommentaire

L'option "-F" peut être répétée pour définir plus d'une trame. Si variable de configuration
"empty-F-deletes" est TRUE (par défaut), les arguments vides supprimeront le cadre.

On peut remplacer "FRAME_spec=VALUE" par "FRAME_spec < FILE" ; dans ce cas la valeur à définir
est lu à partir du fichier nommé DOSSIER; si le cadre ne contient que du texte (c'est-à-dire : au plus
Les champs "[encoded]Text URL Language Description" sont présents), le fichier est lu en texte
mode (et avec les espaces blancs de début/de fin supprimés), sinon il est lu en binaire
mode. (Un espace est requis pour les signes "<".) Si "<" est remplacé par "?<", le
la valeur n'est définie que si le cadre n'est pas encore présent et si le fichier existe ; si remplacé par ">",
la valeur (si présente) est écrite dans DOSSIER (la création de répertoires intermédiaires est
contrôlé par l'option de configuration "frames_write_creates_dirs", la valeur par défaut est FALSE).

De plus, "FRAME_spec" peut être l'un des "ID3v1" ​​ou "ID3v2" ou "TAGS" ; dans ce cas, tout
les balises sont écrites ou lues. Par exemple, pour "TAGS < FILE", "titre artiste album année genre
les informations sur la piste des commentaires sont calculées à partir de DOSSIER, qui peuvent être des balises brutes, telles que produites avec ">",
ou un fichier MP3 valide ; si Image::ExifTool est présent, les données peuvent être lues de manière arbitraire
fichier multimédia. (De même, pour "ID3v1 < FILE", la même information est extraite de "ID3v1"
tag uniquement.) Après cela, dans le cas de "ID3v2" ou "TAGS", les trames "ID3v2" sont copiées à partir du
Balise "ID3v2" une par une. (Avec des modifications appropriées pour "?<".)

Par défaut, la "VALEUR" pour "-F" est interpolée en "%" ; cela peut être modifié par l'option "-E".
Pour la commodité de l'utilisateur, des formes plus conviviales "compositeur, text_by, orchestre, chef d'orchestre,
disk_n" peut être utilisé à la place de "TCOM, TEXT, TPE2, TPE3, TPOS".

L'option "-P RECETTE" est une généralisation très puissante de ce qui peut être fait par les options
"-F", "-d" et "-t -a -l -y -g -c -n". Il peut être répété ; les valeurs doivent contenir le
analyser des recettes. Ils deviennent l'élément de configuration "parse_data" de "MP3::Tag" ; finalement
ces informations sont traitées par le module MP3::Tag::ParseData (si ce dernier est présent dans
la chaîne des heuristiques ; voir l'option "-C"). La "RECETTE" est divisée en "$flags, $string,
@patterns" sur son premier caractère non alphanumérique ; le premier des @patterns qui correspond
$string va être exécuté (pour les effets secondaires). (Voir exemples : « EXEMPLES : parse
règles".)

Si l'option "-G" est spécifiée, les noms de fichiers sur la ligne de commande sont considérés comme glob
motifs. Cela peut être utile si la longueur maximale de la ligne de commande est trop faible. Avec le
les arguments de l'option "-R" peuvent être des répertoires, qui sont recherchés récursivement pour l'audio
(défaut * .mp3) fichiers à traiter ; utilisez l'option "-r" pour réinitialiser l'expression régulière à regarder
pour (la valeur par défaut est "(?i:\.mp3$)").

L'option "-E" contrôle l'expansion des caractères d'échappement. Il doit contenir les lettres de
les options de ligne de commande où "\\, \n, \t" sont interpolées ; on peut ajouter les lettres
des options "talygcn F" nécessitant une interpolation "%" après le séparateur "/i:" (pour
"-F", seules les valeurs sont interpolées). La valeur par défaut est "p/i:Fp" : seul "-p" est
"\" interpolé, et seuls "-F" et "-p" sont soumis à l'interpolation "%". Si tout un
veut est de ajouter aux valeurs par défaut, faire précéder la valeur de "-E" (contenant des options ajoutées) par
"+". (Certaines parties de la valeur de l'option "-P" sont interpolées, mais cela devrait être
régi par des drapeaux, pas "-E" ; faire ne pas mettre "P" dans la partie interpolée "%" de "-E".)

Si l'option "-@" est donnée, tous les caractères "@" dans les options sont remplacés par "%". Cette
peut être pratique si le shell traite "%" spécialement (par exemple, les shells DOSISH).

Si l'option "-I" est donnée, aucune conjecture pour artiste le champ est effectué lors de la saisie.

L'option "-C CONFIG_OPT=VALUE1,VALUE2..." définit les données de configuration "MP3::Tag" de la même manière
manière comme "MP3::Tag-"configuration()> ferait (rappelez-vous que la valeur est un tableau ; éléments séparés
par des virgules s'il y en a plusieurs). L'option peut être répétée pour définir plusieurs valeurs. Noter
que puisque "ParseData" est utilisé pour traiter les recettes d'analyse "-P", il devrait être préférable de le conserver
dans la configuration "autoinfo" (et champs associés "auteur" etc) en présence de "-P".

Si l'option "-x" est donnée, les informations techniques sur le fichier audio sont imprimées
(Niveau MP3, durée, nombre d'images, remplissage, copyright, et la liste des images ID3v2
noms dans un format adapté aux échappements "%{...}"). Si "-x" est répété, le contenu des trames est
également imprimé (peut produire des caractères non imprimables, s'il est répété plus de deux fois).

Si l'option "-N" est donnée, tous les "smarts" sont désactivés - pas de normalisation des champs
arrive, et (par défaut) aucune tentative pour déduire les valeurs des champs de non-ID3
l'information est faite. Cette option équivaut (actuellement) à avoir "-C
autoinfo=ParseData,ID3v2,ID3v1" ​​comme première directive, pour ne pas avoir
Normaliser::Texte::Music_Fields.pm présent sur le chemin @INC, et n'appelant pas remplissage automatique() méthode.

Normalisation of des champs


(Le chargement du module de normalisation et toutes les opérations ultérieures peuvent être désactivés par le
option "-N", ou en définissant la variable d'environnement "MP3TAG_NORMALIZE_FIELDS" sur FALSE.
S'il n'est pas interdit, le module est tenté d'être chargé si le répertoire ~/.music_fields is
présent, ou "MP3TAG_NORMALIZE_FIELDS" est défini et TRUE.)

Si le chargement du module "Normalize::Text::Music_Fields" est réussi, ce qui suit est
en vigueur:

Si la valeur de "MP3TAG_NORMALIZE_FIELDS" est définie et non 1, cette valeur est décomposée en
répertoires en tant que PATH, et le chemin de chargement de "Normalize::Text::Music_Fields" est défini sur ceci
liste des répertoires. Ensuite, MP3::Tag est instruit (via la configuration correspondante
settings) pour utiliser les méthodes "normalize_artist" (etc.) définies par ce module. Ces méthodes
peut normaliser certaines données de balise. La version actuelle définit des méthodes de "normalisation"
des noms personnels et des titres (basés sur le compositeur). Cette normalisation est motivée
via des tables de configuration modifiables par l'utilisateur.

En plus de la normalisation automatique des données de balise MP3, on peut utiliser de "faux fichiers MP3" pour
accéder manuellement à certaines fonctionnalités de ce module. Pour cela, utilisez un nom de fichier vide, et "-D"
option. Par exemple,

mp3info2 -D -a beethoven -p "%a\n" ""
mp3info2 -D -a beethoven -p "%{shP[%a]}\n" ""
mp3info2 -D -a beethoven -t "sonate #28" -p "%t\n" ""
mp3info2 -D -a beethoven -t "allegretto, Bes" -@p "@t\n" ""
mp3info2 -D -a beethoven -t "op93" -@p "@t\n" ""

imprimera le nom de personne normalisé pour "beethoven", le court normalisé correspondant
nom de personne, et le titre normalisé de la "sonate #28" du compositeur "beethoven". Par exemple,
avec les tables de normalisation expédiées, il imprimera

Ludwig van Beethoven (1770-1827)
L. van Beethoven
Sonate pour piano n° 28 en la majeur ; Op. 101 (1816)
Allegretto pour piano trio en si bémol majeur ; WoO 39 (1812)
Symphonie n° 8 en fa majeur ; Op. 93 (comp. 1812, fp Vienne, 1814-02-27, dir. Beethoven ; éd. 1816)

L'exposition de commander of la vente au détail XNUMXh/XNUMX


Actuellement, les opérations se font dans l'ordre suivant

· Suppression d'ID3v1 ou ID3v2 dans son ensemble via l'option "-d" ;

· Les recettes de l'option "-P" sont configurées (à déclencher par interpolation) ;

· Le paramétrage effectué via les options "-a/-t/-l/-y/-g/-c/-n" ;

· Les réglages effectués via l'option "-F" ;

· Suppression de trames individuelles via l'option "-d" ;

· remplissage automatique des cadres ID3v2 (id);

· Émettre des informations basées sur les options "-p" et "-x" ;

· Déclencher les recettes de "-P" (si non déclenché par interpolation);

· Mettre à jour les balises si nécessaire.

Utilisation stratégie: escalade of complexité


Le but de ce script est de rendre la gestion des balises ID3 aussi simple as possible.

À une extrémité de l'échelle, on peut effectuer des manipulations arbitrairement complexes avec des balises utilisant
Module Perl "MP3::Tag".

En revanche, il est beaucoup plus pratique de gérer les manipulations les plus simples avec des balises
en utilisant les options de ce script "-t -a -l -y -g -c -n" et "-p -F -d". Pour un peu plus
tâches compliquées, on peut avoir besoin d'utiliser la méthode plus élaborée de analyser , à condition de
à ce script par l'option "-P" ; les règles dépendent fortement de interpolation, Voir
"interpoler" dans MP3::Tag, "interpoler_with_flags" dans MP3::Tag.

Pour simplifier la mise à niveau des "manipulations les plus simples" vers les "plus élaborées", nous
fournir une "règle d'analyse" synonymes aux options les plus simples. Donc si vous commencez par "-t -a -l -y
-g -c -n" et "-p -F -d" options qui "fonctionnent presque" pour vous, vous avez de bonnes chances d'être
capable d'atteindre pleinement votre objectif en modifiant les synonymes décrits ci-dessous.

(Ci-dessous, nous supposons que l'option "-E" est définie sur sa valeur par défaut, donc "-F -p" sont
"%"-interpolé, les autres options ne le sont pas. Notez également que si l'encodage de votre TTY est
reconnu par Perl, il est fortement recommandé de définir l'option "-e 3" ; sur les coques DOSISH,
mieux vaut utiliser "-@" et remplacer "%" par "@" ci-dessous.)

"-t VALEUR"
-P "mz/VALEUR/%t"

"-a -l -y -g -c -n"
Également.

"-F" "TIT2=VALEUR"
-P "mzi/VALUE/%{TIT2}"

"-F" "APIC[myDescr] < FICHIER"
-F "APIC[myDescr]=%{I(fimbB)FILE}"

or

-P "mzi/%{I(fimbB)FILE}/%{APIC[myDescr]}"

(supprimez « bB » pour les cadres contenant uniquement du texte).

"-F" "APIC[myDescr] > FICHIER"
-P "bOi,%{APIC[myDescr]},FILE"

(supprimer "b" pour les cadres de texte uniquement) ; ou utilisez "-e binary -p "%{APIC[myDescr]}""
avec redirection, voir « EXEMPLES : règles d'analyse ».

"-d" TIT2
-P "m//%{TIT2}"

"-F" "TIT2 ?< FICHIER"
Très délicat. Cela ne fera pas la distinction entre les fichiers vides et les fichiers inexistants :

-P "mzi/%{TIT2:1}0%{I(fFim)FILE}/10/10%{TIT2}/0%{U1}"

(ajouter « bB » à « fFim » pour les cadres autres que du texte ); la dernière partie peut être omise
si l'on omet le drapeau "m" - il n'est présent que pour détecter les fautes d'impression.

Pour plus de détails sur les « règles d'analyse », voir « EXEMPLES : règles d'analyse » et « DESCRIPTION » dans
MP3 :: Tag :: ParseData.

EXEMPLES: analyser


Seule l'option "-P" est suffisamment compliquée pour mériter des commentaires... Pour plus de détails sur
analyser , voir "DESCRIPTION" dans MP3::Tag::ParseData; pour plus de détails sur l'interpolation,
voir "interpoler" dans MP3::Tag, "interpoler_with_flags" dans MP3::Tag.

Pour un exemple (idiot), on peut remplacer "-a Homer -t Iliad" par

-P mz=Homère=%a -P mz=Iliade=%t

Un exemple moins idiot consiste à forcer une manière particulière d'analyser un nom de fichier via

-P "im=%{d0}/%f=%a/%n %t.%e"

Il est cassé en

drapeaux string pattern1
"im" "%{d0}/%f" "%a/%n %t.%e"

Les lettres du drapeau représentent interpoler, doit correspondre. Ceci interpole la chaîne
"%{d0}/%f" et analyse le résultat (qui est le nom de fichier avec un niveau du répertoire
partie conservée) en utilisant le modèle donné ; ainsi le nom du répertoire devient l'artiste, le
partie numérique de tête - le numéro de piste et le reste du nom de fichier (sans extension)
- le titre. Notez que puisque plusieurs modèles sont autorisés, on peut également autoriser
plusieurs formats de noms, par exemple

-P "im=%{d0}/%f=%a/%n %t.%e=%a/%t (%y).%e"

permet que le nom de base du fichier soit également de la forme « TITRE (ANNÉE) ». Une façon alternative de
obtenir les mêmes résultats est

-P "im=%{d0}=%a" -P "im=%f=%n %t.%e=%t (%y).%e"

ce qui correspond à deux recettes :

drapeaux chaîne modèle1 modèle2
"im" "%{d0}" "%a"
"im" "%f" "%n %t.%e" "%t (%y).%e"

Bien sûr, on pourrait utiliser

"im" "%B" "%n %t" "%t (%y)"

en remplacement du second.

Notez qu'il peut être plus lisible de définir artiste à "%{d0}" par une affectation explicite, avec
des arguments similaires à

-E "p/i:Fpa" -a "%{d0}"

(cette valeur de "-E" demande l'interpolation "%" de l'option "-a" en plus de la
par défaut "\"-interpolation de "-p" et "%"-interpolation de "-F" et "-p" ; on peut
raccourcissez-le avec "-E +/i:a").

Pour donner plus d'exemples,

-P "si=%D/.comment=%c"

lira le commentaire du fichier .commenter dans le répertoire du fichier audio ;

-P "ifn=%D/.comment=%c"

a un effet similaire si le fichier .commenter a des commentaires d'une ligne, un par piste (cela suppose
le numéro de piste peut être trouvé par d'autres moyens).

Supposons qu'un fichier Pièces dans un répertoire de fichiers MP3 a le format suivant : il a un
préambule, puis comporte un court paragraphe d'informations par fichier audio, précédé de la piste
nombre et point :

...

12. Rézitativ.
(Pizarre, Rocco)

13. Duett : jetzt, Alter, jetzt hat es Eile, (Pizarro, Rocco)

...

La commande suivante met cette information dans le titre de la balise ID3 (à condition que l'audio
les noms de fichiers sont suffisamment informatifs pour que MP3::Tag puisse en déduire le numéro de piste) :

mp3info2 -u -C parse_split='\n(?=\d+\.)' -P 'fl;Parts;%=n. %t'

Si ce paragraphe d'information a la forme "TITRE (COMMENTAIRE)" avec la partie "COMMENTAIRE"
étant facultatif, alors utilisez

mp3info2 -u -C parse_split='\n(?=\d+\.)' -P 'fl;Parts;%=n. %t (%c);%=n. %t'

Si vous souhaitez supprimer un point ou une virgule à la fin du titre, utilisez

mp3info2 -u -C parse_split='\n(?=\d+\.)' \
-P 'fl;Pièces;%=n. %t (%c);%=n. %t' -P 'iR;%t;%t[.,]$'

Le deuxième modèle de cette invocation est converti en

['iR', '%t' => '%t[.,]$']

qui applique essentiellement la substitution "s/(.*)[.,]$/$1/s" au titre.

Supposons maintenant qu'en plus de Pièces , nous avons un fichier texte Commentaires avec des informations supplémentaires ;
nous voulons mettre cette information dans le champ de commentaire après ce qui est extrait de "TITLE
(COMMENTAIRE)" ; séparez ces deux parties du commentaire par une ligne vide :

mp3info2 -EC -C 'parse_split=\n(?=\d+\.)' -C 'parse_join=\n\n' \
-P 'f;Commentaire;%c' -P 'fl;Pièces;%=n. %t' \
-P 'i;%t///%c;%t (%c)///%c' -P 'iR;%t;%t[.,]$'

Cela suppose que le titre et le commentaire ne contiennent pas '///' comme sous-chaîne.
Explication : le premier motif de "-P",

['f', 'Commentaire' => '%c'],

lit le commentaire du fichier « Commentaire » dans le champ de commentaire ; la deuxième,

['fl', 'Parts' => '%=n. %t'],

lit un morceau de « Parts » dans le champ de titre. Le troisième

['i', '%t///%c' => '%t (%c)///%c']

réorganise le titre et le commentaire à condition de le titre est de la forme "TITRE (COMMENTAIRE)".
(L'option de configuration "parse_join" se charge de séparer deux morceaux de commentaire
correspondant à deux occurrences de %c sur le côté droit.)

Enfin, le quatrième motif est le même que dans l'exemple précédent ; il supprime les parasites
ponctuation à la fin du titre.

Plus d'exemples : suppression de la chaîne "avec violon" du début du champ de commentaire (suppression
commenter complètement s'il ne reste rien):

mp3info2 -u -P 'iz;%c;avec violon%c' *.mp3

définir le champ de l'artiste sans laisser la fonction de mise à jour automatique en déduire d'autres champs
autres sources;

mp3info2 -C autoinfo=ParseData -a "AU Thor" *.mp3

définir un champ de commentaire à moins qu'il ne soit déjà présent :

mp3info2 -u -P 'i;%c///avec piano;///%c' *.mp3

Le dernier exemple montre comment écrire réellement des "programmes" dans le langage du "-P"
option : l'exemple donne une affectation conditionnelle. Avec des variables utilisateur (comme dans "%{U8}")
pour les temporaires, et une possibilité d'utiliser des expressions régulières, on pourrait fournir arbitrairement
logique programmatique. Bien sûr, à un certain niveau de complexité, il vaut mieux passer à
interfaçage direct avec le module Perl "MP3::Tag" (utilisez le code de ce script Perl comme
Exemple!).

Voici une tâche typique de paramétrage des cadres id3v2 « avancés » : compositeur (« TCOM »), orchestre
("TPE2"), conducteur ("TPE3"). Nous supposons une arborescence de répertoires qui contient des fichiers MP3 étiquetés
avec les conventions suivantes : « artiste » est en fait un compositeur ; « commentaire » est l'un des
deux formes :

Interprètes ; Orchestre; Conducteur
Orchestre; Conducteur

Pour définir les trames MP3 spécifiques via les règles "-P", utilisez

mp3info2 -@P "mi/@a/@{TCOM}" \
-P "mi/@c/@{U1}; @{TPE2}; @{TPE3}/@{TPE2}; @{TPE3}" -R .

Avec les options "-F", cela peut être simplifié comme

mp3info2 -@F "TCOM=@a" -P "mi/@c/@{U1}; @{TPE2}; @{TPE3}/@{TPE2}; @{TPE3}" -R .

or

mp3info2 -@F "composer=@a" -P "mi/@c/@{U1}; @{TPE2}; @{TPE3}/@{TPE2}; @{TPE3}" -R .

Pour copier les balises ID3 des fichiers MP3 du répertoire actuel vers les fichiers du répertoire /tmp/mp3 avec
l'extension .étiqueter (et imprimer "rapport d'avancement"), utilisez

mp3info2 -p "@N@E\n" -@P "bODi,@{ID3v2}@{ID3v1},/tmp/mp3/@N.tag" -DNR .

Comme nous n'avons pas utilisé le drapeau "z", les fichiers MP3 sans balises sont ignorés.

Supposons maintenant qu'il existe deux hiérarchies de fichiers parallèles de fichiers audio et de paroles :
les fichiers audio sont dans audio/nom_rép/nom_audio.mp3 avec le fichier de paroles correspondant dans
texte/nom_répertoire/nom_audio.mp3. Pour joindre des paroles aux fichiers MP3 (dans le cadre "COMM" avec
description "paroles" dans la langue "eng" - ceci. is a non standard emplacement, sur le lien ci-dessous!),
nous appeler

mp3info2 -@P "fim;../text/@{d0}/@B.txt;@{COMM(eng)[lyrics]}" -Ru .

à l'intérieur du répertoire acoustique. (Remplacez « fim » par « Ffim » pour ignorer les fichiers audio pour lesquels
le fichier texte correspondant n'existe pas.) (Bien sûr, pour suivre les spécifications,
on aurait dû utiliser le champ "%{USLT(eng)[]}" au lieu de "%{COMM(eng)[lyrics]}" ; voir
ci-dessous pour les variantes).

Terminez par un exemple très simple : tout ce que le patron

-P 'i;%t;%t'

fait est la suppression des blancs de fin et de début du titre (qui est déduit par d'autres
moyens).

Plus exemples


Avec l'option "-F", on pourrait définir le cadre "USLT" comme

mp3info2 -@F "USLT(eng)[] < ../text/@{d0}/@B.txt" -Ru .

Imprimez un tel cadre (dans n'importe quelle langue) avec

mp3info2 -@p "@{USLT[]}\n" fichier.mp3

De même, pour imprimer le cadre APIC avec une description vide, utilisez

mp3info2 -e binaire -@p "@{APIC[]}" fichier.mp3 > output_picture_file

ou (avec la description "couverture")

mp3info2 -@P "bOi,@{APIC[cover]},output_picture_file.jpg" loading="lazy" audio_07.mp3

Pour définir un tel cadre à partir d'un fichier xxx.gif (avec le "Type d'image" par défaut, "Couverture (avant)",
et une description vide), effectuez l'une des

mp3info2 -F "APIC < xxx.gif" fichier.mp3
mp3info2 -@F "APIC[]=@{I(fimbB)xxx.gif}" fichier.mp3

La différence entre "APIC" et "APIC[]" est que le premier supprime d'abord toutes les trames "APIC",
et le second supprime uniquement tous les cadres "APIC" avec une description vide - mais une image arbitraire
taper. Il peut donc être plus approprié d'utiliser la spécification complète, comme dans "APIC(Cover
(de face))[]".

Pour supprimer les cadres « APIC » avec des descriptions vides, des « Types d'image » arbitraires (et « MIME
type"s qui peuvent être correctement calculés par mp3info2, par exemple, "TIFF/JPEG/GIF/PNG"), utilisez

mp3info2 -d "APIC[]" fichier.mp3

(notez que cela ne libérera pas d'espace disque, à moins que "rétrécir" ne soit forcé par la configuration
variables). Pour faire de même avec le type d'image "Chef d'orchestre" uniquement, faites

mp3info2 -d "APIC(Conducteur)[]" fichier.mp3

Pour parcourir les sous-répertoires et ajouter un fichier cover.jpg du répertoire du fichier en tant que
cadre "par défaut" "APIC", mais seulement s'il n'y a pas de cadre "APIC" et qu'un fichier existe, faites

mp3info2 -@F "APIC ?< @D/cover.jpg" loading="lazy" -R .

Cela supprime les cadres vides pour la date, "TCOP, TENC, WXXX[], COMM(eng)[]", et supprime le
0 à partir du numéro de piste du fichier MP3 dans le répertoire actuel :

mp3info2 -@ -E +/i:y -F "TCOP=@{TCOP}" -F "TENC=@{TENC}"
-F "WXXX[]=@{WXXX[]}" -F "COMM(eng)[]=@{COMM(eng)[]}"
-y "@y" -P "mi/@n/0@n/@n" *.mp3

Exemples on traitement avec cassé encodages


L'une des principales faiblesses de la spécification ID3 était qu'elle exigeait que les données soient
fourni en codage "latin-1". Étant donné que la plupart des langues dans le monde ne sont pas exprimables en
"latin-1", cela a conduit (la majorité ?) à ce que les balises ID3 ne soient pas conformes aux normes. Plus récent
les versions des spécifications ont corrigé cette lacune, mais le mal était déjà fait.
Heureusement, ce script peut utiliser les capacités de "MP3::Tag" pour convertir des fichiers non conformes
contenu à un conforme.

L'exemple suivant convertit les balises ID3v2 qui ont été écrites (non conformes aux normes)
le codage "cp1251" doit être en codage conforme à la norme. Aux fins de cet exemple,
supposer que les balises ID3v1 sont dans le même encodage (et que l'on veut les laisser dans le
encodage "cp1251"); les fichiers à traiter se trouvent dans le répertoire courant et
(récursivement) dans ses sous-répertoires (syntaxe "set" pour les shells DOSISH) :

définir MP3TAG_DECODE_V1_DEFAULT=cp1251
définir MP3TAG_DECODE_V2_DEFAULT=cp1251
mp3info2 -C id3v2_fix_encoding_on_write=1 -u2R .

Pour plus d'informations, voir "ENVIRONNEMENT" dans MP3::Tag, "config" dans MP3::Tag et
"PERSONNALISATION" dans MP3::Tag.

INCOMPATIBILITÉS avec infos mp3
Cet outil est vaguement calqué sur le programme infos mp3; il est « principalement » rétrocompatible
(surtout en mode "naïf" via "-N"), et permet un sur-ensemble très important de
Fonctionnalité. Les incompatibilités descendantes connues sont :

-G -h -r -d -x

Fonctionnalité manquante :

-f -F -je

Incompatible "%"-s'échappe:

%e %E - sémantique absolument différente
%v - n'a pas de 0 à la fin
%q - a une partie fractionnaire
%r - est un nombre, pas un mot "Variable" pour VBR
%u - est un de moins (en présence d'un cadre de descripteur uniquement ?)

Disparu "%"-s'échappe:

%b %G

Échappement de barre oblique inverse : seuls "\\", "\n", "\t" sont pris en charge.

"-x" imprime les données dans un format différent, tous les champs ne sont pas présents et les noms de balise ID3v2
sont sorties.

ENVIRONNEMENT


Avec "-e" 1, 2 ou 3, ce script peut consulter les variables d'environnement "LC_CTYPE, LC_ALL,
LANG" pour en déduire l'encodage courant. Aucune autre variable d'environnement n'est directement lue par
ce scénario.

Notez cependant que le module MP3::Tag dispose d'un riche ensemble de paramètres par défaut pour les paramètres d'encodage
réglable par des variables d'environnement ; voir "ENVIRONNEMENT" dans MP3::Tag. Donc ces variables
affectent (indirectement) le fonctionnement de ce script.

OBSOLÈTE INTERFACE


Si vous ne comprenez pas de quoi il s'agit, il est prudent d'ignorer cette annonce :

L'ancienne méthode pré-version=1.05 (par triplication d'un séparateur, sans répétition de
options) pour fournir plusieurs commandes aux options "-F" et <-P> est toujours pris en charge, mais est
fortement déconseillé. (Cela n'entre pas en conflit avec l'interface actuelle.)

Utilisez mp3info2p en ligne en utilisant les services onworks.net


Serveurs et postes de travail gratuits

Télécharger des applications Windows et Linux

Commandes Linux

Ad




×
Publicité
❤ ️Achetez, réservez ou achetez ici — gratuitement, contribue à maintenir la gratuité des services.