Beets Music Tagger Plugin for Unraid 5.x


Recommended Posts

  • Replies 77
  • Created
  • Last Reply

Top Posters In This Topic

Weird, maybe I have an additional package for UnMenu installed that requires python 2.7 and when the dependency is lost UnMenu crashes.

Well I can tell you this much, having just opened all 59 unmenu .conf files and searched for occurrences of "python", only three show hits;

 

\boot\packages\python_cheetah-unmenu-package.conf (8 hits)

\boot\packages\python-unmenu-package.conf (14 hits)

\boot\packages\sabnzbd-unmenu-package.conf (27 hits)

 

and of those, only Python 2.6.4 is returned.

 

So even if you installed python from the UnMenu package manager, it would not be version 2.7

 

Unmenu itself - to my knowledge - does not have a dependency on Python of any version (or you'd expect it to pull it down during installation wouldn't you). 

 

So it's safe to say wherever you're pulling Python 2.7 from, it's not UnMenu and therefore I fail to see how UnMenu can be affected by the version of Python in use.  Taking that logic further, I believe you are mistaken when you say Python - of any version - affected your installation of UnMenu.

 

;)

 

 

Link to comment

Well when I tried to hit the unmenu main page Tower:8080 I got errors, and one of the lines referenced Python 2.7.

Looked for it and it was missing, so I manually re installed the Python 2.7 package and voila, it worked again.

 

Perhaps because 2.7 is the one I had installed, the dependency was on 2.7 from the get go, and if I had 2.6 installed all along the dependency would be on 2.6.

So the dependency would be on which ever package is installed at the time of installation of a particular plugin.  :-\

Link to comment
  • 2 weeks later...

overbyrn,

 

Thanks for taking the time to put together this plugin! I've been using beets for a while and a plugin is that much better.

 

I'm having an issue that I'm guessing is related to the user running the program.  Does this have to be run as root?  I get the following error when I try to run any beet command:

 

Traceback (most recent call last):
  File "/usr/bin/beet", line 8, in <module>
    load_entry_point('beets==1.2.0', 'console_scripts', 'beet')()
  File "/usr/lib/python2.6/site-packages/beets/ui/__init__.py", line 771, in main
    _raw_main(args)
  File "/usr/lib/python2.6/site-packages/beets/ui/__init__.py", line 704, in _raw_main
    migrate.automigrate()
  File "/usr/lib/python2.6/site-packages/beets/ui/migrate.py", line 358, in automigrate
    config_fn = migrate_config()
  File "/usr/lib/python2.6/site-packages/beets/ui/migrate.py", line 256, in migrate_config
    destfn = os.path.join(beets.config.config_dir(), confit.CONFIG_FILENAME)
  File "/usr/lib/python2.6/site-packages/beets/util/confit.py", line 678, in config_dir
    os.makedirs(appdir)
  File "/usr/lib/python2.6/os.py", line 150, in makedirs
    makedirs(head, mode)
  File "/usr/lib/python2.6/os.py", line 157, in makedirs
    mkdir(name, mode)
OSError: [Errno 13] Permission denied: '//.config'

 

Any ideas what I need to change?

Link to comment

overbyrn,

 

Thanks for taking the time to put together this plugin! I've been using beets for a while and a plugin is that much better.

 

I'm having an issue that I'm guessing is related to the user running the program.  Does this have to be run as root?  I get the following error when I try to run any beet command:

 

Traceback (most recent call last):
  File "/usr/bin/beet", line 8, in <module>
    load_entry_point('beets==1.2.0', 'console_scripts', 'beet')()
  File "/usr/lib/python2.6/site-packages/beets/ui/__init__.py", line 771, in main
    _raw_main(args)
  File "/usr/lib/python2.6/site-packages/beets/ui/__init__.py", line 704, in _raw_main
    migrate.automigrate()
  File "/usr/lib/python2.6/site-packages/beets/ui/migrate.py", line 358, in automigrate
    config_fn = migrate_config()
  File "/usr/lib/python2.6/site-packages/beets/ui/migrate.py", line 256, in migrate_config
    destfn = os.path.join(beets.config.config_dir(), confit.CONFIG_FILENAME)
  File "/usr/lib/python2.6/site-packages/beets/util/confit.py", line 678, in config_dir
    os.makedirs(appdir)
  File "/usr/lib/python2.6/os.py", line 150, in makedirs
    makedirs(head, mode)
  File "/usr/lib/python2.6/os.py", line 157, in makedirs
    mkdir(name, mode)
OSError: [Errno 13] Permission denied: '//.config'

 

Any ideas what I need to change?

 

Hi, can you walk me through the steps you took to hit the above error?  You ask if it has to be run as root.  Does this mean you're logged into unraid at command line with a non-root user? 

 

To be sure of giving the correct answer, I did a quick test on a dev system.  Luckily my dev box already had a user created from outside of unraid webgui so I had a non-root user that I knew I could telnet in with.

 

I installed beets plugin, ran "/usr/bin/beet" first as root - which ran ok, then I logged in as my non-root user and issued the same /usr/bin/beet command, which also ran without error.  So I think it's safe to say it should run as any user.

 

For some more info, beets needs to know where to find its own config file.  This is stored in the beets dir under plugins on the flash drive.  eg. /boot/config/plugins/beets/config.yaml

 

The plugin sets a global environment variable "BEETSDIR" to point to this location:

root@Tower:~# echo $BEETSDIR
/boot/config/plugins/beets

 

This way beets should always know where to locate the config file.  Might be worth checking your system to see that this environment variable exists.

 

 

Regards,

overbyrn

Link to comment
  • 2 weeks later...
  • 4 weeks later...

Hi guys,

Any idea why when trying to run the plugin from command line I get

 

-bash: beet: command not found

?

 

Am I supposed to install in some other way than installplg?

Can you attach or paste a log from command line of the plugin installing?  Set your scroll back buffer to decent size in whatever telnet client you have and perform an install of the plugin manually via "installplg /path/to/plugin/file.plg, and capture the output.  Might give some clues as it sounds like the beet binary isn't there, but could be for all sorts of reasons.

 

 

Link to comment

Thanks overbyrn actually installplg again fixed the issue. Couldn't see the output of the previous installation cause it was days ago.

 

on a side note,

is it normal that even though I deselected timid mode and chose "skip" for the quiet fallback the program keeps asking me confirmation even for albums that is very confident in identifying?

Link to comment

Thanks overbyrn actually installplg again fixed the issue. Couldn't see the output of the previous installation cause it was days ago.

 

on a side note,

is it normal that even though I deselected timid mode and chose "skip" for the quiet fallback the program keeps asking me confirmation even for albums that is very confident in identifying?

I have to admit to not really using beets other than through a script to auto-tag after download with sabnzbd.  In that instance I have the script set to issue -q (quiet) to pessimistically skip any album that it cannot match.  I recall from much earlier tests that the logic for timid, skip and quiet was most confusing.  I basically reached a point where it worked for me and then ran away very fast. 

Link to comment

What script are you using for Sab? If it's in this thread - I'm so sorry. I tried glancing through it but didn't notice it and a quick Google search didn't turn up much. Thanks either way!

Ah, I had it stored on GitHub for a while, but think it got lost in an earlier move around.  I should probably have the plugin create it upon install.  It's really simple and not very elegant...

 

#!/bin/bash
#
# beets music tagger - post-processing script
#
# Author: overbyrn
# Date: 29-04-13
#
# $1 - Fullpath of directory to be processed.  eg./mnt/user/downloads/some.artist_some.album

# $7 - Status of post processing. 0 = OK, 1 = failed verification, 2 = failed unpack, 3 = 1+2
if [ ! -z $7 ] && [ $7 -gt 0 ]; then
    echo "post-processing failed, bypassing script"
    exit 1
fi

# process files
echo "--------------------------"
echo $(date)
echo "Starting beets.sh for $(basename $1)"

BEETSDIR=/boot/config/plugins/beets
export BEETSDIR
FPCALC=/usr/local/sbin/fpcalc
export FPCALC
/usr/bin/beet -v import -q "$1"

 

For completeness, here's a copy of my beets.cfg and config.yaml files.  Changes made to the config values in Beets plugin webgui settings page affect these files.

 

beets.cfg:

#beets configuration

DESTDIR="/mnt/user/Music Tagging"

LIBDIR="/boot/config/plugins/beets/beets.blb"

ARTFILE="cover"

THREADED="yes"

ORIGDATE="no"

PERDISCNUM="no"

CONVERT_STATE="yes"

CONVERT_OPTS="-ab 320k -ac 2 -ar 48000"

CONVERT_MAXBITRATE="320"

CONVERT_DESTINATION="/mnt/user/Music Tagging/Converted"

CONVERT_THREADS="4"

PATH_DEFAULT="Album Artists/$albumartist/$album%aunique{}/$track - $title"

PATH_SINGLETON="Singles/$artist - $title"

PATH_COMPILATION="Various Artists/$album/$track - $title"

IMPORT_WRITE="yes"

IMPORT_COPY="yes"

IMPORT_MOVE="no"

IMPORT_RESUME="ask"

IMPORT_INCREMENTAL="no"

IMPORT_FALLBACK="skip"

IMPORT_TIMID="no"

IMPORT_LOG="/boot/config/plugins/beets/beetslog.txt"

LASTGENRE="yes"

LASTGENRESOURCE="album"

EMBEDART="yes"

FETCHART="yes"

REPLAYGAIN="yes"

 

 

 

config.yaml:

plugins: fetchart embedart convert scrub replaygain lastgenre chroma discogs

directory: /mnt/user/Music Tagging

library: /boot/config/plugins/beets/beets.blb

art_filename: cover

threaded: yes

original_date: no

per_disc_numbering: no

color: no

 

convert:

    auto: yes

    ffmpeg: /usr/bin/ffmpeg

    opts: -ab 320k -ac 2 -ar 48000

    max_bitrate: 320

    dest: /mnt/user/Music Tagging/Converted

    threads: 4

 

paths:

    default: Album Artists/$albumartist/$album%aunique{}/$track - $title

    singleton: Singles/$artist - $title

    comp: Various Artists/$album/$track - $title

 

import:

    write: yes

    copy: yes

    move: no

    resume: ask

    incremental: no

    quiet_fallback: skip

    timid: no

    log: /boot/config/plugins/beets/beetslog.txt

 

lastgenre:

    auto: yes

    source: album

 

embedart:

    auto: yes

 

fetchart:

    auto: yes

 

replaygain:

    auto: yes

 

I do a copy not move, so there will always be an untouched copy in my download directory.  For a FLAC download, it'll transcode to 320kbps CBR MP3.  Since the max bitrate is 320kbps, it'll not do anything for an MP3 download.

 

I should see an entry underneath in "/mnt/user/Music Tagging/Album Artists (or Various Artists)"

 

The above seems to work reasonably well so long as beets can identify the album but it's by no means foolproof.

 

 

Hope that helps and if you can improve on the above, please do  :)

 

 

Regards,

overbyrn

 

Link to comment

overbryn,

 

Sorry to be a pain but for some reason Beets is no longer getting installed :/...

 

If I run "pip install beets" then I'm laughing but not from only installing the plugin. It did use to work a charm!!

 

here is the output from "installplg beets_overbryn.plg"

 

root@Media:/boot/config/plugins# installplg beets_overbyrn.plg 
installing plugin: beets_overbyrn
file /tmp/plugin-prepare: successfully wrote INLINE file contents
  /bin/bash /tmp/plugin-prepare ... success
file /boot/config/plugins/beets/beets.png: already exists
file /boot/config/plugins/images/device_status.png: already exists
file /boot/config/plugins/images/new_config.png: already exists
file /boot/config/plugins/images/information.png: already exists
file /boot/packages/setuptools-0.6c11-i686-5sl.txz: already exists
  upgradepkg --install-new /boot/packages/setuptools-0.6c11-i686-5sl.txz ... 
+==============================================================================
| Skipping package setuptools-0.6c11-i686-5sl (already installed)
+==============================================================================


success
file /boot/packages/python-2.6.6-i486-1.txz: already exists
  upgradepkg --install-new /boot/packages/python-2.6.6-i486-1.txz ... 
+==============================================================================
| Skipping package python-2.6.6-i486-1 (already installed)
+==============================================================================


success
file /boot/packages/sqlite-3.7.5-i486-1.txz: already exists
  upgradepkg --install-new /boot/packages/sqlite-3.7.5-i486-1.txz ... 
+==============================================================================
| Upgrading sqlite-3.7.14.1-i486-1_slack14.0 package using /boot/packages/sqlite-3.7.5-i486-1.txz
+==============================================================================

Pre-installing package sqlite-3.7.5-i486-1...

Removing package /var/log/packages/sqlite-3.7.14.1-i486-1_slack14.0-upgraded-2013-08-02,20:01:13...
  --> Deleting /usr/doc/sqlite-3.7.14.1/COPYRIGHT
  --> Deleting /usr/doc/sqlite-3.7.14.1/README
  --> Deleting /usr/doc/sqlite-3.7.14.1/VERSION
  --> Deleting empty directory /usr/doc/sqlite-3.7.14.1/

Verifying package sqlite-3.7.5-i486-1.txz.
Installing package sqlite-3.7.5-i486-1.txz:
PACKAGE DESCRIPTION:
# SQLite (simple, self contained database engine)
#
# SQLite is a small C library that implements a self-contained,
# embeddable, zero-configuration SQL database engine.
#
# The SQLite distribution comes with a standalone command-line access
# program (sqlite) that can be used to administer an SQLite database
# and which serves as an example of how to use the SQLite library.
#
# Homepage:  http://www.sqlite.org/
#
Executing install script for sqlite-3.7.5-i486-1.txz.
Package sqlite-3.7.5-i486-1.txz installed.

Package sqlite-3.7.14.1-i486-1_slack14.0 upgraded with new package /boot/packages/sqlite-3.7.5-i486-1.txz.

success
file /boot/packages/mp3gain-1.4.6-i486-3sl.txz: already exists
  upgradepkg --install-new /boot/packages/mp3gain-1.4.6-i486-3sl.txz ... 
+==============================================================================
| Skipping package mp3gain-1.4.6-i486-3sl (already installed)
+==============================================================================


success
file /boot/config/plugins/beets/ffmpeg.static.32bit.2013-04-06.tar.gz: already exists
file /boot/config/plugins/beets/pip-1.3.tar.gz: already exists
file /tmp/plugin-cleanup: successfully wrote INLINE file contents
  /bin/bash /tmp/plugin-cleanup ... success
file /boot/config/plugins/beets/config.yaml: already exists
file /boot/config/plugins/beets/beets.cfg: already exists
file /tmp/plugin-chkcfg: successfully wrote INLINE file contents
  /bin/bash /tmp/plugin-chkcfg ... success
file /etc/rc.d/rc.beets: successfully wrote INLINE file contents
  successfully changed file mode
file /usr/local/emhttp/plugins/beets/beets.png: successfully copied LOCAL file
file /usr/local/emhttp/plugins/beets/device_status.png: successfully copied LOCAL file
file /usr/local/emhttp/plugins/beets/new_config.png: successfully copied LOCAL file
file /usr/local/emhttp/plugins/beets/information.png: successfully copied LOCAL file
file /usr/local/emhttp/plugins/beets/beets.php: successfully wrote INLINE file contents
file /usr/local/emhttp/plugins/beets/beetsctl.php: successfully wrote INLINE file contents
file /usr/local/emhttp/plugins/beets/event/disks_mounted: successfully wrote INLINE file contents
  successfully changed file mode
file /usr/local/emhttp/plugins/beets/event/unmounting_disks: successfully wrote INLINE file contents
  successfully changed file mode
file /tmp/plugin-install: successfully wrote INLINE file contents
  /bin/bash /tmp/plugin-install ... pip-1.3/
