[Support] Linuxserver.io - Beets


Recommended Posts

19 minutes ago, saarg said:

We simply can't answer everything all the time. We are volunteers and do this on our free time. Right now, most of our members have a lot to do and therefore limited time to do support.

 

Regarding your issue, a quick Google search have the answer.

 

https://beets.readthedocs.io/en/stable/plugins/permissions.html

Hi @saarg sorry if I offended you, certainly not my intention, I am well aware of what you do and please don't think it is unappreciated.  

 

that permissions plugin did not work for me so I ended up creating a cron job to chmod the folder every minute to get around that issue.  The one I am hoping to find an answer for was regarding the automation?  I tried creating a cron job to run hourly in user scripts but nothing happens, although the command works fine from the console (docker exec -u abc -it beets beet -q import /downloads) so it is probably my stupidity and lack of knowledge stopping it from working! 🤔

Link to comment
1 hour ago, mbc0 said:

Hi @saarg sorry if I offended you, certainly not my intention, I am well aware of what you do and please don't think it is unappreciated.  

 

that permissions plugin did not work for me so I ended up creating a cron job to chmod the folder every minute to get around that issue.  The one I am hoping to find an answer for was regarding the automation?  I tried creating a cron job to run hourly in user scripts but nothing happens, although the command works fine from the console (docker exec -u abc -it beets beet -q import /downloads) so it is probably my stupidity and lack of knowledge stopping it from working! 🤔

 

Not offended at all. Just explaining why we do not always answer right away.

 

I never used beets and haven't tried the plugin, but it will only work on music you import after you enable and configure the plugin.

so the existing files you have to chmod.

 

I can't answer about the automation at all as I don't use it and my servers are still down after lightning struck nearby.

If it works using the command line, there is something wrong in the script. If you post it here, someone might be able to see the issue.

Link to comment
2 hours ago, saarg said:

Post the docker run command and the container log.

 

Hi saarg. The docker run command is:

docker run -d --name='beets' --net='proxynet' --log-opt max-size='50m' --log-opt max-file='1' -e TZ="Australia/Brisbane" -e HOST_OS="Unraid" -e 'PUID'='99' -e 'PGID'='100' -p '8337:8337/tcp' -v '/mnt/user/appdata/data/':'/downloads':'rw' -v '/mnt/user/music/':'/music':'rw' -v '/mnt/disks/Torrents/':'/torrents':'rw,slave' -v '/mnt/user/appdata/beets':'/config':'rw' 'linuxserver/beets'

I've attached the log file. Eventually the Docker container crashes and stops. I can use the terminal in the container fine until it crashes but there is no web-ui.

The container worked fine since I installed it weeks ago up until a container update applied a day before my last post.

beets-log.txt

Edited by Dreytac
Link to comment

Thanks for your time @saarg 

 

I am aware that it will only work on music I have imported, I am trying the permissions file again, I think I see where I went wrong!

 

this is how I configured my script but as I say it just does nothing... I know that the line works as it is what I use to import manually, I guess I am missing something but I have managed to create successfully several other scripts that work fine.

 

image.thumb.png.a00e4553ce43ef01c486e16504eb7bb5.png

 

 

Link to comment
5 minutes ago, Dreytac said:

Hi saarg. The docker run command is:


docker run -d --name='beets' --net='proxynet' --log-opt max-size='50m' --log-opt max-file='1' -e TZ="Australia/Brisbane" -e HOST_OS="Unraid" -e 'PUID'='99' -e 'PGID'='100' -p '8337:8337/tcp' -v '/mnt/user/appdata/data/':'/downloads':'rw' -v '/mnt/user/music/':'/music':'rw' -v '/mnt/disks/Torrents/':'/torrents':'rw,slave' -v '/mnt/user/appdata/beets':'/config':'rw' 'linuxserver/beets'

I've attached the log file. Eventually the Docker container crashes and stops. I can use the terminal in the container fine until it crashes but there is no web-ui.

The container worked fine since I installed it weeks ago up until a container update applied a day before my last post.

beets-log.txt 5.27 kB · 0 downloads

You can try to use an older tag and see if you get it working again. Go to the docker hub link in the first post, click on tags and find one from before the issue happened. Then edit the template and add the tag after linuxserver/beets.

