2

I have multiple folders with MP3 files. Some files are duplicates but in separate folders.

I want to create printable list of extended attributes — or metadata — to retain the file with the highest bit-rate.

These items are viewable with file explorer but it’s a tedious process. Mainly interesting in fidelity relate items such as bit rate, length as well as artist.

10
  • I don't know of any way to get the attributes without writing code. Hopefully someone else can offer something better. Also.. I don't think you want "extended attributes".. but "extended properties". attributes are things associated with the file header/entry itself at a file system level. "extended properties" are a feature of the windows shell to parse pertinent information from tags within the file itself "like Artist". May 20, 2020 at 16:55
  • Please post your Operating system
    – Moab
    May 20, 2020 at 17:24
  • 1
    In windows I use MP3Nity, not free but the best for doing this.
    – Moab
    May 20, 2020 at 17:25
  • I provided a code solution with PowerShell (that I deleted), but realized that may be WAY over the top. In the past when curating my own library for low fidelity files, I've used iTunes, MP3Tag, and MusicBrainz Picard. These should be more than adequate. Let me know if you need a code solution.
    – Allen J
    May 20, 2020 at 18:31
  • Thank you both, I looked for "extended properties" and found a bunch of hits but they all do it by writing code, which I am not into anymore. Had it been mainframe COBOL or assembler, then I would give it a try. I was hoping for some program to just produce a list like File Explorer, where you add the attribute(s) that you are looking for, but I have not found a way for File Explorer to create a printable list of all songs in the folder.
    – Paul
    May 20, 2020 at 18:49

3 Answers 3

1

Based on OP's comments, and my lack of recent COBOL/ASM experience, I'm going to stand by my recommendation in my comment. I'm sure I'm only slightly younger than OP as I also PUSH'd and JMP'd my way around a computer, but assuming you don't want to just read a printed list, but actually sort and manage your music, get a tool. I was able to generate a printable list in MP3tag in about 60 seconds if that is truly your preference.

MP3Tag Running in Windows

The HTML Export I generated (with a very slight tweak to the export file)

Download Apple iTunes, MP3Tag, or MusicBrainz Picard.

1
  • My Mainframe life is now history, use Window 10 now, no Apple stuff. MP3tag works, it displays what I want but does not export what is on the screen. I narrowed the Header line to two items: BitRate and Filename and that is what it shows OK. File/Export: "abc.csv" yeilds 10 fields: Title, Artist, Album, Track, Year, Length, Size, Last Modified, Path, Filename (All filled In) but no "BitRate". So where is the setting(s) to add BitRate, and maybe remove other unneeded fields from the .csv file? The above example has BitRate.
    – Paul
    May 24, 2020 at 2:07
0
"C:\Program Files\MediaInfo CLI\MediaInfo.exe" "%userprofile\Music\Playlist\*.mp3" --Output=HTML --Full  2>>&1>>"%temp%\Full_Details_List.html"

Use: Mediainfo CLI (Command Line Interface)

With MediaInfo CLI you can save all details from yours .mp3 files by using flags and redirect outputs to some folder/file:

---Output=HTML --Full 2>>&1>>"%temp%\Full_Details_List.html"

  • For use recursively:
for /f tokens^=* %i in ('where /r "%userprofile%\Music\Playlist" *.mp3')do "C:\Program Files\MediaInfo CLI\MediaInfo.exe" "%~i" --Full --Output=HTML 2>>&1>>"%temp%\Full_Details_List.html"
  • Simple command line
"C:\Program Files\MediaInfo CLI\MediaInfo.exe" "%userprofile\Music\Playlist\Imagine _ Playing For Change _ Song Around The WorldI.mp3"

enter image description here

  • If you need get Bit Rate and save with full file name in .cvs file,
    use --Inform=General;%BitRate%, in need bat double % -> %%
@echo off && setlocal enabledelayedexpansion 

set "_mp3_folder=D:\Path\To\Mp3\Folder"
set "_Out_Log_CSV=%temp%\File_Path_Bit_Rate_Table.csv"
2>nul del /q /f "!_Out_Log_CSV!"

for /f tokens^=* %%I in ('where /r "!_mp3_folder!" *.mp3')do echo; & (set /p "'=File,%%~I,Bit Rate," <nul 
    "C:\Program Files\MediaInfo CLI\MediaInfo.exe" --Inform=General;%%BitRate%% "%%~I"
    ) 2>>&1>>"!_Out_Log_CSV!" 

Start "" /b "!_Out_Log_CSV!" && endlocal && goto :EOF

You can view the full details output from some mp3 in HTML output (converted to PDF) here

  • For help in command output:
MediaInfo Command line, 
MediaInfoLib - v20.03
Usage: "MediaInfo [-Options...] FileName1 [Filename2...]"

Options:
--Help, -h
                    Display this help and exit
--Help-Output
                    Display help for Output= option
--Help-AnOption
                    Display help for "AnOption"
--Version
                    Display MediaInfo version and exit

