• 1
  • 23
  • 24
  • 25(current)
  • 26
  • 27
  • 197
[RELEASE] Texture Cache Maintenance utility
(2013-09-16, 02:46)CaptainKen Wrote: What does it mean when it says they can't be downloaded? It lists the same ones every time I run this.

It means that when texturecache.py requests XBMC to download the artwork, XBMC has responded that the artwork is unavailable, and you'll need to look in xbmc.log for further clues. It is XBMC that performs the actual download of the artwork (from your LAN, or from the internet) and unfortunately the script has no idea why XBMC is unable to complete the task. Sometimes though the reason may be obvious, for example a misspelling, but usually it's because the artwork is hosted on a remote internet site and the artwork is no longer available (or the web site itself may be offline).

However in the cases you have listed, they are all "embedded" artwork items that will be extracted from within the corresponding media file (in this case, mp3 audio files).

These "embedded" artwork items cannot be pre-cached by texturecache.py as the process for extracting embedded artwork is - unfortunately - a function of the XBMC GUI and is not currently available to JSON processes. You need to browse to the media items in the GUI and wait while the XBMC extracts the artwork, whereupon it will be cached.

Since "embedded" artwork cannot be pre-cached, the texturecache.py script will - by default - ignore these embedded artwork items. However as the script is processing these items, I can only assume you've overridden this default behaviour by modifying the value of the property cache.ignore.types which defaults to the following:
Code:
cache.ignore.types = ^image://video, ^image://music

If you haven't modified cache.ignore.types, can you run the following commands, then paste the output and upload the log file c:\tc.log:

Code:
texturecache.py config
texturecache.py c albums @logfile=c:\tc.log @logfile.verbose=yes

(2013-09-16, 02:46)CaptainKen Wrote: Are those slashes at the end supposed to be there?

Yes, they're fine.
Texture Cache Maintenance Utility: Preload your texture cache for optimal UI performance. Remotely manage media libraries. Purge unused artwork to free up space. Find missing media. Configurable QA check to highlight metadata issues. Aid in diagnosis of library and cache related problems.
Reply
(2013-09-16, 03:23)MilhouseVH Wrote:
(2013-09-16, 02:46)CaptainKen Wrote: What does it mean when it says they can't be downloaded? It lists the same ones every time I run this.

It means that when texturecache.py requests XBMC to download the artwork, XBMC has responded that the artwork is unavailable, and you'll need to look in xbmc.log for further clues. It is XBMC that performs the actual download of the artwork (from your LAN, or from the internet) and unfortunately the script has no idea why XBMC is unable to complete the task. Sometimes though the reason may be obvious, for example a misspelling, but usually it's because the artwork is hosted on a remote internet site and the artwork is no longer available (or the web site itself may be offline).

However in the cases you have listed, they are all "embedded" artwork items that will be extracted from within the corresponding media file (in this case, mp3 audio files).

These "embedded" artwork items cannot be pre-cached by texturecache.py as the process for extracting embedded artwork is - unfortunately - a function of the XBMC GUI and is not currently available to JSON processes. You need to browse to the media items in the GUI and wait while the XBMC extracts the artwork, whereupon it will be cached.

Since "embedded" artwork cannot be pre-cached, the texturecache.py script will - by default - ignore these embedded artwork items. However as the script is processing these items, I can only assume you've overridden this default behaviour by modifying the value of the property cache.ignore.types which defaults to the following:
Code:
cache.ignore.types = ^image://video, ^image://music

If you haven't modified cache.ignore.types, can you run the following commands, then paste the output and upload the log file c:\tc.log:

Code:
texturecache.py config
texturecache.py c albums @logfile=c:\tc.log @logfile.verbose=yes

(2013-09-16, 02:46)CaptainKen Wrote: Are those slashes at the end supposed to be there?

Yes, they're fine.

Well according to Tag&Rename they didn't have embedded artwork, although some others do. BTW, I haven't done anything with artwork for any of my music library, so there aren't any local artwork files.

Strange as the cache.ignore.types was missing the music option, but I'm pretty sure I didn't remove it as I make a note of every change to defaults so I can back track. Could have been one I skipped though.

So with the music option in cache.ignore.types it's fine, without it the can't download still appears.

Here's the log without the music option in the cfg file.
log
HTPC: Dell Optiplex 7050 SFF i7-7700 quad-core, 3.6GHz, 16GB
NAS: Synology DS1813+ and DX513, Hybrid RAID (SHR) 48TB usable space
My Media Center | www.CaptainKen.us | www.YouTube.com/KenInGilbert
Reply
(2013-09-16, 04:46)CaptainKen Wrote: Well according to Tag&Rename they didn't have embedded artwork, although some others do. BTW, I haven't done anything with artwork for any of my music library, so there aren't any local artwork files.

The XBMC scraper seems to think those albums have embedded artwork.

(2013-09-16, 04:46)CaptainKen Wrote: Strange as the cache.ignore.types was missing the music option, but I'm pretty sure I didn't remove it as I make a note of every change to defaults so I can back track. Could have been one I skipped though.

So with the music option in cache.ignore.types it's fine, without it the can't download still appears.

It may not have been included originally, or whenever you created your properties file, which is why I suggest not adding properties unnecessarily to the properties file. Unless you specifically mean to override a property it's always best to not include it in your properties file and instead allow it to use the default value (which may change from one version to the next as new features are added - I try to choose sensible defaults!)

If you want to add additional ignore types while also keeping the standard defaults, then prefix your list with a + (plus) sign, ie:
Code:
cache.ignore.types = + ^image://http

which would cause urls beginning with image://video, image://music and also image://http to be ignored when caching artwork.

Whereas:
Code:
cache.ignore.types = ^image://http

would remove the standard defaults, and only urls beginning with image://http would be ignored.

(2013-09-16, 04:46)CaptainKen Wrote: Here's the log without the music option in the cfg file.
log

When using the standard default ignore types (ie. with image://music added), you would see "Ignored image due to rule ..." messages present in the log for each ignored artwork item.
Texture Cache Maintenance Utility: Preload your texture cache for optimal UI performance. Remotely manage media libraries. Purge unused artwork to free up space. Find missing media. Configurable QA check to highlight metadata issues. Aid in diagnosis of library and cache related problems.
Reply
(2013-09-16, 04:46)CaptainKen Wrote: Well according to Tag&Rename they didn't have embedded artwork, although some others do. BTW, I haven't done anything with artwork for any of my music library, so there aren't any local artwork files.

(2013-09-16, 05:40)MilhouseVH Wrote: The XBMC scraper seems to think those albums have embedded artwork.

Is there some method other than Tag&Rename that you know of to find out which mp3 have embedded artwork and to strip them out?

(2013-09-16, 05:40)MilhouseVH Wrote: It may not have been included originally, or whenever you created your properties file, which is why I suggest not adding properties unnecessarily to the properties file. Unless you specifically mean to override a property it's always best to not include it in your properties file and instead allow it to use the default value (which may change from one version to the next as new features are added - I try to choose sensible defaults!)

So the cfg file should be very lean, with only line items that are required by my setup? For instance, items with nothing after the "=" just be omitted until needed?
HTPC: Dell Optiplex 7050 SFF i7-7700 quad-core, 3.6GHz, 16GB
NAS: Synology DS1813+ and DX513, Hybrid RAID (SHR) 48TB usable space
My Media Center | www.CaptainKen.us | www.YouTube.com/KenInGilbert
Reply
(2013-09-16, 06:15)CaptainKen Wrote: Is there some method other than Tag&Rename that you know of to find out which mp3 have embedded artwork and to strip them out?

It's been a long time since I looked at MP3 tagging software, not really sure what tools exist today that would help identify embedded artwork.

(2013-09-16, 06:15)CaptainKen Wrote: So the cfg file should be very lean, with only line items that are required by my setup? For instance, items with nothing after the "=" just be omitted until needed?

Exactly. Smile
Texture Cache Maintenance Utility: Preload your texture cache for optimal UI performance. Remotely manage media libraries. Purge unused artwork to free up space. Find missing media. Configurable QA check to highlight metadata issues. Aid in diagnosis of library and cache related problems.
Reply
(2013-09-16, 06:25)MilhouseVH Wrote:
(2013-09-16, 06:15)CaptainKen Wrote: Is there some method other than Tag&Rename that you know of to find out which mp3 have embedded artwork and to strip them out?

It's been a long time since I looked at MP3 tagging software, not really sure what tools exist today that would help identify embedded artwork.

(2013-09-16, 06:15)CaptainKen Wrote: So the cfg file should be very lean, with only line items that are required by my setup? For instance, items with nothing after the "=" just be omitted until needed?

Exactly. Smile

Thank you for your assistance once again! Hope your week is a good one.Cool
HTPC: Dell Optiplex 7050 SFF i7-7700 quad-core, 3.6GHz, 16GB
NAS: Synology DS1813+ and DX513, Hybrid RAID (SHR) 48TB usable space
My Media Center | www.CaptainKen.us | www.YouTube.com/KenInGilbert
Reply
Just out of curiosity, I thought texturecache.py showed some sort of statistics to know it was working. Does it just sit at the command prompt until it's done, with nothing to show it works?
Reply
(2013-09-17, 02:46)Nitroburner77 Wrote: Just out of curiosity, I thought texturecache.py showed some sort of statistics to know it was working. Does it just sit at the command prompt until it's done, with nothing to show it works?

It usually shows some progress - what are you trying to do exactly? If you enable the logfile property you should be able to monitor what it is doing and where it gets stuck.
Texture Cache Maintenance Utility: Preload your texture cache for optimal UI performance. Remotely manage media libraries. Purge unused artwork to free up space. Find missing media. Configurable QA check to highlight metadata issues. Aid in diagnosis of library and cache related problems.
Reply
(2013-09-17, 03:01)MilhouseVH Wrote:
(2013-09-17, 02:46)Nitroburner77 Wrote: Just out of curiosity, I thought texturecache.py showed some sort of statistics to know it was working. Does it just sit at the command prompt until it's done, with nothing to show it works?

It usually shows some progress - what are you trying to do exactly? If you enable the logfile property you should be able to monitor what it is doing and where it gets stuck.

I'm doing texturecache.py c
I've used it before and saw a lot of activity, so I thought it was strange that I'm not seeing anything.
After trying "./texturecache.ph c" I have the cursor box on the next line for about 15 minutes now. I think I broke something.
Reply
Use a logfile and see where it is stuck. If you are using a recent rbej OpenELEC build there is a bug which can cause JSON to hang when processing TV shows, this should be fixed in the next rbej release (probably).
Texture Cache Maintenance Utility: Preload your texture cache for optimal UI performance. Remotely manage media libraries. Purge unused artwork to free up space. Find missing media. Configurable QA check to highlight metadata issues. Aid in diagnosis of library and cache related problems.
Reply
Milhouse, where is the logfile stored?
I turned on the logfile and logfile.verbose.

I am using Openelec 3.2 for intel, if that helps. Maybe it's just slow, I have a fair amount of data...
Any ideas are appreciate, I'm 99% sure it's user related. I won't bug you again until tomorrow Smile
Reply
You specify where the logfile is by adding the logfile property to your properties file, or adding @logfile on the command line, for example:

Code:
./texturecache.py c @logfile=c:\tc.log

would log information to c:\tc.log. Adding @logfile.verbose=yes would log even more information.

If it hangs for any unreasonable amount of time, try looking at the end of the log file to see if there is any ongoing activity.

One other thing, by specifying only "c" as the option you are asking it to pre-load the cache for albums, artists, movies, sets, genres, pvr and tvshows. You could try caching each class individually, in turn (ie. "c albums", then "c artists") and see if it continues to hang.

Yet another thing, if the JSON RPC server has crashed or stopped responding, restarting XBMC might help.
Texture Cache Maintenance Utility: Preload your texture cache for optimal UI performance. Remotely manage media libraries. Purge unused artwork to free up space. Find missing media. Configurable QA check to highlight metadata issues. Aid in diagnosis of library and cache related problems.
Reply
Thank you again for your help MilhouseVH!
It turns out there is a problem with one of my TV Series having a season of -1.
Reply
Hi MilhouseVH!

Let me just start by saying that your script is, by far, the most powerful and useful tool for XBMC. Keeping the library healthy is a lifesaver. Specially because I run several machines with XBMC.

Meanwhile, I encountered a problem running ./texturecache.py p. Happens with P also.

Code:
RasPiSala:~ # ./texturecache.py p
Traceback (most recent call last):                                    
  File "./texturecache.py", line 4267, in <module>
    main(sys.argv[1:])
  File "./texturecache.py", line 4189, in main
    pruneCache(purge_nonlibrary_artwork=False)
  File "./texturecache.py", line 3517, in pruneCache
    files = getAllFiles(keyFunction=getKeyFromFilename)
  File "./texturecache.py", line 3419, in gentlefolk
    for items in data["result"]:
KeyError: 'result'

I'm running OpenELEC 3.2.0 for RPi with active PVR and texturecache.py 0.9.9. After some digging around, I found a few references to the same error:

https://github.com/MilhouseVH/texturecache.py/issues/6
http://forum.xbmc.org/showthread.php?tid=51322&page=208 (posts #2076 and #2077)

I ran ./texturecache.py p @logfile=/storage/tc.log @logfile.verbose=yes and this is the resulting debug log.

texturecache.cfg
Code:
allow.recacheall=yes
download.threads = 1

I can give you access over SSH to this particular box. I'm on GMT.

Hope you can nail this sucker.
Thanks for everything.

BR,
hudo
Reply
Looks like a problem with movie sets - do you have any, I'm guessing not.

Strange that it should return an invalid response rather than an empty set of sets... if you are using the local SQLite db rather than MySQL, can you upload your MyMovies75.db somewhere so that I can test a fix for this? PM me the URL, thanks.

Edit: No, scratch that - this has been a problem before, and there is a partial fix added but it's not been propogated to the prune function, doh... fix coming up.
Texture Cache Maintenance Utility: Preload your texture cache for optimal UI performance. Remotely manage media libraries. Purge unused artwork to free up space. Find missing media. Configurable QA check to highlight metadata issues. Aid in diagnosis of library and cache related problems.
Reply
  • 1
  • 23
  • 24
  • 25(current)
  • 26
  • 27
  • 197

Logout Mark Read Team Forum Stats Members Help
[RELEASE] Texture Cache Maintenance utility17