Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Bug]: Cover Art missing in folders that contain the U+200B character #2765

Open
3 tasks done
pimzand opened this issue Jan 4, 2024 · 2 comments
Open
3 tasks done
Labels
bug triage New bug reports that need to be evaluated

Comments

@pimzand
Copy link

pimzand commented Jan 4, 2024

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.50.2-1.fc39 (source_archive)

Current Behavior

When any part of the path ends with Unicode character U+200B (Zero Width Space), no cover art will be shown for that music.

Expected Behavior

Any path valid for storing music files should also be valid for storing cover art files.

Steps To Reproduce

1, create a folder ending with U+200B. Populate it with valid content; in my case .flac files and a folder.jpg cover art file
2. witness that the music files can be played, but the cover art is not detected
3. rename the folder by removing the U+200B character
4. witness that the cover art is now properly shown

Environment

- OS: Fedora 39
- Browser: Firefox
- Client: Fedora 39

How Navidrome is installed?

Package

Configuration

LogLevel = 'info'
ScanSchedule = '@every 1h'
#MusicFolder = "/var/lib/navidrome/music"
MusicFolder = "/music/main"
DataFolder = "/var/lib/navidrome/data"
CoverArtPriority = "folder.jpg"
PlaylistsPath = "../playlists/**/**"

Relevant log output

Jan 04 13:51:38 myserver navidrome[2033]: time="2024-01-04T13:51:38+01:00" level=warning msg="Could not open cover art file" error="open /Accelerate/folder.jpg: no such file or directory" file=/Accelerate/folder.jpg requestId=myserver/yj60dRz6y2-000542 username=pim
Jan 04 13:51:38 myserver navidrome[2033]: time="2024-01-04T13:51:38+01:00" level=warning msg="Could not open cover art file" error="open /Around the Sun/folder.jpg: no such file or directory" file="/Around the Sun/folder.jpg" requestId=myserver/yj60dRz6y2-000543 username=pim
Jan 04 13:51:38 myserver navidrome[2033]: time="2024-01-04T13:51:38+01:00" level=warning msg="Could not open cover art file" error="open /Automatic for the People/folder.jpg: no such file or directory" file="/Automatic for the People/folder.jpg" requestId=myserver/yj60dRz6y2-000544 username>
Jan 04 13:51:38 myserver navidrome[2033]: time="2024-01-04T13:51:38+01:00" level=warning msg="Could not open cover art file" error="open /Collapse Into Now/folder.jpg: no such file or directory" file="/Collapse Into Now/folder.jpg" requestId=myserver/yj60dRz6y2-000546 username=pim
Jan 04 13:51:38 myserver navidrome[2033]: time="2024-01-04T13:51:38+01:00" level=warning msg="Could not open cover art file" error="open /Document/folder.jpg: no such file or directory" file=/Document/folder.jpg requestId=myserver/yj60dRz6y2-000547 username=pim
Jan 04 13:51:38 myserver navidrome[2033]: time="2024-01-04T13:51:38+01:00" level=warning msg="Could not open cover art file" error="open /Eponymous/folder.jpg: no such file or directory" file=/Eponymous/folder.jpg requestId=myserver/yj60dRz6y2-000548 username=pim
Jan 04 13:51:38 myserver navidrome[2033]: time="2024-01-04T13:51:38+01:00" level=warning msg="Could not open cover art file" error="open /Green/folder.jpg: no such file or directory" file=/Green/folder.jpg requestId=myserver/yj60dRz6y2-000549 username=pim
Jan 04 13:51:38 myserver navidrome[2033]: time="2024-01-04T13:51:38+01:00" level=warning msg="Could not open cover art file" error="open /Life's Rich Pageant/folder.jpg: no such file or directory" file="/Life's Rich Pageant/folder.jpg" requestId=myserver/yj60dRz6y2-000550 username=pim
Jan 04 13:51:38 myserver navidrome[2033]: time="2024-01-04T13:51:38+01:00" level=warning msg="Could not open cover art file" error="open /Live (CD 1)/folder.jpg: no such file or directory" file="/Live (CD 1)/folder.jpg" requestId=myserver/yj60dRz6y2-000551 username=pim
Jan 04 13:51:38 myserver navidrome[2033]: time="2024-01-04T13:51:38+01:00" level=warning msg="Could not open cover art file" error="open /Live (CD 2)/folder.jpg: no such file or directory" file="/Live (CD 2)/folder.jpg" requestId=myserver/yj60dRz6y2-000551 username=pim
Jan 04 13:51:38 myserver navidrome[2033]: time="2024-01-04T13:51:38+01:00" level=warning msg="Could not open cover art file" error="open /Monster/folder.jpg: no such file or directory" file=/Monster/folder.jpg requestId=myserver/yj60dRz6y2-000552 username=pim
Jan 04 13:51:38 myserver navidrome[2033]: time="2024-01-04T13:51:38+01:00" level=warning msg="Could not open cover art file" error="open /Murmur/folder.jpg: no such file or directory" file=/Murmur/folder.jpg requestId=myserver/yj60dRz6y2-000553 username=pim
Jan 04 13:51:38 myserver navidrome[2033]: time="2024-01-04T13:51:38+01:00" level=warning msg="Could not open cover art file" error="open /New Adventures in Hi-Fi/folder.jpg: no such file or directory" file="/New Adventures in Hi-Fi/folder.jpg" requestId=myserver/yj60dRz6y2-000554 username=p>
Jan 04 13:51:38 myserver navidrome[2033]: time="2024-01-04T13:51:38+01:00" level=warning msg="Could not open cover art file" error="open /Out Of Time/folder.jpg: no such file or directory" file="/Out Of Time/folder.jpg" requestId=myserver/yj60dRz6y2-000555 username=pim
Jan 04 13:51:38 myserver navidrome[2033]: time="2024-01-04T13:51:38+01:00" level=warning msg="Could not open cover art file" error="open /Reckoning/folder.jpg: no such file or directory" file=/Reckoning/folder.jpg requestId=myserver/yj60dRz6y2-000557 username=pim
Jan 04 13:51:38 myserver navidrome[2033]: time="2024-01-04T13:51:38+01:00" level=warning msg="Could not open cover art file" error="open /Reveal/folder.jpg: no such file or directory" file=/Reveal/folder.jpg requestId=myserver/yj60dRz6y2-000558 username=pim
Jan 04 13:51:39 myserver navidrome[2033]: time="2024-01-04T13:51:39+01:00" level=warning msg="Could not open cover art file" error="open /Up/folder.jpg: no such file or directory" file=/Up/folder.jpg requestId=myserver/yj60dRz6y2-000560 username=pim

Anything else?

In all the error messages above, the first part of the path is missing.
These are all R.E.M. albums, which are located in folder /music/main/R.E.M.(U+200B)
The U+200B character was appended by my CD ripping program, to prevent creating folders that end with a dot, which would be illegal in Microsoft Windows, making it impossible to share the folder with Windows clients.

Code of Conduct

  • I agree to follow Navidrome's Code of Conduct
@pimzand pimzand added bug triage New bug reports that need to be evaluated labels Jan 4, 2024
@pimzand pimzand changed the title [Bug]: Cover Art missing in folders that contain the U+00A0 character [Bug]: Cover Art missing in folders that contain the U+200B character Jan 4, 2024
@deluan
Copy link
Member

deluan commented Jan 25, 2024

Hey, sorry for the delay. We currently use the Zero-width space char (U+200b) as a path separator for cover art paths. This is the root cause of the issue.

In the new Scanner (#2709), I'm using JSON lists to store lists in the DB, so this will be solved.

Interesting choice from your CD ripping program... Usually when a program needs to escape the . in the last char, it is replaced with _:
Screenshot 2024-01-24 at 8 35 47 PM

Anyway, the only workaround for now is to remove such chars from the file/dir names.

@pimzand
Copy link
Author

pimzand commented Jan 25, 2024

Thanks for finding the cause. I will be happy to wait for a build that fixes this.
My CD ripping program https://github.com/jack-cli-cd-ripper/jack/ allows me to configure what to do with trailing dots using regex replacements. I chose U+200b myself because it does not visually change the name of the artist or album.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug triage New bug reports that need to be evaluated
Projects
None yet
Development

No branches or pull requests

2 participants