diff --git a/scanner/metadata_ffmpeg.go b/scanner/metadata_ffmpeg.go index 402bbabbd..4f2474149 100644 --- a/scanner/metadata_ffmpeg.go +++ b/scanner/metadata_ffmpeg.go @@ -33,7 +33,7 @@ func (m *Metadata) Genre() string { return m.getTag("genre") } func (m *Metadata) Year() int { return m.parseYear("date") } func (m *Metadata) TrackNumber() (int, int) { return m.parseTuple("track") } func (m *Metadata) DiscNumber() (int, int) { return m.parseTuple("tpa", "disc") } -func (m *Metadata) HasPicture() bool { return m.getTag("has_picture") == "true" } +func (m *Metadata) HasPicture() bool { return m.getTag("has_picture", "metadata_block_picture") != "" } func (m *Metadata) Comment() string { return m.getTag("comment") } func (m *Metadata) Compilation() bool { return m.parseBool("compilation") } func (m *Metadata) Duration() float32 { return m.parseDuration("duration") } @@ -99,7 +99,7 @@ var ( inputRegex = regexp.MustCompile(`(?m)^Input #\d+,.*,\sfrom\s'(.*)'`) // TITLE : Back In Black - tagsRx = regexp.MustCompile(`(?i)^\s{4,6}(\w+)\s+:(.*)`) + tagsRx = regexp.MustCompile(`(?i)^\s{4,6}(\w+)\s*:(.*)`) // Duration: 00:04:16.00, start: 0.000000, bitrate: 995 kb/s` durationRx = regexp.MustCompile(`^\s\sDuration: ([\d.:]+).*bitrate: (\d+)`) diff --git a/scanner/metadata_test.go b/scanner/metadata_test.go index 5e294eb4a..150ab1f4a 100644 --- a/scanner/metadata_test.go +++ b/scanner/metadata_test.go @@ -79,6 +79,19 @@ Input #0, mp3, from '/Users/deluan/Music/iTunes/iTunes Media/Music/Compilations/ Expect(md.HasPicture()).To(BeTrue()) }) + It("detects embedded cover art in ogg containers", func() { + const output = ` +Input #0, ogg, from '/Users/deluan/Music/iTunes/iTunes Media/Music/_Testes/Jamaican In New York/01-02 Jamaican In New York (Album Version).opus': + Duration: 00:04:28.69, start: 0.007500, bitrate: 139 kb/s + Stream #0:0(eng): Audio: opus, 48000 Hz, stereo, fltp + Metadata: + ALBUM : Jamaican In New York + metadata_block_picture: AAAAAwAAAAppbWFnZS9qcGVnAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4Id/9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAMCAgMCAgMDAwMEAwMEBQgFBQQEBQoHBwYIDAoMDAsKCwsNDhIQDQ4RDgsLEBYQERMUFRUVDA8XGBYUGBIUFRT/2wBDAQMEBAUEBQkFBQkUDQsNFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQ + TITLE : Jamaican In New York (Album Version)` + md, _ := extractMetadata("tests/fixtures/test.mp3", output) + Expect(md.HasPicture()).To(BeTrue()) + }) + It("gets bitrate from the stream, if available", func() { const output = ` Input #0, mp3, from '/Users/deluan/Music/iTunes/iTunes Media/Music/Compilations/Putumayo Presents Blues Lounge/09 Pablo's Blues.mp3':