Generic "ReadError" logged when writing lyrics
Problem
Running this command in verbose (-vv) mode:
$ beet -vv lyrics <query>
Led to this problem:
user configuration: /home/moon/.config/beets/config.yaml
data directory: /home/moon/.config/beets
plugin paths:
fetchart: google: Disabling art source due to missing key
fetchart: lastfm: Disabling art source due to missing key
Sending event: pluginload
library database: /data/Music/library.db
library directory: /data/Music
Sending event: library_opened
Parsed query: AndQuery([OrQuery([SubstringQuery('artist', 'evanescence', fast=True), SubstringQuery('title', 'evanescence', fast=True), SubstringQuery('comments', 'evanescence', fast=True), SubstringQuery('album', 'evanescence', fast=True), SubstringQuery('albumartist', 'evanescence', fast=True), SubstringQuery('genre', 'evanescence', fast=True)]), OrQuery([SubstringQuery('artist', 'going', fast=True), SubstringQuery('title', 'going', fast=True), SubstringQuery('comments', 'going', fast=True), SubstringQuery('album', 'going', fast=True), SubstringQuery('albumartist', 'going', fast=True), SubstringQuery('genre', 'going', fast=True)]), OrQuery([SubstringQuery('artist', 'under', fast=True), SubstringQuery('title', 'under', fast=True), SubstringQuery('comments', 'under', fast=True), SubstringQuery('album', 'under', fast=True), SubstringQuery('albumartist', 'under', fast=True), SubstringQuery('genre', 'under', fast=True)])])
Parsed sort: NullSort()
lyrics: LyricsPlugin: Fetching lyrics for Evanescence - Going Under
lyrics: LRCLib: Fetching JSON from https://lrclib.net/api/search?artist_name=Evanescence&track_name=Going+Under
lyrics: LyricsPlugin: 🟢 Found lyrics: Evanescence - Fallen - Going Under
Sending event: write
error reading <super: <class 'ReadError'>, <ReadError object>>
Sending event: database_change
Sending event: cli_exit
Setup
- OS: NixOS 25.05
- Python version: 3.12.11
- beets version: 2.3.1
- Turning off plugins made problem go away (yes/no): N/A
No other real ideas about what could be causing the error but the lyrics are never saved to the file, only the database. Already checked file permissions which have caused errors like this previously but nothing amiss there.
Mostly I find it frustrating that I have absolutely no information with which to diagnose the problem. Seeing "ReadError object" anywhere in a non-verbose output (in which it does show up) is a bit off-putting in general.
My configuration (output of beet config) is:
directory: /data/Music
# --------------- Main ---------------
library: /data/Music/library.db
# --------------- Plugins ---------------
plugins: fromfilename discogs spotify fetchart lyrics
spotify:
source_weight: 0.6
mode: list
tiebreak: popularity
show_failures: no
artist_field: albumartist
album_field: album
track_field: title
region_filter:
regex: []
client_id: REDACTED
client_secret: REDACTED
tokenfile: spotify_token.json
import:
write: yes
incremental: yes
lyrics:
synced: yes
sources: [lrclib, genius, tekstowo]
auto: yes
translate:
api_key: REDACTED
from_languages: []
to_language:
dist_thresh: 0.11
google_API_key: REDACTED
google_engine_ID: REDACTED
genius_api_key: REDACTED
fallback:
force: no
local: no
print: no
fetchart:
auto: yes
minwidth: 0
maxwidth: 0
quality: 0
max_filesize: 0
enforce_ratio: no
cautious: no
cover_names:
- cover
- front
- art
- album
- folder
sources:
- filesystem
- coverart
- itunes
- amazon
- albumart
- cover_art_url
store_source: no
high_resolution: no
deinterlace: no
cover_format:
google_key: REDACTED
google_engine: REDACTED
fanarttv_key: REDACTED
lastfm_key: REDACTED
discogs:
apikey: REDACTED
apisecret: REDACTED
tokenfile: discogs_token.json
source_weight: 0.5
user_token: REDACTED
separator: ', '
index_tracks: no
append_style_genre: no
I get this with convert as well when importing
config.yaml
directory: /home/user/Music
library: /home/user/.config/beets/musiclibrary.db
import:
move: yes
copy: no
delete: no
plugins: edit musicbrainz fromfilename fetchart replaygain mbsync convert
convert:
auto: yes
copy_album_art: yes
never_convert_lossy_files: yes
delete_originals: yes
command: ffmpeg -i $source -b:a 128k $dest
format: opus
ui:
color: yes
replaygain:
backend: ffmpeg
overwrite: yes
output of beet import . from the folder with the album
convert: Encoding /home/user/Downloads/New Folder/df0a1879604bc1dbbfbd2d0c7642e80b89fc473a_media_5440-WAV-PRC518/5440-WAV-PRC518/09_Slowburn.wav
convert: Encoding /home/user/Downloads/New Folder/df0a1879604bc1dbbfbd2d0c7642e80b89fc473a_media_5440-WAV-PRC518/5440-WAV-PRC518/01_Split Decision.wav
convert: Encoding /home/user/Downloads/New Folder/df0a1879604bc1dbbfbd2d0c7642e80b89fc473a_media_5440-WAV-PRC518/5440-WAV-PRC518/06_Closer.wav
convert: Encoding /home/user/Downloads/New Folder/df0a1879604bc1dbbfbd2d0c7642e80b89fc473a_media_5440-WAV-PRC518/5440-WAV-PRC518/05_1+1.wav
convert: Encoding /home/user/Downloads/New Folder/df0a1879604bc1dbbfbd2d0c7642e80b89fc473a_media_5440-WAV-PRC518/5440-WAV-PRC518/03_A Small Act of Defiance.wav
convert: Encoding /home/user/Downloads/New Folder/df0a1879604bc1dbbfbd2d0c7642e80b89fc473a_media_5440-WAV-PRC518/5440-WAV-PRC518/07_Rinse and Repeat.wav
convert: Encoding /home/user/Downloads/New Folder/df0a1879604bc1dbbfbd2d0c7642e80b89fc473a_media_5440-WAV-PRC518/5440-WAV-PRC518/08_Is This It.wav
convert: Encoding /home/user/Downloads/New Folder/df0a1879604bc1dbbfbd2d0c7642e80b89fc473a_media_5440-WAV-PRC518/5440-WAV-PRC518/02_Exit Forward.wav
convert: Encoding /home/user/Downloads/New Folder/df0a1879604bc1dbbfbd2d0c7642e80b89fc473a_media_5440-WAV-PRC518/5440-WAV-PRC518/04_Maybe I Forgot.wav
convert: Finished encoding /home/user/Downloads/New Folder/df0a1879604bc1dbbfbd2d0c7642e80b89fc473a_media_5440-WAV-PRC518/5440-WAV-PRC518/04_Maybe I Forgot.wav
convert: Finished encoding /home/user/Downloads/New Folder/df0a1879604bc1dbbfbd2d0c7642e80b89fc473a_media_5440-WAV-PRC518/5440-WAV-PRC518/06_Closer.wav
convert: Finished encoding /home/user/Downloads/New Folder/df0a1879604bc1dbbfbd2d0c7642e80b89fc473a_media_5440-WAV-PRC518/5440-WAV-PRC518/08_Is This It.wav
convert: Finished encoding /home/user/Downloads/New Folder/df0a1879604bc1dbbfbd2d0c7642e80b89fc473a_media_5440-WAV-PRC518/5440-WAV-PRC518/05_1+1.wav
convert: Finished encoding /home/user/Downloads/New Folder/df0a1879604bc1dbbfbd2d0c7642e80b89fc473a_media_5440-WAV-PRC518/5440-WAV-PRC518/09_Slowburn.wav
convert: Finished encoding /home/user/Downloads/New Folder/df0a1879604bc1dbbfbd2d0c7642e80b89fc473a_media_5440-WAV-PRC518/5440-WAV-PRC518/07_Rinse and Repeat.wav
convert: Finished encoding /home/user/Downloads/New Folder/df0a1879604bc1dbbfbd2d0c7642e80b89fc473a_media_5440-WAV-PRC518/5440-WAV-PRC518/01_Split Decision.wav
convert: Finished encoding /home/user/Downloads/New Folder/df0a1879604bc1dbbfbd2d0c7642e80b89fc473a_media_5440-WAV-PRC518/5440-WAV-PRC518/03_A Small Act of Defiance.wav
convert: Finished encoding /home/user/Downloads/New Folder/df0a1879604bc1dbbfbd2d0c7642e80b89fc473a_media_5440-WAV-PRC518/5440-WAV-PRC518/02_Exit Forward.wav
error reading <super: <class 'ReadError'>, <ReadError object>>
After manually converting and importing:
This album is already in the library!
could not get filesize: [Errno 2] No such file or directory: '/home/user/Downloads/New Folder/df0a1879604bc1dbbfbd2d0c7642e80b89fc473a_media_5440-WAV-PRC518/5440-WAV-PRC518/01_Split Decision.wav'
could not get filesize: [Errno 2] No such file or directory: '/home/user/Downloads/New Folder/df0a1879604bc1dbbfbd2d0c7642e80b89fc473a_media_5440-WAV-PRC518/5440-WAV-PRC518/02_Exit Forward.wav'
could not get filesize: [Errno 2] No such file or directory: '/home/user/Downloads/New Folder/df0a1879604bc1dbbfbd2d0c7642e80b89fc473a_media_5440-WAV-PRC518/5440-WAV-PRC518/03_A Small Act of Defiance.wav'
could not get filesize: [Errno 2] No such file or directory: '/home/user/Downloads/New Folder/df0a1879604bc1dbbfbd2d0c7642e80b89fc473a_media_5440-WAV-PRC518/5440-WAV-PRC518/04_Maybe I Forgot.wav'
could not get filesize: [Errno 2] No such file or directory: '/home/user/Downloads/New Folder/df0a1879604bc1dbbfbd2d0c7642e80b89fc473a_media_5440-WAV-PRC518/5440-WAV-PRC518/05_1+1.wav'
could not get filesize: [Errno 2] No such file or directory: '/home/user/Downloads/New Folder/df0a1879604bc1dbbfbd2d0c7642e80b89fc473a_media_5440-WAV-PRC518/5440-WAV-PRC518/06_Closer.wav'
could not get filesize: [Errno 2] No such file or directory: '/home/user/Downloads/New Folder/df0a1879604bc1dbbfbd2d0c7642e80b89fc473a_media_5440-WAV-PRC518/5440-WAV-PRC518/07_Rinse and Repeat.wav'
could not get filesize: [Errno 2] No such file or directory: '/home/user/Downloads/New Folder/df0a1879604bc1dbbfbd2d0c7642e80b89fc473a_media_5440-WAV-PRC518/5440-WAV-PRC518/08_Is This It.wav'
could not get filesize: [Errno 2] No such file or directory: '/home/user/Downloads/New Folder/df0a1879604bc1dbbfbd2d0c7642e80b89fc473a_media_5440-WAV-PRC518/5440-WAV-PRC518/09_Slowburn.wav'
Old: 9 items, WAVE, 2116kbps, 31:42, 0.0 B
New: 9 items, Opus, 128kbps, 31:42, 29.2 MiB
➜ [S]kip new, Keep all, Remove old, Merge all? r
The only time I've seen that is when there is something wrong with those files. Can you double check if the audio files are fine?
Not sure about the wav files, but the opus ones I manually converted are all fine. At the least, they played normally. So I'm assuming the wav files were fine too.
@arsaboo Everything else works fine on the library other than getting lyrics. I don't have any problems playing the audio files either.