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

Debian package does not contain autobpm #5572

Open
guerda opened this issue Dec 30, 2024 · 2 comments
Open

Debian package does not contain autobpm #5572

guerda opened this issue Dec 30, 2024 · 2 comments

Comments

@guerda
Copy link

guerda commented Dec 30, 2024

Problem

If you install beets via apt on debian bookworm, it does not contain the autobpm plugin. Starting beets with a config yields this warning:

** error loading plugin autobpm:
Traceback (most recent call last):
  File "/usr/share/beets/beets/plugins.py", line 268, in load_plugins
    namespace = __import__(modname, None, None)
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ModuleNotFoundError: No module named 'beetsplug.autobpm'

The documentation page for autobpm contains the hint to install it via pip: pip install beets[autobpm].
This is not possible with the system managed beets installation.

Running this command in verbose (-vv) mode:

$ beet -vv
user configuration: /home/pi/.config/beets/config.yaml
data directory: /home/pi/.config/beets
plugin paths:
** error loading plugin autobpm:
Traceback (most recent call last):
  File "/usr/share/beets/beets/plugins.py", line 268, in load_plugins
    namespace = __import__(modname, None, None)
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ModuleNotFoundError: No module named 'beetsplug.autobpm'

Sending event: pluginload
library database: /home/pi/.beets/musiclibrary.db
library directory: /media/music
Sending event: library_opened
[help section here]

Setup

  • OS: raspberry pi OS based on Debian 12 bookwork
  • Python version: 3.11.2
  • beets version: 1.6.0
  • Turning off plugins made problem go away (yes/no): yes, the autobpm plugin

My configuration (output of beet config) is:

threaded: yes
terminal_encoding: utf-8
directory: /media/music
library: ~/.beets/musiclibrary.db

match:
    preferred:
        countries:
        - DE
        - XE
        - XW
        - US
        - GB|UK
        media: [CD, Digital Media|File]
        original_year: yes
duplicate_action: merge
duplicate_verbose_prompt: yes

import:
    copy: no
    write: yes
    move: yes
    incremental: yes
    log: ~/.beets/import.log

plugins: inline convert web chroma replaygain duplicates fromfilename edit lastgenre autobpm
replaygain:
    backend: command
    auto: no
    overwrite: no
    threads: 4
    parallel_on_import: no
    per_disc: no
    peak: 'true'
    targetlevel: 89
    r128: [Opus]
    r128_targetlevel: 84
    command: ''
    noclip: yes
web:
    host: 0.0.0.0
    port: 8337
    cors: ''
    cors_supports_credentials: no
    reverse_proxy: no
    include_paths: no
    readonly: yes
acoustid:
    apikey: REDACTED
fetchart:
    auto: yes
    cautious: yes
musicbrainz:
    genres: yes
    external_ids:
        discogs: yes
        spotify: yes
        bandcamp: yes
autobpm:
    auto: yes
    overwrite: no
lastgenre:
    whitelist: yes
    min_weight: 10
    count: 1
    fallback:
    canonical: no
    source: album
    force: yes
    auto: yes
    separator: ', '
    prefer_specific: no
    title_case: yes
duplicates:
    album: no
    checksum: ''
    copy: ''
    count: no
    delete: no
    format: ''
    full: no
    keys: []
    merge: no
    move: ''
    path: no
    tiebreak: {}
    strict: no
    tag: ''
pathfields: {}
item_fields: {}
album_fields: {}
convert:
    dest:
    pretend: no
    link: no
    hardlink: no
    threads: 4
    format: mp3
    id3v23: inherit
    formats:
        aac:
            command: ffmpeg -i $source -y -vn -acodec aac -aq 1 $dest
            extension: m4a
        alac:
            command: ffmpeg -i $source -y -vn -acodec alac $dest
            extension: m4a
        flac: ffmpeg -i $source -y -vn -acodec flac $dest
        mp3: ffmpeg -i $source -y -vn -aq 2 $dest
        opus: ffmpeg -i $source -y -vn -acodec libopus -ab 96k $dest
        ogg: ffmpeg -i $source -y -vn -acodec libvorbis -aq 3 $dest
        wma: ffmpeg -i $source -y -vn -acodec wmav2 -vn $dest
    max_bitrate: 500
    auto: no
    tmpdir:
    quiet: no
    embed: yes
    paths: {}
    no_convert: ''
    never_convert_lossy_files: no
    copy_album_art: no
    album_art_maxwidth: 0
    delete_originals: no
chroma:
    auto: yes
edit:
    albumfields: album albumartist
    itemfields: track title artist album
    ignore_fields: id path
@snejus
Copy link
Member

snejus commented Dec 31, 2024

This behavior is expected, I think. I'm not entirely sure how could this be resolved using system-packages only since there are many plugins and a variety of possible configurations. My suggestion would be to install pipx at the system level and use it to install beets[autobpm]. It will live in a separate virtual environment and you can install dependencies for any additional plugins flexibly.

@guerda
Copy link
Author

guerda commented Jan 1, 2025

That makes sense. From what I understand the Debian philosophy, another package beets-autobpm would be the solution for this. Not sure if it's worth the effort

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants