Skip to content
View in the app

A better way to browse. Learn more.

Unraid

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Beets container.

Featured Replies

Perfect, the docker exec command works for me.

 

However, there is still no config file in where i have told it to be.

  • Replies 75
  • Views 17.8k
  • Created
  • Last Reply

Perfect, the docker exec command works for me.

 

However, there is still no config file in where i have told it to be.

 

Where is it suppose to be? I can look for it and make it appear where it needs to be.

This is what i have set in the docker

 

/mnt/cache/appdata/beets/:/config:rw

 

However, it doesn't appear on my cache drive. When i run 'beet config -p' it states, /root/.config/beets/config.yaml

 

 

This is what i have set in the docker

 

/mnt/cache/appdata/beets/:/config:rw

 

However, it doesn't appear on my cache drive. When i run 'beet config -p' it states, /root/.config/beets/config.yaml

 

I'll take a look. I made it download the beets.sh in there and I think the database gets created in there.  Not sure how Hurricane had it setup but shouldn't be to hard to move the yaml file in the /config folder

yep, I have the sh and library, config would be good too.

 

Thanks heaps for looking into this for me and everyone else.  :)

This worked to start the import:

 

docker exec Beets beet import  /opt/tmp

 

How to you enter a command when prompted on an import?

 

Black Sabbath - Technicaerror: stdin stream ended while input required

l Ecstasy

URL:

    http://musicbrainz.org/release/b70fa056-d367-31c1-9f1e-2c5a46db894f

(Similarity: 94.0%) (tracks) (CD, 2009, GB)

* It's Alright (6:42)        -> It's Alright (4:06) (length)

* Gypsy (4:04)                -> Gypsy (5:11) (length)

* Rock 'n' Roll Doctor (5:07) -> Rock 'n' Roll Doctor (3:34) (length)

* She's Gone (3:30)          -> She's Gone (4:57) (length)

* Dirty Women (4:58)          -> Dirty Women (7:08) (length)

[A]pply, More candidates, Skip, Use as-is, as Tracks, Group albums,

Enter search, enter Id, aBort? root@Tower:~# S

-bash: S: command not found

 

Tagging:

    Black Sabbath - Technical Ecstasy

URL:

    http://musicbrainz.org/release/b70fa056-d367-31c1-9f1e-2c5a46db894f

(Similarity: 94.0%) (tracks) (CD, 2009, GB)

* It's Alright (6:42)        -> It's Alright (4:06) (length)

* Gypsy (4:04)                -> Gypsy (5:11) (length)

* Rock 'n' Roll Doctor (5:07) -> Rock 'n' Roll Doctor (3:34) (length)

* She's Gone (3:30)          -> She's Gone (4:57) (length)

* Dirty Women (4:58)          -> Dirty Women (7:08) (length)

[A]pply, More candidates, Skip, Use as-is, as Tracks, Group albums,

Enter search, enter Id, aBort? root@Tower:~# docker exec Beets S

2015/01/01 19:17:32 docker-exec: failed to exec: exec: "S": executable file not found in $PATH

yep, I have the sh and library, config would be good too.

 

Thanks heaps for looking into this for me and everyone else.  :)

 

Also.. I think port 4022 is only for SSH access, with docker exec thats not needed. I should be able to shrink it even more.  Does that sound right to others?

How do you pass one of these commands back to beets?  When it prompts me for a response I am not sure how to pass back an answer.

 

These are the values on an import:

 

 

Choices

When beets needs your input about a match, it says something like this:

 

Tagging:

    Beirut - Lon Gisland

(Similarity: 94.4%)

* Scenic World (Second Version) -> Scenic World

[A]pply, More candidates, Skip, Use as-is, as Tracks, Enter search, or aBort?

When beets asks you this question, it wants you to enter one of the capital letters: A, M, S, U, T, G, E, or B. That is, you can choose one of the following:

 

A: Apply the suggested changes shown and move on.

M: Show more options. (See the Candidates section, below.)

S: Skip this album entirely and move on to the next one.

U: Import the album without changing any tags. This is a good option for albums that aren’t in the MusicBrainz database, like your friend’s operatic faux-goth solo record that’s only on two CD-Rs in the universe.

T: Import the directory as singleton tracks, not as an album. Choose this if the tracks don’t form a real release—you just have one or more loner tracks that aren’t a full album. This will temporarily flip the tagger into singleton mode, which attempts to match each track individually.

G: Group tracks in this directory by album artist and album and import groups as albums. If the album artist for a track is not set then the artist is used to group that track. For each group importing proceeds as for directories. This is helpful if a directory contains multiple albums.

E: Enter an artist and album to use as a search in the database. Use this option if beets hasn’t found any good options because the album is mistagged or untagged.

B: Cancel this import task altogether. No further albums will be tagged; beets shuts down immediately. The next time you attempt to import the same directory, though, beets will ask you if you want to resume tagging where you left off.

Note that the option with rackets is the default—so if you want to apply the changes, you can just hit return without entering anything.

How do you pass one of these commands back to beets?  When it prompts me for a response I am not sure how to pass back an answer.

 

These are the values on an import:

 

 

Choices

When beets needs your input about a match, it says something like this:

 

Tagging:

    Beirut - Lon Gisland

(Similarity: 94.4%)

* Scenic World (Second Version) -> Scenic World

[A]pply, More candidates, Skip, Use as-is, as Tracks, Enter search, or aBort?

When beets asks you this question, it wants you to enter one of the capital letters: A, M, S, U, T, G, E, or B. That is, you can choose one of the following:

 

A: Apply the suggested changes shown and move on.

M: Show more options. (See the Candidates section, below.)

S: Skip this album entirely and move on to the next one.

U: Import the album without changing any tags. This is a good option for albums that aren’t in the MusicBrainz database, like your friend’s operatic faux-goth solo record that’s only on two CD-Rs in the universe.

T: Import the directory as singleton tracks, not as an album. Choose this if the tracks don’t form a real release—you just have one or more loner tracks that aren’t a full album. This will temporarily flip the tagger into singleton mode, which attempts to match each track individually.

G: Group tracks in this directory by album artist and album and import groups as albums. If the album artist for a track is not set then the artist is used to group that track. For each group importing proceeds as for directories. This is helpful if a directory contains multiple albums.

E: Enter an artist and album to use as a search in the database. Use this option if beets hasn’t found any good options because the album is mistagged or untagged.

B: Cancel this import task altogether. No further albums will be tagged; beets shuts down immediately. The next time you attempt to import the same directory, though, beets will ask you if you want to resume tagging where you left off.

Note that the option with rackets is the default—so if you want to apply the changes, you can just hit return without entering anything.

 

Usage: docker exec [OPTIONS] CONTAINER COMMAND [ARG...]

Run a command in a running container

  -d, --detach=false         Detached mode: run command in the background
  -i, --interactive=false    Keep STDIN open even if not attached
  -t, --tty=false            Allocate a pseudo-TTY

 

you can do

 

docker exec -i -t Beets COMMAND

 

and it should be interactive.

yep, I have the sh and library, config would be good too.

 

Thanks heaps for looking into this for me and everyone else.  :)

 

Also.. I think port 4022 is only for SSH access, with docker exec thats not needed. I should be able to shrink it even more.  Does that sound right to others?

 

Yes I think you are right, i don't think its needed.

Not working.  This is what I am getting:

 

Tagging:

    Black Sabbath - Technical Ecstasy

URL:

    http://musicbrainz.org/release/b70fa056-d367-31c1-9f1e-2c5a46db894f

(Similarity: 94.0%) (tracks) (CD, 2009, GB)

* It's Alright (6:42)        -> It's Alright (4:06) (length)

* Gypsy (4:04)                -> Gypsy (5:11) (length)

* Rock 'n' Roll Doctor (5:07) -> Rock 'n' Roll Doctor (3:34) (length)

* She's Gone (3:30)          -> She's Gone (4:57) (length)

* Dirty Women (4:58)          -> Dirty Women (7:08) (length)

[A]pply, More candidates, Skip, Use as-is, as Tracks, Group albums,

Enter search, enter Id, aBort? root@Tower:~# docker exec -i -t Beets S

2015/01/01 19:38:47 docker-exec: failed to exec: exec: "S": executable file not found in $PATH

Not working.  This is what I am getting:

 

Tagging:

    Black Sabbath - Technical Ecstasy

URL:

    http://musicbrainz.org/release/b70fa056-d367-31c1-9f1e-2c5a46db894f

(Similarity: 94.0%) (tracks) (CD, 2009, GB)

* It's Alright (6:42)        -> It's Alright (4:06) (length)

* Gypsy (4:04)                -> Gypsy (5:11) (length)

* Rock 'n' Roll Doctor (5:07) -> Rock 'n' Roll Doctor (3:34) (length)

* She's Gone (3:30)          -> She's Gone (4:57) (length)

* Dirty Women (4:58)          -> Dirty Women (7:08) (length)

[A]pply, More candidates, Skip, Use as-is, as Tracks, Group albums,

Enter search, enter Id, aBort? root@Tower:~# docker exec -i -t Beets S

2015/01/01 19:38:47 docker-exec: failed to exec: exec: "S": executable file not found in $PATH

 

Do you know of a command I can do on an empty library that would need me give a response so I can test it.  I don't have any digital music.. I'm all Google Play now :/

No I don't.  Download one of your albums from google play.  Put it in a folder with the name of the artist then inside that folder do a folder with the name of the album and put one song inside.  This will cause a mismatch and it will prompt you.

No I don't.  Download one of your albums from google play.  Put it in a folder with the name of the artist then inside that folder do a folder with the name of the album and put one song inside.  This will cause a mismatch and it will prompt you.

 

what command did you run that asked for the "S" prompt?

This is what i have set in the docker

 

/mnt/cache/appdata/beets/:/config:rw

 

However, it doesn't appear on my cache drive. When i run 'beet config -p' it states, /root/.config/beets/config.yaml

 

beet config -p will still show /root/.config/beets/config.yaml, but is now symbolically linked to /config.  If you update it should pull down config.yaml.  Let me know if that works.

docker exec Beets beet import  /opt/tmp

docker exec Beets beet import  /opt/tmp

 

docker exec -i -t Beets beet import /opt/tmp

/opt/tmp/Coldplay/Name (1 items)
Finding tags for album "Coldplay - Ghost Stories".
Candidates:
1. Coldplay - Ghost Stories (55.6%) (missing tracks) (12" Vinyl, 2014, XE, Parlophone)
2. Coldplay - Ghost Stories (55.6%) (missing tracks) (CD, 2014, XE, Parlophone)
3. Coldplay - Ghost Stories (55.6%) (missing tracks) (CD, 2014, NL, Parlophone)
4. Coldplay - Ghost Stories (55.6%) (missing tracks) (Digital Media, 2014, AU, Parlophone)
5. Coldplay - Ghost Stories (47.6%) (missing tracks) (CD, 2014, US, Atlantic, Deluxe Edition Bonus Tracks (Target))
6. Various Artists - Now That's What I Call Music! 88 (5.0%) (missing tracks, album, mediums, ...) (2xCD, 2014, GB, NOW, UK)
7. Various Artists - Bravo Hits 86 (4.6%) (missing tracks, album, mediums, ...) (2xCD, 2014, DE, Polystar)
# selection (default 1), Skip, Use as-is, as Tracks, Group albums,
Enter search, enter Id, aBort? B

 

 

I was able to put in the B.  Did you do the import command with the -i -t?

 

docker exec -i -t Beets beet import  /opt/tmp

 

I did not do the command like that.  Thank you it is all set now.

 

I can't get through a whole import though.

 

Eventually this error comes up:

 

Traceback (most recent call last):

  File "/usr/local/bin/beet", line 9, in <module>

    load_entry_point('beets==1.3.9', 'console_scripts', 'beet')()

  File "/usr/local/lib/python2.7/dist-packages/beets/ui/__init__.py", line 935, in main

    _raw_main(args)

  File "/usr/local/lib/python2.7/dist-packages/beets/ui/__init__.py", line 925, in _raw_main

    subcommand.func(lib, suboptions, subargs)

  File "/usr/local/lib/python2.7/dist-packages/beets/ui/commands.py", line 872, in import_func

    import_files(lib, paths, query)

  File "/usr/local/lib/python2.7/dist-packages/beets/ui/commands.py", line 844, in import_files

    session.run()

  File "/usr/local/lib/python2.7/dist-packages/beets/importer.py", line 299, in run

    pl.run_parallel(QUEUE_SIZE)

  File "/usr/local/lib/python2.7/dist-packages/beets/util/pipeline.py", line 249, in run

    msg = self.coro.next()

  File "/usr/local/lib/python2.7/dist-packages/beets/importer.py", line 1098, in read_tasks

    task = task_factory.album(paths)

  File "/usr/local/lib/python2.7/dist-packages/beets/importer.py", line 997, in album

    items = map(self.read_item, paths)

  File "/usr/local/lib/python2.7/dist-packages/beets/importer.py", line 1015, in read_item

    return library.Item.from_path(path)

  File "/usr/local/lib/python2.7/dist-packages/beets/library.py", line 391, in from_path

    i.read(path)

  File "/usr/local/lib/python2.7/dist-packages/beets/library.py", line 443, in read

    mediafile = MediaFile(syspath(read_path))

  File "/usr/local/lib/python2.7/dist-packages/beets/mediafile.py", line 1344, in __init__

    if self.mgfile.codec and self.mgfile.codec.startswith('alac'):

AttributeError: 'MP4' object has no attribute 'codec'

After updating it seems to work fine.

 

What is the encoding that it is doing for each track?

Actually it is still happening:

 

Traceback (most recent call last):

  File "/usr/local/bin/beet", line 9, in <module>

    load_entry_point('beets==1.3.9', 'console_scripts', 'beet')()

  File "/usr/local/lib/python2.7/dist-packages/beets/ui/__init__.py", line 935, in main

    _raw_main(args)

  File "/usr/local/lib/python2.7/dist-packages/beets/ui/__init__.py", line 925, in _raw_main

    subcommand.func(lib, suboptions, subargs)

  File "/usr/local/lib/python2.7/dist-packages/beets/ui/commands.py", line 872, in import_func

    import_files(lib, paths, query)

  File "/usr/local/lib/python2.7/dist-packages/beets/ui/commands.py", line 844, in import_files

    session.run()

  File "/usr/local/lib/python2.7/dist-packages/beets/importer.py", line 299, in run

    pl.run_parallel(QUEUE_SIZE)

  File "/usr/local/lib/python2.7/dist-packages/beets/util/pipeline.py", line 249, in run

    msg = self.coro.next()

  File "/usr/local/lib/python2.7/dist-packages/beets/importer.py", line 1098, in read_tasks

    task = task_factory.album(paths)

  File "/usr/local/lib/python2.7/dist-packages/beets/importer.py", line 997, in album

    items = map(self.read_item, paths)

  File "/usr/local/lib/python2.7/dist-packages/beets/importer.py", line 1015, in read_item

    return library.Item.from_path(path)

  File "/usr/local/lib/python2.7/dist-packages/beets/library.py", line 391, in from_path

    i.read(path)

  File "/usr/local/lib/python2.7/dist-packages/beets/library.py", line 443, in read

    mediafile = MediaFile(syspath(read_path))

  File "/usr/local/lib/python2.7/dist-packages/beets/mediafile.py", line 1344, in __init__

    if self.mgfile.codec and self.mgfile.codec.startswith('alac'):

AttributeError: 'MP4' object has no attribute 'codec'

Actually it is still happening:

 

Traceback (most recent call last):

  File "/usr/local/bin/beet", line 9, in <module>

    load_entry_point('beets==1.3.9', 'console_scripts', 'beet')()

  File "/usr/local/lib/python2.7/dist-packages/beets/ui/__init__.py", line 935, in main

    _raw_main(args)

  File "/usr/local/lib/python2.7/dist-packages/beets/ui/__init__.py", line 925, in _raw_main

    subcommand.func(lib, suboptions, subargs)

  File "/usr/local/lib/python2.7/dist-packages/beets/ui/commands.py", line 872, in import_func

    import_files(lib, paths, query)

  File "/usr/local/lib/python2.7/dist-packages/beets/ui/commands.py", line 844, in import_files

    session.run()

  File "/usr/local/lib/python2.7/dist-packages/beets/importer.py", line 299, in run

    pl.run_parallel(QUEUE_SIZE)

  File "/usr/local/lib/python2.7/dist-packages/beets/util/pipeline.py", line 249, in run

    msg = self.coro.next()

  File "/usr/local/lib/python2.7/dist-packages/beets/importer.py", line 1098, in read_tasks

    task = task_factory.album(paths)

  File "/usr/local/lib/python2.7/dist-packages/beets/importer.py", line 997, in album

    items = map(self.read_item, paths)

  File "/usr/local/lib/python2.7/dist-packages/beets/importer.py", line 1015, in read_item

    return library.Item.from_path(path)

  File "/usr/local/lib/python2.7/dist-packages/beets/library.py", line 391, in from_path

    i.read(path)

  File "/usr/local/lib/python2.7/dist-packages/beets/library.py", line 443, in read

    mediafile = MediaFile(syspath(read_path))

  File "/usr/local/lib/python2.7/dist-packages/beets/mediafile.py", line 1344, in __init__

    if self.mgfile.codec and self.mgfile.codec.startswith('alac'):

AttributeError: 'MP4' object has no attribute 'codec'

 

Looks like that is a known issue and needs to be updated from source... I will see if I can work some magic...

 

https://github.com/sampsyo/beets/issues/1117

Actually it is still happening:

 

Traceback (most recent call last):

  File "/usr/local/bin/beet", line 9, in <module>

    load_entry_point('beets==1.3.9', 'console_scripts', 'beet')()

  File "/usr/local/lib/python2.7/dist-packages/beets/ui/__init__.py", line 935, in main

    _raw_main(args)

  File "/usr/local/lib/python2.7/dist-packages/beets/ui/__init__.py", line 925, in _raw_main

    subcommand.func(lib, suboptions, subargs)

  File "/usr/local/lib/python2.7/dist-packages/beets/ui/commands.py", line 872, in import_func

    import_files(lib, paths, query)

  File "/usr/local/lib/python2.7/dist-packages/beets/ui/commands.py", line 844, in import_files

    session.run()

  File "/usr/local/lib/python2.7/dist-packages/beets/importer.py", line 299, in run

    pl.run_parallel(QUEUE_SIZE)

  File "/usr/local/lib/python2.7/dist-packages/beets/util/pipeline.py", line 249, in run

    msg = self.coro.next()

  File "/usr/local/lib/python2.7/dist-packages/beets/importer.py", line 1098, in read_tasks

    task = task_factory.album(paths)

  File "/usr/local/lib/python2.7/dist-packages/beets/importer.py", line 997, in album

    items = map(self.read_item, paths)

  File "/usr/local/lib/python2.7/dist-packages/beets/importer.py", line 1015, in read_item

    return library.Item.from_path(path)

  File "/usr/local/lib/python2.7/dist-packages/beets/library.py", line 391, in from_path

    i.read(path)

  File "/usr/local/lib/python2.7/dist-packages/beets/library.py", line 443, in read

    mediafile = MediaFile(syspath(read_path))

  File "/usr/local/lib/python2.7/dist-packages/beets/mediafile.py", line 1344, in __init__

    if self.mgfile.codec and self.mgfile.codec.startswith('alac'):

AttributeError: 'MP4' object has no attribute 'codec'

 

Looks like that is a known issue and needs to be updated from source... I will see if I can work some magic...

 

https://github.com/sampsyo/beets/issues/1117

 

 

Okay....  here is what I've done.  I do not want the default install of this docker to pull from source, as I can't control that and confirm that it works.  They release their source code every 6-8 weeks so this should be fixed in the default install soon, until then I have added an EDGE case that installs from source. 

 

Please remove the currently installed container, and add the Variable name "EDGE" and Variable Value "1" (without quotes) to the add container page and retest. This will take longer to start up the first time as it needs to pull from GITHUB and build the install itself.

Works now.  I would not set encoding on by default.  Other than that it is working great.

I would not set encoding on by default. 

 

What do you mean by this? Is it in the .yaml file?

Yes, this part:

 

convert:

    auto: yes

    ffmpeg: /usr/bin/ffmpeg

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

    max_bitrate: 320

    threads: 1

Archived

This topic is now archived and is closed to further replies.

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.