pip-1.3/AUTHORS.txt
pip-1.3/CHANGES.txt
pip-1.3/docs/
pip-1.3/docs/configuration.txt
pip-1.3/docs/cookbook.txt
pip-1.3/docs/development.txt
pip-1.3/docs/index.txt
pip-1.3/docs/installing.txt
pip-1.3/docs/logic.txt
pip-1.3/docs/news.txt
pip-1.3/docs/other-tools.txt
pip-1.3/docs/quickstart.txt
pip-1.3/docs/usage.txt
pip-1.3/LICENSE.txt
pip-1.3/MANIFEST.in
pip-1.3/pip/
pip-1.3/pip/__init__.py
pip-1.3/pip/__main__.py
pip-1.3/pip/backwardcompat/
pip-1.3/pip/backwardcompat/__init__.py
pip-1.3/pip/backwardcompat/socket_create_connection.py
pip-1.3/pip/backwardcompat/ssl_match_hostname.py
pip-1.3/pip/basecommand.py
pip-1.3/pip/baseparser.py
pip-1.3/pip/cacert.pem
pip-1.3/pip/cmdoptions.py
pip-1.3/pip/commands/
pip-1.3/pip/commands/__init__.py
pip-1.3/pip/commands/bundle.py
pip-1.3/pip/commands/completion.py
pip-1.3/pip/commands/freeze.py
pip-1.3/pip/commands/help.py
pip-1.3/pip/commands/install.py
pip-1.3/pip/commands/list.py
pip-1.3/pip/commands/search.py
pip-1.3/pip/commands/show.py
pip-1.3/pip/commands/uninstall.py
pip-1.3/pip/commands/unzip.py
pip-1.3/pip/commands/zip.py
pip-1.3/pip/download.py
pip-1.3/pip/exceptions.py
pip-1.3/pip/index.py
pip-1.3/pip/locations.py
pip-1.3/pip/log.py
pip-1.3/pip/req.py
pip-1.3/pip/runner.py
pip-1.3/pip/status_codes.py
pip-1.3/pip/util.py
pip-1.3/pip/vcs/
pip-1.3/pip/vcs/__init__.py
pip-1.3/pip/vcs/bazaar.py
pip-1.3/pip/vcs/git.py
pip-1.3/pip/vcs/mercurial.py
pip-1.3/pip/vcs/subversion.py
pip-1.3/pip.egg-info/
pip-1.3/pip.egg-info/dependency_links.txt
pip-1.3/pip.egg-info/entry_points.txt
pip-1.3/pip.egg-info/not-zip-safe
pip-1.3/pip.egg-info/PKG-INFO
pip-1.3/pip.egg-info/requires.txt
pip-1.3/pip.egg-info/SOURCES.txt
pip-1.3/pip.egg-info/top_level.txt
pip-1.3/PKG-INFO
pip-1.3/PROJECT.txt
pip-1.3/README.rst
pip-1.3/setup.cfg
pip-1.3/setup.py
running install
running bdist_egg
running egg_info
writing requirements to pip.egg-info/requires.txt
writing pip.egg-info/PKG-INFO
writing top-level names to pip.egg-info/top_level.txt
writing dependency_links to pip.egg-info/dependency_links.txt
writing entry points to pip.egg-info/entry_points.txt
reading manifest file 'pip.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
warning: no files found matching '*.html' under directory 'docs'
warning: no previously-included files matching '*.txt' found under directory 'docs/_build'
no previously-included directories found matching 'docs/_build/_sources'
writing manifest file 'pip.egg-info/SOURCES.txt'
installing library code to build/bdist.linux-i686/egg
running install_lib
running build_py
creating build
creating build/lib
creating build/lib/pip
copying pip/util.py -> build/lib/pip
copying pip/status_codes.py -> build/lib/pip
copying pip/runner.py -> build/lib/pip
copying pip/req.py -> build/lib/pip
copying pip/log.py -> build/lib/pip
copying pip/locations.py -> build/lib/pip
copying pip/index.py -> build/lib/pip
copying pip/exceptions.py -> build/lib/pip
copying pip/download.py -> build/lib/pip
copying pip/cmdoptions.py -> build/lib/pip
copying pip/baseparser.py -> build/lib/pip
copying pip/basecommand.py -> build/lib/pip
copying pip/__main__.py -> build/lib/pip
copying pip/__init__.py -> build/lib/pip
creating build/lib/pip/commands
copying pip/commands/zip.py -> build/lib/pip/commands
copying pip/commands/unzip.py -> build/lib/pip/commands
copying pip/commands/uninstall.py -> build/lib/pip/commands
copying pip/commands/show.py -> build/lib/pip/commands
copying pip/commands/search.py -> build/lib/pip/commands
copying pip/commands/list.py -> build/lib/pip/commands
copying pip/commands/install.py -> build/lib/pip/commands
copying pip/commands/help.py -> build/lib/pip/commands
copying pip/commands/freeze.py -> build/lib/pip/commands
copying pip/commands/completion.py -> build/lib/pip/commands
copying pip/commands/bundle.py -> build/lib/pip/commands
copying pip/commands/__init__.py -> build/lib/pip/commands
creating build/lib/pip/vcs
copying pip/vcs/subversion.py -> build/lib/pip/vcs
copying pip/vcs/mercurial.py -> build/lib/pip/vcs
copying pip/vcs/git.py -> build/lib/pip/vcs
copying pip/vcs/bazaar.py -> build/lib/pip/vcs
copying pip/vcs/__init__.py -> build/lib/pip/vcs
creating build/lib/pip/backwardcompat
copying pip/backwardcompat/ssl_match_hostname.py -> build/lib/pip/backwardcompat
copying pip/backwardcompat/socket_create_connection.py -> build/lib/pip/backwardcompat
copying pip/backwardcompat/__init__.py -> build/lib/pip/backwardcompat
copying pip/cacert.pem -> build/lib/pip
creating build/bdist.linux-i686
creating build/bdist.linux-i686/egg
creating build/bdist.linux-i686/egg/pip
copying build/lib/pip/cacert.pem -> build/bdist.linux-i686/egg/pip
creating build/bdist.linux-i686/egg/pip/backwardcompat
copying build/lib/pip/backwardcompat/__init__.py -> build/bdist.linux-i686/egg/pip/backwardcompat
copying build/lib/pip/backwardcompat/socket_create_connection.py -> build/bdist.linux-i686/egg/pip/backwardcompat
copying build/lib/pip/backwardcompat/ssl_match_hostname.py -> build/bdist.linux-i686/egg/pip/backwardcompat
creating build/bdist.linux-i686/egg/pip/vcs
copying build/lib/pip/vcs/__init__.py -> build/bdist.linux-i686/egg/pip/vcs
copying build/lib/pip/vcs/bazaar.py -> build/bdist.linux-i686/egg/pip/vcs
copying build/lib/pip/vcs/git.py -> build/bdist.linux-i686/egg/pip/vcs
copying build/lib/pip/vcs/mercurial.py -> build/bdist.linux-i686/egg/pip/vcs
copying build/lib/pip/vcs/subversion.py -> build/bdist.linux-i686/egg/pip/vcs
creating build/bdist.linux-i686/egg/pip/commands
copying build/lib/pip/commands/__init__.py -> build/bdist.linux-i686/egg/pip/commands
copying build/lib/pip/commands/bundle.py -> build/bdist.linux-i686/egg/pip/commands
copying build/lib/pip/commands/completion.py -> build/bdist.linux-i686/egg/pip/commands
copying build/lib/pip/commands/freeze.py -> build/bdist.linux-i686/egg/pip/commands
copying build/lib/pip/commands/help.py -> build/bdist.linux-i686/egg/pip/commands
copying build/lib/pip/commands/install.py -> build/bdist.linux-i686/egg/pip/commands
copying build/lib/pip/commands/list.py -> build/bdist.linux-i686/egg/pip/commands
copying build/lib/pip/commands/search.py -> build/bdist.linux-i686/egg/pip/commands
copying build/lib/pip/commands/show.py -> build/bdist.linux-i686/egg/pip/commands
copying build/lib/pip/commands/uninstall.py -> build/bdist.linux-i686/egg/pip/commands
copying build/lib/pip/commands/unzip.py -> build/bdist.linux-i686/egg/pip/commands
copying build/lib/pip/commands/zip.py -> build/bdist.linux-i686/egg/pip/commands
copying build/lib/pip/__init__.py -> build/bdist.linux-i686/egg/pip
copying build/lib/pip/__main__.py -> build/bdist.linux-i686/egg/pip
copying build/lib/pip/basecommand.py -> build/bdist.linux-i686/egg/pip
copying build/lib/pip/baseparser.py -> build/bdist.linux-i686/egg/pip
copying build/lib/pip/cmdoptions.py -> build/bdist.linux-i686/egg/pip
copying build/lib/pip/download.py -> build/bdist.linux-i686/egg/pip
copying build/lib/pip/exceptions.py -> build/bdist.linux-i686/egg/pip
copying build/lib/pip/index.py -> build/bdist.linux-i686/egg/pip
copying build/lib/pip/locations.py -> build/bdist.linux-i686/egg/pip
copying build/lib/pip/log.py -> build/bdist.linux-i686/egg/pip
copying build/lib/pip/req.py -> build/bdist.linux-i686/egg/pip
copying build/lib/pip/runner.py -> build/bdist.linux-i686/egg/pip
copying build/lib/pip/status_codes.py -> build/bdist.linux-i686/egg/pip
copying build/lib/pip/util.py -> build/bdist.linux-i686/egg/pip
byte-compiling build/bdist.linux-i686/egg/pip/backwardcompat/__init__.py to __init__.pyc
byte-compiling build/bdist.linux-i686/egg/pip/backwardcompat/socket_create_connection.py to socket_create_connection.pyc
byte-compiling build/bdist.linux-i686/egg/pip/backwardcompat/ssl_match_hostname.py to ssl_match_hostname.pyc
byte-compiling build/bdist.linux-i686/egg/pip/vcs/__init__.py to __init__.pyc
byte-compiling build/bdist.linux-i686/egg/pip/vcs/bazaar.py to bazaar.pyc
byte-compiling build/bdist.linux-i686/egg/pip/vcs/git.py to git.pyc
byte-compiling build/bdist.linux-i686/egg/pip/vcs/mercurial.py to mercurial.pyc
byte-compiling build/bdist.linux-i686/egg/pip/vcs/subversion.py to subversion.pyc
byte-compiling build/bdist.linux-i686/egg/pip/commands/__init__.py to __init__.pyc
byte-compiling build/bdist.linux-i686/egg/pip/commands/bundle.py to bundle.pyc
byte-compiling build/bdist.linux-i686/egg/pip/commands/completion.py to completion.pyc
byte-compiling build/bdist.linux-i686/egg/pip/commands/freeze.py to freeze.pyc
byte-compiling build/bdist.linux-i686/egg/pip/commands/help.py to help.pyc
byte-compiling build/bdist.linux-i686/egg/pip/commands/install.py to install.pyc
byte-compiling build/bdist.linux-i686/egg/pip/commands/list.py to list.pyc
byte-compiling build/bdist.linux-i686/egg/pip/commands/search.py to search.pyc
byte-compiling build/bdist.linux-i686/egg/pip/commands/show.py to show.pyc
byte-compiling build/bdist.linux-i686/egg/pip/commands/uninstall.py to uninstall.pyc
byte-compiling build/bdist.linux-i686/egg/pip/commands/unzip.py to unzip.pyc
byte-compiling build/bdist.linux-i686/egg/pip/commands/zip.py to zip.pyc
byte-compiling build/bdist.linux-i686/egg/pip/__init__.py to __init__.pyc
byte-compiling build/bdist.linux-i686/egg/pip/__main__.py to __main__.pyc
byte-compiling build/bdist.linux-i686/egg/pip/basecommand.py to basecommand.pyc
byte-compiling build/bdist.linux-i686/egg/pip/baseparser.py to baseparser.pyc
byte-compiling build/bdist.linux-i686/egg/pip/cmdoptions.py to cmdoptions.pyc
byte-compiling build/bdist.linux-i686/egg/pip/download.py to download.pyc
byte-compiling build/bdist.linux-i686/egg/pip/exceptions.py to exceptions.pyc
byte-compiling build/bdist.linux-i686/egg/pip/index.py to index.pyc
byte-compiling build/bdist.linux-i686/egg/pip/locations.py to locations.pyc
byte-compiling build/bdist.linux-i686/egg/pip/log.py to log.pyc
byte-compiling build/bdist.linux-i686/egg/pip/req.py to req.pyc
byte-compiling build/bdist.linux-i686/egg/pip/runner.py to runner.pyc
byte-compiling build/bdist.linux-i686/egg/pip/status_codes.py to status_codes.pyc
byte-compiling build/bdist.linux-i686/egg/pip/util.py to util.pyc
creating build/bdist.linux-i686/egg/EGG-INFO
copying pip.egg-info/PKG-INFO -> build/bdist.linux-i686/egg/EGG-INFO
copying pip.egg-info/SOURCES.txt -> build/bdist.linux-i686/egg/EGG-INFO
copying pip.egg-info/dependency_links.txt -> build/bdist.linux-i686/egg/EGG-INFO
copying pip.egg-info/entry_points.txt -> build/bdist.linux-i686/egg/EGG-INFO
copying pip.egg-info/not-zip-safe -> build/bdist.linux-i686/egg/EGG-INFO
copying pip.egg-info/requires.txt -> build/bdist.linux-i686/egg/EGG-INFO
copying pip.egg-info/top_level.txt -> build/bdist.linux-i686/egg/EGG-INFO
creating dist
creating 'dist/pip-1.3-py2.6.egg' and adding 'build/bdist.linux-i686/egg' to it
removing 'build/bdist.linux-i686/egg' (and everything under it)
Processing pip-1.3-py2.6.egg
removing '/usr/lib/python2.6/site-packages/pip-1.3-py2.6.egg' (and everything under it)
creating /usr/lib/python2.6/site-packages/pip-1.3-py2.6.egg
Extracting pip-1.3-py2.6.egg to /usr/lib/python2.6/site-packages
pip 1.3 is already the active version in easy-install.pth
Installing pip script to /usr/bin
Installing pip-2.6 script to /usr/bin

Installed /usr/lib/python2.6/site-packages/pip-1.3-py2.6.egg
Processing dependencies for pip==1.3
Finished processing dependencies for pip==1.3
ffmpeg
Requirement already satisfied (use --upgrade to upgrade): pylast in /usr/lib/python2.6/site-packages
Cleaning up...
Downloading/unpacking beets==dev
  Could not find a version that satisfies the requirement beets==dev (from versions: 1.0b15, 1.0b5, 1.0b6, 1.0rc2, 1.0rc1, 1.0b14, 1.0b2, 1.0.0, 1.0b8, 1.0b1, 1.0b12, 1.0b7, 1.0b9, 1.0b13, 1.0b4, 1.0b10, 1.0b11, 1.0b3, 1.1.0, 1.2.0, 1.2.1)
No distributions matching the version for beets==dev
Storing complete log in /root/.pip/pip.log
success
file /usr/local/emhttp/plugins/beets/beets.page: successfully wrote INLINE file contents
file /var/log/plugins/beets: successfully wrote INLINE file contents
file /tmp/plugin-development: successfully wrote INLINE file contents
  /bin/bash /tmp/plugin-development ... success
plugin successfully installed
root@Media:/boot/config/plugins# beet
-bash: beet: command not found
root@Media:/boot/config/plugins# 

 

Having just previewed the code could it to be to do with beets dev version?!?!

 

Also as there is a newer version of Sqlite maybe use that version?! Just a thought! Dont want to sound ungrateful, massively appreciate the plugins you and others provide for us who want them but cant make them! :)

 

Alex

Link to comment

Right then, I suspect you were running a slightly earlier version as I switched from using "pip install beets==dev" some time back when the author removed the development stream in favour of a stable.  That being said and in fairness to you, I'm guilty of having made a few discrete changes but not bumping the plugin version, so there's a chance you thought you were running the latest.

 

This was a good opportunity to bump the version number to 1.4 as I've also made a few other changes;

 

updated the version of sqlite to 3.7.14.1

updated python pip module from 1.3 to 1.4

updated python setuptools from 0.6c11 to 0.9.8

 

Grab the latest version from my github page.  Lastly, you can safely delete /boot/packages/setuptools-0.6c11-i686-5sl.txz as it's no longer used by the plugin and to my knowledge not needed for others.

 

 

Regards,

overbyrn

Link to comment
  • 5 weeks later...

Great plugin :)

 

Just trying to configure the default album path;

 

Album Artists/$albumartist/$album%aunique{}/$track - $title

 

And the gui is restricting the number of characters I can enter into this field.

 

Is this a restriction of the gui, or the beets config?

 

I am trying to update the config files with my changes, but not really sure if I change beets.cfg or config.yaml or both?

 

Also, is there a way to turn off the plugin to edit the config files and then restart the plugin again?

 

Thanks

Link to comment

Great plugin :)

 

Just trying to configure the default album path;

 

Album Artists/$albumartist/$album%aunique{}/$track - $title

 

And the gui is restricting the number of characters I can enter into this field.

 

Is this a restriction of the gui, or the beets config?

 

I am trying to update the config files with my changes, but not really sure if I change beets.cfg or config.yaml or both?

 

Also, is there a way to turn off the plugin to edit the config files and then restart the plugin again?

 

Thanks

Hi, there's a hard coded 60 char limit on the default album path.  Currently on vacation in Greece so can't easily update my code via GitHub.  You can quickly hack it by changing maxlength on line 465 of the plugin.  From memory, if you were to update beets.cfg, then the GUI will truncate it the next time you enter the settings page and/or hit apply. Similarly if you updated config.yaml then the change will be lost as the plugin will first store the truncated value in beets.cfg and then update config.yaml.  Pretty sure the quickest way is to increase the max length.  Then you should be able to edit via the GUI or manually via beets.cfg.

 

 

Regards,

overbyrn

 

Link to comment

 

Thats great thanks; so I edit beets.sh I presume.

 

Sorry to disturb your holiday!

 

Thanks again, will give it a try.

Edit beets_overbyrn.plg. The line I referenced above was based on the line in the overall plugin code. That line comprises part of beets.php file which is created during plugin installation but no point directly editing that file as changes will be lost upon a reinstall of the plugin / reboot of unraid. 

 

Last day of vacation, back to real world tomorrow.  Will update plugin in next couple days. 

Link to comment

Hello mate!

 

Hope you had a good holiday?  8)

 

Hijacking the thread slightly here, but as a man who likes well automagically organised Music courtesy of Beetz, I wondered if you'd ever considered "FileBot" to do the same?!

 

Currently messing around with the portable version and other than a few errors due to no GUI, its very good, and works well. Features include Auto Rename, Post process of Torrents ect, automatic detection of TV Show or Movie...

 

I'm useless at the WebGUI side of plugins, and as it seems very simple to implement ( only Java as a dependencies as far as I can tell) I thought you might fancy adding it to your repertoire of plugins! :)

 

Alex

Link to comment
Guest
This topic is now closed to further replies.