-
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Closed
Labels
bugfrozen-due-to-agetriageNew bug reports that need to be evaluatedNew bug reports that need to be evaluated
Description
I confirm that:
- I have searched the existing open AND closed issues to see if an issue already exists for the bug I've encountered
- I'm using the latest version (your issue may have been fixed already)
Version
0.55.1 (beb768c)
Current Behavior
I noticed that some songs don't have a cover, even between different songs of the same album.
/rest/getCoverArt returns a MPEG-4 file instead of a jpeg.
Expected Behavior
It should return the album cover art as a jpeg
Steps To Reproduce
- clear cache
- request /rest/getCoverArt for affected song
- recieve application/octet-stream instead of image
Environment
- OS: Debian 12 (Raspberry Pi 5) running Docker deluan/navidrome:0.55.1
- Browser: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:136.0) Gecko/20100101 Firefox/136.0
- Client: all (direct API call)
How Navidrome is installed?
Docker
Configuration
services:
navidrome:
image: deluan/navidrome:latest
user: 1000:1000
ports:
- "4533:4533"
restart: unless-stopped
environment:
ND_SCANSCHEDULE: 1h
ND_LOGLEVEL: debug
ND_SESSIONTIMEOUT: 24h
ND_BASEURL: ""
ND_DEFAULTLANGUAGE: de
ND_LASTFM_APIKEY: ...
ND_LASTFM_SECRET: ...
ND_LASTFM_LANGUAGE: de
ND_IMAGECACHESIZE: 200MB
ND_CONFIGFILE: /data/navidrome.toml
volumes:
- ".../data:/data"
- ".../music:/music:ro"
Relevant log output
navidrome-1 | time="2025-03-20T20:57:15Z" level=debug msg="API: New request /rest/getCoverArt" client=NavidromeUI requestId=a3517c1f4bbe/9z6D8Tvi9W-000001 username=tim version=1.8.0
navidrome-1 | time="2025-03-20T20:57:15Z" level=trace msg="Cache MISS" cache=Image key=media_file-f8fa0adee8d6d273b42bb3da0fe78f13.1741797138000.true.300.75 requestId=a3517c1f4bbe/9z6D8Tvi9W-000001
navidrome-1 | time="2025-03-20T20:57:15Z" level=trace msg="Cache MISS" cache=Image key=media_file-f8fa0adee8d6d273b42bb3da0fe78f13.1741797138000.true requestId=a3517c1f4bbe/9z6D8Tvi9W-000001
navidrome-1 | time="2025-03-20T20:57:15Z" level=trace msg="Found embedded image" path="/music/Imagine Dragons - Natural.m4a" requestId=a3517c1f4bbe/9z6D8Tvi9W-000001 type=cover
navidrome-1 | time="2025-03-20T20:57:15Z" level=trace msg="Could not find a front image. Getting the first one" path="/music/Imagine Dragons - Natural.m4a" requestId=a3517c1f4bbe/9z6D8Tvi9W-000001 type=cover
navidrome-1 | time="2025-03-20T20:57:15Z" level=trace msg="Failed trying to extract artwork" artID=mf-f8fa0adee8d6d273b42bb3da0fe78f13_0 elapsed="371.462µs" error="could not load embedded image from /music/Imagine Dragons - Natural.m4a" requestId=a3517c1f4bbe/9z6D8Tvi9W-000001 source=Reader.fromTag
navidrome-1 | time="2025-03-20T20:57:15Z" level=trace msg="Executing ffmpeg command" cmd="[`/usr/bin/ffmpeg`,`-i`,`/music/Imagine Dragons - Natural.m4a`,`-an`,`-vcodec`,`copy`,`-f`,`image2pipe`,`-`]" requestId=a3517c1f4bbe/9z6D8Tvi9W-000001
navidrome-1 | time="2025-03-20T20:57:15Z" level=debug msg="Found media_file artwork" artID=mf-f8fa0adee8d6d273b42bb3da0fe78f13_0 elapsed=1.3ms path="/music/Imagine Dragons - Natural.m4a" requestId=a3517c1f4bbe/9z6D8Tvi9W-000001 source=Reader.fromFFmpegTag.func2
navidrome-1 | ffmpeg version 6.1.2 Copyright (c) 2000-2024 the FFmpeg developers
navidrome-1 | built with gcc 14.2.0 (Alpine 14.2.0)
navidrome-1 | configuration: --prefix=/usr --disable-librtmp --disable-lzma --disable-static --disable-stripping --enable-avfilter --enable-gpl --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libdav1d --enable-libdrm --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libharfbuzz --enable-libmp3lame --enable-libopenmpt --enable-libopus --enable-libplacebo --enable-libpulse --enable-librav1e --enable-librist --enable-libsoxr --enable-libsrt --enable-libssh --enable-libtheora --enable-libv4l2 --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxcb --enable-libxml2 --enable-libxvid --enable-libzimg --enable-libzmq --enable-lto=auto --enable-lv2 --enable-openssl --enable-pic --enable-postproc --enable-pthreads --enable-shared --enable-vaapi --enable-vdpau --enable-version3 --enable-vulkan --optflags=-O3 --enable-libjxl --enable-libsvtav1
navidrome-1 | libavutil 58. 29.100 / 58. 29.100
navidrome-1 | libavcodec 60. 31.102 / 60. 31.102
navidrome-1 | libavformat 60. 16.100 / 60. 16.100
navidrome-1 | libavdevice 60. 3.100 / 60. 3.100
navidrome-1 | libavfilter 9. 12.100 / 9. 12.100
navidrome-1 | libswscale 7. 5.100 / 7. 5.100
navidrome-1 | libswresample 4. 12.100 / 4. 12.100
navidrome-1 | libpostproc 57. 3.100 / 57. 3.100
navidrome-1 | [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fff80de7610] stream 0, timescale not set
navidrome-1 | Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/music/Imagine Dragons - Natural.m4a':
navidrome-1 | Metadata:
navidrome-1 | major_brand : M4V
navidrome-1 | minor_version : 512
navidrome-1 | compatible_brands: M4V isomiso2avc1
navidrome-1 | track : 1/15
navidrome-1 | disc : 1/1
navidrome-1 | rating : 2
navidrome-1 | date : 2018-11-09
navidrome-1 | WOAS : https://open.spotify.com/track/2FY7b99s15jUprqC0M5NCT
navidrome-1 | encoder : Kid Ina Korner / Interscope
navidrome-1 | title : Natural
navidrome-1 | copyright : © 2018 KIDinaKORNER/Interscope Records
navidrome-1 | comment : https://music.youtube.com/watch?v=pXu6JC6-d_o
navidrome-1 | artist : Imagine Dragons
navidrome-1 | album_artist : Imagine Dragons
navidrome-1 | album : Origins (Deluxe)
navidrome-1 | Duration: 00:03:09.47, start: 0.000000, bitrate: 182 kb/s
navidrome-1 | Stream #0:0[0x1](und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709, progressive), 360x360 [SAR 1:1 DAR 1:1], 38 kb/s, 25 fps, 25 tbr, 12800 tbn (default)
navidrome-1 | Metadata:
navidrome-1 | handler_name : ISO Media file produced by Company. Created on: 03/19/2025.
navidrome-1 | vendor_id : [0][0][0][0]
navidrome-1 | Stream #0:1[0x2](und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 128 kb/s (default)
navidrome-1 | Metadata:
navidrome-1 | handler_name : ISO Media file produced by Company. Created on: 03/19/2025.
navidrome-1 | vendor_id : [0][0][0][0]
navidrome-1 | Stream #0:2[0x0]: Video: mjpeg (Baseline), yuvj444p(pc, bt470bg/unknown/unknown), 640x640 [SAR 118:118 DAR 1:1], 90k tbr, 90k tbn (attached pic)
navidrome-1 | Output #0, image2pipe, to 'pipe:':
navidrome-1 | Metadata:
navidrome-1 | major_brand : M4V
navidrome-1 | minor_version : 512
navidrome-1 | compatible_brands: M4V isomiso2avc1
navidrome-1 | track : 1/15
navidrome-1 | disc : 1/1
navidrome-1 | rating : 2
navidrome-1 | date : 2018-11-09
navidrome-1 | WOAS : https://open.spotify.com/track/2FY7b99s15jUprqC0M5NCT
navidrome-1 | album : Origins (Deluxe)
navidrome-1 | title : Natural
navidrome-1 | copyright : © 2018 KIDinaKORNER/Interscope Records
navidrome-1 | comment : https://music.youtube.com/watch?v=pXu6JC6-d_o
navidrome-1 | artist : Imagine Dragons
navidrome-1 | album_artist : Imagine Dragons
navidrome-1 | encoder : Lavf60.16.100
navidrome-1 | Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709, progressive), 360x360 [SAR 1:1 DAR 1:1], q=2-31, 38 kb/s, 25 fps, 25 tbr, 25 tbn (default)
navidrome-1 | Metadata:
navidrome-1 | handler_name : ISO Media file produced by Company. Created on: 03/19/2025.
navidrome-1 | vendor_id : [0][0][0][0]
navidrome-1 | Stream mapping:
navidrome-1 | Stream #0:0 -> #0:0 (copy)
navidrome-1 | Press [q] to stop, [?] for help
time="2025-03-20T20:57:15Z" level=trace msg="Image smaller than requested size" artID=mf-f8fa0adee8d6d273b42bb3da0fe78f13_0 original=0 requestId=a3517c1f4bbe/9z6D8Tvi9W-000001 resized=300
navidrome-1 | time="2025-03-20T20:57:15Z" level=warning msg="Could not resize image. Will return image as is" artID=mf-f8fa0adee8d6d273b42bb3da0fe78f13_0 error="image: unknown format" requestId=a3517c1f4bbe/9z6D8Tvi9W-000001 size=300
navidrome-1 | time="2025-03-20T20:57:15Z" level=trace msg="Cache HIT" cache=Image key=media_file-f8fa0adee8d6d273b42bb3da0fe78f13.1741797138000.true requestId=a3517c1f4bbe/9z6D8Tvi9W-000001
navidrome-1 | [out#0/image2pipe @ 0x7fff804efe60] video:900kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.000000%
navidrome-1 | size= 900kB time=00:03:09.32 bitrate= 38.9kbits/s speed=2.96e+03x
navidrome-1 | time="2025-03-20T20:57:15Z" level=trace msg="File successfully stored in cache" cache=Image key=media_file-f8fa0adee8d6d273b42bb3da0fe78f13.1741797138000.true requestId=a3517c1f4bbe/9z6D8Tvi9W-000001
navidrome-1 | time="2025-03-20T20:57:15Z" level=trace msg="File successfully stored in cache" cache=Image key=media_file-f8fa0adee8d6d273b42bb3da0fe78f13.1741797138000.true.300.75 requestId=a3517c1f4bbe/9z6D8Tvi9W-000001
navidrome-1 | time="2025-03-20T20:57:15Z" level=debug msg="HTTP: GET http://100.70.228.90:4533/rest/getCoverArt?u=tim&t=[REDACTED]&s=[REDACTED]&f=json&v=1.8.0&c=NavidromeUI&id=mf-f8fa0adee8d6d273b42bb3da0fe78f13&_=2025-03-12T16%3A32%3A18Z&size=300" elapsedTime=303.2ms httpStatus=200 remoteAddr="100.114.102.44:49253" requestId=a3517c1f4bbe/9z6D8Tvi9W-000001 responseSize=921623 userAgent="Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:136.0) Gecko/20100101 Firefox/136.0"
Anything else?
After some investigation i noticed that the /rest/getCoverArt endpoint returns a file for those songs that:
- is much larger then a regular cover image (20 kb vs 900 kb)
- has no file ending but is of the type application/octet-stream
- starts with the line
�¯��ÿÿ«ÜE齿ÙH·–,Ø Ù#îïx264 - core 161 r3048 b86ae3c - H.264/MPEG-4 AVC codec - Copyleft 2003-2021 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=11 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00 € ZÎeˆ„ �÷ :“ÿ�ÑHÑ3ø=Vëû²Ž
ÒâÕ:r¡M�4%‰�¯ÊCµ�+º2?† GW0rQ×Ç�ÅÌ 3ÇeùšÛ
This leads me to guess that navidrome for some reason returns a music file instead of the cover image here.
This occurs for several songs without any discernible pattern.
The songs are all .m4a files.
Code of Conduct
- I agree to follow Navidrome's Code of Conduct
Metadata
Metadata
Assignees
Labels
bugfrozen-due-to-agetriageNew bug reports that need to be evaluatedNew bug reports that need to be evaluated