How to see what's in an MP3's tag on a Mac, Windows or Linux without installing anything
Before you fix a tag it helps to see it. Not what a music app thinks the tag says after it cached it last year; what's in the file now. Everything below is already on your machine, and each method has one quirk worth knowing.
Drop it in the editor
The quickest way, and it works on a phone. The editor reads the ID3v2 tag and shows every field it has, plus the cover, without saving anything. If the fields come up empty, the file has no ID3v2 tag. If they come up with question marks, the title was lost at write time. Nothing leaves your device; close the tab and that's that.
The quirk: it shows the fields it can edit. A file with a composer or lyrics frame has those too, and you won't see them here. For a full dump, use one of the methods below.
Mac: Get Info
Select the file in Finder and press Command-I. Under More Info you'll see Title, Artists, Album, Year, Track number, Genre, Duration and the bit rate. This is Spotlight's reading of the tag, which means it's whatever macOS indexed, and it usually catches up within a few seconds of a change.
The same information is available in Terminal from the mdls command. Here is the real output for the practice file on this site, trimmed to the interesting lines:
$ mdls practice-track.mp3
kMDItemAlbum = "Test Album"
kMDItemAudioBitRate = 48000
kMDItemAudioTrackNumber = 3
kMDItemAuthors = (
Swara
)
kMDItemDurationSeconds = 15.504
kMDItemMusicalGenre = "Rock"
kMDItemRecordingYear = 2026
kMDItemTitle = "Morning Raga"
The quirk is the genre line. This file stores its genre as the word Rock, so Spotlight shows Rock. I also tried a copy where the genre frame held (17), the old numeric way of saying Rock that some taggers still write, and Spotlight showed (17) literally while every player I opened it in translated it. That's the reason the editor here writes the genre as its name rather than its number: the name works everywhere.
Windows: Properties, Details tab
Right-click the file, choose Properties, then the Details tab. You'll see Title, Subtitle, Rating, Comments, Contributing artists, Album artist, Album, Year, #, Genre, Length and Bit rate. You can edit most of them here too, which is fine for a field or two.
The quirk: this reads ID3v2.3 well and has historically been unreliable with 2.4 tags, showing blanks for files that other software reads fine. If the Details tab is empty and the file plays with a title in VLC, that's usually what's going on, and re-saving as 2.3 fixes it.
VLC: Media Information
Open the file in VLC, then Tools → Media Information on Windows and Linux, or Window → Media Information on a Mac (Command-I). The General tab shows the tag fields and the cover; the Codec tab shows the audio details. VLC reads every tag version and doesn't cache, so it's a good second opinion when Explorer or Finder disagree with what you expect.
ffprobe, if you have ffmpeg
If ffmpeg is installed (it comes with many tools and is a one-line install on any system), ffprobe prints the tag and the stream details. Real output for the same practice file:
$ ffprobe -hide_banner practice-track.mp3
Input #0, mp3, from 'practice-track.mp3':
Metadata:
title : Morning Raga
artist : Swara
track : 3/10
album : Test Album
genre : Rock
comment : Tagged with editmp3tags.com
date : 2026
Duration: 00:00:15.53, start: 0.000000, bitrate: 48 kb/s
Stream #0:0: Audio: mp3 (mp3float), 24000 Hz, mono, fltp, 48 kb/s
On the copy with the genre stored as (17), ffprobe printed genre : Rock where Spotlight printed (17). ffprobe translates the code; Spotlight doesn't. Same bytes, two readings, which is the whole reason tags are confusing.
The quirk: ffprobe merges what it finds and doesn't tell you which tag version it came from. If you need to know whether a file has ID3v1, ID3v2, or both, look at the raw bytes.
The raw bytes, in one command
An ID3v2 tag starts with the letters ID3 at the very beginning of the file; an ID3v1 tag starts with TAG exactly 128 bytes from the end. On a Mac or Linux:
$ head -c 3 track.mp3; echo; tail -c 128 track.mp3 | head -c 3; echo
If the first line prints ID3 you have a front tag; if the second prints TAG you have a back one. On Windows, PowerShell can do the same with Get-Content -AsByteStream, but honestly, VLC is quicker. What the whole tag looks like in hex, if you want to go further.
Which to trust when they disagree
The file. Finder, Explorer and music apps all keep caches and all have version blind spots. VLC and ffprobe read the file each time and read every version. When the Details tab says one thing and ffprobe says another, ffprobe is telling you what's in the file, and the Details tab is telling you what Windows managed to read of it.