2012-11-11, 22:47
Yes.
(2012-11-14, 00:09)jmarshall Wrote: 1. Update a client. You'll be prompted to rescan video art when you go into videos.
(2012-11-20, 12:25)Ned Scott Wrote: That's actually far more efficient than what we did with pathsubs, where the same data would be transferred every time you loaded movies or tv shows. There's really not a lot of difference between re-downloading it from the internet 5 times to each client than if you had copied it to each client from within the network. Image data isn't very significant.
(2012-11-20, 12:25)Ned Scott Wrote: If it's a big enough issue for the initial library scan/setup/whatever, then copy the textures DB and thumbnails folder between clients.
(2012-11-20, 22:54)jmarshall Wrote: Textures.db is local to each client, just like the art is local to each client. The only thing stored in mysql is the URLs from which to find the art.
(2012-11-20, 23:00)bradvido88 Wrote: I share my textures.db between all my XBMC's and it works great for me on Frodo. Basically works the same as eden if you are using centralized thumbnails.
Note this is not recommended because sharing sqlite .db files is usually asking for trouble and not a good practice... but what can I say. Works for me and always has with XBMC.
(2012-11-20, 23:59)jmarshall Wrote: It'll ignore it and grab it again. The textures database is king. If it isn't in there, then it's ignored (this is for a good reason - it could otherwise be that we're replacing an old version of the image for example).
(2012-11-21, 02:05)j114 Wrote: Half of the concern over this issue can easily be remedied by changing the way you have your media setup. The Internet bandwidth consumption can very easily be overcome by storing all of your artwork with your media files in the first place. Really, this is a best practice for HTPC users anyway, as most HTPC frontends will recognize and honor this system, rather than pulling new artwork from the Internet for each client.
First, you need to catch up all of the current media that you have. Export your current library so all of the current artwork is stored alongside your media.
Download and install one of the many great tools out there for handling artwork, metadata, trailers, etc. In no particular order, a few options are:
Ember Media Manager
Media Center Master
Meta Browser
There are other options as well, but those 3 were on the tip of my tongue. All of them have strengths and weaknesses based mostly on personal preference. All of them do a really good job in their own right.
Once you pick the tool you want to use and spend some time getting to know it and configuring it to your liking, you can then re-scrape all of your current media (assuming you WANT to) to add any missing elements or update anything you don't like. After you re-import your library, you will have all the same artwork, metadata, trailers, etc. on each client without hitting the Internet once.
Going forward, have any new media that is added to your system scraped by one of the above tools before adding it to XBMC. Then XBMC will never hit the Internet for anything relating to the new media. Now you are scraping one time and it is all stored with the media so XBMC doesn't need to use any bandwidth regardless of how many clients need artwork. Now your Internet bandwidth consumption is as slim as possible, regardless of number of clients and number of textures db's. Best of all, it can all be fully automated if you set everything up right.
As far as central storage, I will also agree that XBMC can be a serious disk hog when it comes to artwork. I have had clients with thumbnail caches in excess of 10 gb's on more than one occasion. For that reason, I eventually migrated to a shared thumbnails cache utilizing symlinks to avoid any disk space concerns on my limited capacity clients. With Frodo, as discussed, this becomes more challenging.
I've been on the nightly builds for all of my clients for a few months now, so I have had time to experiment and figure out what method will work best for me, long term. At first, I said to hell with "recommended". It's not "recommended" to have unprotected sex, but everyone knows it's better. I just left my original symlinks in place for my thumbnails cache and set up a shared textures.db. I backup all of my XBMC shared stuff on a nightly basis and store backups for 2 weeks. I figured if either the db or the cache itself became corrupted, I should notice pretty quickly and could just pull the most recent non-corrupted backup out and be back up and running in 5 minutes. Easy enough. Then I started thinking about the efficiency of that and didn't really like it as a long term solution. Corruption is almost certainly inevitable, and while relatively easy to overcome in my situation, I still prefer doing as little as possible (read virtually nothing).
So I started flirting with just using a local textures.db on each client with a single shared cache. Same concerns, and took me all of 3 days to have to whip out a backup of my cache directory. Screw that, next please.
So while considering how else I could make this work to my liking, it occurred to me how incredibly stupid I was being about the whole thing. The problem is simple, and I was trying to come up with a complex solution. Some of my clients have limited disk space, and I simply will not consider keeping a local cache on those drives because I absolutely will have issues with disk space. XBMC is just not ready for limited capacity and large ever-evolving collections. However, I have been storing all of my shared stuff on my massive NAS and using symlinks to share everything. Well, I have a ton of space on that NAS, and while the thumbnail cache can get overly excessive at times, it's never going to get so large that it even puts a dent in my NAS. So, duh, why am I so concerned about all of my clients using the SAME cache via symlinks when I can let each client keep it's local textures.db and symlink to a unique cache folder on the NAS?!
So now, I have a different cache directory for each of my clients stored on my central server (thus not consuming precious disk space on limited clients) with no risk of one client corrupting the cache or database for all the other clients. Seriously, even if you have 10 clients with their own cache on your NAS (which you probably expand regularly so you can add more media anyway), how much disk space would this realistically consume in the long term as compared to the amount of space you will consume adding more media? So why does it need to be a shared cache with the new textures.db system that is going to "sync" the same artwork for each client anyway?
In conclusion, would it be nice if XBMC could do all of this for me without my having to think or use external tools? Personally, I think it would be nice if XBMC would have some nice warm waffles waiting for me in the morning, but until it does I'll continue to get out of bed 2 minutes earlier and throwing some Ego's in the toaster.
Depending on your system(s) and network configuration, YMMV. For me, this is an ideal solution for my storage concerns, and the speed is plenty fast enough that I don't spend time waiting on artwork to load. I CAN see a difference in speed, but we're talking milliseconds, not minutes-- doesn't bother me at all.
(2012-11-21, 10:39)xexe Wrote: j114 thanks for taking the time to reply. Unfortunately I cannot recommend the use of external media and nfo tools as OpenELEC is intended to be a native XBMC tool. Also this approach is definitely not best practice since it has other implications. For instance for me if I was to follow this approach instead of one cache disk spinning up it is theoretically possible that XBMC would cause the spin up of over 60 hard disks all in the name of retrieving a bunch of tiny image files. Also not all file systems are configured to save the modification time of an image which means for some to know if an image is new the image itself would need to be read (as the file name and date stamp may not have changed). I am sure this approach works for many people but its not for us. ta