HowTo: Centralize Your XBMC Library with MySQL


Recommended Posts

I think its an issue with this fresh install of XBMC, I need to figure out what I goofed since all my nfos have the set info. ughhhhh.

 

One thing to look out for.  When adding your Movies source, make sure you enable "use folder names for lookup" or something to that effect.  Otherwise, it will IGNORE your .nfo files and try to query the movie scraper using the filename.  I have no idea why that setting correlates to that behavior.

Link to comment
  • Replies 195
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

Posted Images

you can add to the OP that there is NO way to use symnlinks or any sort of tool that simulates one in windows XP. You'll have to use a different program like dropbox or something like that. :(

 

Edited.... time for Win 7 my man....

 

I just discovered that Sickbeard and Couch Potato, automatically update the XBMC library! This makes it completely automated.... now I just wish I could get Couch Potato to work in unRAID.

Link to comment

oh is that it? I DIDN'T check that assuming that meant it WOULD check my nfo. Fingers crossed that fixes it, thanks for the advice!

 

 

EDIT: aaaand that was the problem. Thanks funbubba good catch. :)

 

NICE!  I wouldn't have been able to tell you that if I hadn't run into the same problem myself a couple of weeks ago  ;)

Link to comment

Hey hernandito,

 

Here's some info to fill in the gaps.

 


Step 2

For XBMC running on Mac OS X

~/Library/Application Support/XBMC/userdata

 

For XBMC running on Ubuntu (same as XBMC Live)

~/.xbmc/userdata/Thumbnails

 

Step 3

Mac OS X

- First we need to download speeding_ant's mount.sh script from http://lime-technology.com/forum/index.php?PHPSESSID=dd7b64d8b8872dbc98c9ffba23a44f39&topic=10274.0

 

- Follow the instructions from that page to mount the unRAID share hosting your thumbnails.  Let's pretend that it's \\192.168.0.201\Media\Thumbnails.  Once you've completed, you should see /Volumes/Media from Finder.

 

- From Finder, drill down to ~/Library/Application Support/XBMC/userdata

 

- Rename Thumbnails to Thumbnails.old.  Set this window aside for now.

 

- Open Applications > Utilities > Terminal

 

- Create the symbolic link by using the following command

ln -s /Volumes/Media/Thumbnails ~/Library/Application\ Support/XBMC/userdata/Thumbnails

 

- Once completed, go back to the Finder window and double-click on the new Thumbnails folder to verify.

 

Ubuntu

Similar to XBMC Live

<end>


 

Just a thought.  I was able to shave a couple of extra steps in the Ubuntu Step 3 by having /etc/fstab mount directly to /home/<username>/.xbmc/userdata/Thumbnails.  So I avoided the symbolic link altogether, though I'm not sure if this is best practice, since I'm still an n00buntu.

 

Anyway, hope that helps.

Link to comment

Hey hernandito,

 

Here's some info to fill in the gaps.

 

 

 

Thank you Bubba.... I have updated the original post...!!

 

I now have SABNzbd, Sickbeard, and Couch Potato running in unRAID. With their direct links to XBMC, the process of adding media is completely automated. I simply selected my ATV2 XBMC device as it is an always-on device. This is only possible with a centralized database. This has taken my media library to an entire new level.

 

 

Link to comment

I have tried this out and it has indeed introduced some lag. I have all Windows 7 based HTPCs and an unRAID server hosting the mySQL db.

 

My reason for trying mySQL was to centralize the db and maintain watched status. I slick my HTPCs rather often and never remember what I have watched etc.

 

Would there be a way to have the best of all worlds?

 

How about LOCAL art files to each HTPC and a central mySQL db? I believe this would require some kind of sync utility to update the local art on each HTPC if it was updated on another. Say I "reload" or change the backdrop in the living room, this would update the mySQL, right? An HTPC elsewhere would not have this backdrop local so something would have to bring it over.

 

possible? thanks!

 

 

Link to comment

I believe after step 1 you will get the synched status, but NOT synching of libraries (when you add new movies). I still think you have to go to each machine and manually update.

 

My understanding was that the database keeps track of what fanart has been pulled locally. I thought that the first HTPC would see a new movie, pull the fanart locally, and then update mySQL to say "I have the fanart locally".

 

The second HTPC connects to mySQL and reads the info. db says "I have the fanart locally" and this HTPC will not pull it from the movie folder locally. Only the first HTPC to see a new movie for example will get the fanart

 

Please correct me as I really would like this to work

 

Requirements: Central Watched List and Local fanart/media files for speed

 

thanks

Link to comment

Hey NOX6 what kind of network do you have? Gigabit wired? Wireless? I run gigabit wired and have no speed difference in the two (sql vs local) - just a different perspective I guess. I have mine running on my cache drive which is usually spun up though.

 

Gigabit wired network. I see the lag in XBMC when I first click on either "Movies" or "TV Series". This is using the Aeon MQ 2 skin.

The HTPC has an SSD which is moot now for the fanart as I am pulling it from unraid.

 

thanks

Link to comment

