GoGPT Best VPN GoSearch

OnWorks-favicon

mp3info2p - Online in de cloud

Voer mp3info2p uit in de gratis hostingprovider van OnWorks via Ubuntu Online, Fedora Online, Windows online emulator of MAC OS online emulator

Dit is de opdracht mp3info2p die kan worden uitgevoerd in de gratis hostingprovider van OnWorks met behulp van een van onze meerdere gratis online werkstations zoals Ubuntu Online, Fedora Online, Windows online emulator of MAC OS online emulator

PROGRAMMA:

NAAM


mp3info2 - MP3-tags ophalen/instellen; gebruikt MP3::Tag om standaardwaarden op te halen.

KORTE INHOUD


# Druk de informatie af in tags en automatisch afgeleide info
mp3info2 *.mp3

# Stel bovendien het jaarveld in op 1981
mp3info2 -j 1981 *.mp3

# Idem zonder afdruk van info, recursief in de huidige directory
mp3info2 -R -p "" -y 1981 .

# Leid geen enkel veld af, druk alleen (genormaliseerde) info af van de tags
mp3info2 -C autoinfo=ID3v2,ID3v1 *.mp3

# Zoals hierboven, maar zonder normalisatie/autofill, de ruwe informatie in tags
mp3info2 -N *.mp3

# Zoals hierboven, maar alleen met gelezen ID2v1-tag
mp3info2 -NC autoinfo=ID3v1 *.mp3

# Artiest ophalen uit CDDB_File, andere informatie automatisch afleiden, naar tags schrijven
mp3info2 -C artiest=CDDB_File -u *.mp3

# Geef voor de titel de voorkeur aan informatie uit het .inf-bestand; autoduceer rust, update
mp3info2 -C title=Inf,ID3v2,ID3v1,bestandsnaam -u *.mp3

# Hetzelfde, en haal de artiest uit het CDDB-bestand
mp3info2 -C titel=Inf,ID3v2,ID3v1,bestandsnaam -C artiest=CDDB_File -u *.mp3

# Schrijf een script voor conversie van .wav naar .mp3, autodeducerende tags
mp3info2 -p "lame -h --vbr-new --tt '%t' --tn %n --ta '%a' --tc '%c' --tl '%l' --ty '% y' '%f'\n" *.wav >xxx.sh

PRODUCTBESCHRIJVING


Het programma drukt een bericht af met een samenvatting van tag-info (verkregen via MP3::Tag-module) voor
opgegeven bestanden.

Het kan ook de informatie in ID3-tags bijwerken. Dit gebeurt in drie verschillende gevallen.

· Als de informatie in opdrachtregelopties "talygcn" afwijkt van de
inhoud van de overeenkomstige ID3-tags (of er zijn geen overeenkomstige ID3-tags).

· Als opties "-d" of "-F" werden gegeven.

· als "MP3::Tag" de informatie op een andere manier verkrijgt dan MP3-tags, en "-u" de
bijwerken van de ID3-tags.

(Al deze manieren zijn uitgeschakeld door de optie "-D".) ID3v2-tag wordt geschreven indien nodig, of als "-2"
optie wordt gegeven. (Automatisch invullen van afleidbare velden (via de methode
id3v2_frames_autofill()) wordt uitgevoerd tenzij "-d" of "-N" opties worden gegeven.)

De optie "-u" schrijft ("u"pdates) de opgehaalde informatie naar de MP3 ID3-tags. Dit
optie wordt aangenomen als er opdrachtregelopties zijn die expliciet tag-elementen instellen
("-a", "-t" enz., en "-F", "-d"). (Effecten van deze optie kunnen worden opgeheven door te geven
optie "-D".) Als de optie "-2" ook wordt gegeven, wordt het schrijven van de ID3v2-tag geforceerd, zelfs als de info
past bij de ID3v1-tag (bovendien maakt deze optie automatische update van "persoonlijke naam" mogelijk
velden en bijbehorende titels volgens waarden van "translate_person",
"person_frames" enz. configuratie-instellingen; zie "Normalisatie van velden"). Deze optie
wordt genegeerd als er geen wijziging in tags wordt gedetecteerd; men kan echter een update forceren door te herhalen
deze optie (handig als u verwacht dat het "formaat" van de tag wordt gewijzigd, in tegenstelling tot zijn
"inhoud").

