Este é o comando mp3info2p que pode ser executado no provedor de hospedagem gratuita OnWorks usando uma de nossas várias estações de trabalho online gratuitas, como Ubuntu Online, Fedora Online, emulador online do Windows ou emulador online do MAC OS
PROGRAMA:
NOME
mp3info2 - obter / definir tags de MP3; usa MP3 :: Tag para obter os valores padrão.
SINOPSE
# Imprime as informações em tags e informações autoduzidas
mp3info2 * .mp3
# Além disso, defina o campo do ano como 1981
mp3info2 -y 1981 * .mp3
# O mesmo sem impressão de informações, recursivamente no diretório atual
mp3info2 -R -p "" -y 1981.
# Não deduza nenhum campo, imprima informações (normalizadas) apenas das tags
mp3info2 -C autoinfo=ID3v2,ID3v1 *.mp3
# Como acima, mas sem normalização / preenchimento automático, as informações brutas nas tags
mp3info2 -N * .mp3
# Como acima, mas apenas com leitura de tag ID2v1
mp3info2 -NC autoinfo = ID3v1 * .mp3
# Pegue o artista de CDDB_File, autodeduce outras informações, grave-o nas tags
mp3info2 -C artist = CDDB_File -u * .mp3
# Para título, prefira informações do arquivo .inf; autoduzir resto, atualizar
mp3info2 -C title = Inf, ID3v2, ID3v1, nome do arquivo -u * .mp3
# O mesmo, e pegue o artista do arquivo CDDB
mp3info2 -C title = Inf, ID3v2, ID3v1, nome do arquivo -C artist = CDDB_File -u * .mp3
# Escreva um script para a conversão de .wav em .mp3, autodeduzindo tags
mp3info2 -p "lame -h --vbr-new --tt '% t' --tn% n --ta '% a' --tc '% c' --tl '% l' --ty '% y ''% f '\ n "* .wav> xxx.sh
DESCRIÇÃO
O programa imprime uma mensagem resumindo as informações da tag (obtidas através do módulo MP3 :: Tag) para
arquivos especificados.
Ele também pode atualizar as informações nas tags ID3. Isso acontece em três casos diferentes.
· Se as informações fornecidas nas opções de linha de comando "talygcn" forem diferentes das
conteúdo das tags ID3 correspondentes (ou não há tags ID3 correspondentes).
· Se as opções "-d" ou "-F" foram fornecidas.
· Se "MP3 :: Tag" obtém as informações de outros meios que não as tags de MP3, e "-u" força o
atualização das tags ID3.
(Todas essas formas são desabilitadas pela opção "-D".) A tag ID3v2 é gravada se necessário, ou se "-2"
opção é fornecida. (Preenchimento automático de campos dedutíveis (através do método
id3v2_frames_autofill ()) é executado, a menos que as opções "-d" ou "-N" sejam fornecidas.)
A opção "-u" grava ("u" pdates) as informações buscadas nas tags MP3 ID3. Esse
opção é assumida se houver opções de linha de comando que definem explicitamente os elementos da tag
("-a", "-t" etc., e "-F", "-d"). (Os efeitos desta opção podem ser substituídos dando
Opção "-D".) Se a opção "-2" também for fornecida, força a gravação da tag ID3v2 mesmo se a informação
se encaixa na tag ID3v1 (além disso, esta opção permite a atualização automática de "nome pessoal"
campos e títulos correspondentes de acordo com os valores de "translate_person",
"person_frames" etc. definições de configuração; veja "Normalização de campos"). Esta opção
é ignorado se nenhuma alteração nas tags for detectada; no entanto, pode-se forçar uma atualização repetindo
esta opção (útil se você espera a alteração do "formato" da tag, ao contrário de seu
"contente").
A opção "-p" imprime uma mensagem usando o próximo argumento como formato (por padrão "\\", "\ t",
"\ n" são substituídos por barra invertida, tabulação e nova linha; regido pelo valor da opção "-E");
consulte "interpolar" em MP3 :: Tag para obter detalhes sobre o formato do sprintf ()-como fugas. Se não
a opção "-p" for fornecida, a mensagem no formato padrão será emitida. O valor da opção "-e"
é a codificação usada para a saída; se o valor for um número, a codificação específica do sistema é
adivinhada (e usada para a saída se o bit 0x1 estiver definido); se o bit 0x2 estiver definido, então, linha de comando
as opções são assumidas como estando na codificação adivinhada; se o bit 0x4 estiver definido, então, linha de comando
argumentos são assumidos como estando na codificação suposta. Use o valor "binário" para fazer binário
saída.
Com a opção "-D" (simulação) nenhuma atualização é realizada, não importa quais sejam as outras opções.
Com esta opção, nenhuma análise de tags é executada, a menos que seja necessária.
Opções de uso
talygcn
para substituir as informações (título artista, álbum, ano, gênero, comentário, faixa, número) obtidas
via heurística "MP3 :: Tag" (a opção "-u" está implícita se algum desses argumentos for diferente
do que seria encontrado de outra forma; use o interruptor "-D" para desativar a atualização automática). Por padrão,
os valores dessas opções não são "%" - interpolados; isso pode ser alterado pela opção "-E".
A opção "-d" deve conter a lista separada por vírgulas de quadros ID3v2 a serem excluídos. UMA
a especificação do quadro é a mesma que pode ser dada à interpolação do quadro "% {...}"
comando, por exemplo, "TIT3", "COMM03", "COMM (fra) [título curto]"; a diferença com modificar-
acesso é aquele TODAS (e não o primeiro de) quadros correspondentes são excluídos. (Opção -d pode ser
repetido.)
Por exemplo, "-d APIC" removeria todas as molduras. Além disso, se a lista contiver
"ID3v1" ou "ID3v2", tags inteiras serão excluídas.
Da mesma forma, a opção "-F" permite a configuração de frames "ID3v2" arbitrários: se for necessário definir
um frame, use a diretiva "FRAME_spec = VALUE":
-F TIT2 = The_new_Title
Novamente, ao modificar, TODAS quadros correspondentes são excluídos primeiro, então tome cuidado com
-F COMM = Meu Comentário
A opção "-F" pode ser repetida para definir mais de um quadro. Se variável de configuração
"empty-F-deletes" é TRUE (padrão), argumentos vazios irão deletar o quadro.
Pode-se substituir "FRAME_spec = VALUE" por "FRAME_spec <FILE"; neste caso, o valor a definir
é lido do arquivo chamado ARQUIVO; se o quadro for somente texto (ou seja: no máximo
campos "[codificado] Descrição do idioma do URL do texto" estão presentes), o arquivo é lido em texto
modo (e com o espaço em branco inicial / final removido), caso contrário, ele é lido em binário
modo. (Espaço em branco é necessário sobre os sinais "<".) Se "<" for substituído por "? <", O
o valor é definido apenas se o quadro ainda não estiver presente e se o arquivo existir; se substituído por ">",
o valor (se presente) é escrito para ARQUIVO (a criação de diretórios intermediários é
controlado pela opção de configuração "frames_write_creates_dirs", o padrão é FALSE).
Além disso, "FRAME_spec" pode ser um de "ID3v1" ou "ID3v2" ou "TAGS"; neste caso, todo
as tags são escritas ou lidas. Por exemplo, para "TAGS <FILE", "título artista álbum ano gênero
a informação da faixa de comentários "é calculada a partir de ARQUIVO, que podem ser tags brutas, conforme produzidas com ">",
ou um arquivo MP3 válido; se Image :: ExifTool estiver presente, os dados podem ser lidos de forma arbitrária
arquivo multimídia. (Da mesma forma, para "ID3v1 <FILE", a mesma informação é extraída de "ID3v1"
tag apenas.) Depois disso, no caso de "ID3v2" ou "TAGS", os frames "ID3v2" são copiados do
Tag "ID3v2" um por um. (Com modificações adequadas para "? <".)
Por padrão, o "VALUE" para "-F" é "%" - interpolado; isso pode ser alterado pela opção "-E".
Para conveniência do usuário, formas mais amigáveis para o ser humano "compositor, text_by, orquestra, maestro,
disk_n "pode ser usado em vez de" TCOM, TEXT, TPE2, TPE3, TPOS ".
A opção "-P RECIPE" é uma generalização muito poderosa do que pode ser feito por opções
"-F", "-d" e "-t -a -l -y -g -c -n". Pode ser repetido; os valores devem conter o
analisar receitas. Eles se tornam o item de configuração "parse_data" de "MP3 :: Tag"; eventualmente
esta informação é processada pelo módulo MP3 :: Tag :: ParseData (se este último estiver presente em
a cadeia de heurísticas; veja a opção "-C"). A "RECEITA" é dividida em "$ flags, $ string,
@patterns "em seu primeiro caractere não alfanumérico; o primeiro de @patterns que corresponde
$ string vai ser executado (para efeitos colaterais). (Veja exemplos: "EXEMPLOS: parse
as regras".)
Se a opção "-G" for especificada, os nomes dos arquivos na linha de comando serão considerados glob
padrões. Isso pode ser útil se o comprimento máximo da linha de comando for muito baixo. Com o
os argumentos da opção "-R" podem ser diretórios, que são pesquisados recursivamente por áudio
(padrão * .mp3) arquivos para processar; use a opção "-r" para redefinir a expressão regular para olhar
para (o padrão é "(? i: \. mp3 $)").
A opção "-E" controla a expansão dos caracteres de escape. Deve conter as letras de
as opções de linha de comando onde "\\, \ n, \ t" são interpolados; pode-se anexar as letras
das opções "talygcn F" que requerem "%" - interpolação após o separador "/ i:" (para
"-F", apenas os valores são interpolados). O valor padrão é "p / i: Fp": apenas "-p" é
"\" - interpolado, e apenas "-F" e "-p" estão sujeitos a "%" - interpolação. Se todos um
quer é adicionar para os padrões, precede o valor de "-E" (contendo opções adicionadas) por
"+". (Algumas partes do valor da opção "-P" são interpoladas, mas isso deve ser
regido por sinalizadores, não "-E"; Faz NÃO coloque "P" em "%" - parte interpolada de "-E".)
Se a opção "- @" for fornecida, todos os caracteres "@" nas opções serão substituídos por "%". Esse
pode ser conveniente se o shell tratar "%" especialmente (por exemplo, shells DOSISH).
Se a opção "-I" for fornecida, nenhuma suposição para artista campo é executado na digitação.
A opção "-C CONFIG_OPT = VALUE1, VALUE2 ..." define os dados de configuração de "MP3 :: Tag" da mesma forma
forma como "MP3 :: Tag-"config ()> faria (lembre-se de que o valor é uma matriz; elementos separados
por vírgulas se houver mais de uma). A opção pode ser repetida para definir mais de um valor. Observação
que, uma vez que "ParseData" é usado para processar receitas de análise "-P", é melhor mantê-lo
na configuração "autoinfo" (e campos relacionados "autor" etc) na presença de "-P".
Se a opção "-x" for dada, as informações técnicas sobre o arquivo de áudio são impressas
(Nível de MP3, duração, número de quadros, preenchimento, direitos autorais e a lista de quadros ID3v2
nomes em formato adequado para "% {...}" escapes). Se "-x" for repetido, o conteúdo dos quadros é
também impresso (pode gerar caracteres não imprimíveis, se for repetido mais de duas vezes).
Se a opção "-N" for fornecida, todos os "smarts" serão desabilitados - sem normalização de campos
acontece, e (por padrão) nenhuma tentativa de deduzir os valores dos campos de não-ID3
a informação é feita. Esta opção é (atualmente) equivalente a ter "-C
autoinfo = ParseData, ID3v2, ID3v1 "como a primeira diretiva, para não ter
Normalize :: Text :: Music_Fields.pm presente no caminho @INC, e não chamando autofill () método.
Normalização of Campos
(O carregamento do módulo de normalização e todas as operações subsequentes podem ser desabilitadas pelo
opção "-N" ou definindo a variável de ambiente "MP3TAG_NORMALIZE_FIELDS" como FALSE.
Se não for proibido, o módulo é tentado a ser carregado se o diretório ~ / .music_fields is
presente ou "MP3TAG_NORMALIZE_FIELDS" está definido e TRUE.)
Se o carregamento do módulo "Normalize :: Text :: Music_Fields" for bem sucedido, o seguinte é
aplicável:
Se o valor de "MP3TAG_NORMALIZE_FIELDS" for definido e não 1, este valor será dividido em
diretórios como um PATH, e o caminho de carregamento de "Normalize :: Text :: Music_Fields" é definido como este
lista de diretórios. Então MP3 :: Tag é instruído (através da configuração correspondente
settings) para usar métodos "normalize_artist" (etc.) definidos por este módulo. Esses métodos
pode normalizar certos dados de tag. A versão atual define métodos para "normalização"
de nomes pessoais e títulos (com base no compositor). Esta normalização é conduzida
por meio de tabelas de configuração editáveis pelo usuário.
Além da normalização automática de dados de tag MP3, pode-se usar "arquivos MP3 falsos" para
acessar manualmente alguns recursos deste módulo. Para isso, use um nome de arquivo vazio e "-D"
opção. Por exemplo,
mp3info2 -D -a beethoven -p "% a \ n" ""
mp3info2 -D -a beethoven -p "% {shP [% a]} \ n" ""
mp3info2 -D -a beethoven -t "sonata # 28" -p "% t \ n" ""
mp3info2 -D -a beethoven -t "allegretto, Bes" - @ p "@t \ n" ""
mp3info2 -D -a beethoven -t "op93" - @ p "@t \ n" ""
irá imprimir o nome da pessoa normalizado para "beethoven", o short normalizado correspondente
nome da pessoa e o título normalizado para "sonata # 28" do compositor "beethoven". Por exemplo,
com as tabelas de normalização enviadas, ele irá imprimir
Ludwig van Beethoven (1770-1827)
L. van Beethoven
Sonata para piano nº 28 em lá maior; Op. 101 (1816)
Allegretto para Piano Trio em Si bemol maior; WoO 39 (1812)
Sinfonia nº 8 em Fá maior; Op. 93 (comp. 1812, fp Viena, 1814-02-27, cond. Beethoven; pub. 1816)
O ordem of operação
Atualmente, as operações são feitas na seguinte ordem
· Exclusão de ID3v1 ou ID3v2 como um todo via opção "-d";
· São configuradas receitas da opção "-P" (para serem acionadas por interpolação);
· A configuração feita através das opções "-a / -t / -l / -y / -g / -c / -n";
· As configurações feitas via opção "-F";
· Exclusão de frames individuais através da opção "-d";
· Autopreenchimento de quadros ID3v2 (id);
· Emitir informações com base nas opções "-p" e "-x";
· Disparar receitas de "-P" (se não disparado por interpolação);
· Atualize as tags, se necessário.
Uso estratégia: escalada of complexidade
O objetivo deste script é tornar o manuseio de tags ID3 tão simples as possível.
Em uma extremidade da escala, pode-se realizar manipulações arbitrariamente complexas com tags usando
Módulo Perl "MP3 :: Tag".
Por outro lado, é muito mais conveniente lidar com as manipulações mais simples com tags
usando as opções deste script "-t -a -l -y -g -c -n" e "-p -F -d". Por um pouco mais
tarefas complicadas, pode ser necessário usar o método mais elaborado de analisar regras, forneceu
a este script pela opção "-P"; as regras dependem muito de interpolação, Ver
"interpolar" em MP3 :: Tag, "interpolate_with_flags" em MP3 :: Tag.
Para simplificar a atualização de "manipulações mais simples" para "mais elaboradas", aqui nós
fornecer "regra de análise" sinônimos para as opções mais simples. Então, se você começar com "-t -a -l -y
opções -g -c -n "e" -p -F -d "que" quase funcionam "para você, você tem uma boa chance de ser
capaz de atingir plenamente seu objetivo, modificando os sinônimos descritos abaixo.
(Abaixo, assumimos que a opção "-E" está definida com seu valor padrão, então "-F -p" são
"%" - interpolado, outras opções não. Observe também que se a codificação do seu TTY for
reconhecido pelo Perl, é altamente recomendável definir a opção "-e 3"; em shell DOSISH,
é melhor usar "- @" e substituir "%" por "@" abaixo.)
"-t VALUE"
-P "mz / VALUE /% t"
"-a -l -y -g -c -n"
Da mesma forma.
"-F" "TIT2 = VALOR"
-P "mzi / VALUE /% {TIT2}"
"-F" "APIC [myDescr] <FILE"
-F "APIC [myDescr] =% {I (fimbB) ARQUIVO}"
or
-P "mzi /% {I (fimbB) ARQUIVO} /% {APIC [myDescr]}"
(remova "bB" para quadros somente de texto).
"-F" "APIC [myDescr]> ARQUIVO"
-P "bOi,% {APIC [myDescr]}, ARQUIVO"
(remova "b" para quadros somente de texto); ou use "-e binary -p"% {APIC [myDescr]} ""
com redirecionamento, consulte "EXEMPLOS: regras de análise".
"-d" TIT2
-P "m //% {TIT2}"
"-F" "TIT2? <FILE"
Muito complicado. Isso não fará a distinção entre um arquivo vazio e um não existente:
-P "mzi/%{TIT2:1}0%{I(fFim)FILE}/10/10%{TIT2}/0%{U1}"
(adicione "bB" a "fFim" para quadros não somente de texto); a última parte pode ser omitida
se omitir o sinalizador "m" - ele está presente apenas para detectar erros de impressão.
Para obter detalhes sobre "regras de análise", consulte "EXEMPLOS: regras de análise" e "DESCRIÇÃO" em
MP3 :: Tag :: ParseData.
EXEMPLOS: analisar regras
Apenas a opção "-P" é complicada o suficiente para merecer comentários ... Para detalhes completos sobre
analisar regras, consulte "DESCRIÇÃO" em MP3 :: Tag :: ParseData; para detalhes completos sobre interpolação,
veja "interpolar" em MP3 :: Tag, "interpolate_with_flags" em MP3 :: Tag.
Para um exemplo (bobo), pode-se substituir "-a Homer -t Iliad" por
-P mz = Homero =% a -P mz = Ilíada =% t
Um exemplo menos bobo é forçar uma maneira particular de analisar o nome de um arquivo via
-P "im =% {d0} /% f =% a /% n% t.% E"
Está quebrado em
sinaliza string pattern1
"im" "% {d0} /% f" "% a /% n% t.% e"
As letras das bandeiras representam interpolados, deve combinar. Isso interpola a string
"% {d0} /% f" e analisa o resultado (que é o nome do arquivo com um nível do diretório
parte preservada) usando o padrão fornecido; assim, o nome do diretório se torna o artista, o
parte numérica inicial - o número da faixa e o resto do nome do arquivo (sem extensão)
- o título. Observe que, uma vez que vários padrões são permitidos, pode-se igualmente permitir
vários formatos dos nomes, por exemplo
-P "im =% {d0} /% f =% a /% n% t.% E =% a /% t (% y).% E"
permite que o nome de base do arquivo também tenha o formato "TÍTULO (ANO)". Uma maneira alternativa de
obter os mesmos resultados é
-P "im =% {d0} =% a" -P "im =% f =% n% t.% E =% t (% y).% E"
que corresponde a duas receitas:
sinaliza string pattern1 pattern2
"im" "% {d0}" "% a"
"im" "% f" "% n% t.% e" "% t (% y).% e"
Claro, pode-se usar
"im" "% B" "% n% t" "% t (% y)"
como um substituto para o segundo.
Observe que pode ser mais legível definir artista a "% {d0}" por uma atribuição explícita, com
argumentos semelhantes a
-E "p / i: Fpa" -a "% {d0}"
(este valor de "-E" solicita "%" - interpolação da opção "-a" além do
padrão "\" - interpolação de "-p" e "%" - interpolação de "-F" e "-p"; um pode
atalho-o com "-E + / i: a").
Para dar mais exemplos,
-P "if =% D / .comment =% c"
lerá o comentário do arquivo .Comente no diretório do arquivo de áudio;
-P "ifn =% D / .comment =% c"
tem efeito semelhante se o arquivo .Comente tem comentários de uma linha, um por faixa (isso pressupõe
o número da faixa pode ser encontrado por outros meios).
Suponha que um arquivo Peças em um diretório de arquivos MP3 tem o seguinte formato: tem um
preâmbulo, em seguida, tem um pequeno parágrafo de informações por arquivo de áudio, precedido pela faixa
número e ponto:
...
12. Recitativo.
(Pizarro, Rocco)
13. Dueto: jetzt, Alter, jetzt hat es Eile, (Pizarro, Rocco)
...
O seguinte comando coloca esta informação no título da tag ID3 (desde que o áudio
os nomes dos arquivos são informativos o suficiente para que MP3 :: Tag possa deduzir o número da faixa):
mp3info2 -u -C parse_split = '\ n (? = \ d + \.)' -P 'fl; Partes;% = n. % t '
Se este parágrafo de informação tiver a forma "TÍTULO (COMENTÁRIO)" com a parte "COMENTÁRIO"
sendo opcional, então use
mp3info2 -u -C parse_split = '\ n (? = \ d + \.)' -P 'fl; Partes;% = n. % t (% c);% = n. % t '
Se você quiser remover um ponto ou vírgula no final do título, use
mp3info2 -u -C parse_split = '\ n (? = \ d + \.)' \
-P 'fl; Partes;% = n. % t (% c);% = n. % t '-P' iR;% t;% t [.,] $ '
O segundo padrão desta invocação é convertido para
['iR', '% t' => '% t [.,] $']
que essencialmente aplica a substituição "s /(.*)[.,]$/$ 1 / s" ao título.
Agora suponha que além de Peças, temos um arquivo de texto Comentário com informações adicionais;
queremos colocar esta informação no campo de comentário depois de o que é extraído de "TITLE
(COMENTÁRIO) "; separe essas duas partes do comentário por uma linha em branco:
mp3info2 -EC -C 'parse_split = \ n (? = \ d + \.)' -C 'parse_join = \ n \ n' \
-P 'f; Comentário;% c' -P 'fl; Partes;% = n. % t '\
-P 'i;% t ///% c;% t (% c) ///% c' -P 'iR;% t;% t [.,] $'
Isso pressupõe que o título e o comentário não contêm '///' como substring.
Explicação: o primeiro padrão de "-P",
['f', 'Comentário' => '% c'],
lê o comentário do arquivo "Comentário" no campo de comentário; o segundo,
['fl', 'Partes' => '% = n. % t '],
lê um pedaço de "Partes" no campo de título. O terceiro
['i', '% t ///% c' => '% t (% c) ///% c']
reorganiza o título e o comentário fornecido o título tem a forma "TÍTULO (COMENTÁRIO)".
(A opção de configuração "parse_join" trata de separar dois pedaços de comentários
correspondendo a duas ocorrências de% c no lado direito.)
Finalmente, o quarto padrão é o mesmo do exemplo anterior; remove o espúrio
pontuação no final do título.
Mais exemplos: remover string "com violino" do início do campo de comentário (remover
comentar completamente se não sobrar nada):
mp3info2 -u -P 'iz;% c; com violino% c' * .mp3
definir o campo do artista sem permitir que o recurso de atualização automática deduza outros campos de
Outras fontes;
mp3info2 -C autoinfo = ParseData -a "AU Thor" * .mp3
definir um campo de comentário, a menos que já esteja presente:
mp3info2 -u -P 'i;% c /// com piano; ///% c' * .mp3
O último exemplo mostra como escrever "programas" na linguagem do "-P"
opção: o exemplo fornece uma atribuição condicional. Com variáveis de usuário (como em "% {U8}")
para temporários, e a possibilidade de usar expressões regulares, pode-se fornecer
lógica programática. Claro, em algum nível de complexidade, é melhor mudar para
interface direta com o módulo Perl "MP3 :: Tag" (use o código deste script Perl como um
exemplo!).
Aqui está uma configuração típica de tarefa "avançada" id3v2 frames: compositor ("TCOM"), orquestra
("TPE2"), condutor ("TPE3"). Assumimos uma árvore de diretórios que contém arquivos MP3 marcados
com as seguintes convenções: "artista" é na verdade um compositor; "comentário" é de um de
duas formas:
Artistas; Orquestra; Condutor
Orquestra; Condutor
Para definir os quadros MP3 específicos através das regras "-P", use
mp3info2 - @ P "mi / @ a / @ {TCOM}" \
-P "mi / @ c / @ {U1}; @ {TPE2}; @ {TPE3} / @ {TPE2}; @ {TPE3}" -R.
Com as opções "-F", isso pode ser simplificado como
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.
Para copiar tags ID3 de arquivos MP3 no diretório atual para arquivos no diretório / tmp / mp3 com
a extensão .marcação (e imprimir "relatório de progresso"), use
mp3info2 -p "@ N @ E \ n" - @ P "bODi, @ {ID3v2} @ {ID3v1}, / tmp/mp3/@N.tag" -DNR.
Como não usamos a bandeira "z", os arquivos MP3 sem tags são ignorados.
Agora, suponha que existam duas hierarquias de arquivos paralelas de arquivos de áudio e de letras:
arquivos de áudio estão em audio / dir_name / audio_name.mp3 com o arquivo de letras correspondente em
text / dir_name / audio_name.mp3. Para anexar letras a arquivos MP3 (no quadro "COMM" com
descrição "lyrics" no idioma "eng" - esse is a não padronizado localização, veja abaixo!),
chamada
mp3info2 - @ P "fim; ../ text / @ {d0} / @ B.txt; @ {COMM (eng) [lyrics]}" -Ru.
dentro do diretório auditivo. (Mude "fim" para "Ffim" para ignorar os arquivos de áudio para os quais
o arquivo de texto correspondente não existe. (Claro, para seguir as especificações,
deve-se ter usado o campo "% {USLT (eng) []}" em vez de "% {COMM (eng) [lyrics]}"; Vejo
abaixo para variações).
Termine com um exemplo muito simples: tudo o que o padrão
-P 'i;% t;% t'
faz é a remoção de espaços em branco à direita e à esquerda do título (que é deduzido por outros
meios).
Mais exemplos
Com a opção "-F", pode-se definir o quadro "USLT" como
mp3info2 - @ F "USLT (eng) [] <../text/@{d0}/@B.txt" -Ru.
Imprima esse quadro (em qualquer idioma) com
mp3info2 - @ p "@ {USLT []} \ n" arquivo.mp3
Da mesma forma, para imprimir o quadro APIC com a descrição vazia, use
mp3info2 -e binary - @ p "@ {APIC []}" file.mp3> output_picture_file
ou (com a descrição "capa")
mp3info2 - @ P "bOi, @ {APIC [capa]}, output_picture_file.jpg" loading = "preguiçoso" audio_07.mp3
Para definir tal quadro a partir do arquivo xxx.gif (com o padrão "Tipo de imagem", "Capa (frontal)",
e uma descrição vazia), faça um dos
mp3info2 -F "APIC <xxx.gif" file.mp3
mp3info2 - @ F "APIC [] = @ {I (fimbB) xxx.gif}" arquivo.mp3
A diferença de "APIC" e "APIC []" é que o primeiro remove todos os quadros "APIC" primeiro,
e o segundo remove apenas todos os quadros "APIC" com descrição vazia - mas imagem arbitrária
modelo. Portanto, pode ser mais adequado usar a especificação completa, como em "APIC (Capa
(frente))[]".
Para remover quadros "APIC" com descrições vazias, "Tipos de imagem" arbitrários (e "MIME
tipo "s que pode ser calculado corretamente por mp3info2, por exemplo, "TIFF / JPEG / GIF / PNG"), use
mp3info2 -d "APIC []" file.mp3
(note que isso não iria liberar espaço em disco, a menos que "encolher" seja forçado pela configuração
variáveis). Para fazer o mesmo com o tipo de imagem "Condutor" apenas, faça
mp3info2 -d "APIC (Condutor) []" arquivo.mp3
Para percorrer os subdiretórios e adicionar arquivos cover.jpg do diretório do arquivo como um
quadro "APIC" "padrão", mas apenas se não houver quadro "APIC" e existir um arquivo, faça
mp3info2 - @ F "APIC? <@ D / cover.jpg" carregando = "preguiçoso" -R.
Isso exclui frames vazios de data, "TCOP, TENC, WXXX [], COMM (eng) []" e remove o
levando 0 do número da faixa do arquivo MP3 no diretório atual:
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
Exemplos on lidar com partido codificações
Um dos principais pontos fracos da especificação ID3 era que ela exigia que os dados fossem
fornecido na codificação "latin-1". Uma vez que a maioria das línguas do mundo não são expressas em
"latin-1", isso leva a (maioria?) das tags ID3 não estarem em conformidade com o padrão. Mais recente
versões das especificações corrigiram essa deficiência, mas o estrago já estava feito.
Felizmente, este script pode usar habilidades de "MP3 :: Tag" para converter de não-conforme
conteúdo para um conformado.
O exemplo a seguir converte as tags ID3v2 que foram escritas em (não em conformidade com o padrão)
codificação "cp1251" para estar na codificação em conformidade com o padrão. Para o propósito deste exemplo,
suponha que as tags ID3v1 estejam na mesma codificação (e que se deseja deixá-las no
codificação "cp1251"); os arquivos a serem processados são encontrados no diretório atual e
(recursivamente) em seus subdiretórios (sintaxe "set" para shells DOSISH):
definir MP3TAG_DECODE_V1_DEFAULT = cp1251
definir MP3TAG_DECODE_V2_DEFAULT = cp1251
mp3info2 -C id3v2_fix_encoding_on_write = 1 -u2R.
Para obter mais informações, consulte "AMBIENTE" em MP3 :: Tag, "config" em MP3 :: Tag e
"PERSONALIZAÇÃO" em MP3 :: Tag.
INCOMPATIBILIDADES com mp3info
Esta ferramenta é vagamente modelada no programa mp3info; é "principalmente" compatível com versões anteriores
(especialmente quando no modo "ingênuo" via "-N"), e permite um superconjunto muito significativo de
funcionalidade. As incompatibilidades anteriores conhecidas são:
-G -h -r -d -x
Funcionalidade ausente:
-f -F -eu
"%" Incompatível -escapes:
% e% E - semântica absolutamente diferente
% v - não tem 0s à direita
% q - tem parte fracionária
% r - é um número, não uma palavra "Variável" para VBR
% u - é um a menos (na presença de quadro descritor apenas?)
Ausente "%"-escapes:
% b% G
Escapa de barra invertida: apenas "\\", "\ n", "\ t" com suporte.
"-x" imprime dados em um formato diferente, nem todos os campos estão presentes e nomes de tag ID3v2
são produzidos.
MEIO AMBIENTE
Com "-e" 1, 2 ou 3, este script pode consultar as variáveis de ambiente "LC_CTYPE, LC_ALL,
LANG "para deduzir a codificação atual. Nenhuma outra variável de ambiente é lida diretamente por
este script.
Observe, no entanto, que o módulo MP3 :: Tag tem um rico conjunto de padrões para configurações de codificação
configurável por variáveis de ambiente; consulte "AMBIENTE" em MP3 :: Tag. Então, essas variáveis
afetam (indiretamente) como este script funciona.
OBSOLETO INTERFACE
Se você não entende do que se trata, é seguro ignorar este anúncio:
A forma antiga, pré-versão = 1.05 (por triplicação de um separador, sem repetição de
opções) para fornecer vários comandos para as opções "-F" e <-P> ainda é suportado, mas é
fortemente desencorajado. (Não entra em conflito com a interface atual.)
Use mp3info2p online usando serviços onworks.net