Make sure you also have enabled useddsfanart in the advancedsettings.xml file.

 

Brit, this sounds important. Thanks. I will try out tonight!!

 

According to th XBMC wiki:

 

<useddsfanart>

 

This settings allows XBMC to use your GPU rendering fanart and some other images. This will make loading images considerably faster, especially on systems with slower processors (e.g. atom based systems).

 

To enable dds fanart in xbmc, add the following to your advancedsettings.xml:

 

<advancedsettings>
  <useddsfanart>true</useddsfanart>
</advancedsettings>

Link to comment

How about LOCAL art files to each HTPC and a central mySQL db? I believe this would require some kind of sync utility to update the local art on each HTPC if it was updated on another. Say I "reload" or change the backdrop in the living room, this would update the mySQL, right? An HTPC elsewhere would not have this backdrop local so something would have to bring it over.

 

Though I'm not really experienced with rsync/DeltaCopy, maybe it's worth researching in your case.  I'm thinking possibly copying the thumbnails to unRAID, and have a recurring Task Scheduler to sync your local thumbnails with the copy in unRAID.  I just wish I could give you more instruction on how this works but it's unfamiliar territory for me.  It would actually be useful for those still running XP that can't create symbolic links.

Link to comment

Make sure you also have enabled useddsfanart in the advancedsettings.xml file.

 

Without sounding like FUD, for me, enabling this setting introduced a crapton of lag when browsing through my library.  The first couple of movements were okay but then after that it would jump and stutter terribly.  The weirdest part was that the lag remained even when the setting was undone by either specifying FALSE or the tag removed.  So it's completely possible I messed something else up entirely but I ended up blowing out my preferences and started over.  I wanted to move MySQL to a different disk anyway so I figure it's time to start from a clean slate.

 

It might be worth noting that I tried useddsfanart on OS X 2GHz Core Duo with a Nvidia GPU, so your mileage could definitely vary.  My other two OS' were powerful enough not to require additional hardware acceleration so I didn't try it on them.

Link to comment

So it's completely possible I messed something else up entirely but I ended up blowing out my preferences and started over.  I wanted to move MySQL to a different disk anyway so I figure it's time to start from a clean slate.

 

 

For me it runs quite fine without the setting... I am worried that I may break what ddid not need fixing... This would be for my Apple TV. Bubba, would you happen to know what the preference file is? Perhaps I can make a backup copy and replace if it messes me up as well.

 

I do NOT want to loose my XBMC, it took me ages to get it to where it is.

 

Thanks.

 

H.

Link to comment

It made a positive difference on my Nvidia ION Atom setup under XBMC 10.0 on XBMC-Live. I believe others in this unRAID forum have said it made a positive difference for them too in the other XBMC threads.

 

The possible issue you saw might have been that when you enable the setting, then XBMC has to create the dds files if they do not currently exist. I think it does it upon browsing or adding to the library.

 

It's also possible that OS X has quirks when XBMC uses this setting.

 

The preference file you modify, advancedsettings.xml, is the exact same one mentioned in the guide in the original post.

Link to comment
  • 1 month later...

Just a couple of things you might want to clean up in the guide:

===================================================================================

1. 

Open up a telnet session into your unRAID server and at the command prompt enter:

mysql -u root -p

 

I'm guessing you meant to add the host name to the login mysql login command, not the user.  Otherwise you'll get an "Unknown MySQL server host 'root'" error -

mysql -u tower -p

Then type the MySQL password you entered.

===================================================================================

2.  This can probably be removed since you already mention creating this database along with the movies database in the previous step:

 

Enter:

CREATE database xbmc_music;

You should get a Query OK message

 

 

Link to comment
  • 2 weeks later...

What about setting up indexes?

 

I have seen these listed in the Xbmc forum concerning the use of Mysql database to speed things up.

 

In MySQL command tool:  with databases called xbmc_music and xbmc_video

use xbmc_music;    This would be the name of your music database

CREATE INDEX idAlbum_idx ON song(idAlbum);

CREATE INDEX idArtist_idx ON song(idArtist);

CREATE INDEX idArtist_idx ON album(idArtist);

CREATE INDEX idArtist_idx ON exartistsong(idArtist);

CREATE INDEX idArtist_idx ON exartistalbum(idArtist);

ALTER TABLE xbmc_music.song ADD INDEX idx_idArtist(idArtist);

ALTER TABLE xbmc_music.song ADD INDEX idx_idGenre(idGenre);

ALTER TABLE xbmc_music.song ADD INDEX idx_idAlbum(idAlbum);

 

use xbmc_video;      this would be the name of your video database

ALTER TABLE movie ADD INDEX idMovie(idMovie);

ALTER TABLE movie ADD INDEX idFile(idFile);

 

 

Link to comment

Should the create database include the character set to get the latin1?

 

CREATE DATABASE xbmc_video CHARACTER SET latin1 COLLATE latin1_general_ci;
CREATE DATABASE xbmc_music CHARACTER SET latin1 COLLATE latin1_general_ci;

 

Instead of:

 

CREATE database xbmc_video;
CREATE database xbmc_music;

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.