English version
SkimID3.EXE je konsolová utilita pro MS Windows, která zobrazuje metainformace (atributy) ze zvukových souborů ve formátech MP3, Ogg, WMA, ASF, WAV. Informace jsou vypisovány na standardní výstup ve tvaru NázevAtributu=Obsah atributu. Při použití parametru /S (alias /SET) se výstupní tvar změní na SET NázevAtributu=Obsah atributu. Seznam všech atributů je v níže uvedené tabulce.
Tento program je freeware a smí být bezplatně používán a šířen kýmkoli. Poslední verze hledejte na webu vit$oft freeware. Případná upozornění na chyby můžete posílat emailem.
Program se nijak neinstaluje, pouze zkopírujte SkimID3.EXE do některého adresáře v PATH.
Název vyšetřovaného souboru se zadává jako parametr příkazové řádky. Pokud obsahuje mezery, musí být uveden v uvozovkách. Zástupné znaky ? * nelze použít.
Po zadání parametru /DC nebo /D se vytvoří v aktuálním adresáři soubor s touto dokumentací SkimID3C.HTM (česky) nebo SkimID3.HTM (anglicky).
Parametr /S (neboli /Set) způsobí, že před každý atribut bude přidán povel SET, což usnadní nastavování těchto dat do systémových proměnných v prostředí Windows9x.
Přidání parameteru /W (neboli /Wait) způsobí, že SkimID3 po vypsání informace počká na stisk klávesy Enter. Při spouštění SkimID3 z Průzkumníka nebo dialogu Start/Spustit pak nedojde k uzavření konsoly dříve, než jsme stačili zobrazené informace vzít na vědomí.
Každá položka je vypsána na novém řádku. Jméno atributu je následováno rovnítkem, za kterým je vypsán obsah položky bez uvozovek. V sekci Příklady je uvedeno, jak dostat položky do proměnných prostředí a využít je v dávkových souborech.
Atributy mohou obsahovat znaky, které nejsou syntakticky přípustné v povelu SET. Tyto "nebezpečné" znaky " % & < > ^ | jsou proto nahrazovány podtržítkem _. Znaky obsahující diakritiku jsou převedeny na kódování OEM podle národního prostředí přihlášeného uživatele, tj. obvykle do PC Latin2.
0 ... informace byly zobrazeny
4 ... neznámý formát souboru
8 ... soubor nebyl nalezen
12 ... ostatní případy
Formát zvukového souboru (MP3, Ogg, WMA, WAV) se nerozpoznává z přípony, ale z vnitřní struktury souboru, a je obsahem atributu FORM=.
Atribut CHAN= ukazuje počet samostatných zvukových kanálů v souboru. Místo obvyklých hodnot 1 nebo 2 se vypisují slovní identifikátory Mono nebo Stereo. Stereofonní MP3 soubory mohou být také kódovány jako Joint nebo Dual.
Atributy SECS= a MINS= zobrazují tutéž veličinu: trvání zvukového souboru. SECS= je příhodnější pro následné výpočty, formát MINS= je zase lépe čitelný.
Atributy VERS=, RATE a SAMP= popisují kvalitu digitalizace zvuku.
Zvukové soubory mohou obsahovat přídavné informace o "softwarovém obsahu", jako název skladby, jméno interpreta apod. Na rozdíl od kódovacích atributů však nejsou tato data automaticky uložena ve zvukovém formátu, ledaže byla uživatelem explicitně zadána. Rozsah těchto atributů je omezen použitým zvukovým formátem:
SkimID3 využívá názvy atributů ID3 verze 2 pro sjednocení nejčastěji uváděných položek s obdobným významem: TALB= pro název alba (LP nebo CD), TIT2= pro název skladby, TPE1= pro jméno umělce (interpreta), TCON= pro hudební žánr, TRCK= pro pořadové číslo skladby v rámci alba, TYER= pro rok vydání, TCOP= pro informace o autorských právech a COMM= pro komentář.
Pokud zvukový soubor obsahuje dodatečné atributy mimo výše uvedených, jsou doslovně vypsány, kupříkladu WM/Composer=.
Obsahuje-li MP3 soubor ekvivalentní atributy v ID3 formátech obou verzí 1 i 2, je preferován obsah atributu verze 2.
Jako poslední možnost mohou být některé atributy získány z vlastností souboru: není-li v souboru definován název skladby, alba či rok vydání, nastaví se TIT2= podle jména souboru bez přípony, TALB= podle jména nadřazeného adresáře a TYER= podle data vytvoření souboru.
Atribut | Formát MP3 | Formát Ogg | Formát WMA/ASF | Formát WAV |
---|---|---|---|---|
CHAN= | Počet kanálů nebo Mono/Stereo/Joint/Dual | |||
COMM= | Comment | Description | Description | |
CPRT= | Copyrighted Yes/No | |||
FORM= | MP3 | Ogg | WMA | WAV |
MINS= | Trvání skladby ve formátu minuty:sekundy | |||
ORIG= | Original media Yes/No | |||
RATE= | Střední datový tok v bitech/s | |||
SAMP= | Vzorkovací kmitočet v Hz | |||
SECS= | Trvání skladby v sekundách | |||
TALB= | Album | Album | ||
TCON= | GenreID | Genre | WM/Genre | |
TCOP= | Copyright | |||
TIT2= | Title | Title | WM/Title | |
TPE1= | Artist | Artist | WM/AlbumArtist | |
TRCK= | Track | TrackNumber | WM/TrackNumber | |
TYER= | Year | Date | WM/Year | |
VERS= | MPEGxLAYERy | Verze enkodéru Vorbis | Typové číslo kódování WAV |
Otevřte Příkazový řádek (DOS Prompt), přejděte do adresáře se zvukovými soubory a zadejte SkimID3 následované názvem souboru, např.:
C:\>skimid3 %SystemRoot%\Media\tada.wav FORM=WAV VERS=1 CHAN=Stereo SAMP=22050 RATE=705600 SECS=1 MINS=0:01 TIT2=tada TALB=Media TYER=2001
Spouštění SkimID3 lze zařadit do kontextové nabídky Průzkumníka. Uložte následující text do souboru SkimID3.REG a importujte jej do registru Windows povelem REGEDIT SkimID3.REG. Pokud nyní klepnete pravým tlačítkem myši na zvukovém souboru, měla by přibýt nová nabídka SkimID3 pro rychlé zobrazení jeho atributů.
REGEDIT4 [HKEY_CLASSES_ROOT\SoundFile] [HKEY_CLASSES_ROOT\SoundFile\shell] [HKEY_CLASSES_ROOT\SoundFile\shell\Play] @="&Play" [HKEY_CLASSES_ROOT\SoundFile\shell\Play\command] @="MPlay32 /Play /Close \"%L\"" [HKEY_CLASSES_ROOT\SoundFile\shell\SkimID3] @="Skim&ID3" [HKEY_CLASSES_ROOT\SoundFile\shell\SkimID3\command] @="SkimID3 /Wait \"%L\"" [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.mp3] "ProgId"="SoundFile" [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.wma] "ProgId"="SoundFile" [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.ogg] "ProgId"="SoundFile" [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.wav] "ProgId"="SoundFile"
SkimID3 je určen především do dávkových souborů. Jeho výstup lze přesměrovat do souboru a v případě uvedení parametru /Set takto vytvořený dávkový soubor ihned spustit a přenést tak metainformace do systémových (environment) proměnných.
SkimID3 /Set "C:\MUSIC\Rock\The Free Story\Heavy Load.mp3" >BATCH.BAT CALL BATCH.BAT ECHO Systémové proměnné byly nastaveny: SET
V MS Windows řady NT lze nastavovat systémové proměnné ještě elegantněji. Následující příklady jsou určeny pro WindowsNT/2K/XP:
FOR /F "tokens=*" %%* IN ('SkimID3 "Smile Of The Beyond.mp3"') DO SET %%* ECHO Systémové proměnné byly nastaveny: SET
Povel DIR /S /B *.MP3 postupně vypisuje názvy všech souborů MP3 v aktuálním a podřízených adresářích. Na každý soubor je zavolán SkimID3 a jeho výstup je přesměrován do utility FIND. Pokud je výsledek pozitivní, tj. FIND našel v metainformacích slovo "Beatles", název souboru bude připsán do playlistu. Pak jsou obdobně zpracovány ještě soubory Ogg a WMA.
@ECHO OFF FOR /F "tokens=*" %%* IN ('DIR /S /B *.MP3') DO SkimID3 "%%*"|FIND "Beatles"&&ECHO %%*>>Beatles.m3u FOR /F "tokens=*" %%* IN ('DIR /S /B *.Ogg') DO SkimID3 "%%*"|FIND "Beatles"&&ECHO %%*>>Beatles.m3u FOR /F "tokens=*" %%* IN ('DIR /S /B *.WMA') DO SkimID3 "%%*"|FIND "Beatles"&&ECHO %%*>>Beatles.m3u
Následující ukázka vyšetřuje trvání MP3 skladeb v adresáři "C:\Music\Mix" a soubory kratší než 60 sekund přemístí do adresáře "C:\Music\Trash".
@ECHO OFF MD "C:\Music\Trash" FOR /F "tokens=*" %%* IN ('DIR /S /B "C:\Music\Mix\*.MP3"') DO CALL :JOB "%%*" GOTO :EOF :JOB FOR /F "tokens=*" %%* IN ('SkimID3 /S %1') DO %%* ECHO Skladba %1 trvá %MINS% IF %SECS% LEQ 60 MOVE %1 "C:\Music\Trash" & ECHO Přesunuta do složky Trash. GOTO :EOF
Následující dávkový soubor funguje jako náhrada hudebního rádia: náhodně vybírá skladby uložené v počítači, z ID3 tagů zjistí informace o souboru a syntetickým hlasem ohlašuje, kdo bude hrát a zpívat. Jako řečový syntetizátor je použit kvalitní software ReadPlease2003 volně dostupný na www.readplease.com. Zcela vyhoví jeho bezplatná volně šířitelná verze, bohužel ale umí vyslovovat pouze anglický text. Při instalaci se ReadPlease2003 asociuje se souborovou příponou .rpps, takže pro přečtení textového souboru stačí povel START file.rpps následovaný několikasekundovou pauzou pomocí utility SLEEP.
@ECHO OFF & TITLE Talking MP3 player IF "%CMDEXTVERSION%"=="2" GOTO :CmdOK ECHO This script is intended for WindowsXP/2000 only. GOTO :EOF :CmdOK IF EXIST %TEMP%\PLAYLIST.M3U GOTO :UseOldList ECHO As this is the first time talking player is running, ECHO please wait until a total MP3 playlist is built. FOR %%d IN (C D E F G H I J K L M N O P Q R S T U V W X Y Z) DO ( FSUTIL fsinfo drivetype %%d:|FIND "disk"&&DIR /B /S %%d:\*.MP3 %%d:\*.WMA >>%TEMP%\PLAYLIST.M3U ) :UseOldList ECHO Hi.>%TEMP%\INTRO.rpps & START %TEMP%\INTRO.rpps SLEEP 2 &:: This will start ReadPlease2003.exe if properly installed. ECHO This is %COMPUTERNAME% talking player.>>%TEMP%\INTRO.rpps START %TEMP%\INTRO.rpps SLEEP 6 &:: Give it some time to announce the intro. FOR /F "tokens=3" %%* IN ('FIND /C /V "" %TEMP%\PLAYLIST.M3U') DO SET TOTAL_SONGS=%%* ECHO Talking player has found %TOTAL_SONGS% songs ECHO on %COMPUTERNAME% computer to choose from. IF %TOTAL_SONGS% EQU 0 GOTO :EOF :: Here we set how many songs will play in one session. SET REMAINING_SONGS=10 :PlayASong - randomly draw one line from playlist. SET /A NUM=%RANDOM% %% %TOTAL_SONGS% SET FULLNAME=&:: Now read the line Nr. %NUM% from playlist: FOR /F "tokens=* skip=%NUM%" %%* IN (%TEMP%\PLAYLIST.M3U) DO SET FULLNAME="%%*"&GOTO :Chosen :Chosen ECHO Chosen song Nr.%NUM%: %FULLNAME% SET TCON=&SET TYER=&SET TIT2=&SET TPE1=&SET TALB= FOR /F "tokens=*" %%* IN ('SkimID3 %FULLNAME%') DO SET %%* TITLE %FULLNAME% (ECHO: IF NOT "%TCON%"=="" ECHO Now we are going to play some %TCON% music IF NOT "%TYER%"=="" ECHO from the year %TYER%. IF NOT "%TIT2%"=="" ECHO We will play a song called - "%TIT2%" IF NOT "%TPE1%"=="" ECHO - by "%TPE1%" IF NOT "%TALB%"=="" ECHO - from the album - "%TALB%". )>%TEMP%\PROLOG.rpps START %TEMP%\PROLOG.rpps & SLEEP 14 :: Old version 5 of MediaPlayer is preferred because it is :: well behaved and shutdowns itself when the song is over. MPLAY32 /Play /Close %FULLNAME% (ECHO: IF NOT "%TIT2%"=="" ECHO You were listening to the song called - "%TIT2%" IF NOT "%TPE1%"=="" ECHO - by "%TPE1%" IF NOT "%TALB%"=="" ECHO - from the album - "%TALB%". )>%TEMP%\EPILOG.rpps START %TEMP%\EPILOG.rpps & SLEEP 6 SET /A REMAINING_SONGS=%REMAINING_SONGS% - 1 IF %REMAINING_SONGS% GTR 0 GOTO :PlayASong TITLE Talking MP3 player ECHO Talking player is now over. Good bye. >%TEMP%\OUTRO.rpps START %TEMP%\OUTRO.rpps & SLEEP 8 & TSKILL "ReadPlease2003"