De optie "-p" drukt een bericht af met het volgende argument als formaat (standaard "\\", "\t",
"\n" worden vervangen door backslash, tab en nieuwe regel; bepaald door de waarde van "-E" optie);
zie "interpoleren" in MP3::Tag voor details over het formaat van sprint()-achtige ontsnappingen. Als Nee
optie "-p" wordt gegeven, wordt het bericht in standaardformaat verzonden. De waarde van optie "-e"
is de codering die wordt gebruikt voor de uitvoer; als de waarde een getal is, is systeemspecifieke codering
geraden (en gebruikt voor de uitvoer als bit 0x1 is ingesteld); als bit 0x2 is ingesteld, dan de opdrachtregel
opties worden verondersteld in de geraden codering te zitten; als bit 0x4 is ingesteld, dan de opdrachtregel
argumenten worden verondersteld in de geraden codering te staan. Gebruik de waarde "binair" om binair te doen
uitgang.

Met optie "-D" (dry run) wordt er geen update uitgevoerd, wat de andere opties ook zijn.
Met deze optie worden tags niet geparseerd, tenzij nodig.

Gebruik opties

talgcn

om de verkregen informatie (titel artiest album jaar genre commentaar tracknummer) te overschrijven
via "MP3::Tag"-heuristiek ("-u"-schakelaar wordt geïmpliceerd als een van deze argumenten verschilt
van wat anders gevonden zou worden; gebruik de schakelaar "-D" om automatisch bijwerken uit te schakelen). Standaard,
de waarden van deze opties zijn niet "%"-geïnterpoleerd; dit kan worden gewijzigd met de optie "-E".

De optie "-d" moet de door komma's gescheiden lijst met ID3v2-frames bevatten die moeten worden verwijderd. A
framespecificatie is hetzelfde als wat zou kunnen worden gegeven aan "%{...}" frame-interpolatie
opdracht, bijv. "TIT3", "COMM03", "COMM(fra)[korte titel]"; het verschil met wijzigen
toegang is dat ALLE (en niet de eerste van) overeenkomende frames worden verwijderd. (Optie -d kan zijn
herhaald.)

"-d APIC" zou bijvoorbeeld alle fotolijsten verwijderen. Bovendien, als de lijst bevat
"ID3v1" ​​of "ID3v2", hele tags worden verwijderd.

Evenzo maakt de optie "-F" het instellen van willekeurige "ID3v2"-frames mogelijk: indien nodig
één frame, gebruik de instructie "FRAME_spec=VALUE":

-F TIT2=De_nieuwe_titel

Nogmaals, bij wijzigen, ALLE overeenkomende frames worden eerst verwijderd, dus wees voorzichtig met

-F COMM=MijnOpmerking

Optie "-F" kan worden herhaald om meer dan één frame in te stellen. Als configuratievariabele
"empty-F-deletes" is TRUE (standaard), lege argumenten zullen het frame verwijderen.

Men kan "FRAME_spec=VALUE" vervangen door "FRAME_spec < FILE"; in dit geval de in te stellen waarde
wordt gelezen uit het bestand met de naam FILE; als het frame alleen tekst is (wat betekent: maximaal
"[encoded]Text URL Language Description"-velden aanwezig zijn), wordt het bestand in tekst gelezen
modus (en met beginnende/achterliggende witruimte gestript), anders wordt het binair gelezen
modus. (Witruimte is vereist rond de "<"-tekens.) Als "<" wordt vervangen door "?<", wordt de
waarde wordt alleen ingesteld als frame nog niet aanwezig is en als het bestand bestaat; indien vervangen door ">",
de waarde (indien aanwezig) wordt geschreven FILE (het maken van tussenliggende mappen is
gecontroleerd door configuratieoptie "frames_write_creates_dirs", de standaardwaarde is FALSE).

Bovendien kan "FRAME_spec" een van "ID3v1" ​​of "ID3v2" of "TAGS" zijn; in dit geval geheel
tags worden geschreven of gelezen. Bijvoorbeeld voor "TAGS < BESTAND", "titel artiest album jaar genre
commentaar track" info wordt berekend op basis van FILE, wat onbewerkte tags kunnen zijn, zoals geproduceerd met ">",
of een geldig MP3-bestand; als Image::ExifTool aanwezig is, kunnen de gegevens willekeurig worden gelezen
multimedia-bestand. (Evenzo wordt voor "ID3v1 < FILE" dezelfde informatie geëxtraheerd uit "ID3v1"
tag.) Hierna, in het geval van "ID3v2" of "TAGS", worden "ID3v2"-frames gekopieerd van de
"ID3v2"-tag een voor een. (Met passende aanpassingen voor "?<".)

Standaard is de "WAARDE" voor "-F" "%"-geïnterpoleerd; dit kan worden gewijzigd met optie "-E".
Voor gebruikersgemak, mensvriendelijkere vormen "componist, tekst_door, orkest, dirigent,
disk_n" kan worden gebruikt in plaats van "TCOM, TEXT, TPE2, TPE3, TPOS".

De optie "-P RECEPT" is een zeer krachtige veralgemening van wat opties kunnen doen
"-F", "-d" en "-t -a -l -y -g -c -n". Het kan worden herhaald; de waarden moeten de bevatten
ontleden recepten. Ze worden het configuratie-item "parse_data" van "MP3::Tag"; eventueel
deze informatie wordt verwerkt door de MP3::Tag::ParseData module (als deze aanwezig is in
de keten van heuristieken; zie optie "-C"). Het "RECEPT" is opgesplitst in "$flags, $string,
@patterns" op het eerste niet-alfanumerieke teken; de eerste van @patterns die overeenkomt
$string wordt uitgevoerd (voor bijwerkingen). (Zie voorbeelden: "VOORBEELDEN: parse
reglement".)

Als optie "-G" is opgegeven, worden de bestandsnamen op de opdrachtregel als glob beschouwd
patronen. Dit kan handig zijn als de maximale lengte van de opdrachtregel te laag is. Met de
optie "-R" argumenten kunnen mappen zijn, die recursief worden doorzocht op audio
(standaard * .mp3) te verwerken bestanden; gebruik optie "-r" om de reguliere expressie opnieuw in te stellen om te kijken
voor (de standaardwaarde is "(?i:\.mp3$)").

De optie "-E" regelt de uitbreiding van escape-tekens. Het moet de letters van bevatten
de opdrachtregelopties waar "\\, \n, \t" worden geïnterpoleerd; men kan de letters toevoegen
van "talygcn F" opties die "%"-interpolatie vereisen na het scheidingsteken "/i:" (voor
"-F", alleen de waarden worden geïnterpoleerd). De standaardwaarde is "p/i:Fp": alleen "-p" is dat
"\"-geïnterpoleerd, en alleen "-F" en "-p" zijn onderhevig aan "%"-interpolatie. Als alles een
wil is toevoegen naar de standaardwaarden, voorafgaan aan de waarde van "-E" (met toegevoegde opties) door
"+". (Sommige delen van de waarde van optie "-P" zijn geïnterpoleerd, maar dit zou moeten zijn
beheerst door vlaggen, niet "-E"; Doen NIET plaats "P" in het "%"-geïnterpoleerde deel van "-E".)

Als de optie "-@" wordt gegeven, worden alle tekens "@" in de opties vervangen door "%". Dit
kan handig zijn als de shell "%" speciaal behandelt (bijv. DOSISH-shells).

Als optie "-I" wordt gegeven, hoeft u niet te gissen kunstenaar veld wordt uitgevoerd op typeout.

De optie "-C CONFIG_OPT=VALUE1,VALUE2..." stelt de configuratiegegevens van "MP3::Tag" gelijk in
manier als "MP3::Tag-"configuratie()> zou doen (onthoud dat de waarde een array is; afzonderlijke elementen
door komma's indien meer dan één). De optie kan worden herhaald om meer dan één waarde in te stellen. Opmerking
dat aangezien "ParseData" wordt gebruikt om "-P" parseerrecepten te verwerken, het beter bewaard kan worden
in de configuratie "autoinfo" (en gerelateerde velden "auteur" enz.) in aanwezigheid van "-P".

Als de optie "-x" wordt gegeven, wordt de technische informatie over het audiobestand afgedrukt
(MP3-niveau, duur, aantal frames, opvulling, copyright en de lijst met ID3v2-frames
namen in formaat geschikt voor "%{...}" escapes). Als "-x" wordt herhaald, is de inhoud van frames
ook afgedrukt (kan niet-afdrukbare tekens opleveren als het meer dan twee keer wordt herhaald).

Als optie "-N" wordt gegeven, zijn alle "smarts" uitgeschakeld - geen normalisatie van velden
gebeurt, en (standaard) geen poging om de waarden van velden af ​​te leiden van niet-ID3
informatie wordt gedaan. Deze optie is (momenteel) gelijk aan het hebben van "-C
autoinfo=ParseData,ID3v2,ID3v1" ​​als de eerste richtlijn, om nee te hebben
Normaliseren::Tekst::Music_Fields.pm aanwezig op @INC-pad en niet bellend automatisch aanvullen() methode.

Normalisatie of velden


(Het laden van de normalisatiemodule en alle daaropvolgende bewerkingen kunnen worden uitgeschakeld door de
optie "-N", of door de omgevingsvariabele "MP3TAG_NORMALIZE_FIELDS" in te stellen op FALSE.
Indien niet verboden, wordt geprobeerd de module te laden als directory ~/.muziekvelden is
aanwezig, of "MP3TAG_NORMALIZE_FIELDS" is ingesteld en TRUE.)

Als het laden van de module "Normalize::Text::Music_Fields" succesvol is, is het volgende
toepassing:

Als de waarde van "MP3TAG_NORMALIZE_FIELDS" is gedefinieerd en niet 1, wordt deze waarde opgedeeld in
mappen als een PATH, en het laadpad van "Normalize::Text::Music_Fields" is ingesteld op dit
lijst met mappen. Vervolgens wordt MP3::Tag geïnstrueerd (via overeenkomstige configuratie
instellingen) om "normalize_artist" (etc.) methoden te gebruiken die door deze module zijn gedefinieerd. Deze methodes
kan bepaalde taggegevens normaliseren. De huidige versie definieert methoden voor "normalisatie"
van persoonsnamen en titels (op basis van de componist). Deze normalisatie wordt gedreven
via door de gebruiker bewerkbare configuratietabellen.

Naast de automatische normalisatie van MP3-taggegevens, kan men ook "nep-MP3-bestanden" gebruiken
handmatig toegang krijgen tot enkele functies van deze module. Gebruik hiervoor een lege bestandsnaam en "-D"
keuze. bijv.

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" ""

zal de genormaliseerde persoonsnaam voor "beethoven" afdrukken, de overeenkomstige genormaliseerde afkorting
person-name, en de genormaliseerde titel voor "sonate #28" van componist "beethoven". bijv.
met de meegeleverde normalisatietabellen zal het worden afgedrukt

Lodewijk van Beethoven (1770-1827)
L. van Beethoven
Pianosonate nr. 28 in A groot; Op. 101 (1816)
Allegretto voor pianotrio in Bes majeur; WoO 39 (1812)
Symfonie nr. 8 in F majeur; Op. 93 (comp. 1812, fp Wenen, 1814/02/27, cond. Beethoven; pubd. 1816)

De bestellen of operatie


Momenteel worden de bewerkingen in de volgende volgorde uitgevoerd

· Verwijdering van ID3v1 of ID3v2 als geheel via "-d" optie;

· Recepten met de optie "-P" zijn ingesteld (worden geactiveerd door interpolatie);

· De instelling gedaan via "-a/-t/-l/-y/-g/-c/-n" opties;

· De instellingen gedaan via "-F" optie;

· Verwijdering van individuele frames via "-d" optie;

· automatisch invullen van ID3v2 (id) frames;

· Zend info uit op basis van "-p" en "-x" opties;

· Activeer recepten van "-P" (indien niet geactiveerd door interpolatie);

· Update tags indien nodig.

Gebruik strategie: escalatie of ingewikkeldheid


Het doel van dit script is om het omgaan met ID3-tags zo eenvoudig mogelijk te maken as mogelijk.

Aan de ene kant van de schaal kan men willekeurig complexe manipulaties uitvoeren met behulp van tags
"MP3::Tag" Perl-module.

Aan de andere kant is het veel handiger om de eenvoudigste manipulaties met tags uit te voeren
gebruik van de opties "-t -a -l -y -g -c -n" en "-p -F -d" van dit script. Voor iets meer
gecompliceerde taken, kan het nodig zijn om de meer uitgebreide methode van te gebruiken ontleden reglement, voorzien
naar dit script door de optie "-P"; de regels zijn sterk afhankelijk van interpolatie, Zie
"interpoleren" in MP3::Tag, "interpoleren_met_vlaggen" in MP3::Tag.

Om de upgrade van "eenvoudigste manipulaties" naar "meer uitgebreide" te vereenvoudigen, hier we
geef "ontleden regel" synoniemen naar de eenvoudigste opties. Dus als je begint met "-t -a -l -y
-g -c -n" en "-p -F -d" opties die "bijna werken" voor jou, heb je een goede kans om
in staat om uw doel volledig te bereiken door de hieronder beschreven synoniemen te wijzigen.

(Hieronder gaan we ervan uit dat de optie "-E" is ingesteld op de standaardwaarde, dus "-F -p" is dat ook
"%"-geïnterpoleerd, andere opties niet. Merk ook op dat als de codering van uw TTY is
herkend door Perl, wordt het ten zeerste aanbevolen om de optie "-e 3" in te stellen; op DOSISH-schelpen,
gebruik beter "-@", en vervang "%"'s door "@"'s hieronder.)

"-t WAARDE"
-P "mz/WAARDE/%t"

"-a -l -y -g -c -n"
Hetzelfde.

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

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

or

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

(verwijder "bB" voor frames met alleen tekst).

"-F" "APIC[mijnBeschrijving] > BESTAND"
-P "bOi,%{APIC[mijnBeschrijving]},BESTAND"

(verwijder "b" voor frames met alleen tekst); of gebruik "-e binary -p "%{APIC[myDesc]}""
met omleiding, zie "VOORBEELDEN: ontleedregels".

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

"-F" "TIT2 ?< BESTAND"
Heel lastig. Dit zal geen onderscheid maken tussen een leeg bestand en een niet-bestaand bestand:

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

(voeg "bB" toe aan "fFim" voor niet-tekstuele frames); het laatste deel kan worden weggelaten
als men de vlag "m" weglaat, is deze alleen aanwezig om drukfouten op te vangen.

Voor meer informatie over "ontleden regels", zie "VOORBEELDEN: ontleden regels" en "BESCHRIJVING" in
MP3::Tag::ParseData.

Voorbeelden: ontleden reglement


Alleen de optie "-P" is gecompliceerd genoeg om commentaar te verdienen... Voor volledige details op
ontleden reglement, zie "BESCHRIJVING" in MP3::Tag::ParseData; voor volledige details over interpolatie,
zie "interpoleren" in MP3::Tag, "interpoleren_met_vlaggen" in MP3::Tag.

Voor een (dom) voorbeeld kan men "-a Homerus -t Ilias" vervangen door

-P mz=Homerus=%a -P mz=Ilias=%t

Een minder gek voorbeeld is het forceren van een bepaalde manier om een ​​bestandsnaam te ontleden via

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

Er wordt ingebroken

vlaggenreekspatroon1
"im" "%{d0}/%f" "%a/%n %t.%e"

De vlagletters staan ​​voor interpoleren, moet overeenkomen. Dit interpoleert de string
"%{d0}/%f" en ontleedt het resultaat (dit is de bestandsnaam met één niveau van de directory
gedeeltelijk behouden) volgens het gegeven patroon; dus de mapnaam wordt de artiest, de
voorloopnummer - het tracknummer en de rest van de bestandsnaam (zonder extensie)
- de titel. Merk op dat aangezien meerdere patronen zijn toegestaan, men op dezelfde manier rekening kan houden met
meerdere formaten van de namen, bijv

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

staat toe dat de basisnaam van het bestand ook de vorm "TITEL (JAAR)" heeft. Een alternatieve manier om
dezelfde resultaten krijgen is

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

wat overeenkomt met twee recepten:

vlaggen string patroon1 patroon2
"ik" "%{d0}" "%a"
"im" "%f" "%n %t.%e" "%t (%y).%e"

Natuurlijk kan men gebruiken

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

als vervanging voor de tweede.

Merk op dat het leesbaarder kan zijn om in te stellen kunstenaar naar "%{d0}" door een expliciete toewijzing, met
argumenten vergelijkbaar met

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

(deze waarde van "-E" vraagt ​​om "%"-interpolatie van de optie "-a" naast de
standaard "\"-interpolatie van "-p", en "%"-interpolatie van "-F" en "-p"; men kan
verkort het met "-E +/i:a").

Om meer voorbeelden te geven,

-P "if=%D/.opmerking=%c"

zal commentaar uit het bestand lezen .opmerking in de map van het audiobestand;

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

heeft een vergelijkbaar effect als het bestand .opmerking heeft opmerkingen van één regel, één per track (dit veronderstelt
het tracknummer kan op een andere manier worden gevonden).

Stel dat een bestand Onderdelen in een map met mp3-bestanden heeft het volgende formaat: het heeft een
preambule, heeft dan een korte alinea met informatie per audiobestand, voorafgegaan door de track
nummer en punt:

...

12. Recitatief.
(Pizarro, Rocco)

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

...

De volgende opdracht plaatst deze info in de titel van de ID3-tag (op voorwaarde dat de audio
bestandsnamen zijn informatief genoeg zodat MP3::Tag het tracknummer kan afleiden):

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

Als deze alinea met informatie de vorm "TITEL (COMMENT)" heeft met het gedeelte "COMMENTAAR".
optioneel zijn, gebruik dan

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

Als u een punt of een komma aan het einde van de titel wilt verwijderen, gebruikt u

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

Het tweede patroon van deze aanroep wordt geconverteerd naar

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

wat in wezen de vervanging "s/(.*)[.,]$/$1/s" toepast op de titel.

Stel nu dat naast Onderdelen, we hebben een tekstbestand Opmerking met aanvullende informatie;
we willen deze info in het commentaarveld plaatsen na wat wordt geëxtraheerd uit "TITLE
(COMMENT)"; scheid deze twee delen van de opmerking door een lege regel:

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

Hierbij wordt ervan uitgegaan dat de titel en het commentaar geen '///' als subtekenreeks bevatten.
Uitleg: het eerste patroon van "-P",

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

leest commentaar uit het bestand "Comment" in het commentaarveld; de seconde,

['fl', 'Onderdelen' => '%=n. %T'],

leest een stuk "Parts" in het titelveld. De derde

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

herschikt de titel en het commentaar inbegrepen de titel heeft de vorm "TITEL (COMMENTAAR)".
(De configuratieoptie "parse_join" zorgt voor het scheiden van twee stukken commentaar
komt overeen met twee keer %c aan de rechterkant.)

Ten slotte is het vierde patroon hetzelfde als in het voorgaande voorbeeld; het verwijdert vals
interpunctie aan het einde van de titel.

Meer voorbeelden: string "met viool" verwijderen aan het begin van het commentaarveld (removing
commentaar helemaal als er niets overblijft):

mp3info2 -u -P 'iz;%c;met viool%c' *.mp3

het artiestveld instellen zonder dat de functie voor automatisch bijwerken er andere velden van afleidt
andere bronnen;

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

een commentaarveld instellen, tenzij het al aanwezig is:

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

Het laatste voorbeeld laat zien hoe je eigenlijk "programma's" schrijft in de taal van de "-P"
optie: het voorbeeld geeft een voorwaardelijke toewijzing. Met gebruikersvariabelen (zoals in "%{U8}")
voor tijdelijke waarden, en een mogelijkheid om reguliere expressies te gebruiken, zou men willekeurig kunnen voorzien
programmatische logica. Natuurlijk moet men op een bepaald niveau van complexiteit beter overschakelen
directe interface met "MP3::Tag" Perl-module (gebruik de code van dit Perl-script als een
voorbeeld!).

Hier is een typische taakinstelling "geavanceerde" id3v2-frames: componist ("TCOM"), orkest
("TPE2"), geleider ("TPE3"). We gaan uit van een mappenboom die MP3-bestanden bevat die getagd zijn
met de volgende conventies: "artiest" is eigenlijk een componist; "commentaar" is van een van
twee vormen:

Artiesten; Orkest; Geleider
Orkest; Geleider

Gebruik om de specifieke MP3-frames in te stellen via "-P"-regels

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

Met "-F" opties kan dit worden vereenvoudigd als

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

or

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

Om ID3-tags van MP3-bestanden in de huidige map naar bestanden in de map te kopiëren /tmp/mp3 with
de verlenging .label (en druk "voortgangsrapport" af), gebruik

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

Omdat we geen "z"-vlag hebben gebruikt, worden MP3-bestanden zonder tags overgeslagen.

Stel nu dat er twee parallelle bestandshiërarchieën zijn van audiobestanden en songteksten:
audiobestanden zijn binnen audio/mapnaam/audio_naam.mp3 met bijbehorend songtekstbestand erin
tekst/mapnaam/audio_naam.mp3. Om songteksten toe te voegen aan MP3-bestanden (in "COMM"-frame met
omschrijving "lyrics" in taal "eng" - dit is a niet standaard plaats, zien hieronder!),
Bellen

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

binnen de map audio. (Verander "fim" in "Fim" om de audiobestanden waarvoor
het corresponderende tekstbestand bestaat niet.) (Uiteraard, om de specificaties te volgen,
men had het veld "%{USLT(eng)[]}" moeten gebruiken in plaats van "%{COMM(eng)[lyrics]}"; zien
hieronder voor variaties).

Werk af met een heel eenvoudig voorbeeld: alles wat het patroon is

-P 'i;%t;%t'

doet is het verwijderen van achterliggende en leidende spaties uit de titel (die wordt afgeleid door andere
middelen).

Meer voorbeelden


Met de "-F" optie kan men het "USLT" frame instellen als

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

Print zo'n kader (in elke taal) uit met

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

Gebruik op dezelfde manier om het APIC-frame met lege beschrijving af te drukken

mp3info2 -e binair -@p "@{APIC[]}" bestand.mp3 > output_picture_file

of (met omschrijving "omslag")

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

Om zo'n frame vanuit een bestand in te stellen xxx.gif (met de standaard "Picture Type", "Cover (front)",
en lege beschrijving), doe een van

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

Het verschil tussen "APIC" en "APIC[]" is dat de eerste eerst alle "APIC"-frames verwijdert,
en de tweede verwijdert alleen alle "APIC"-frames met lege beschrijving - maar willekeurige afbeelding
type. Het kan dus geschikter zijn om de volledige specificatie te gebruiken, zoals in "APIC(Cover
(voorkant))[]".

Om "APIC"-frames met lege beschrijvingen te verwijderen, kunnen willekeurige "Picture Type"-en (en "MIME
type"s die correct kunnen worden berekend door mp3info2, bijv. "TIFF/JPEG/GIF/PNG"), gebruiken

mp3info2 -d "APIC[]" bestand.mp3

(merk op dat dit geen schijfruimte vrijmaakt, tenzij "verkleinen" wordt afgedwongen door configuratie
variabelen). Om hetzelfde te doen met alleen het afbeeldingstype "Conductor", doet u

mp3info2 -d "APIC(Dirigent)[]" bestand.mp3

Om door submappen te scannen en bestand toe te voegen cover.jpg uit de directory van het bestand als een
"standaard" "APIC"-frame, maar alleen als er geen "APIC"-frame is en er een bestand bestaat,

mp3info2 -@F "APIC ?< @D/cover.jpg" laden="lui" -R .

Dit verwijdert lege frames voor datum, "TCOP, TENC, WXXX[], COMM(eng)[]", en verwijdert de
voorloop 0 vanaf tracknummer van MP3-bestand in huidige directory:

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

Voorbeelden on omgang with kapot coderingen


Een van de belangrijkste zwakke punten van de ID3-specificatie was dat gegevens vereist zijn
geleverd in "latin-1" -codering. Aangezien de meeste talen ter wereld niet kunnen worden uitgedrukt in
"latin-1", dit leidde ertoe dat (de meerderheid?) ID3-tags niet standaardconform waren. nieuwer
versies van de specificaties losten deze tekortkoming op, maar de schade was al aangericht.
Gelukkig kan dit script de mogelijkheden van "MP3::Tag" gebruiken om niet-conforme bestanden te converteren
inhoud naar een conforme.

In het volgende voorbeeld worden ID3v2-tags geconverteerd die zijn geschreven in (niet-standaardconform)
codering "cp1251" om in standaardconforme codering te zijn. Voor het doel van dit voorbeeld,
neem aan dat ID3v1-tags dezelfde codering hebben (en dat men ze in de
codering "cp1251"); de te verwerken bestanden bevinden zich in de huidige map en
(recursief) in zijn submappen ("set"-syntaxis voor DOSISH-shells):

stel MP3TAG_DECODE_V1_DEFAULT=cp1251 in
stel MP3TAG_DECODE_V2_DEFAULT=cp1251 in
mp3info2 -C id3v2_fix_encoding_on_write=1 -u2R .

Zie voor meer informatie "OMGEVING" in MP3::Tag, "config" in MP3::Tag en
"AANPASSEN" in MP3::Tag.

INCOMPATIBILITEITEN with mp3info
Deze tool is losjes gemodelleerd naar het programma mp3info; het is "grotendeels" achterwaarts compatibel
(vooral in de "naïeve" modus via "-N"), en staat een zeer significante superset toe van
functionaliteit. Bekende achterwaartse onverenigbaarheden zijn:

-G -h -r -d -x

Ontbrekende functionaliteit:

-f -F -i

Incompatibel "%"-ontsnappingen:

%e %E - absoluut andere semantiek
%v - heeft geen volg-nullen
%q - heeft een gebroken deel
%r - is een getal, geen woord "Variabel" voor VBR
%u - is één minder (alleen in aanwezigheid van beschrijvend frame?)

Missend "%"-ontsnappingen:

%b%G

Backslash-escapes: alleen "\\", "\n", "\t" worden ondersteund.

"-x" drukt gegevens af in een ander formaat, niet alle velden zijn aanwezig, en ID3v2-tagnamen
zijn uitvoer.

MILIEU


Met "-e" 1, 2 of 3 kan dit script omgevingsvariabelen "LC_CTYPE, LC_ALL,
LANG" om de huidige codering af te leiden. Er worden geen andere omgevingsvariabelen direct gelezen
dit schrift.

Merk echter op dat de MP3::Tag-module een uitgebreide set standaardinstellingen heeft voor coderingsinstellingen
instelbaar door omgevingsvariabelen; zie "OMGEVING" in MP3::Tag. Deze variabelen dus
(indirect) beïnvloeden hoe dit script werkt.

VEROUDERD INTERFACE


Als u niet begrijpt waar het over gaat, kunt u deze mededeling gerust negeren:

De oude, pre-versie=1.05 manier (door verdrievoudiging van een scheidingsteken, zonder herhaling van
opties) om meerdere commando's te geven aan "-F" en <-P> opties wordt nog steeds ondersteund, maar is
sterk afgeraden. (Het is niet in strijd met de huidige interface.)

Gebruik mp3info2p online met behulp van onworks.net-services


Gratis servers en werkstations

Windows- en Linux-apps downloaden

Linux-commando's

Ad




×
advertentie
❤️Koop, boek of koop hier — het is gratis, en zo blijven onze diensten gratis.