Browse Source

Added ID3v1 genres support

main
Unbewohnte 3 years ago
parent
commit
5cf890ea00
  1. 6
      id3v10.go
  2. 6
      id3v11.go
  3. 198
      id3v1genres.go

6
id3v1.go → id3v10.go

@ -17,7 +17,7 @@ type ID3v1Tags struct {
Album string Album string
Year int Year int
Comment string Comment string
Genre int Genre string
} }
// Retrieves ID3v1 field values of provided io.ReadSeeker (usually a file) // Retrieves ID3v1 field values of provided io.ReadSeeker (usually a file)
@ -80,7 +80,7 @@ func GetID3v1Tags(rs io.ReadSeeker) (*ID3v1Tags, error) {
Album: string(album), Album: string(album),
Year: year, Year: year,
Comment: string(comment), Comment: string(comment),
Genre: genre, Genre: ID3v1Genres[genre],
}, nil }, nil
} }
@ -104,6 +104,6 @@ func (t *ID3v1Tags) GetComment() string {
return t.Comment return t.Comment
} }
func (t *ID3v1Tags) GetGenre() int { func (t *ID3v1Tags) GetGenre() string {
return t.Genre return t.Genre
} }

6
id3v1.1.go → id3v11.go

@ -14,7 +14,7 @@ type ID3v11Tags struct {
Year int Year int
Comment string Comment string
Track int Track int
Genre int Genre string
} }
// Retrieves ID3v1.1 field values of provided io.ReadSeeker (usually a file) // Retrieves ID3v1.1 field values of provided io.ReadSeeker (usually a file)
@ -92,7 +92,7 @@ func GetID3v11Tags(rs io.ReadSeeker) (*ID3v11Tags, error) {
Year: year, Year: year,
Comment: string(comment), Comment: string(comment),
Track: track, Track: track,
Genre: genre, Genre: ID3v1Genres[genre],
}, nil }, nil
} }
@ -120,6 +120,6 @@ func (t *ID3v11Tags) GetTrack() int {
return t.Track return t.Track
} }
func (t *ID3v11Tags) GetGenre() int { func (t *ID3v11Tags) GetGenre() string {
return t.Genre return t.Genre
} }

198
id3v1genres.go

@ -0,0 +1,198 @@
package id3ed
// https://en.wikipedia.org/wiki/List_of_ID3v1_Genres
var ID3v1Genres = map[int]string{
0: "Blues",
1: "Classic Rock",
2: "Country",
3: "Dance",
4: "Disco",
5: "Funk",
6: "Grunge",
7: "Hip-Hop",
8: "Jazz",
9: "Metal",
10: "New Age",
11: "Oldies",
12: "Other",
13: "Pop",
14: "R&B",
15: "Rap",
16: "Reggae",
17: "Rock",
18: "Techno",
19: "Industrial",
20: "Alternative",
21: "Ska",
22: "Death Metal",
23: "Pranks",
24: "Soundtrack",
25: "Euro-Techno",
26: "Ambient",
27: "Trip-Hop",
28: "Vocal",
29: "Jazz+Funk",
30: "Fusion",
31: "Trance",
32: "Classical",
33: "Instrumental",
34: "Acid",
35: "House",
36: "Game",
37: "Sound Clip",
38: "Gospel",
39: "Noise",
40: "AlternRock",
41: "Bass",
42: "Soul",
43: "Punk",
44: "Space",
45: "Meditative",
46: "Instrumental Pop",
47: "Instrumental Rock",
48: "Ethnic",
49: "Gothic",
50: "Darkwave",
51: "Techno-Industrial",
52: "Electronic",
53: "Pop-Folk",
54: "Eurodance",
55: "Dream",
56: "Southern Rock",
57: "Comedy",
58: "Cult",
59: "Gangsta",
60: "Top 40",
61: "Christian Rap",
62: "Pop/Funk",
63: "Jungle",
64: "Native American",
65: "Cabaret",
66: "New Wave",
67: "Psychadelic",
68: "Rave",
69: "Showtunes",
70: "Trailer",
71: "Lo-Fi",
72: "Tribal",
73: "Acid Punk",
74: "Acid Jazz",
75: "Polka",
76: "Retro",
77: "Musical",
78: "Rock & Roll",
79: "Hard Rock",
80: "Folk",
81: "Folk-Rock",
82: "National Folk",
83: "Swing",
84: "Fast Fusion",
85: "Bebob",
86: "Latin",
87: "Revival",
88: "Celtic",
89: "Bluegrass",
90: "Avantgarde",
91: "Gothic Rock",
92: "Progressive Rock",
93: "Psychedelic Rock",
94: "Symphonic Rock",
95: "Slow Rock",
96: "Big Band",
97: "Chorus",
98: "Easy Listening",
99: "Acoustic",
100: "Humour",
101: "Speech",
102: "Chanson",
103: "Opera",
104: "Chamber Music",
105: "Sonata",
106: "Symphony",
107: "Booty Bass",
108: "Primus",
109: "Porn Groove",
110: "Satire",
111: "Slow Jam",
112: "Club",
113: "Tango",
114: "Samba",
115: "Folklore",
116: "Ballad",
117: "Power Ballad",
118: "Rhythmic Soul",
119: "Freestyle",
120: "Duet",
121: "Punk Rock",
122: "Drum Solo",
123: "A cappella",
124: "Euro-House",
125: "Dance Hall",
126: "Goa music",
127: "Drum & Bass",
128: "Club-House",
129: "Hardcore Techno",
130: "Terror",
131: "Indie",
132: "BritPop",
133: "Negerpunk",
134: "Polsk Punk",
135: "Beat",
136: "Christian Gangsta Rap",
137: "Heavy Metal",
138: "Black Metal",
139: "Crossover",
140: "Contemporary Christian",
141: "Christian Rock",
142: "Merengue",
143: "Salsa",
144: "Thrash Metal",
145: "Anime",
146: "Jpop",
147: "Synthpop",
148: "Abstract",
149: "Art Rock",
150: "Baroque",
151: "Bhangra",
152: "Big beat",
153: "Breakbeat",
154: "Chillout",
155: "Downtempo",
156: "Dub",
157: "EBM",
158: "Eclectic",
159: "Electro",
160: "Electroclash",
161: "Emo",
162: "Experimental",
163: "Garage",
164: "Global",
165: "IDM",
166: "Illbient",
167: "Industro-Goth",
168: "Jam Band",
169: "Krautrock",
170: "Leftfield",
171: "Lounge",
172: "Math Rock",
173: "New Romantic",
174: "Nu-Breakz",
175: "Post-Punk",
176: "Post-Rock",
177: "Psytrance",
178: "Shoegaze",
179: "Space Rock",
180: "Trop Rock",
181: "World Music",
182: "Neoclassical",
183: "Audiobook",
184: "Audio Theatre",
185: "Neue Deutsche Welle",
186: "Podcast",
187: "Indie-Rock",
188: "G-Funk",
189: "Dubstep",
190: "Garage Rock",
191: "Psybient",
}
Loading…
Cancel
Save