Should look like linuxserver/beets:thetag

Link to comment
7 minutes ago, mbc0 said:

Thanks for your time @saarg 

 

I am aware that it will only work on music I have imported, I am trying the permissions file again, I think I see where I went wrong!

 

this is how I configured my script but as I say it just does nothing... I know that the line works as it is what I use to import manually, I guess I am missing something but I have managed to create successfully several other scripts that work fine.

 

image.thumb.png.a00e4553ce43ef01c486e16504eb7bb5.png

 

 

Try to comment out the mount points.

It might be that you need to use the full path to the docker bin or need to quote the command.

Link to comment
16 minutes ago, saarg said:

You can try to use an older tag and see if you get it working again. Go to the docker hub link in the first post, click on tags and find one from before the issue happened. Then edit the template and add the tag after linuxserver/beets.

Should look like linuxserver/beets:thetag

Unfortunately going back didn't work and neither does removing the image and re-installing it. Wiping out my appdata and starting over from scratch has worked but unfortunately my entire library has to be re-added. Copying back the "musiclibrary.blb" file causes the issue to start again.

Link to comment
1 minute ago, mbc0 said:

must be a corrupt database my guess! 😞

Yeah it's unfortunate that I didn't start my appdata backups until just after this occurred as I was still testing Unraid. Also can't believe I didn't think to wipe the appdata to test if that was the issue...

Link to comment
1 hour ago, Dreytac said:

Unfortunately going back didn't work and neither does removing the image and re-installing it. Wiping out my appdata and starting over from scratch has worked but unfortunately my entire library has to be re-added. Copying back the "musiclibrary.blb" file causes the issue to start again.

I guess there is something corrupted in your settings/database then.

I don't have any other suggestions than starting over, which you already did.

Link to comment
  • 1 month later...

I’ve downloaded beets and am running it with many results in the 50-75% match.  I’m selecting apply and am hoping it’s not selecting the wrong albums, etc.  That said, I aborted and was going to install chroma to reduce the chances of destroying my library but it seems chroma was already installed; however, there wasn't any mention of it besides at the top of the config file so I added chroma: auto yes.  When I run beet import /downloads will it automatically be using chroma and is there a way I would know it is?

Link to comment
  • 3 months later...
  • 11 months later...
  • 3 months later...

Hello

It looks like there was an update 2 days ago? and since then beets is crashing

Seems to have reintroduced an old problem with python?

https://github.com/beetbox/beets/issues/3625

 

Or it could just be me...

Ive tried uninstalling and reinstalling, but the problem persists. 

 

i see the below in my logs. 

 