--Full, -f
                    Full information Display (all internal tags)
--Output=HTML
                    Full information Display with HTML tags
--Output=XML
                    Full information Display with XML tags
--Output=OLDXML
                    Full information Display with XML tags using the older
                    MediaInfo schema
--Output=JSON
                    Full information Display using JSON
--Output=EBUCore
                    Full information Display with EBUCore compliant XML tags
--Output=EBUCore_JSON
                    Full information Display with EBUCore 1.8 compliant JSON
--Output=PBCore
                    Full information Display with PBCore compliant XML tags
--Output=PBCore2
                    Full information Display with PBCore 2.0 compliant XML tags
--AcquisitionDataOutputMode=segmentParameter
                    Display Acquisition Data by segment then parameter (EBUCore
                    and NISO Z39.87 outputs)
--AcquisitionDataOutputMode=parameterSegment
                    Display Acquisition Data by parameter then segment (EBUCore
                    and NISO Z39.87 outputs)
--ExternalMetadata=...
                    Add external metadata to the output (EBUCore output)
--ExternalMetadataConfig=...
                    Output template for external metadata (EBUCore output)
--Info-Parameters
                    Display list of Inform= parameters

--Language=raw
                    Display non-translated unique identifiers (internal text)
--Details=1
                    Display mediatrace info
--File_TestContinuousFileNames=0
                    Disable image sequence detection
--LogFile=...
                    Save the output in the specified file
--BOM
                    Byte order mark for UTF-8 output

--Ssl_CertificateFileName=...
                    File name of the SSL certificate.
                    The default format is "PEM" and can be changed
                    with --Ssl_CertificateFormat.
--Ssl_CertificateFormat=...
                    File format of the SSL certificate.
                    Supported formats are "PEM" and "DER"
--Ssl_PrivateKeyFileName=...
                    File name of the SSL private key.
                    The default format is "PEM" and can be changed
                    with --Ssl_PrivateKeyFormat.
                    Note: private key with a password is not supported.
--Ssl_PrivateKeyFormat=...
                    File format of the SSL private key.
                    Supported formats are "PEM" and "DER"
--Ssl_CertificateAuthorityFileName=...
                    File name of the SSL certificate authorities
                    to verify the peer with.
--Ssl_CertificateAuthorityPath=...
                    Path of the SSL certificate authorities
                    to verify the peer with.
--Ssl_CertificateRevocationListFileName=...
                    File name of the SSL certificate revocation list.
                    The format is "PEM"
--Ssl_IgnoreSecurity=...
                    Does not verify the authenticity of the peer's certificate
                    Use it at your own risks
--Ssh_PublicKeyFileName=...
                    File name of the SSH private key.
                    Default is $HOME/.ssh/id_rsa.pub or $HOME/.ssh/id_dsa.pub
                    if the HOME environment variable is set, and just
                    "id_rsa.pub" or "id_dsa.pub" in the current directory
                    if HOME is not set.
                    Note: you need to set both public and private key.
--Ssh_PrivateKeyFileName=...
                    File name of the SSH private key.
                    Default is $HOME/.ssh/id_rsa or $HOME/.ssh/id_dsa
                    if the HOME environment variable is set, and just
                    "id_rsa" or "id_dsa" in the current directory
                    if HOME is not set.
                    Note: you need to set both public and private key.
                    Note: private key with a password is not supported.
--Ssh_KnownHostsFileName=...
                    File name of the known hosts
                    The format is the OpenSSH file format (libssh2)
                    Default is $HOME/.ssh/known_hosts
                    if the HOME environment variable is set, and just
                    "known_hosts" in the current directory
                    if HOME is not set.
--Ssh_IgnoreSecurity
                    Does not verify the authenticity of the peer
                    (you don't need to accept the key with ssh first)
                    Use it at your own risks

For downloading x32 MediaInfo CLI v20.03 Windows x86

For downloading x64 MediaInfo CLI v20.03 Windows x64

1
  • After using some of the suggestions above, I ran across "FileListCreator" from www.sttmedia.com, Tried it and it does exactly what I want. Minor problem, it stalls sometimes, restart it and it stalls or completes OK. Email to Stefan Trost (owner) and he replied with suggestions about a day later. Now I need to try his suggestions. So my problem solved! Thanks for all the suggestions above.
    – Paul
    Nov 13, 2021 at 21:13
0

For my music files I use FileList.exe from Jam software to get all my music attributes. Music>..\FileList.exe /USECOLUMNS system.Music.Artist,System.Music.AlbumArtist,System.Music.AlbumTitle,System.Media.Duration,system.Title ,NAME,Size,System.Music.Genre,PATHWITHOUTNAME /INCLUDE * > music.csv This gives me columns: Contributing artists Album artist Album Length Title Name Size Genre Containing Path. I wanted to see the duplicated songs so I added a column between Title and Name and added the formula =COUNTIF(E$1:E$5000,E2) - I have 4500 entries. Copy formula down for all rows and now sort on count and name to see duplicates.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .