Beets container.


Recommended Posts

  • Replies 75
  • Created
  • Last Reply

Top Posters In This Topic

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

Link to comment

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

Link to comment

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?

Link to comment

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.

Link to comment

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.

Link to comment

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.

Link to comment

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

Link to comment

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 :/

Link to comment

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?

Link to comment

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.

Link to comment

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

 

Link to comment

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'

Link to comment

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'

Link to comment

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

Link to comment

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.

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.