• 1
  • 3
  • 4
  • 5(current)
  • 6
  • 7
  • 98
Headphones - Music albums & artists auto download program
#61
bean_ian Wrote:@Mar2zz Great script have it up an running on my box Smile
Question: Is there a way to tell albumidentify to prefer releases on musicbrainz that have album art attached? A few of my albums were tied to releases with no cover art which destroys my Shelf view in xbmc. Each of these releases had other versions that were the same only they had the cover art.

I'm actually working on this. In the future, when selecting a version from a release group, it will prefer the version that has album art, if available.
Reply
#62
Thanks for this script as I have been looking for a while for something like this. I have my ip in the config script set instead of 0.0.0.0 or localhost so I am not sure that this matters. I get the following when trying to launch the admin page. Below is the error that was displayed in the browser.

Code:
Traceback (most recent call last):
  File "/Applications/Headphones/cherrypy/wsgiserver/__init__.py", line 1245, in communicate
    req.respond()
  File "/Applications/Headphones/cherrypy/wsgiserver/__init__.py", line 775, in respond
    self.server.gateway(self).respond()
  File "/Applications/Headphones/cherrypy/wsgiserver/__init__.py", line 2018, in respond
    response = self.req.server.wsgi_app(self.env, self.start_response)
  File "/Applications/Headphones/cherrypy/_cptree.py", line 278, in __call__
    return app(environ, start_response)
  File "/Applications/Headphones/cherrypy/_cptree.py", line 145, in __call__
    return self.wsgiapp(environ, start_response)
  File "/Applications/Headphones/cherrypy/_cpwsgi.py", line 330, in __call__
    return head(environ, start_response)
  File "/Applications/Headphones/cherrypy/_cpwsgi.py", line 135, in __call__
    return _TrappedResponse(self.nextapp, environ, start_response, self.throws)
  File "/Applications/Headphones/cherrypy/_cpwsgi.py", line 148, in __init__
    self.response = self.trap(self.nextapp, self.environ, self.start_response)
  File "/Applications/Headphones/cherrypy/_cpwsgi.py", line 172, in trap
    _cherrypy.log(tb, severity=40)
  File "/Applications/Headphones/cherrypy/__init__.py", line 299, in __call__
    return log.error(*args, **kwargs)
  File "/Applications/Headphones/cherrypy/_cplogging.py", line 178, in error
    self.error_log.log(severity, ' '.join((self.time(), context, msg)))
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/logging/__init__.py", line 1084, in log
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/logging/__init__.py", line 1129, in _log
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/logging/__init__.py", line 1139, in handle
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/logging/__init__.py", line 1176, in callHandlers
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/logging/__init__.py", line 662, in handle
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/logging/__init__.py", line 770, in emit
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/logging/__init__.py", line 713, in handleError
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/traceback.py", line 124, in print_exception
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/traceback.py", line 13, in _print
IOError: [Errno 5] Input/output error
Reply
#63
rembo10 Wrote:I should add though that post-processing isn't working yet, but I'm talking to the guy who is developing beets (http://github.com/sampsyo/beets), and I'm going to integrate that into headphones for tagging, renaming, etc. The good thing is both programs use Musicbrainz, so tagging will be accurate.

Whats the ETR on the above?

Is torrent support gonna be added at any stage?

Please don't forget the windows .exe

P.S: Great work!
Thanks!
Reply
#64
roontoon Wrote:Thanks for this script as I have been looking for a while for something like this. I have my ip in the config script set instead of 0.0.0.0 or localhost so I am not sure that this matters. I get the following when trying to launch the admin page. Below is the error that was displayed in the browser.

Got it figured out and I am currently testing.... questions to come. Looks great so far.

d
Reply
#65
So... how long is the initial iTunes library import expected to take?

I ask because I have about 30,000 tracks in my itunes library... after about 4 hours it had only cataloged about 60 of 800 artists.
Reply
#66
paularms Wrote:So... how long is the initial iTunes library import expected to take?

I ask because I have about 30,000 tracks in my itunes library... after about 4 hours it had only cataloged about 60 of 800 artists.

It really just depends on how many releases each artist has. It tries to get all the release information for an album, and I have to pause for 1 second between releases per MusicBrainz rules.

In my experience it takes about 30 seconds-1 minute per artist, so yours seems a little slow. Is it continuing to add artists?

The newest version has basic logging added, so you can see if it's still chugging along or if it hit some kind of snag.
Reply
#67
Have it up and running and have a couple of things to report. I am currently trying to import my library (20,000+/-) and I "think" headphones is crashing but I have no logs to check on this. Have run it overnight a couple of times and I currently only have 58 artist. If I restart I see more artist show up but then processing will stop after a while. A status update message would be nice along with logging.

It also threw this error this morning when I restarted.

Code:
Traceback (most recent call last):
  File "/Applications/Headphones/cherrypy/_cprequest.py", line 645, in respond
    response.body = self.handler()
  File "/Applications/Headphones/cherrypy/lib/encoding.py", line 188, in __call__
    self.body = self.oldhandler(*args, **kwargs)
  File "/Applications/Headphones/cherrypy/_cpdispatch.py", line 29, in __call__
    return self.callable(*self.args, **self.kwargs)
  File "/Applications/Headphones/webServer.py", line 329, in importItunes
    itunesimport.itunesImport(path)
  File "/Applications/Headphones/itunesimport.py", line 35, in itunesImport
    artist = ws.Query().getArtistById(artistid, inc)
  File "/Applications/Headphones/musicbrainz2/webservice.py", line 972, in getArtistById
    result = self._getFromWebService('artist', uuid, include)
  File "/Applications/Headphones/musicbrainz2/webservice.py", line 1179, in _getFromWebService
    stream = self._ws.get(entity, id_, includeParams, filterParams)
  File "/Applications/Headphones/musicbrainz2/webservice.py", line 285, in get
    raise WebServiceError(str(e), e)
WebServiceError: HTTP Error 403: Forbidden

Also it would be nice if headphones remembered the path to the last folder/xml file that it processed. Also it seems totally random in indexing being that it does not seem sequential from a to z. I have also seen it identify artist that I do not have in my library.

I have also download two albums one was mp3 and the other a flac. Neither did post processing in terms of moving to iTunes library and I am not sure if the flac was to be converted or if that is a feature or not. Thanks and I will keep posting as I notice things.

d
Reply
#68
Since this is Python-based, I assume it only needs the same set of Linux dependencies for python that sickbeard and couch potato do, correct?

I recently after a bit of wrestling got SAB-sickbeard-couchpotato running on an UnRaid media server I just built. This seems like a perfect companion.

UnRaid, if you are unfamiliar, is a popular DIY media server platform built on a sort of very stripped down Slackware Linux distro. Or so I gather, sort of a Linux newb myself. Its chief advantage is that its a cheap way to build a media server that both provides parity data protection - it will rebuild your data sort of like a RAID 5 from a parity drive if a HD crashes - but rather than striping it handles each drive individually so you can mix and match hard drives, add in a new blank HD whenever you need more storage - which makes it very expandable for the home media collector on a budget.

Got interested in it from posts here in the XBMC forums.

Which is all a long-winded way to say, I'm not 100% sure which python I'm running, I got it with the SABnzbd depedencies package here following the UnRAID python wiki page. I'd like to try your app as well and I assume I could follow the method on the wiki for installing it as well.

I'm running most recent stable SAB-sickbeard-CP so I would imagine my python is fairly up to date as well.

Any idea how I could quickly confirm python compatibility say with a telnet command before I try installing your app? Kind of Linux newb, as I said.

Also I might suggest putting a thread about your app in the UnRAID forum under the "User Customization" subdirectory as thats where people put discussion of not-NAS directly related apps they run on their media servers.
Reply
#69
One other possibly dumb question. What port by default does headphones typically run on? I'm sure you can probably change that in the settings but I was curious before I jump right in.
Reply
#70
@_Mikie_: ETA is hopefully soon. I've been kind of busy lately so really haven't had a chance to sit down and get it done. I wanna clean up my code too since it's pretty messy right now, so I figure a few days. One of the reasons is that so I can make it an exe file. And yeah, I'll add in torrent support in the near future

@roontoon: The 403 error happens when searching albums for something like 'Various Artists' (which is fixed in newer versions). If you get the latest version, it has some basic logging so we can see which artist its getting tripped up on - there might be something else I need to exclude.
I also just added in the feature to remember the last import path you entered :-)

