vidkun
Junior Member
Posts: 12
Joined: Jan 2010
Reputation: 0
|
Not sure what the latest status is of this and I've seen a few suggestions that come close to mine. I wanted to give a bit of a more detailed suggested implementation though, so here it goes.
Using a SQL db, initial setup would go as such:
Open an XBMC instance and add a media source as normal. XBMC still using it's normal operation would scan the source and import all the data to its db which would be the central SQL db in this case. During this initial scrape, it would download all the fanart, info, cast photos, etc, etc and store them inside the SQL db as well (store the actual files and data instead of a URL pointer). However, when importing the files into the db it adds a timestamp field for each file/description as well. Just to clarify, it is only storing fanart, descriptions, etc in the database and not any of the media. The media would remain locations as is currently handled.
Then when a XBMC instance is run, it goes out to the SQL db, pulls down all the fanart, descriptions, and media locations, thumbnails, etc. and cache them locally. This way when running the XBMC it doesn't have to load the thumbnails from the db each time. It can pull the local cache much quicker. This way there are no individual files strewn across media folders and such. The media folders contain the media only and all this extra stuff is kept cleanly in a separate central location.
Then when a user initiates a rescrape from any of the XBMC instances that are connected to the SQL db, XBMC would compare the timestamp of the files in the db to what is available from the online source to see if it is newer. This may be an issue if there's no way to compare the timestamp of the online data. In that case, perhaps a rescrape just rescrapes all data regardless.
Similarly, an initiated update library would compare the timestamp of the files in the SQL db to the timestamp of the files in the local cache. If the SQL db file is newer than the local cache, then XBMC pulls down the new file and updates the local cache with it. Otherwise, it ignores it and moves to the next file.
A benefit to this method is that, with XBMC being open source and open about its methods, third party media managers such as Ember Media Manager or Media Center Master could hook into this same SQL db and write their files to it for you. Then you can keep your media collection and all related fanart, etc centrally managed and maintained using any media manager you choose. And bringing up a new XBMC instance is as simple as pointing it to use the SQL db and running an update library. It would then pull all the media locations (don't have to bother adding the media source in the new instance as it would pull it in from the db), fanart, thumbnails, etc down and cache them locally. And bam, you're up and running on your new instance in two easy steps.
Thoughts?
|