Traceback (most recent call last):
File "/usr/bin/beet", line 33, in <module>
sys.exit(load_entry_point('beets==1.4.9', 'console_scripts', 'beet')())
File "/usr/lib/python3.8/site-packages/beets/ui/__init__.py", line 1266, in main
_raw_main(args)
File "/usr/lib/python3.8/site-packages/beets/ui/__init__.py", line 1249, in _raw_main
subcommands, plugins, lib = _setup(options, lib)
File "/usr/lib/python3.8/site-packages/beets/ui/__init__.py", line 1144, in _setup
lib = _open_library(config)
File "/usr/lib/python3.8/site-packages/beets/ui/__init__.py", line 1201, in _open_library
get_path_formats(),
File "/usr/lib/python3.8/site-packages/beets/ui/__init__.py", line 619, in get_path_formats
path_formats.append((query, template(view.as_str())))
File "/usr/lib/python3.8/site-packages/beets/util/functemplate.py", line 571, in template
return Template(fmt)
File "/usr/lib/python3.8/site-packages/beets/util/functemplate.py", line 581, in __init__
self.compiled = self.translate()
File "/usr/lib/python3.8/site-packages/beets/util/functemplate.py", line 614, in translate
func = compile_func(
File "/usr/lib/python3.8/site-packages/beets/util/functemplate.py", line 155, in compile_func
prog = compile(mod, '<generated>', 'exec')
ValueError: Name node can't be used with 'None' constant

Link to comment

I am having the same problem ... gui refuses connection and I see the above errors repeating in the log

 

Has anyone been able to find a fix yet?

 

Traceback (most recent call last):
File "/usr/bin/beet", line 33, in <module>
sys.exit(load_entry_point('beets==1.4.9', 'console_scripts', 'beet')())
File "/usr/lib/python3.8/site-packages/beets/ui/__init__.py", line 1266, in main
_raw_main(args)
File "/usr/lib/python3.8/site-packages/beets/ui/__init__.py", line 1249, in _raw_main
subcommands, plugins, lib = _setup(options, lib)
File "/usr/lib/python3.8/site-packages/beets/ui/__init__.py", line 1144, in _setup
lib = _open_library(config)
File "/usr/lib/python3.8/site-packages/beets/ui/__init__.py", line 1201, in _open_library
get_path_formats(),
File "/usr/lib/python3.8/site-packages/beets/ui/__init__.py", line 619, in get_path_formats
path_formats.append((query, template(view.as_str())))
File "/usr/lib/python3.8/site-packages/beets/util/functemplate.py", line 571, in template
return Template(fmt)
File "/usr/lib/python3.8/site-packages/beets/util/functemplate.py", line 581, in __init__
self.compiled = self.translate()
File "/usr/lib/python3.8/site-packages/beets/util/functemplate.py", line 614, in translate
func = compile_func(
File "/usr/lib/python3.8/site-packages/beets/util/functemplate.py", line 155, in compile_func
prog = compile(mod, '<generated>', 'exec')
ValueError: Name node can't be used with 'None' constant

Edited by Afool2cry
added log contents
Link to comment
5 hours ago, Afool2cry said:

I am having the same problem ... gui refuses connection and I see the above errors repeating in the log

 

Has anyone been able to find a fix yet?

 

Traceback (most recent call last):
File "/usr/bin/beet", line 33, in <module>
sys.exit(load_entry_point('beets==1.4.9', 'console_scripts', 'beet')())
File "/usr/lib/python3.8/site-packages/beets/ui/__init__.py", line 1266, in main
_raw_main(args)
File "/usr/lib/python3.8/site-packages/beets/ui/__init__.py", line 1249, in _raw_main
subcommands, plugins, lib = _setup(options, lib)
File "/usr/lib/python3.8/site-packages/beets/ui/__init__.py", line 1144, in _setup
lib = _open_library(config)
File "/usr/lib/python3.8/site-packages/beets/ui/__init__.py", line 1201, in _open_library
get_path_formats(),
File "/usr/lib/python3.8/site-packages/beets/ui/__init__.py", line 619, in get_path_formats
path_formats.append((query, template(view.as_str())))
File "/usr/lib/python3.8/site-packages/beets/util/functemplate.py", line 571, in template
return Template(fmt)
File "/usr/lib/python3.8/site-packages/beets/util/functemplate.py", line 581, in __init__
self.compiled = self.translate()
File "/usr/lib/python3.8/site-packages/beets/util/functemplate.py", line 614, in translate
func = compile_func(
File "/usr/lib/python3.8/site-packages/beets/util/functemplate.py", line 155, in compile_func
prog = compile(mod, '<generated>', 'exec')
ValueError: Name node can't be used with 'None' constant

 

 

I added the :nightly tag to the container and it's working again

 

https://github.com/linuxserver/docker-beets/issues/80

Edited by enmesh-parisian-latest
  • Like 1
Link to comment
  • 3 weeks later...

unfortunately gstreamer isn't supported in the nightly version. are you guys able to replaygain flac files with anything else other than gstreamer? it's not working for me if I try command or audiotools (tags don't contain replaygain values).

Link to comment
  • 2 months later...

I’m having issues converting FLAC files to Vorbis using libvorbis. Everytime I run the convert command I get the error:

 

convert: Encoding /music/electronic/The Prodigy/Music for the Jilted Generation (1994) [CD-FLAC]/01. Intro.flac
convert: Finished encoding /music/electronic/The Prodigy/Music for the Jilted Generation (1994) [CD-FLAC]/01. Intro.flac
error reading /transcodes/electronic/The Prodigy/Music for the Jilted Generation (1994) [CD-Vorbis-q4]/01. Intro.ogg: b’/transcodes/electronic/The Prodigy/Music for the Jilted Generation (1994) [CD-Vorbis-q4]/01. Intro.ogg’: of mutagen type OggTheora

 

here’s the convert part of the yaml


 

convert: 
auto: no
copy_album_art: yes
dest: /transcodes
embed: yes
never_convert_lossy_files: yes
quiet: false
ffmpeg: /usr/bin/ffmpeg
format: vorbis
opts: -acodec libvorbis -aq 4
threads: 4
paths: default: %if{$genre,$genre,00_no_genre}/$albumartist/$album%if{$original_year, ($original_year)} [%if{$mediatype,$mediatype-}%if{$v_mp3,MP3,Vorbis-q4}] %if{$v_year_diff,%if{$albumdisambig,{$year $albumdisambig$},($year)},%if{$albumdisambig, {$albumdisambig$}}}/%if{$multidisc,disc$disc_1_char/}$track. $title

 

-vv doesn’t return more useful information.

 

The new Vorbis files are created.

 

The issue seems related to the opts part. When commenting out the part, there’s no error displayed on the screen, but I think then the conversion isn’t made with libvorbis. I also tried opts: -codec:a libvorbis -qscale:a 4 but I’m getting the same error.

 

I’m not sure how to troubleshoot the issue further. Any help would be appreciated. Is anyone successfully transcoding to vorbis with libvorbis successfully?

 

Thanks!

Link to comment
  • 2 months later...

Need help installing 3rd party plugin. 

 

I wrote a script based on install instructions https://github.com/kernitus/beets-oldestdate for my LSIO based beets image. This is my first attempt at installing a 3rd party addon to beets. 

 

beets-oldestdate.sh placed in custom-cont-init.d dir

#!/bin/bash

echo "**** installing beets-oldestdate ****"
mkdir -p /tmp/beets-oldestdate-src
curl -o /tmp/beets-oldestdate-src/master.zip -sL https://github.com/kernitus/beets-oldestdate/archive/refs/heads/master.zip

cd /tmp/beets-oldestdate-src
unzip -qq /tmp/beets-oldestdate-src/master.zip
cd beets-oldestdate-master
/usr/bin/python3 ./setup.py install
rm -r /tmp/beets-oldestdate-src


Docker log
 

[s6-init] making user provided files available at /var/run/s6/etc...exited 0.
 [s6-init] ensuring user provided files have correct perms...exited 0.
 [fix-attrs.d] applying ownership & permissions fixes...
 [fix-attrs.d] done.
 [cont-init.d] executing container initialization scripts...
 [cont-init.d] 01-envfile: executing...
 [cont-init.d] 01-envfile: exited 0.
 [cont-init.d] 10-adduser: executing...

 -------------------------------------
           _         ()
          | |  ___   _    __
          | | / __| | |  /  \
          | | \__ \ | | | () |
          |_| |___/ |_|  \__/


 Brought to you by linuxserver.io
 -------------------------------------

 To support LSIO projects visit:
 https://www.linuxserver.io/donate/
 -------------------------------------
 GID/UID
 -------------------------------------

 User uid:    1001
 User gid:    100
 -------------------------------------

 [cont-init.d] 10-adduser: exited 0.
 [cont-init.d] 30-config: executing...
 [cont-init.d] 30-config: exited 0.
 [cont-init.d] 90-custom-folders: executing...
 [cont-init.d] 90-custom-folders: exited 0.
 [cont-init.d] 99-custom-files: executing...
 [custom-init] files found in /config/custom-cont-init.d executing
 [custom-init] beets-oldestdate.sh: executing...
 **** installing beets-oldestdate ****
 running install
 running bdist_egg
 running egg_info
 creating beets_oldestdate.egg-info
 writing beets_oldestdate.egg-info/PKG-INFO
 writing dependency_links to beets_oldestdate.egg-info/dependency_links.txt
 writing top-level names to beets_oldestdate.egg-info/top_level.txt
 writing manifest file 'beets_oldestdate.egg-info/SOURCES.txt'
 adding license file 'LICENSE' (matched pattern 'LICEN[CS]E*')
 reading manifest file 'beets_oldestdate.egg-info/SOURCES.txt'
 writing manifest file 'beets_oldestdate.egg-info/SOURCES.txt'
 installing library code to build/bdist.linux-aarch64/egg
 running install_lib
 running build_py
 creating build
 creating build/lib
 creating build/lib/beetsplug
 copying beetsplug/__init__.py -> build/lib/beetsplug
 copying beetsplug/oldestdate.py -> build/lib/beetsplug
 creating build/bdist.linux-aarch64
 creating build/bdist.linux-aarch64/egg
 creating build/bdist.linux-aarch64/egg/beetsplug
 copying build/lib/beetsplug/__init__.py -> build/bdist.linux-aarch64/egg/beetsplug
 copying build/lib/beetsplug/oldestdate.py -> build/bdist.linux-aarch64/egg/beetsplug
 byte-compiling build/bdist.linux-aarch64/egg/beetsplug/__init__.py to __init__.cpython-38.pyc
 byte-compiling build/bdist.linux-aarch64/egg/beetsplug/oldestdate.py to oldestdate.cpython-38.pyc
 creating build/bdist.linux-aarch64/egg/EGG-INFO
 copying beets_oldestdate.egg-info/PKG-INFO -> build/bdist.linux-aarch64/egg/EGG-INFO
 copying beets_oldestdate.egg-info/SOURCES.txt -> build/bdist.linux-aarch64/egg/EGG-INFO
 copying beets_oldestdate.egg-info/dependency_links.txt -> build/bdist.linux-aarch64/egg/EGG-INFO
 copying beets_oldestdate.egg-info/top_level.txt -> build/bdist.linux-aarch64/egg/EGG-INFO
 zip_safe flag not set; analyzing archive contents...
 beetsplug.__pycache__.__init__.cpython-38: module references __path__
 creating dist
 creating 'dist/beets_oldestdate-1.0.0-py3.8.egg' and adding 'build/bdist.linux-aarch64/egg' to it
 removing 'build/bdist.linux-aarch64/egg' (and everything under it)
 Processing beets_oldestdate-1.0.0-py3.8.egg
 creating /usr/lib/python3.8/site-packages/beets_oldestdate-1.0.0-py3.8.egg
 Extracting beets_oldestdate-1.0.0-py3.8.egg to /usr/lib/python3.8/site-packages
 Adding beets-oldestdate 1.0.0 to easy-install.pth file

 Installed /usr/lib/python3.8/site-packages/beets_oldestdate-1.0.0-py3.8.egg
 Processing dependencies for beets-oldestdate==1.0.0
 Finished processing dependencies for beets-oldestdate==1.0.0
 [custom-init] beets-oldestdate.sh: exited 0
 [cont-init.d] 99-custom-files: exited 0.
 [cont-init.d] done.
 [services.d] starting services
 [services.d] done.
 ** error loading plugin oldestdate:
 Traceback (most recent call last):
   File "/usr/lib/python3.8/site-packages/beets/plugins.py", line 276, in load_plugins
     namespace = __import__(modname, None, None)
 ModuleNotFoundError: No module named 'beetsplug.oldestdate'

  * Serving Flask app 'beetsplug.web' (lazy loading)
  * Environment: production
    WARNING: This is a development server. Do not use it in a production deployment.
    Use a production WSGI server instead.
  * Debug mode: off
  * Running on http://127.0.0.1:8337/ (Press CTRL+C to quit)

 

Install seems to run fine, no errors. config.yml includes oldestdate in plugins list. But I always get the ModuleNotFoundError error. 

Any ideas?

Link to comment
  • 11 months later...
  • 7 months later...

I've noticed that all of my files have the field 'albumtype' separated into individual entries for each letter.  albumtype: a, albumtype: l  et cetera, creating many entries for something like 'album; compilation'

 

A google search yielded this:  https://github.com/beetbox/beets/pull/4582#issuecomment-1445023493

 

After doing 'beet write' to an album the files still show the same issue, even though beets said it was writing the corrected tags (I had tested with --pretend first)

 

My database appears to be good, it is the files themselves with the bizarre tagging.  A pretend 'beet update' shows that it would be writing the bogus tags into my database.

 

Perhaps I don't understand the directions in the fix linked above, or is the issue that this docker container does not include the amended code?  Thanks for any help

 

image.thumb.png.538ea85db892ee0024ed29595d593d88.png

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.