Since it's an automatic import, it's just taking the best match for each artist so it may get some wrong. I'm still working on a better way to parse the MusicBrainz search results.

Post-processing is coming soon. For now just use categories to tell SABnzbd where to put your music.

@seand: it runs on port 8181. You can customize it in settings. It's packaged with all the dependencies so it's pretty easy to install. Just run 'python headphones.py -d -q' and you should be good to go.
Reply
#71
Is there any kind of wiki setup for this program yet? It might be nice to get some details about specifically what each setting does. I would be willing to help out with this.
Image
thegamesdb.net - An open video games database.
scottbrant.net - Blog
Reply
#72
seand Wrote:Since this is Python-based, I assume it only needs the same set of Linux dependencies for python that sickbeard and couch potato do, correct?

I recently after a bit of wrestling got SAB-sickbeard-couchpotato running on an UnRaid media server I just built. This seems like a perfect companion.

UnRaid, if you are unfamiliar, is a popular DIY media server platform built on a sort of very stripped down Slackware Linux distro. Or so I gather, sort of a Linux newb myself. Its chief advantage is that its a cheap way to build a media server that both provides parity data protection - it will rebuild your data sort of like a RAID 5 from a parity drive if a HD crashes - but rather than striping it handles each drive individually so you can mix and match hard drives, add in a new blank HD whenever you need more storage - which makes it very expandable for the home media collector on a budget.

Got interested in it from posts here in the XBMC forums.

Which is all a long-winded way to say, I'm not 100% sure which python I'm running, I got it with the SABnzbd depedencies package here following the UnRAID python wiki page. I'd like to try your app as well and I assume I could follow the method on the wiki for installing it as well.

I'm running most recent stable SAB-sickbeard-CP so I would imagine my python is fairly up to date as well.

Any idea how I could quickly confirm python compatibility say with a telnet command before I try installing your app? Kind of Linux newb, as I said.

Also I might suggest putting a thread about your app in the UnRAID forum under the "User Customization" subdirectory as thats where people put discussion of not-NAS directly related apps they run on their media servers.

I have this running on UnRAID. It is super easy if your already running sick beard, as you are.

I'm using the SABnzbdDependencies-2.0-i486-unRAID.tgz package fyi.

All you need to do is add the path to you go script, just like sick beard.
Reply
#73
bnevets27 Wrote:I have this running on UnRAID. It is super easy if your already running sick beard, as you are.

I'm using the SABnzbdDependencies-2.0-i486-unRAID.tgz package fyi.

All you need to do is add the path to you go script, just like sick beard.
Great. Just as I hoped. Will try tonight or tommorrow.
Reply
#74
rembo10 Wrote:@_Mikie_: ETA is hopefully soon. I've been kind of busy lately so really haven't had a chance to sit down and get it done. I wanna clean up my code too since it's pretty messy right now, so I figure a few days.

Thanks. Just one thought on post-processing: from my experience using picard/musicbrainz for tagging, it will be extremely difficult to get it perfect automatically, but will always required manual intervention. As a result, I am not sure whether I would actually go for it. Each album has so many releases and no tagger will ever be able to identify the exact release. As a release, post-processing will most likely end up with the wrong release in at least 20% of the cases and then include wrong tags. I would suggest to keep post-processing limited to adding cover art and converting FLAC into ALAC as well as WAV into MP3. Pretty sure that this will make your coding-life a lot easier as well...

Instead, it would be fantastic to see the following functions, which were on the roadmap earlier:

1) Exe file instead of PY
2) Avoid duplicate albums
3) Show albums that I already own as "have" (ideally even identifying them when scanning)
4) Log file
5) Include foreign releases

rembo10 Wrote:Since it's an automatic import, it's just taking the best match for each artist so it may get some wrong. I'm still working on a better way to parse the MusicBrainz search results.

Not sure how exactly SB does it, but this would be great. Basically take the best-hit if it is clear / exact, but ask if there are options to consider.

Thanks again, Headphones will soon be in the same league as SB and CP. Wow!!!
Server: Asus Sabertooth Z77 | Intel Core i5 3.4 GHz | 16 GB DDR3 | 128 GB SSD, 82 TB (9 x 6 TB, 7 x 4 TB)
HTPC 1: Raspberry Pi 2 | HTPC 2: Raspberry Pi 2 | HTPC 3: Raspberry Pi
Reply
#75
rembo10 Wrote:@roontoon: The 403 error happens when searching albums for something like 'Various Artists' (which is fixed in newer versions). If you get the latest version, it has some basic logging so we can see which artist its getting tripped up on - there might be something else I need to exclude.

Upgraded and see the log in the terminal window. Is there also a log file?

rembo10 Wrote:I also just added in the feature to remember the last import path you entered :-)
great

rembo10 Wrote:Since it's an automatic import, it's just taking the best match for each artist so it may get some wrong. I'm still working on a better way to parse the MusicBrainz search results.

I have had thoughts on this and I might offer it up as a suggestion or feature request. I am not sure if it is as important to know what I have in my library in terms of finding other albums/artist. I would however very much like to view a list of artist as you can in MusicBrainz and be able to drill down to the album that I am looking for and, dream upon dream, to the song and be able to select it to find a nzbd. Seems like it would be faster to process. So far on my library it has been 3 days of scanning. 8-(

rembo10 Wrote:Post-processing is coming soon. For now just use categories to tell SABnzbd where to put your music.

Cool. Will this include transcoding to other formats?
Reply
  • 1
  • 3
  • 4
  • 5(current)
  • 6
  • 7
  • 98

Logout Mark Read Team Forum Stats Members Help
Headphones - Music albums & artists auto download program9