beets icon indicating copy to clipboard operation
beets copied to clipboard

Generic "ReadError" logged when writing lyrics

Open ThatsNoMoon opened this issue 3 months ago • 4 comments

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

ThatsNoMoon avatar Oct 04 '25 04:10 ThatsNoMoon

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

jm355 avatar Oct 24 '25 21:10 jm355

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?

arsaboo avatar Oct 24 '25 23:10 arsaboo

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.

jm355 avatar Oct 24 '25 23:10 jm355

@arsaboo Everything else works fine on the library other than getting lyrics. I don't have any problems playing the audio files either.

ThatsNoMoon avatar Oct 28 '25 20:10 ThatsNoMoon